<?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 Porady inwestycyjne - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/porady-inwestycyjne/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/porady-inwestycyjne/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 16 Jul 2026 09:12:50 +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 Porady inwestycyjne - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/porady-inwestycyjne/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</title>
		<link>https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 13 Jun 2026 07:16:00 +0000</pubDate>
				<category><![CDATA[Fotowoltaika]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Taryfy dynamiczne]]></category>
		<category><![CDATA[akumulatory lifepo4 opinie]]></category>
		<category><![CDATA[bezwładność cieplna budynku]]></category>
		<category><![CDATA[bufor ciepła do pompy ciepła]]></category>
		<category><![CDATA[instalacja hvac optymalizacja]]></category>
		<category><![CDATA[kalkulator strat ciepła budynku]]></category>
		<category><![CDATA[koszt magazynu energii]]></category>
		<category><![CDATA[koszty ogrzewania domu 2026]]></category>
		<category><![CDATA[kryzys 15 roku fotowoltaiki]]></category>
		<category><![CDATA[ogrzewanie podłogowe jako magazyn energii]]></category>
		<category><![CDATA[opłacalność taryf dynamicznych]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego ozc]]></category>
		<category><![CDATA[rynkowa cena energii elektrycznej rce]]></category>
		<category><![CDATA[standardy montażu hvac]]></category>
		<category><![CDATA[wylewka betonowa podłogówka]]></category>
		<category><![CDATA[zarabianie na taryfach dynamicznych]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=5634</guid>

					<description><![CDATA[<p>Agresywny marketing OZE i HVAC wmawia dziś inwestorom, że jedyną drogą do obniżenia rachunków za prąd jest zakup drogich akumulatorów chemicznych. Zanim jednak ulegniesz presji sprzedawców i wydasz kilkadziesiąt tysięcy złotych na technologię, która zimą stoi bezużyteczna, musisz poznać twarde fakty. Prawda jest taka, że największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz – to bezwładność cieplna betonowej wylewki podłogowej połączona z odpowiednio dobranym buforem wody grzewczej. Na podstawie analizy ponad 1000 projektów instalacyjnych udowadniam, dlaczego wykorzystanie fizyki budynku w erze taryf dynamicznych jest nawet 10-krotnie tańsze i bardziej opłacalne niż ścienne baterie. W dalszej części artykułu znajdziesz interaktywne kalkulatory, wykresy oraz szczegółowe zestawienia kosztów, które pozwolą Ci samodzielnie przeliczyć zyski.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-teal: #0d9488;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
    --rk-intro-gray: #64748b;
    --rk-intro-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
}

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

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* 1. MOCNE OTWARCIE (HOOK) */
.rk-intro-hook {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-teal);
}

.rk-intro-hook h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 25px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.rk-quote-box {
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-intro-teal);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    position: relative;
}

.rk-quote-box p {
    font-size: 18px;
    line-height: 1.6;
    color: #ccfbf1;
    margin: 0;
    font-style: italic;
    font-weight: 600;
}

.rk-quote-box strong {
    color: #ffffff;
}

/* 2. SZYBKA ODPOWIEDŹ (FEATURED SNIPPET) */
.rk-intro-qa {
    padding: 40px 50px;
    background: #ffffff;
    border-bottom: 1px dashed var(--rk-intro-border);
}

.rk-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    color: #065f46;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: 1px solid #a7f3d0;
    margin-bottom: 15px;
}

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

.rk-intro-qa p:last-child {
    margin: 0;
}

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

/* 3. INTERAKTYWNA MAPA ARTYKUŁU */
.rk-intro-roadmap {
    padding: 40px 50px;
    background: var(--rk-intro-light);
}

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

.rk-rm-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    overflow: hidden;
}

/* Przyciski nawigacyjne */
.rk-rm-nav {
    background: #f1f5f9;
    border-right: 1px solid var(--rk-intro-border);
    display: flex;
    flex-direction: column;
}

.rk-rm-btn {
    padding: 20px;
    text-align: left;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
}

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

.rk-rm-btn.active {
    background: #ffffff;
    color: var(--rk-intro-teal);
    border-left-color: var(--rk-intro-teal);
}

/* Zawartość paneli */
.rk-rm-content-area {
    padding: 30px 30px 30px 10px;
}

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

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

.rk-rm-panel h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

.rk-rm-panel p {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-intro-hook, .rk-intro-qa, .rk-intro-roadmap { padding: 30px 20px; }
    .rk-intro-hook h2 { font-size: 24px; }
    .rk-rm-grid { grid-template-columns: 1fr; }
    
    /* Mobilna nawigacja w pionie */
    .rk-rm-nav { 
        border-right: none; 
        border-bottom: 1px solid var(--rk-intro-border); 
        flex-direction: column; 
    }
    .rk-rm-btn { 
        padding: 16px 20px; 
        border-left: 4px solid transparent; 
        border-bottom: 1px solid var(--rk-intro-border); 
        width: 100%; 
    }
    .rk-rm-btn:last-child {
        border-bottom: none;
    }
    .rk-rm-btn.active { 
        border-left-color: var(--rk-intro-teal); 
    }
    
    .rk-rm-content-area { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz",
    "description": "Szybka odpowiedź inżynierska: Ogrzewanie podłogowe jako darmowy hybrydowy magazyn termiczny, który skutecznie zastępuje drogie akumulatory LiFePO4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-wstep",
    "name": "Wstępna specyfikacja oszczędności: Magazyn termiczny (2026)",
    "description": "Podstawowe dane brzegowe udowadniające wyższość układu bufor + wylewka nad akumulatorami elektrochemicznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "największy magazyn energii w domu",
      "ogrzewanie podłogowe jako magazyn energii",
      "bufor ciepła do pompy ciepła",
      "darmowy magazyn prądu",
      "hybrydowy magazyn termiczny"
    ],
    "measurementTechnique": "Wyprowadzenie tezy inżynierskiej bazującej na darmowej pojemności 70-90 kWh w podłodze vs 10 kWh w drogiej baterii.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom 150m2 posiada darmową zdolność akumulacji 70–90 kWh.",
        "Koszty eksploatacji pompy ciepła spadają o 30-40% bez degradacji sprzętu.",
        "Rozwiązanie termiczne jest 6 do 10 razy tańsze od rynkowych magazynów prądu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora HVAC",
    "description": "Nawigacyjny komponent webowy prezentujący zawartość merytoryczną i kalkulatory analityczne dostępne w dalszej części opracowania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="wstep-artykulu-app">
    
    <div class="rk-sr-only">
        Rozwiązania dedykowane dla haseł: największy magazyn energii w domu, ogrzewanie podłogowe jako magazyn energii, bufor ciepła do pompy ciepła, darmowy magazyn prądu, hybrydowy magazyn termiczny.
    </div>

    <div class="rk-intro-hook">
        <h2>Największy magazyn energii w Twoim domu już istnieje i prawdopodobnie po nim chodzisz</h2>
        <div class="rk-quote-box">
            <p>
                „Kup fotowoltaikę. Kup magazyn energii. Kup większy magazyn energii.” – tak wygląda dzisiaj agresywna sprzedaż w branży HVAC i OZE. Inwestorzy, zaszczuci wizją rosnących rachunków, wydają dziesiątki tysięcy złotych na akumulatory, nie zadając jednego, fundamentalnego pytania: <strong>A co, jeśli najskuteczniejszy magazyn energii w Twoim domu już istnieje?</strong>
            </p>
        </div>
    </div>

    <div class="rk-intro-qa">
        <div class="rk-qa-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Szybka odpowiedź specjalisty
        </div>
        <p>
            Mowa o bezwładności cieplnej budynku i ogrzewaniu podłogowym. W tym artykule, na podstawie 1000+ wykonanych projektów, obnażam ekonomiczny mit „magazynów prądu” i pokazuję, dlaczego <strong>woda w buforze i betonowa wylewka są od nich od 6 do 10 razy tańsze.</strong>
        </p>
        <p>
            <strong>Ogrzewanie podłogowe jako hybrydowy magazyn termiczny</strong> to proces wykorzystania fizyki wylewki oraz wody sieciowej do przesunięcia poboru prądu przez pompę ciepła w czasie, celem unikania stref szczytowych taryf energii. Podczas gdy rynek wymusza zakupy akumulatorów za 25 000 – 45 000 PLN, standardowy dom (150 m²) posiada darmową zdolność akumulacji rzędu <strong>70–90 kWh energii</strong>, redukując roczne koszty eksploatacji pompy o 30–40% bez żadnej degradacji sprzętu.
        </p>
    </div>

    <div class="rk-intro-roadmap">
        <h3>Co przygotowałem dla Ciebie w tym artykule?</h3>
        
        <div class="rk-rm-grid">
            <div class="rk-rm-nav" id="introNavBtns">
                <button class="rk-rm-btn active" data-target="info-1">
                    Fizyka Magazynu
                </button>
                <button class="rk-rm-btn" data-target="info-2">
                    Kalkulator ROI
                </button>
                <button class="rk-rm-btn" data-target="info-3">
                    Analiza Cash Flow
                </button>
            </div>

            <div class="rk-rm-content-area" id="introPanels">
                <div class="rk-rm-panel active" id="info-1">
                    <h4>Interaktywny Symulator Pojemności</h4>
                    <p>Poniżej znajdziesz dedykowane narzędzie, w którym podasz metraż swojego domu, a algorytm wyliczy z dokładnością co do kilowatogodziny, ile darmowej energii pomieści Twój beton i bufor w stosunku do drogich baterii LiFePO4.</p>
                </div>
                <div class="rk-rm-panel" id="info-2">
                    <h4>Kalkulator Oszczędności (Taryfy)</h4>
                    <p>Udostępniam aplikację do symulacji na żywo. Zmienisz w niej ceny prądu (G11 vs Taryfa Dynamiczna) i natychmiast sprawdzisz po ilu latach zwróci się precyzyjnie zaprojektowana instalacja ogrzewania podłogowego.</p>
                </div>
                <div class="rk-rm-panel" id="info-3">
                    <h4>20-letni Harmonogram Inwestycji</h4>
                    <p>Koniec z ukrywaniem kosztów serwisu falowników i degradacji baterii. Przygotowałem pełne zestawienie w formie &#8222;Osi Czasu&#8221;, które obnaża &#8222;Kryzys 15. roku&#8221; instalacji fotowoltaicznych w zderzeniu ze stalą i betonem.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#introNavBtns .rk-rm-btn');
    const panels = document.querySelectorAll('#introPanels .rk-rm-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe przełączenie (bez animacji)
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-trap-dark: #0f172a;
    --rk-trap-navy: #1e293b;
    --rk-trap-red: #dc2626;
    --rk-trap-red-light: #fef2f2;
    --rk-trap-blue: #0284c7;
    --rk-trap-gray: #64748b;
    --rk-trap-light: #f8fafc;
    --rk-trap-border: #e2e8f0;
    --rk-trap-orange: #f59e0b;
}

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

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-trap-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-trap-dark) 0%, #450a0a 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-trap-red);
}

.rk-trap-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

/* Układ główny */
.rk-trap-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Kontrolery */
.rk-trap-controls {
    padding: 40px 50px;
    background: var(--rk-trap-light);
    border-right: 1px solid var(--rk-trap-border);
}

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

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

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

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

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-trap-gray);
    font-weight: 500;
    margin-top: 3px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-trap-border);
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-trap-dark);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

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

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

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

/* Przełącznik Pory Roku (Kluczowy dla symulacji) */
.rk-season-toggle {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    margin-top: 10px;
}

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

.rk-season-btn.active[data-season="summer"] {
    background: #ffffff;
    color: var(--rk-trap-orange);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-season-btn.active[data-season="winter"] {
    background: var(--rk-trap-blue);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

/* Prawa Kolumna - Wyniki Live */
.rk-trap-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

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

.rk-res-card {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px 0;
    border-bottom: 1px dashed var(--rk-trap-border);
}

.rk-res-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-trap-gray);
    flex-shrink: 0;
}

.rk-res-details {
    flex-grow: 1;
}

.rk-res-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-trap-dark);
    margin-bottom: 4px;
}

.rk-res-desc {
    font-size: 12px;
    color: var(--rk-trap-gray);
}

.rk-res-val {
    font-size: 20px;
    font-weight: 900;
    text-align: right;
    white-space: nowrap;
}

.val-red { color: var(--rk-trap-red); }
.val-dark { color: var(--rk-trap-dark); }

/* Wynik końcowy ostrzeżenie */
.rk-trap-alert {
    margin-top: auto;
    padding: 25px;
    background: var(--rk-trap-red-light);
    border: 2px solid var(--rk-trap-red);
    border-radius: 16px;
    text-align: center;
    position: relative;
}

.rk-trap-alert-title {
    font-size: 13px;
    font-weight: 800;
    color: #991b1b;
    text-transform: uppercase;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-trap-alert-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-trap-red);
    line-height: 1.1;
    margin-bottom: 15px;
}

/* Wyjaśnienie matematyczne na dole */
.rk-trap-math-expl {
    padding: 25px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-trap-border);
    font-size: 14px;
    line-height: 1.7;
    color: #475569;
}

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

.rk-trap-math-box {
    background: #f1f5f9;
    padding: 15px;
    border-radius: 8px;
    margin-top: 15px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-trap-dark);
    font-weight: 600;
    border-left: 4px solid var(--rk-trap-gray);
}

@media (max-width: 768px) {
    .rk-trap-header, .rk-trap-controls, .rk-trap-results, .rk-trap-math-expl { padding: 30px 20px; }
    .rk-trap-header h2 { font-size: 22px; flex-direction: column; }
    .rk-trap-body { grid-template-columns: 1fr; }
    .rk-trap-controls { border-right: none; border-bottom: 1px solid var(--rk-trap-border); }
    .rk-trap-alert { margin-top: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-pulapka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Dlaczego magazynowanie energii elektrycznej w akumulatorach to ekonomiczna pułapka?",
    "description": "Zrozum straty na konwersji i drastyczny spadek wydajności magazynów LiFePO4 w okresie zimowym, kiedy pompa ciepła potrzebuje prądu najbardziej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-pulapka",
    "name": "Analiza degradacji i kosztów akumulatorów LiFePO4 (2026)",
    "description": "Zestawienie twardych danych o sprawności cykli AC-DC-AC, spadku zimowym produkcji PV oraz żywotności ogniw chemicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opłacalność magazynu energii",
      "żywotność akumulatorów lifepo4",
      "sprawność magazynu energii",
      "fotowoltaika zimą a magazyn",
      "koszt 1 kwh z magazynu"
    ],
    "measurementTechnique": "Kalkulacja straty systemowej bazująca na 15% stratach konwersji i 85% spadku dostępności darmowej energii OZE w polskim klimacie od listopada do lutego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt 1 kWh = Cena Magazynu / Pojemność znamionowa",
        "Straty konwersji: -15% przy każdym cyklu inwertera hybrydowego",
        "Zimowy spadek użyteczności: Do 10-15% dostępności słońca"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-pulapka",
    "name": "Symulator Rentowności Magazynu Chemicznego",
    "description": "Aplikacja obliczeniowa ujawniająca rzeczywisty koszt 1 kWh pojemności bateryjnej i obnażająca letnio-zimową dysproporcję działania układu PV.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-trap-container" id="pulapka-bateryjna-app">
    
    <div class="rk-sr-only">
        Słowa kluczowe do analizy inżynierskiej: opłacalność magazynu energii, żywotność akumulatorów lifepo4, sprawność magazynu energii, fotowoltaika zimą a magazyn, koszt 1 kwh z magazynu.
    </div>

    <div class="rk-trap-header">
        <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" style="color: #fca5a5;">
                <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>
            Akumulator w domu to pułapka?
        </h2>
        <p>Zobacz, jak sprzedawcy obliczają zwrot w oparciu o &#8222;idealne 365 dni słońca&#8221;. Ustaw pojemność, przełącz porę roku i obnaż fizyczne ograniczenia magazynów elektrycznych.</p>
    </div>

    <div class="rk-trap-body">
        
        <div class="rk-trap-controls">
            <h3>Parametry Magazynu (LiFePO4)</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność znamionowa (kWh)</label>
                    <div class="rk-input-value-box"><span id="valCap">10</span> kWh</div>
                </div>
                <input type="range" class="rk-trap-slider" id="inpCap" min="5" max="30" step="1" value="10">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Koszt zakupu i montażu (PLN) <span>Średnio 2000 &#8211; 3000 zł za 1 kWh</span></label>
                    <div class="rk-input-value-box"><span id="valCost">20000</span> zł</div>
                </div>
                <input type="range" class="rk-trap-slider" id="inpCost" min="10000" max="90000" step="1000" value="20000">
            </div>

            <div class="rk-input-group" style="margin-top: 40px;">
                <label class="rk-input-label">Zasymuluj warunki w polskim klimacie:</label>
                <div class="rk-season-toggle">
                    <button class="rk-season-btn active" data-season="summer">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                        Wiosna / Lato
                    </button>
                    <button class="rk-season-btn" data-season="winter">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M4 10l8-8 8 8"></path><path d="M4 14l8 8 8-8"></path></svg>
                        Zima (Listopad-Luty)
                    </button>
                </div>
            </div>
        </div>

        <div class="rk-trap-results">
            <h3>Prawdziwe możliwości systemu</h3>
            
            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Jednostkowy koszt pojemności</div>
                    <div class="rk-res-desc">Zamrożony kapitał za każdą 1 kWh</div>
                </div>
                <div class="rk-res-val val-dark" id="resUnit">2 000 zł</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Straty konwersji (AC-DC-AC)</div>
                    <div class="rk-res-desc">Minus ~15% na falowniku przy cyklu</div>
                </div>
                <div class="rk-res-val val-red" id="resLoss">-1.50 kWh</div>
            </div>

            <div class="rk-trap-alert">
                <div class="rk-trap-alert-title" id="alertTitle">Dostępna darmowa energia na dobę</div>
                <div class="rk-trap-alert-val" id="resReal">8.50 kWh</div>
                <div style="font-size: 13px; color: #7f1d1d; line-height: 1.4;" id="alertDesc">
                    Latem magazyn ładuje się sprawnie. Tracisz jedynie 15% pojemności na ciepło odpadowe z falownika.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-trap-math-expl">
        <strong>Matematyka inwestycyjna jest bezwzględna.</strong> Kalkulacja zwrotu opierana przez handlowców na 365 cyklach rocznie to fikcja. Pamiętaj, że dla efektywnego działania całego układu, kluczowa jest znajomość zapotrzebowania obiektu, która wynika z profesjonalnych <a href="https://projekt-ogrzewania.pl/ogrzewanie-elektryczne-vs-wodna-podlogowka-kalkulator-kosztow-eksploatacji/">kalkulacji kosztów eksploatacji</a>.
        
        <div class="rk-trap-math-box">
            Koszt 1 kWh = CENA ZESTAWU / POJEMNOŚĆ BATERII<br>
            <span style="color:var(--rk-trap-red);" id="mathEq">20 000 PLN / 10 kWh = 2000 PLN/kWh</span>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elCap = document.getElementById('inpCap');
    const elCost = document.getElementById('inpCost');
    const seasonBtns = document.querySelectorAll('.rk-season-btn');

    // Displays
    const valCap = document.getElementById('valCap');
    const valCost = document.getElementById('valCost');
    const resUnit = document.getElementById('resUnit');
    const resLoss = document.getElementById('resLoss');
    const resReal = document.getElementById('resReal');
    const mathEq = document.getElementById('mathEq');
    
    // Alert Elements
    const alertTitle = document.getElementById('alertTitle');
    const alertDesc = document.getElementById('alertDesc');

    let currentSeason = 'summer';

    function calculate() {
        const cap = parseFloat(elCap.value);
        const cost = parseFloat(elCost.value);

        // Update displays
        valCap.textContent = cap;
        valCost.textContent = cost.toLocaleString('pl-PL');

        // 1. Koszt jednostkowy
        const unitCost = cost / cap;
        resUnit.textContent = Math.round(unitCost).toLocaleString('pl-PL') + ' zł';
        mathEq.textContent = `${cost.toLocaleString('pl-PL')} PLN / ${cap} kWh = ${Math.round(unitCost)} PLN/kWh`;

        // 2. Symulacja Pory Roku
        // Zima = produkcja spada drastycznie. Załóżmy 15% wypełnienia baterii w słaby dzień.
        let availableEnergy = cap;
        let winterDropText = '';

        if (currentSeason === 'winter') {
            availableEnergy = cap * 0.15; // Zaledwie 15% naładowania
            alertTitle.textContent = 'Dostępna darmowa energia ZIMĄ';
            alertDesc.innerHTML = 'Przez 4 miesiące produkcja z PV drastycznie spada. Magazyn przez większość zimy <strong>stoi pusty</strong>, zamrażając Twój kapitał w momencie, gdy potrzebujesz prądu najbardziej.';
        } else {
            availableEnergy = cap; // 100% naładowania w słoneczny dzień
            alertTitle.textContent = 'Dostępna darmowa energia LATEM';
            alertDesc.innerHTML = 'Latem magazyn ładuje się bez problemu. Tracisz "tylko" energię na ciepło odpadowe z falownika (konwersja prądu stałego na zmienny).';
        }

        // 3. Straty konwersji (AC-DC-AC) - uśrednione 15% z tego, co przepłynie.
        const conversionLoss = availableEnergy * 0.15;
        const realUsable = availableEnergy - conversionLoss;

        resLoss.textContent = '-' + conversionLoss.toFixed(2) + ' kWh';
        resReal.textContent = realUsable.toFixed(2) + ' kWh';
    }

    // Event Listeners for inputs
    elCap.addEventListener('input', calculate);
    elCost.addEventListener('input', calculate);

    // Event Listeners for Season Toggle
    seasonBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            seasonBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentSeason = this.getAttribute('data-season');
            calculate();
        });
    });

    // Initial load
    calculate();
});
</script>



<style>
:root {
    --rk-cap-dark: #0f172a;
    --rk-cap-navy: #1e293b;
    --rk-cap-blue: #0284c7;
    --rk-cap-teal: #0d9488;
    --rk-cap-green: #10b981;
    --rk-cap-orange: #f59e0b;
    --rk-cap-gray: #64748b;
    --rk-cap-light: #f8fafc;
    --rk-cap-border: #e2e8f0;
}

.rk-cap-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-cap-border);
    overflow: hidden;
}

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-cap-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-cap-dark) 0%, var(--rk-cap-teal) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-cap-green);
}

.rk-cap-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

/* Układ główny */
.rk-cap-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Kontrolery */
.rk-cap-controls {
    padding: 40px 50px;
    background: var(--rk-cap-light);
    border-right: 1px solid var(--rk-cap-border);
}

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

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

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

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

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

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-cap-gray);
    font-weight: 500;
    margin-top: 3px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-cap-border);
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-cap-teal);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-cap-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-cap-teal);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(13, 148, 136, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

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

/* Prawa Kolumna - Wyniki Live */
.rk-cap-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

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

.rk-res-card {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 1px dashed var(--rk-cap-border);
}

.rk-res-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-cap-gray);
    flex-shrink: 0;
}

.rk-res-details {
    flex-grow: 1;
}

.rk-res-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-cap-dark);
    margin-bottom: 2px;
}

.rk-res-math {
    font-size: 12px;
    color: var(--rk-cap-gray);
    font-family: monospace;
}

.rk-res-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-cap-teal);
    white-space: nowrap;
}

/* Wynik końcowy */
.rk-cap-total {
    margin-top: auto;
    padding: 25px;
    background: #f0fdf4;
    border: 2px solid var(--rk-cap-green);
    border-radius: 16px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-cap-total-title {
    font-size: 14px;
    font-weight: 700;
    color: #065f46;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-cap-total-val {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-cap-green);
    line-height: 1;
    margin-bottom: 15px;
}

.rk-cap-equivalent {
    font-size: 13px;
    color: #064e3b;
    line-height: 1.5;
    font-weight: 600;
    background: #d1fae5;
    padding: 10px 15px;
    border-radius: 8px;
}

.rk-cap-equivalent strong {
    color: var(--rk-cap-red);
}

.rk-cap-math-expl {
    padding: 25px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-cap-border);
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

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

@media (max-width: 768px) {
    .rk-cap-header, .rk-cap-controls, .rk-cap-results, .rk-cap-math-expl { padding: 30px 20px; }
    .rk-cap-header h2 { font-size: 22px; flex-direction: column; }
    .rk-cap-body { grid-template-columns: 1fr; }
    .rk-cap-controls { border-right: none; border-bottom: 1px solid var(--rk-cap-border); }
    .rk-cap-total { margin-top: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-fizyka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Beton, woda i izolacja: Jak fizycznie działa magazyn termiczny?",
    "description": "Obliczenia pojemności cieplnej wylewki betonowej i bufora wody grzewczej zgodnie z normą PN-EN 1264. Poznaj realną bezwładność swojego budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-fizyka",
    "name": "Zestawienie parametrów akumulacyjnych materiałów budowlanych (2026)",
    "description": "Właściwości fizyczne, ciepło właściwe i masa układów betonowo-wodnych stosowanych w nowoczesnych instalacjach grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność cieplna wylewki",
      "bufor wody grzewczej",
      "akumulacja ciepła w betonie",
      "zasobnik cwu z pompą ciepła",
      "bezwładność cieplna budynku"
    ],
    "measurementTechnique": "Termodynamiczne obliczenia przyrostu energii (Q = m * cw * dT) z zachowaniem limitów normy PN-EN 1264 (max. 29 st. C dla podłóg).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wylewka betonowa (gęstość 2400 kg/m3): Pojemność ok. 19.45 kWh przy dT=3K dla 150m2.",
        "Woda kotłowa (bufor 1000 l): Pojemność ok. 34.8 kWh przy dT=30K.",
        "Woda użytkowa (CWU 300 l): Pojemność ok. 15.66 kWh przy dT=45K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-fizyka",
    "name": "Kalkulator Pojemności Termicznej Budynku",
    "description": "Interaktywny symulator pozwalający na obliczenie łącznej pojemności energetycznej (w kWh) wylewki i zasobników wodnych na podstawie wprowadzonych wymiarów.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cap-container" id="pojemnosc-fizyka-app">
    
    <div class="rk-sr-only">
        Pojęcia techniczne: pojemność cieplna wylewki, bufor wody grzewczej, akumulacja ciepła w betonie, zasobnik cwu z pompą ciepła, bezwładność cieplna budynku, obliczenia normy PN-EN 1264.
    </div>

    <div class="rk-cap-header">
        <h2>
            Fizyka Magazynu Termicznego
        </h2>
        <p>Sprawdź, ile darmowej energii (w kWh) potrafi zgromadzić Twój dom. Zmień parametry i zobacz realną pojemność cieplną wylewki, bufora i zasobnika CWU.</p>
    </div>

    <div class="rk-cap-body">
        
        <div class="rk-cap-controls">
            <h3>Parametry Twojego budynku</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Powierzchnia <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:inherit; text-decoration:none;">wylewki</a> (m²) <span>Grubość 6,5 cm, podgrzanie o +3°C</span></label>
                    <div class="rk-input-value-box"><span id="valArea">150</span> m²</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpArea" min="50" max="300" step="10" value="150">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color:inherit; text-decoration:none;">bufora</a> wody (litry) <span>Różnica temperatur dT = 30°C</span></label>
                    <div class="rk-input-value-box"><span id="valBuffer">1000</span> L</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpBuffer" min="0" max="2000" step="100" value="1000">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Pojemność CWU (litry) <span>Nagrzew z 10°C do 55°C (dT = 45°C)</span></label>
                    <div class="rk-input-value-box"><span id="valDhw">300</span> L</div>
                </div>
                <input type="range" class="rk-cap-slider" id="inpDhw" min="0" max="500" step="50" value="300">
            </div>
        </div>

        <div class="rk-cap-results">
            <h3>Pojemność cieplna w kWh</h3>
            
            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14.899A7 7 0 1 1 20 14.9V19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4.101z"></path></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Akumulacja w betonie</div>
                    <div class="rk-res-math" id="mathArea">23.4t x 0.277 x 3K</div>
                </div>
                <div class="rk-res-val"><span id="resArea">19.45</span> kWh</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12" y2="18.01"></line></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Woda buforowa</div>
                    <div class="rk-res-math" id="mathBuffer">1000L x 1.16 x 30K</div>
                </div>
                <div class="rk-res-val"><span id="resBuffer">34.80</span> kWh</div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-res-details">
                    <div class="rk-res-name">Ciepła Woda (CWU)</div>
                    <div class="rk-res-math" id="mathDhw">300L x 1.16 x 45K</div>
                </div>
                <div class="rk-res-val"><span id="resDhw">15.66</span> kWh</div>
            </div>

            <div class="rk-cap-total">
                <div class="rk-cap-total-title">Łączna darmowa pojemność</div>
                <div class="rk-cap-total-val"><span id="resTotal">69.91</span> kWh</div>
                <div class="rk-cap-equivalent">
                    Aby uzyskać tę samą pojemność w prądzie, musisz kupić akumulatory za: <br><strong id="resCost">~ 140 000 PLN</strong>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-cap-math-expl">
        Zgodnie z normą PN-EN 1264, dopuszczalna temperatura powierzchni podłogi to 29°C. Bezpieczne podniesienie temperatury betonu (o gęstości 2400 kg/m³) buduje gigantyczną <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Wszystkie obliczenia (Q = m x cw x dT) dowodzą, że fizyka wody i betonu deklasuje opłacalność baterii elektrochemicznych.
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elArea = document.getElementById('inpArea');
    const elBuffer = document.getElementById('inpBuffer');
    const elDhw = document.getElementById('inpDhw');

    // Displays (Inputs)
    const valArea = document.getElementById('valArea');
    const valBuffer = document.getElementById('valBuffer');
    const valDhw = document.getElementById('valDhw');

    // Displays (Math expl)
    const mathArea = document.getElementById('mathArea');
    const mathBuffer = document.getElementById('mathBuffer');
    const mathDhw = document.getElementById('mathDhw');

    // Displays (Results)
    const resArea = document.getElementById('resArea');
    const resBuffer = document.getElementById('resBuffer');
    const resDhw = document.getElementById('resDhw');
    const resTotal = document.getElementById('resTotal');
    const resCost = document.getElementById('resCost');

    function calculate() {
        const area = parseFloat(elArea.value);
        const buffer = parseFloat(elBuffer.value);
        const dhw = parseFloat(elDhw.value);

        // Update input displays
        valArea.textContent = area;
        valBuffer.textContent = buffer;
        valDhw.textContent = dhw;

        // 1. Obliczenia dla Wylewki
        // m3 = area * 0.065 m (grubosc)
        // masa (kg) = m3 * 2400
        // masa (tony) = masa / 1000
        const massKg = area * 0.065 * 2400;
        const massT = (massKg / 1000).toFixed(1);
        // kWh = masa(kg) * 0.277 (Wh/kgK) * 3(K) / 1000
        const capArea = (massKg * 0.277 * 3) / 1000;
        
        mathArea.textContent = `${massT}t x 0.277 x 3K`;
        resArea.textContent = capArea.toFixed(2);

        // 2. Obliczenia dla Bufora (cw wody = 1.16 Wh/kgK, dT = 30K)
        const capBuffer = (buffer * 1.16 * 30) / 1000;
        mathBuffer.textContent = `${buffer}L x 1.16 x 30K`;
        resBuffer.textContent = capBuffer.toFixed(2);

        // 3. Obliczenia dla CWU (dT = 45K)
        const capDhw = (dhw * 1.16 * 45) / 1000;
        mathDhw.textContent = `${dhw}L x 1.16 x 45K`;
        resDhw.textContent = capDhw.toFixed(2);

        // 4. Razem
        const totalCap = capArea + capBuffer + capDhw;
        resTotal.textContent = totalCap.toFixed(2);

        // 5. Koszt ekwiwalentu bateryjnego
        // Zakładamy rynkowo: 10 kWh = ~20 000 PLN.
        const costEquiv = (totalCap / 10) * 20000;
        // Formatowanie z przerwą tysięcy
        resCost.textContent = '~ ' + Math.round(costEquiv).toLocaleString('pl-PL') + ' PLN';
    }

    // Event Listeners
    elArea.addEventListener('input', calculate);
    elBuffer.addEventListener('input', calculate);
    elDhw.addEventListener('input', calculate);

    // Initial load
    calculate();
});
</script>



<style>
:root {
    --rk-vs-dark: #0f172a;
    --rk-vs-navy: #1e293b;
    --rk-vs-blue: #0284c7;
    --rk-vs-orange: #f59e0b;
    --rk-vs-red: #ef4444;
    --rk-vs-green: #10b981;
    --rk-vs-gray: #64748b;
    --rk-vs-light: #f8fafc;
    --rk-vs-border: #e2e8f0;
}

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

.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

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

.rk-vs-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

/* Układ główny */
.rk-vs-body {
    display: flex;
    background: #ffffff;
}

/* Nawigacja (lewa kolumna na desktopie) */
.rk-vs-nav {
    width: 280px;
    background: var(--rk-vs-light);
    border-right: 1px solid var(--rk-vs-border);
    flex-shrink: 0;
}

.rk-vs-item {
    border-bottom: 1px solid var(--rk-vs-border);
}

.rk-vs-item:last-child {
    border-bottom: none;
}

.rk-vs-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-vs-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

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

.rk-vs-btn svg {
    width: 20px;
    height: 20px;
    opacity: 0.6;
    transition: all 0.3s;
}

.rk-vs-chevron {
    display: none; /* Pokazywany tylko na mobile */
    transition: transform 0.3s;
}

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

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

.rk-vs-btn.active svg {
    opacity: 1;
    color: var(--rk-vs-blue);
}

/* Obszar wyświetlania paneli na DESKTOPIE (prawa kolumna) */
.rk-vs-desktop-content {
    flex-grow: 1;
    padding: 40px;
    position: relative;
    display: block;
}

.rk-vs-badge {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--rk-vs-dark);
    color: #ffffff;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    border: 4px solid #ffffff;
    z-index: 10;
}

/* Panele z treścią (Współdzielone dla desktopu i mobile) */
.rk-vs-panel {
    display: none;
    animation: fadeInVs 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Desktopowe wyświetlanie paneli */
.rk-vs-desktop-content .rk-vs-panel.active {
    display: block;
}

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

.rk-vs-panel-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-vs-dark);
    margin: 0 0 25px 0;
    padding-bottom: 15px;
    border-bottom: 1px dashed var(--rk-vs-border);
}

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

.rk-tech-card {
    border: 1px solid var(--rk-vs-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    background: #ffffff;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-tech-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.1);
}

.rk-tech-card.winner {
    border-color: var(--rk-vs-green);
    background: #f0fdf4;
}

.rk-tech-card.loser {
    border-color: var(--rk-vs-red);
    background: #fef2f2;
}

.rk-tech-header {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--rk-vs-gray);
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-tech-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-vs-dark);
    line-height: 1.2;
}

.rk-tech-sub {
    font-size: 13px;
    color: var(--rk-vs-gray);
    margin-top: 5px;
    font-weight: 500;
}

.winner .rk-tech-val { color: var(--rk-vs-green); }
.loser .rk-tech-val { color: var(--rk-vs-red); }

/* Ukrycie paneli w lewej nawigacji na desktopie */
.rk-vs-nav .rk-vs-panel {
    display: none !important;
}

/* --- MOBILE --- */
@media (max-width: 768px) {
    .rk-vs-header { padding: 30px 20px; }
    .rk-vs-header h2 { font-size: 22px; flex-direction: column; }
    
    .rk-vs-body { flex-direction: column; }
    .rk-vs-nav { width: 100%; border-right: none; padding: 0; }
    
    /* Na mobile ukrywamy prawy kontener desktopowy */
    .rk-vs-desktop-content { display: none; }
    
    .rk-vs-btn {
        padding: 20px;
        border-left: none;
        border-bottom: 2px solid transparent;
        font-size: 15px;
    }
    
    .rk-vs-btn.active {
        border-left-color: transparent;
        border-bottom-color: var(--rk-vs-blue);
    }
    
    /* Pokazujemy strzałki na mobile */
    .rk-vs-chevron { display: block; }
    .rk-vs-btn.active .rk-vs-chevron { transform: rotate(180deg); }
    
    /* Wyświetlanie paneli pod przyciskami jako akordeon na mobile */
    .rk-vs-nav .rk-vs-panel {
        display: none;
        padding: 20px;
        background: #ffffff;
        border-bottom: 1px solid var(--rk-vs-border);
    }
    
    .rk-vs-nav .rk-vs-panel.active {
        display: block !important;
    }

    .rk-vs-cards-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-vs-panel-title { font-size: 18px; margin-bottom: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-zderzenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Koszt za 1 kWh pojemności: Brutalne zderzenie technologii",
    "description": "Szczegółowe porównanie parametrów technicznych i kosztowych magazynu termicznego (bufor + wylewka) względem magazynu elektrycznego (LiFePO4).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-zderzenie",
    "name": "Parametry techniczno-ekonomiczne systemów magazynowania energii 2026",
    "description": "Bezpośrednia konfrontacja kosztów, żywotności i efektywności dla dwóch wiodących metod akumulacji energii w domu jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena za 1kwh magazyn energii",
      "żywotność magazynu energii lifepo4",
      "pojemność cieplna wylewki",
      "bufor ciepła vs akumulator prądu",
      "sprawność magazynowania energii"
    ],
    "measurementTechnique": "Interaktywna analiza wielokryterialna uwzględniająca pojemność użytkową, koszt jednostkowy CAPEX, sprawność konwersji oraz żywotność technologiczną.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność: Bufor (69,91 kWh termiczna) vs LiFePO4 (10 kWh elektryczna)",
        "Koszt jednostkowy: Bufor (100-130 PLN/kWh) vs LiFePO4 (1700-3500 PLN/kWh)",
        "Żywotność: Bufor (25-40 lat) vs LiFePO4 (10-12 lat)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-zderzenie",
    "name": "Eksplorator Technologii Akumulacyjnych",
    "description": "Wizualne narzędzie filtrujące ułatwiające zestawienie twardych danych fizycznych ze specyfikacjami urządzeń fotowoltaicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vs-container" id="zderzenie-tech-app">

    <div class="rk-sr-only">
        Słowa kluczowe analizy: cena za 1kwh magazyn energii, żywotność magazynu energii lifepo4, pojemność cieplna wylewki, bufor ciepła vs akumulator prądu, sprawność magazynowania energii.
    </div>

    <div class="rk-vs-header">
        <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" style="color: var(--rk-vs-orange);">
                <path d="M12 2L2 7l10 5 10-5-10-5z"></path>
                <path d="M2 17l10 5 10-5"></path>
                <path d="M2 12l10 5 10-5"></path>
            </svg>
            Brutalne zderzenie technologii
        </h2>
        <p>Sprawdź różnice, aby zobaczyć, jak przepaść technologiczna uderza bezpośrednio w Twój portfel i bezpieczeństwo inwestycji.</p>
    </div>

    <div class="rk-vs-body">
        
        <div class="rk-vs-nav" id="vsNavItems">
            
            <div class="rk-vs-item">
                <button class="rk-vs-btn active" data-target="pojemnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                        Realna Pojemność
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-pojemnosc"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="koszt-calkowity">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Koszt Całkowity
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-koszt-calkowity"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="koszt-1kwh">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Koszt za 1 kWh
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-koszt-1kwh"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="zywotnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        Żywotność Systemu
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-zywotnosc"></div>
            </div>

            <div class="rk-vs-item">
                <button class="rk-vs-btn" data-target="sprawnosc">
                    <div class="rk-vs-btn-inner">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Sprawność Cyklu
                    </div>
                    <svg class="rk-vs-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-vs-panel" id="mob-sprawnosc"></div>
            </div>

        </div>

        <div class="rk-vs-desktop-content">
            <div class="rk-vs-badge">VS</div>
            <div id="desktop-render-area">
                </div>
        </div>

    </div>
</div>

<div id="vs-templates" style="display:none;">
    
    <div id="content-pojemnosc">
        <h3 class="rk-vs-panel-title">Realna pojemność użytkowa</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">
                    <svg width="16" height="16" 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"></path></svg> Bufor + Masa Wylewki
                </div>
                <div class="rk-tech-val">~ 69,91 kWh</div>
                <div class="rk-tech-sub">Energia termiczna skumulowana w wodzie i posadzce. Zapas na kilkanaście godzin pracy.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect width="16" height="10" x="2" y="7" rx="2" ry="2"></rect><line x1="22" x2="22" y1="11" y2="13"></line></svg> Magazyn Elektryczny (LiFePO4)
                </div>
                <div class="rk-tech-val">10,00 kWh</div>
                <div class="rk-tech-sub">Zaledwie ułamek potrzebnej pojemności elektrycznej dla pracującej w zimie pompy ciepła.</div>
            </div>
        </div>
    </div>

    <div id="content-koszt-calkowity">
        <h3 class="rk-vs-panel-title">Koszt inwestycji (Zakup + Montaż)</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">7 000 &#8211; 9 000 zł</div>
                <div class="rk-tech-sub">Wymaga uwzględnienia we wczesnym <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekcie ogrzewania podłogowego</a>.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">17 000 &#8211; 35 000 zł</div>
                <div class="rk-tech-sub">Sam zestaw bateryjny bez falownika. Zamrożenie ogromnego kapitału.</div>
            </div>
        </div>
    </div>

    <div id="content-koszt-1kwh">
        <h3 class="rk-vs-panel-title">Koszt jednostkowy za 1 kWh pojemności</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">ok. 100 &#8211; 130 zł/kWh</div>
                <div class="rk-tech-sub">Najtańszy sposób na przesunięcie zużycia przy taryfach dynamicznych.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">ok. 1700 &#8211; 3500 zł/kWh</div>
                <div class="rk-tech-sub">Cena zaporowa. Przepłacasz ponad dziesięciokrotnie za każdy kilowat.</div>
            </div>
        </div>
    </div>

    <div id="content-zywotnosc">
        <h3 class="rk-vs-panel-title">Faktyczna żywotność systemu</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">25 &#8211; 40 lat</div>
                <div class="rk-tech-sub">Stal i beton nie ulegają zużyciu technologicznemu w zamkniętym układzie wodnym.</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">10 &#8211; 12 lat</div>
                <div class="rk-tech-sub">Nieuchronna degradacja ogniw chemicznych i spadek pojemności poniżej 80%.</div>
            </div>
        </div>
    </div>

    <div id="content-sprawnosc">
        <h3 class="rk-vs-panel-title">Sprawność i straty cyklu</h3>
        <div class="rk-vs-cards-wrapper">
            <div class="rk-tech-card winner">
                <div class="rk-tech-header">Bufor + Masa Wylewki</div>
                <div class="rk-tech-val">95 &#8211; 98%</div>
                <div class="rk-tech-sub">Brak elektroniki = brak strat konwersji. Gwarantują to izolacje termiczne (EPS/PUR).</div>
            </div>
            <div class="rk-tech-card loser">
                <div class="rk-tech-header">Magazyn Elektryczny (LiFePO4)</div>
                <div class="rk-tech-val">85 &#8211; 90%</div>
                <div class="rk-tech-sub">Gigantyczne straty ciepła przy ciągłej konwersji prądu zmiennego na stały (DC/AC).</div>
            </div>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-vs-btn');
    const desktopArea = document.getElementById('desktop-render-area');

    function renderContent(targetId, isMobile) {
        const sourceHtml = document.getElementById('content-' + targetId).innerHTML;

        if (isMobile) {
            // Wyczyść wszystkie mobile panele
            document.querySelectorAll('.rk-vs-item .rk-vs-panel').forEach(p => {
                p.innerHTML = '';
                p.classList.remove('active');
            });
            // Wrzuć HTML do klikniętego panelu i otwórz go
            const mobContainer = document.getElementById('mob-' + targetId);
            mobContainer.innerHTML = sourceHtml;
            mobContainer.classList.add('active');
        } else {
            // Wrzuć HTML do prawego panelu
            desktopArea.innerHTML = `<div class="rk-vs-panel active">${sourceHtml}</div>`;
        }
    }

    // Inicjalizacja pierwszego elementu
    const firstTarget = 'pojemnosc';
    const isMobileInit = window.innerWidth <= 768;
    renderContent(firstTarget, isMobileInit);

    // Obsługa kliknięć
    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const isMobile = window.innerWidth <= 768;
            const targetId = this.getAttribute('data-target');
            
            // Jeśli to mobile i klikamy aktywny przycisk -> zwiń go
            if (isMobile && this.classList.contains('active')) {
                this.classList.remove('active');
                document.getElementById('mob-' + targetId).classList.remove('active');
                return;
            }

            // Reset stanów
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Render
            renderContent(targetId, isMobile);
        });
    });

    // Reagowanie na zmianę rozmiaru okna (odśwież wyświetlanie)
    window.addEventListener('resize', function() {
        const activeBtn = document.querySelector('.rk-vs-btn.active');
        if(activeBtn) {
            const isMobile = window.innerWidth <= 768;
            const targetId = activeBtn.getAttribute('data-target');
            renderContent(targetId, isMobile);
        }
    });
});
</script>



<style>
:root {
    --rk-cf-dark: #0f172a;
    --rk-cf-navy: #1e293b;
    --rk-cf-blue: #0284c7;
    --rk-cf-green: #10b981;
    --rk-cf-green-light: #f0fdf4;
    --rk-cf-red: #ef4444;
    --rk-cf-red-light: #fef2f2;
    --rk-cf-gray: #64748b;
    --rk-cf-light: #f8fafc;
    --rk-cf-border: #e2e8f0;
    --rk-cf-orange: #f59e0b;
}

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

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-cf-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-cf-dark) 0%, var(--rk-cf-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-cf-blue);
}

.rk-cf-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

/* Nawigacja Czasowa */
.rk-cf-timeline {
    display: flex;
    background: var(--rk-cf-light);
    border-bottom: 1px solid var(--rk-cf-border);
}

.rk-cf-time-btn {
    flex: 1;
    padding: 20px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--rk-cf-gray);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-cf-time-btn svg {
    width: 24px;
    height: 24px;
    transition: transform 0.3s;
}

.rk-cf-time-btn:hover {
    color: var(--rk-cf-blue);
    background: #ffffff;
}

.rk-cf-time-btn:hover svg {
    transform: translateY(-3px);
}

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

/* Zawartość Paneli */
.rk-cf-panel {
    display: none;
    padding: 40px 50px;
    animation: fadeInCF 0.4s ease;
}

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

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

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

/* Karty Porównawcze */
.rk-cf-card {
    border: 1px solid var(--rk-cf-border);
    border-radius: 16px;
    padding: 30px;
    position: relative;
    overflow: hidden;
}

.rk-cf-card.state-good {
    background: var(--rk-cf-green-light);
    border-color: var(--rk-cf-green);
}

.rk-cf-card.state-bad {
    background: var(--rk-cf-red-light);
    border-color: var(--rk-cf-red);
}

.rk-cf-card.state-neutral {
    background: #ffffff;
    border-color: var(--rk-cf-border);
}

.rk-cf-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cf-dark);
    margin: 0 0 5px 0;
}

.rk-cf-card-subtitle {
    font-size: 13px;
    color: var(--rk-cf-gray);
    font-weight: 600;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.rk-cf-data {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-cf-data ul {
    margin: 15px 0 0 0;
    padding: 0;
    list-style: none;
}

.rk-cf-data li {
    padding: 10px 0;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
}

.rk-cf-data li:last-child {
    border-bottom: none;
}

.rk-cf-highlight {
    font-size: 22px;
    font-weight: 900;
    display: block;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 2px solid rgba(0,0,0,0.1);
}

.text-green { color: #059669; }
.text-red { color: #dc2626; }
.text-dark { color: var(--rk-cf-dark); }

/* Detale linków */
.rk-cf-data a {
    color: var(--rk-cf-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-cf-header, .rk-cf-panel { padding: 30px 20px; }
    .rk-cf-header h2 { font-size: 22px; flex-direction: column; }
    .rk-cf-timeline { flex-wrap: wrap; }
    .rk-cf-time-btn { flex: 0 0 50%; padding: 15px; font-size: 12px; }
    .rk-cf-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-cf-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-cashflow",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Analiza przepływu pieniędzy w czasie: Kto zarobi, a kto straci?",
    "description": "Zestawienie przepływów kapitału dla systemów akumulacji ciepła i prądu w okresie 20 lat eksploatacji budynku, z uwzględnieniem kosztów serwisu i wymiany podzespołów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-cashflow",
    "name": "Symulacja Cash Flow 20-letnia: Magazyn vs Bufor (2026)",
    "description": "Szczegółowe dane finansowe obejmujące koszty startowe, okres amortyzacji oraz koszty serwisowe instalacji grzewczych i fotowoltaicznych po 15 latach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator zwrotu z instalacji fotowoltaicznej",
      "opłacalność magazynu energii 2026",
      "żywotność akumulatorów do fotowoltaiki",
      "koszt wymiany falownika",
      "zyski z taryf dynamicznych"
    ],
    "measurementTechnique": "Okresowa analiza NPV (Net Present Value) uproszczona do bilansu kosztów startowych i sumarycznych zysków/strat operacyjnych w przedziałach 5-letnich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1-5 lat: Zwrot kosztów bufora ciepła vs powolna spłata PV.",
        "Etap 6-15 lat: Generowanie 15k PLN zysku przez bufor vs dojście PV do progu rentowności.",
        "Kryzys 15. roku: Spadek sprawności PV o 25%, koszt wymiany falownika i regeneracji baterii (15k-20k PLN).",
        "Bilans 20 lat: Bufor generuje 23k PLN netto, system PV kończy w okolicach 0 PLN ze względu na amortyzację."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-cashflow",
    "name": "Symulator Przepływów Kapitałowych HVAC",
    "description": "Narzędzie interaktywne ilustrujące na osi czasu ukryte koszty serwisowe i degradację podzespołów w popularnych systemach energetycznych budynków.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cf-container" id="cashflow-app">
    
    <div class="rk-sr-only">
        Rozwiązania: kalkulator zwrotu z instalacji fotowoltaicznej, opłacalność magazynu energii 2026, żywotność akumulatorów do fotowoltaiki, koszt wymiany falownika, zyski z taryf dynamicznych.
    </div>

    <div class="rk-cf-header">
        <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" style="color: var(--rk-cf-orange);">
                <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>
            Analiza przepływu pieniędzy w czasie
        </h2>
        <p>Wielu inwestorów dało się naciągnąć na narrację o "darmowym prądzie". Zobaczmy, jak wygląda czysty przepływ kapitału w horyzoncie 20 lat eksploatacji budynku dla obu wariantów.</p>
    </div>

    <div class="rk-cf-timeline" id="cfTabs">
        <button class="rk-cf-time-btn active" data-target="etap-start">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
            Start & Lata 1–5
        </button>
        <button class="rk-cf-time-btn" data-target="etap-zysk">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
            Lata 6–15
        </button>
        <button class="rk-cf-time-btn" data-target="etap-kryzys">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Kryzys 15. Roku
        </button>
        <button class="rk-cf-time-btn" data-target="etap-final">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Bilans 20 Lat
        </button>
    </div>

    <div class="rk-cf-panel active" id="etap-start">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Bufor Ciepła 1000L</div>
                <div class="rk-cf-data">
                    <p>Zamiast w elektronikę, inwestujesz w odpowiednią masę wody i betonu, opierając się na <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekcie instalacji</a>.</p>
                    <ul>
                        <li>Koszt początkowy: <strong>7 000 PLN</strong></li>
                        <li>Lata 1–5: <strong>Szybka spłata kosztów z oszczędności</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Spłacony w 5 lat.</span>
                </div>
            </div>
            <div class="rk-cf-card state-bad">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">PV 10 kWp + Magazyn 10 kWh</div>
                <div class="rk-cf-data">
                    <p>Zamrażasz potężny kapitał w sprzęcie, który ulega zużyciu technologicznemu, zanim zdąży na siebie zapracować.</p>
                    <ul>
                        <li>Koszt początkowy: <strong>60 000 PLN</strong></li>
                        <li>Lata 1–5: <strong>Instalacja ledwie w 1/3 drogi do spłaty</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-red">-40 000 PLN pod kreską.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-zysk">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Praca na "Czysto"</div>
                <div class="rk-cf-data">
                    <p>Woda w zamkniętym zładzie i betonowa wylewka nie ulegają degradacji. Automatyka przy <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">taryfach dynamicznych</a> działa perfekcyjnie.</p>
                    <ul>
                        <li>Zysk roczny: <strong>1 500 PLN</strong></li>
                        <li>Okres: <strong>10 lat pracy na czysto</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">+15 000 PLN czystego zysku.</span>
                </div>
            </div>
            <div class="rk-cf-card state-neutral">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Mozolne odrabianie strat</div>
                <div class="rk-cf-data">
                    <p>Instalacja powoli zmierza do punktu rentowności. Roczna oszczędność ogólna z PV i buforowania prądu to około 4 000 PLN.</p>
                    <ul>
                        <li>Kalkulacja zwrotu: <strong>60 000 PLN / 4 000 PLN = 15 lat</strong></li>
                        <li>Status układu: <strong>Wychodzenie na zero</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-dark">Dopiero dobija do 0 PLN.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-kryzys">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Bez zmian, bez stresu</div>
                <div class="rk-cf-data">
                    <p>Stalowy bufor ciepła nie wykazuje oznak zużycia. System pracuje tak samo wydajnie, jak w dniu uruchomienia pompy.</p>
                    <ul>
                        <li>Koszt serwisu zbiornika: <strong>0 PLN</strong></li>
                        <li>Degradacja pojemności cieplnej: <strong>0%</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Brak ukrytych kosztów.</span>
                </div>
            </div>
            <div class="rk-cf-card state-bad">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Tzw. Złota Klatka</div>
                <div class="rk-cf-data">
                    <p>To moment, o którym handlowcy milczą. Spadek sprawności ogniw spada poniżej 75%, falownik ulega uszkodzeniu po gwarancji.</p>
                    <ul>
                        <li>Konieczność zakupu nowego falownika</li>
                        <li>Regeneracja/wymiana modułów bateryjnych</li>
                    </ul>
                    <span class="rk-cf-highlight text-red">Koszt serwisu: 15 000 - 20 000 PLN.</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cf-panel" id="etap-final">
        <div class="rk-cf-grid">
            <div class="rk-cf-card state-good">
                <h3>Wariant A: Fizyka budynku</h3>
                <div class="rk-cf-card-subtitle">Zwycięzca Logiki</div>
                <div class="rk-cf-data">
                    <p>Kolejne 5 lat (lata 16-20) to dodatkowe 7 500 PLN oszczędności.</p>
                    <ul>
                        <li>Całkowite odzyskanie wkładu: <strong>Tak (7 000 PLN)</strong></li>
                        <li>Stan systemu: <strong>W pełni sprawny</strong></li>
                    </ul>
                    <span class="rk-cf-highlight text-green">Bilans końcowy: +23 000 PLN na PLUS.</span>
                </div>
            </div>
            <div class="rk-cf-card state-neutral" style="border-color: var(--rk-cf-orange); background: #fffbeb;">
                <h3>Wariant B: Bateria Chemiczna</h3>
                <div class="rk-cf-card-subtitle">Wyjście na remis</div>
                <div class="rk-cf-data">
                    <p>Inwestor z trudem odrabia koszty serwisu z 15. roku, stając przed perspektywą ponownego zakupu całego zestarzałego systemu OZE.</p>
                    <ul>
                        <li>Realny zysk netto: <strong>Od 0 PLN do 5 000 PLN</strong></li>
                        <li>Konieczność kolejnych inwestycji: <strong>Bliska</strong></li>
                    </ul>
                    <span class="rk-cf-highlight" style="color: var(--rk-cf-orange);">Bilans końcowy: ~0 PLN.</span>
                </div>
            </div>
        </div>
    </div>

</div>

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

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Czyszczenie
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



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

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

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

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

.rk-chart-header p {
    color: #94a3b8;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
}

/* Interaktywna Oś Czasu */
.rk-timeline-nav {
    display: flex;
    justify-content: space-between;
    background: #f8fafc;
    padding: 20px 50px;
    border-bottom: 1px solid var(--rk-chart-border);
    position: relative;
}

/* Linia łącząca w tle */
.rk-timeline-nav::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 70px;
    right: 70px;
    height: 3px;
    background: #cbd5e1;
    transform: translateY(-5px);
    z-index: 1;
}

.rk-time-step {
    position: relative;
    z-index: 2;
    background: #ffffff;
    border: 3px solid #cbd5e1;
    color: var(--rk-chart-gray);
    font-weight: 800;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-time-step span {
    font-size: 10px;
    text-transform: uppercase;
    line-height: 1;
}

.rk-time-step strong {
    font-size: 16px;
    line-height: 1;
    margin-top: 2px;
}

.rk-time-step:hover {
    border-color: var(--rk-chart-blue);
    transform: scale(1.1);
}

.rk-time-step.active {
    border-color: var(--rk-chart-orange);
    background: var(--rk-chart-orange);
    color: #ffffff;
    transform: scale(1.2);
    box-shadow: 0 10px 15px -3px rgba(249, 115, 22, 0.3);
}

/* Prezentacja Danych (Słupki i Wartości) */
.rk-chart-display {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-chart-col {
    background: #f8fafc;
    border: 1px solid var(--rk-chart-border);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-chart-col h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-chart-dark);
    margin: 0 0 5px 0;
    position: relative;
    z-index: 2;
}

.rk-col-desc {
    font-size: 13px;
    color: var(--rk-chart-gray);
    margin-bottom: 25px;
    position: relative;
    z-index: 2;
}

/* Wizualny wskaźnik bilansu (słupek) */
.rk-bar-bg {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 0%; /* Zmieniane przez JS */
    transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    opacity: 0.15;
}

.rk-value-display {
    font-size: 42px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.value-negative { color: var(--rk-chart-red); }
.value-neutral { color: var(--rk-chart-gray); }
.value-positive { color: var(--rk-chart-green); }

/* Wniosek końcowy */
.rk-chart-conclusion {
    padding: 35px 50px;
    background: #f1f5f9;
    border-top: 1px solid var(--rk-chart-border);
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-conclusion-icon {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    background: var(--rk-chart-dark);
    color: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-conclusion-text h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-chart-dark);
}

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

.rk-conclusion-text strong {
    color: var(--rk-chart-orange);
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-chart-header, .rk-timeline-nav, .rk-chart-display, .rk-chart-conclusion { padding: 25px 20px; }
    .rk-timeline-nav::before { left: 30px; right: 30px; }
    .rk-time-step { width: 40px; height: 40px; }
    .rk-time-step strong { font-size: 14px; }
    .rk-chart-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-value-display { font-size: 36px; }
    .rk-chart-conclusion { flex-direction: column; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-wykres",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Skumulowany bilans finansowy w czasie: Bufor vs Magazyn PV",
    "description": "Interaktywna analiza zwrotu z inwestycji (ROI) w perspektywie 20-letniej. Porównanie magazynu termicznego z instalacją fotowoltaiczną i akumulatorem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-wykres",
    "name": "Przepływy finansowe w czasie (20 lat): Bufor cieplny vs PV z Magazynem",
    "description": "Matryca danych finansowych ilustrująca tempo zwrotu inwestycji w fizykę budynku w zestawieniu z zakupem elektroniki z ograniczoną żywotnością.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zwrot z inwestycji w bufor ciepla",
      "po ilu latach zwraca sie magazyn energii",
      "wykres oplacalnosci fotowoltaiki 2026",
      "bufor czy magazyn energii kalkulator",
      "amortyzacja ogrzewania podlogowego"
    ],
    "measurementTechnique": "Algorytm porównawczy kapitału netto (koszt inwestycyjny minus skumulowane oszczędności z taryf dynamicznych) w punktach 0, 5, 10, 15 i 20 lat.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rok 0: Bufor (-7 000 PLN) vs PV+Magazyn (-60 000 PLN)",
        "Rok 5: Bufor (0 PLN - pełny zwrot) vs PV+Magazyn (-40 000 PLN)",
        "Rok 15: Bufor (+15 500 PLN zysku) vs PV+Magazyn (0 PLN - próg opłacalności)",
        "Rok 20: Bufor (+23 000 PLN zysku) vs PV+Magazyn (średnio +5 000 PLN uwzględniając serwis)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-wykres",
    "name": "Interaktywny symulator stopy zwrotu (ROI)",
    "description": "Dynamiczny komponent webowy pozwalający inwestorowi śledzić bilans zysków i strat instalacji grzewczej i OZE na dedykowanej osi czasu.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chart-container" id="sekcja-wykresu-app">
    <div class="rk-chart-header">
        <h2>Skumulowany bilans finansowy: Bufor vs PV z Magazynem</h2>
        <p>Przeklikaj oś czasu inwestycji, aby zobaczyć bezwzględne liczby określające zysk lub stratę netto po danym okresie.</p>
    </div>

    <div class="rk-timeline-nav" id="timelineNav">
        <div class="rk-time-step active" data-year="0">
            <span>Rok</span><strong>0</strong>
        </div>
        <div class="rk-time-step" data-year="5">
            <span>Rok</span><strong>5</strong>
        </div>
        <div class="rk-time-step" data-year="10">
            <span>Rok</span><strong>10</strong>
        </div>
        <div class="rk-time-step" data-year="15">
            <span>Rok</span><strong>15</strong>
        </div>
        <div class="rk-time-step" data-year="20">
            <span>Rok</span><strong>20</strong>
        </div>
    </div>

    <div class="rk-chart-display">
        <div class="rk-chart-grid">
            
            <div class="rk-chart-col">
                <div class="rk-bar-bg" id="bgBufor"></div>
                <h3>Magazyn Termiczny</h3>
                <div class="rk-col-desc">Bufor ciepła + podłogówka</div>
                <div class="rk-value-display value-negative" id="valBufor">-7 000 zł</div>
            </div>

            <div class="rk-chart-col">
                <div class="rk-bar-bg" id="bgPv"></div>
                <h3>Magazyn Elektryczny</h3>
                <div class="rk-col-desc">Fotowoltaika 10kWp + Aku 10kWh</div>
                <div class="rk-value-display value-negative" id="valPv">-60 000 zł</div>
            </div>

        </div>
    </div>

    <div class="rk-chart-conclusion">
        <div class="rk-conclusion-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>
        <div class="rk-conclusion-text">
            <h4>Najmocniejszy wniosek inżynierski</h4>
            <p>
                W chwili, gdy instalacja fotowoltaiczna z akumulatorem w ogóle zaczyna wypracowywać próg rentowności (okolice 15. roku), system oparty na prostym, bezawaryjnym buforze ciepła zdążył już wygenerować <strong>kilkanaście tysięcy złotych czystych oszczędności</strong>, bez ryzyka konieczności zakupu nowych ogniw chemicznych.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych wykresu (wartości w PLN)
    const chartData = {
        0:  { bufor: -7000, pv: -60000 },
        5:  { bufor: 0,     pv: -40000 },
        10: { bufor: 8000,  pv: -20000 },
        15: { bufor: 15500, pv: 0 },
        20: { bufor: 23000, pv: 5000 } // Dla PV uśredniono wartość "0 do 10000" do 5000 zł
    };

    const timeSteps = document.querySelectorAll('.rk-time-step');
    const valBuforEl = document.getElementById('valBufor');
    const valPvEl = document.getElementById('valPv');
    const bgBuforEl = document.getElementById('bgBufor');
    const bgPvEl = document.getElementById('bgPv');

    // Funkcja formatująca kwotę w PLN
    function formatPLN(value) {
        if (value === 0) return '0 zł';
        const prefix = value > 0 ? '+' : '';
        // Formatowanie z użyciem spacji jako separatora tysięcy
        const formatted = Math.abs(value).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
        return `${prefix}${formatted} zł`;
    }

    // Funkcja dobierająca styl dla wartości (kolor tekstu i tła)
    function applyStyles(value, textEl, bgEl) {
        textEl.classList.remove('value-negative', 'value-neutral', 'value-positive');
        
        // Obliczanie wysokości słupka "w tle" proporcjonalnie do wartości
        // Max straty to 60k, Max zysk to 23k. Ustawmy 60k jako 100% tła.
        const percentage = Math.min(Math.abs(value) / 60000 * 100, 100);

        if (value < 0) {
            textEl.classList.add('value-negative');
            bgEl.style.backgroundColor = 'var(--rk-chart-red)';
            bgEl.style.height = `${percentage}%`;
        } else if (value === 0) {
            textEl.classList.add('value-neutral');
            bgEl.style.backgroundColor = 'transparent';
            bgEl.style.height = `0%`;
        } else {
            textEl.classList.add('value-positive');
            bgEl.style.backgroundColor = 'var(--rk-chart-green)';
            // Dla wartości dodatnich przeskalujemy tło (23k = 100%)
            const posPercentage = Math.min((value / 25000) * 100, 100);
            bgEl.style.height = `${posPercentage}%`;
        }
    }

    // Inicjalizacja dla roku 0
    applyStyles(chartData[0].bufor, valBuforEl, bgBuforEl);
    applyStyles(chartData[0].pv, valPvEl, bgPvEl);

    // Obsługa zdarzeń na osi czasu
    timeSteps.forEach(step => {
        step.addEventListener('click', function() {
            // Reset active class
            timeSteps.forEach(s => s.classList.remove('active'));
            this.classList.add('active');

            const year = this.getAttribute('data-year');
            const data = chartData[year];

            // Aktualizacja tekstów
            valBuforEl.textContent = formatPLN(data.bufor);
            valPvEl.textContent = formatPLN(data.pv);

            // Aktualizacja stylów/słupków
            applyStyles(data.bufor, valBuforEl, bgBuforEl);
            applyStyles(data.pv, valPvEl, bgPvEl);
        });
    });
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0ea5e9;
    --rk-cs-navy: #1e293b;
    --rk-cs-gray: #64748b;
    --rk-cs-light: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-green: #10b981;
    --rk-cs-red: #ef4444;
}

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

/* Sekcja Eksperta / Nagłówek */
.rk-cs-header {
    display: flex;
    align-items: center;
    gap: 25px;
    padding: 40px 50px;
    background: linear-gradient(to right, var(--rk-cs-dark), var(--rk-cs-navy));
    color: #ffffff;
}

.rk-cs-expert-photo {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    border: 4px solid rgba(255, 255, 255, 0.1);
    object-fit: cover;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
    flex-shrink: 0;
}

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

.rk-cs-expert-name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: #cbd5e1;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs-badge {
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

/* Parametry brzegowe (Baza) */
.rk-cs-params {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--rk-cs-light);
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-cs-param-item {
    padding: 25px 30px;
    text-align: center;
    border-right: 1px solid var(--rk-cs-border);
}

.rk-cs-param-item:last-child { border-right: none; }

.rk-cs-param-title {
    font-size: 13px;
    color: var(--rk-cs-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    margin-bottom: 8px;
}

.rk-cs-param-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-cs-dark);
}

/* Sekcja Interaktywna - Przełącznik Wariantów */
.rk-cs-interactive {
    padding: 40px 50px;
}

.rk-cs-tabs {
    display: flex;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 35px;
}

.rk-cs-tab {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-cs-gray);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    border: none;
    background: transparent;
}

.rk-cs-tab.active {
    background: #ffffff;
    color: var(--rk-cs-dark);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Wyniki (Karty) */
.rk-cs-result {
    display: none;
    animation: fadeInCS 0.4s ease;
}

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

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

.rk-cs-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.rk-cs-box {
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 25px;
    background: #ffffff;
}

.rk-cs-box-title {
    font-size: 14px;
    color: var(--rk-cs-gray);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 15px;
}

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

.rk-cs-list li {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px dashed var(--rk-cs-border);
    font-size: 15px;
    color: var(--rk-cs-navy);
}

.rk-cs-list li:last-child { border-bottom: none; }
.rk-cs-list li strong { font-weight: 800; }

.text-green { color: var(--rk-cs-green); }
.text-red { color: var(--rk-cs-red); }

/* Podsumowanie Czasowe */
.rk-cs-timeline-res {
    background: var(--rk-cs-light);
    border-radius: 16px;
    padding: 30px;
    border-left: 4px solid var(--rk-cs-blue);
}

.rk-cs-timeline-res h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-timeline-res p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.rk-cs-timeline-res p:last-child { margin: 0; }

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

@media (max-width: 768px) {
    .rk-cs-header { flex-direction: column; text-align: center; padding: 35px 20px; gap: 15px; }
    .rk-cs-expert-name { justify-content: center; }
    .rk-cs-params { grid-template-columns: 1fr; }
    .rk-cs-param-item { border-right: none; border-bottom: 1px solid var(--rk-cs-border); padding: 20px; }
    .rk-cs-param-item:last-child { border-bottom: none; }
    .rk-cs-interactive { padding: 30px 20px; }
    .rk-cs-tabs { flex-direction: column; }
    .rk-cs-data-grid { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Case Study: Oszczędności z taryf dynamicznych (Dom 150 m²)",
    "description": "Analiza inżynierska Roberta Kucharskiego pokazująca realne koszty i zwrot z inwestycji w bufor ciepła względem magazynu energii na przestrzeni 20 lat.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-casestudy",
    "name": "Kalkulacja zwrotu inwestycyjnego: Bufor vs Magazyn PV (150m2)",
    "description": "Zestawienie twardych danych pokazujących przepływ finansowy dla domu 150m2 zużywającego 5000 kWh energii na cele grzewcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia ozc dla 150m2",
      "ile prądu zużywa pompa ciepła",
      "taryfy dynamiczne kalkulator",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "bufor do pompy ciepła koszty"
    ],
    "measurementTechnique": "Symulacja kosztów w ujęciu 15 i 20 lat z uwzględnieniem amortyzacji sprzętu i wahań cen energii G11 vs taryfy giełdowe.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant 1: Bufor 1000 l (Koszt 7k PLN, Zysk po 20 latach +23k PLN)",
        "Wariant 2: PV + Magazyn (Koszt 60k PLN, Zysk po 20 latach ~0 PLN)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-casestudy",
    "name": "Interaktywne Case Study OZE",
    "description": "Symulator scenariuszy inwestycyjnych pozwalający przełączać modele magazynowania energii dla typowego domu jednorodzinnego.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-wrapper" id="case-study-app">
    <div class="rk-cs-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-cs-expert-photo">
        <div class="rk-cs-header-content">
            <h2>Case Study: Złudzenie 15-letniego zwrotu</h2>
            <div class="rk-cs-expert-name">
                Robert Kucharski 
                <span class="rk-cs-badge">CEO / HVAC</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-params">
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">Budynek</div>
            <div class="rk-cs-param-val">150 m² (4 os.)</div>
        </div>
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">System Grzewczy</div>
            <div class="rk-cs-param-val">Pompa Ciepła</div>
        </div>
        <div class="rk-cs-param-item">
            <div class="rk-cs-param-title">Roczne Zużycie (Ogrzewanie)</div>
            <div class="rk-cs-param-val">5000 kWh</div>
        </div>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-cs-tabs" id="csTabs">
            <button class="rk-cs-tab active" data-target="wariant-1">Wariant 1: Bufor 1000L + Taryfy Dynamiczne</button>
            <button class="rk-cs-tab" data-target="wariant-2">Wariant 2: Fotowoltaika 10kWp + Magazyn 10kWh</button>
        </div>

        <div class="rk-cs-result active" id="wariant-1">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-box">
                    <div class="rk-cs-box-title">Start Inwestycji</div>
                    <ul class="rk-cs-list">
                        <li>Koszt zakupu i montażu: <strong>~7 000 zł</strong></li>
                        <li>Spadek ceny prądu (średnio): <strong>z 1,00 na 0,70 zł/kWh</strong></li>
                        <li>Roczny koszt ogrzewania: <strong>3 500 zł</strong></li>
                        <li>Oszczędność roczna: <strong class="text-green">+1 500 zł</strong></li>
                        <li>Czas zwrotu: <strong>~4,7 roku</strong></li>
                    </ul>
                </div>
                <div class="rk-cs-box" style="border-color: var(--rk-cs-green); background: #f0fdf4;">
                    <div class="rk-cs-box-title" style="color: var(--rk-cs-green);">Bilans po latach</div>
                    <ul class="rk-cs-list">
                        <li>Zysk (lata 6-15): <strong>+15 000 zł</strong></li>
                        <li>Zysk (lata 16-20): <strong>+7 500 zł</strong></li>
                        <li>Koszty serwisowe/wymiany: <strong>0 zł</strong></li>
                        <li style="border-top: 2px solid var(--rk-cs-green); margin-top: 5px; padding-top: 15px;">
                            Na czysto po 20 latach: <strong class="text-green">+23 000 zł</strong>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="rk-cs-timeline-res" style="border-left-color: var(--rk-cs-green);">
                <h4>Wniosek inżynierski</h4>
                <p>Po 5 latach inwestycja się zwróciła i przechodzi w stan generowania czystego zysku. W momencie, gdy właściciel PV dopiero zbliża się do punktu wyjścia na zero (15. rok), Ty odzyskałeś już swoje 7 000 zł i zarobiłeś dodatkowe 15 000 zł.</p>
                <p>Warunek konieczny: Wylewka i instalacja muszą być oparte o <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">precyzyjne wyliczenia zapotrzebowania cieplnego</a>.</p>
            </div>
        </div>

        <div class="rk-cs-result" id="wariant-2">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-box">
                    <div class="rk-cs-box-title">Start Inwestycji</div>
                    <ul class="rk-cs-list">
                        <li>Koszt systemu (PV+Aku): <strong>~60 000 zł</strong></li>
                        <li>Ograniczenie kosztów: <strong>ok. 80%</strong></li>
                        <li>Roczny koszt po instalacji: <strong>1 000 zł</strong></li>
                        <li>Oszczędność roczna: <strong class="text-green">+4 000 zł</strong></li>
                        <li>Szacowany czas zwrotu: <strong>~15 lat</strong></li>
                    </ul>
                </div>
                <div class="rk-cs-box" style="border-color: var(--rk-cs-red); background: #fef2f2;">
                    <div class="rk-cs-box-title" style="color: var(--rk-cs-red);">Bilans po latach</div>
                    <ul class="rk-cs-list">
                        <li>Skumulowane oszczędności (20 lat): <strong>80 000 zł</strong></li>
                        <li>Wymiana falownika (po 10-15 latach): <strong class="text-red">-5 000 zł</strong></li>
                        <li>Regeneracja magazynu (15. rok): <strong class="text-red">-15 000 zł</strong></li>
                        <li style="border-top: 2px solid var(--rk-cs-red); margin-top: 5px; padding-top: 15px;">
                            Na czysto po 20 latach: <strong>~0 zł (wyjście na zero)</strong>
                        </li>
                    </ul>
                </div>
            </div>
            <div class="rk-cs-timeline-res" style="border-left-color: var(--rk-cs-red);">
                <h4>Wniosek inżynierski</h4>
                <p>W chwili, gdy instalacja na siebie zapracuje (15. rok), degradacja chemiczna ogniw wymusza ogromne nakłady serwisowe. Oszczędności, które system generuje od 16. do 20. roku, pokrywają jedynie koszty wymiany wyeksploatowanej elektroniki.</p>
                <p>Jeśli <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">obliczenia dla ogrzewania podłogowego</a> wykonano błędnie, praca z magazynu w zimie będzie dodatkowo drenowana przez nieefektywną pompę ciepła.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabs = document.querySelectorAll('.rk-cs-tab');
    const results = document.querySelectorAll('.rk-cs-result');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            // Reset active classes
            tabs.forEach(t => t.classList.remove('active'));
            results.forEach(r => r.classList.remove('active'));

            // Set active class
            tab.classList.add('active');
            const targetId = tab.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-navy: #1e293b;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #64748b;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-accent: #38bdf8;
}

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

/* Ukryte Tagi SEO */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Nagłówek */
.rk-calc-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, var(--rk-calc-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-calc-blue);
}

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

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

/* Główna Siatka Kalkulatora */
.rk-calc-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

/* Lewa Kolumna - Suwaki */
.rk-calc-controls {
    padding: 40px 50px;
    background: var(--rk-calc-light);
    border-right: 1px solid var(--rk-calc-border);
}

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

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

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

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

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

.rk-input-label span {
    display: block;
    font-size: 12px;
    color: var(--rk-calc-gray);
    font-weight: 500;
    margin-top: 2px;
}

.rk-input-value-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    min-width: 90px;
    text-align: right;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

/* Stylizacja suwaków */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    transition: background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

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

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

/* Prawa Kolumna - Wyniki */
.rk-calc-results {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-result-card {
    background: var(--rk-calc-light);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-result-card:last-child {
    margin-bottom: 0;
}

.rk-result-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-calc-gray);
    text-transform: uppercase;
}

.rk-result-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

/* Wyróżnione karty wyników */
.rk-card-highlight {
    background: #f0fdf4;
    border-color: var(--rk-calc-green);
    position: relative;
    overflow: hidden;
}

.rk-card-highlight::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 4px; height: 100%;
    background: var(--rk-calc-green);
}

.rk-card-highlight .rk-result-title {
    color: #065f46;
}

.rk-card-highlight .rk-result-val {
    color: var(--rk-calc-green);
    font-size: 28px;
}

.rk-card-roi {
    background: #eff6ff;
    border-color: var(--rk-calc-blue);
}

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

.rk-card-roi .rk-result-title {
    color: #1e3a8a;
}

.rk-card-roi .rk-result-val {
    color: var(--rk-calc-blue);
    font-size: 28px;
}

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-results { padding: 30px 20px; }
    .rk-calc-header h2 { font-size: 24px; flex-direction: column; }
    .rk-calc-body { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-result-card { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-result-val { align-self: flex-end; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Kalkulator obliczania oszczędności przy przejściu na taryfy dynamiczne",
    "description": "Interaktywne narzędzie inżynierskie do weryfikacji opłacalności inwestycji w bufor ciepła. Oblicz własne ROI na podstawie zużycia i cen RCE.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-kalkulator",
    "name": "Wskaźniki oszczędnościowe taryf dynamicznych dla pomp ciepła (2026)",
    "description": "Zmienne dane wejściowe do kalkulacji okresu zwrotu inwestycji w inteligentne zarządzanie magazynem termicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator zwrotu z bufora ciepla",
      "oplacalnosc taryf dynamicznych",
      "zuzycie pradu przez pompe ciepla",
      "ile kosztuje ogrzewanie domu pompa ciepla",
      "rynkowa cena energii elektrycznej rce"
    ],
    "measurementTechnique": "Algorytm różnicowy: Zapotrzebowanie (kWh) przemnożone przez deltę stawek taryfy G11 i taryfy dynamicznej, odnoszone do kosztów CAPEX bufora.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt bazowy = Zapotrzebowanie x Cena w taryfie płaskiej",
        "Koszt optymalny = Zapotrzebowanie x Uśredniona cena zoptymalizowana",
        "ROI (Zwrot) = Koszt Inwestycji / (Koszt bazowy - Koszt optymalny)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-kalkulator",
    "name": "Symulator ROI: Taryfy Dynamiczne i Bufor Ciepła",
    "description": "Aplikacja webowa pozwalająca inwestorowi na bieżącą, suwakową symulację rocznych kosztów ogrzewania i czasu zwrotu z inwestycji w automatykę budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="kalkulator-ozc-app">
    
    <div class="rk-sr-only">
        Znajdź odpowiedzi na pytania: kalkulator zwrotu z bufora ciepla, opłacalnosc taryf dynamicznych, zuzycie pradu przez pompe ciepla, ile kosztuje ogrzewanie domu pompa ciepla, rynkowa cena energii elektrycznej rce.
    </div>

    <div class="rk-calc-header">
        <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" style="color: var(--rk-calc-accent);">
                <rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect>
                <line x1="8" y1="4" x2="8" y2="20"></line>
                <line x1="16" y1="4" x2="16" y2="20"></line>
                <line x1="4" y1="8" x2="20" y2="8"></line>
                <line x1="4" y1="16" x2="20" y2="16"></line>
            </svg>
            Kalkulator taryf dynamicznych (ROI)
        </h2>
        <p>Wprowadź parametry swojego budynku. Algorytm na żywo przeliczy zapotrzebowanie i udowodni opłacalność przejścia na zarządzanie buforem ciepła i taryfami RCE.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-controls">
            <h3>Parametry Twojej instalacji</h3>
            
            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Roczne zużycie energii (Pompa Ciepła) <span>Dla ogrzewania podłogowego i CWU</span></label>
                    <div class="rk-input-value-box"><span id="valZapotrzebowanie">5000</span> kWh</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpZapotrzebowanie" min="2000" max="10000" step="100" value="5000">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Cena bazowa prądu (np. G11) <span>Średni koszt z dystrybucją</span></label>
                    <div class="rk-input-value-box"><span id="valCenaG11">1.00</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpCenaG11" min="0.50" max="2.00" step="0.05" value="1.00">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Taryfa dynamiczna (Zoptymalizowana) <span>Praca bufora w tanich godzinach</span></label>
                    <div class="rk-input-value-box"><span id="valCenaDyn">0.70</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpCenaDyn" min="0.20" max="1.50" step="0.05" value="0.70">
            </div>

            <div class="rk-input-group">
                <div class="rk-input-header">
                    <label class="rk-input-label">Koszt inwestycji w magazyn termiczny <span>Zakup bufora 1000l + automatyka + montaż</span></label>
                    <div class="rk-input-value-box"><span id="valInwestycja">7000</span> zł</div>
                </div>
                <input type="range" class="rk-range-slider" id="inpInwestycja" min="3000" max="15000" step="500" value="7000">
            </div>
        </div>

        <div class="rk-calc-results">
            <h3>Wyniki inżynierskie</h3>
            
            <div class="rk-result-card">
                <div class="rk-result-title">Koszt roczny: Taryfa Płaska</div>
                <div class="rk-result-val" id="resKosztG11">5 000 zł</div>
            </div>

            <div class="rk-result-card">
                <div class="rk-result-title">Koszt roczny: Bufor + Dynamiczna</div>
                <div class="rk-result-val" id="resKosztDyn">3 500 zł</div>
            </div>

            <div class="rk-result-card rk-card-highlight">
                <div class="rk-result-title">Zostaje w kieszeni (Co roku)</div>
                <div class="rk-result-val" id="resOszczednosc">1 500 zł</div>
            </div>

            <div class="rk-result-card rk-card-roi rk-card-highlight">
                <div class="rk-result-title">Czas zwrotu inwestycji (ROI)</div>
                <div class="rk-result-val" id="resZwrot">4,7 lat</div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inputs
    const elZap = document.getElementById('inpZapotrzebowanie');
    const elG11 = document.getElementById('inpCenaG11');
    const elDyn = document.getElementById('inpCenaDyn');
    const elInv = document.getElementById('inpInwestycja');

    // Displays
    const valZap = document.getElementById('valZapotrzebowanie');
    const valG11 = document.getElementById('valCenaG11');
    const valDyn = document.getElementById('valCenaDyn');
    const valInv = document.getElementById('valInwestycja');

    // Results
    const resKosztG11 = document.getElementById('resKosztG11');
    const resKosztDyn = document.getElementById('resKosztDyn');
    const resOszczednosc = document.getElementById('resOszczednosc');
    const resZwrot = document.getElementById('resZwrot');

    // Format helpers
    function formatMoney(amount) {
        return amount.toLocaleString('pl-PL', { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + ' zł';
    }

    function formatNumber(amount) {
        return amount.toLocaleString('pl-PL');
    }

    function calculate() {
        // Read values
        const q = parseFloat(elZap.value);
        const c_base = parseFloat(elG11.value);
        const c_dyn = parseFloat(elDyn.value);
        const inv = parseFloat(elInv.value);

        // Update displays
        valZap.textContent = formatNumber(q);
        valG11.textContent = c_base.toFixed(2);
        valDyn.textContent = c_dyn.toFixed(2);
        valInv.textContent = formatNumber(inv);

        // Math
        const kosztG11 = q * c_base;
        const kosztDyn = q * c_dyn;
        const oszczednosc = kosztG11 - kosztDyn;

        // Update UI Results
        resKosztG11.textContent = formatMoney(kosztG11);
        resKosztDyn.textContent = formatMoney(kosztDyn);

        if (oszczednosc > 0) {
            resOszczednosc.textContent = formatMoney(oszczednosc);
            resOszczednosc.style.color = 'var(--rk-calc-green)';
            
            const roi = inv / oszczednosc;
            resZwrot.textContent = roi.toFixed(1).replace('.', ',') + ' lat';
            resZwrot.style.color = 'var(--rk-calc-blue)';
        } else {
            resOszczednosc.textContent = 'Brak oszczędności';
            resOszczednosc.style.color = 'var(--rk-calc-red)';
            resZwrot.textContent = 'Nigdy';
            resZwrot.style.color = 'var(--rk-calc-red)';
        }
    }

    // Event Listeners
    elZap.addEventListener('input', calculate);
    elG11.addEventListener('input', calculate);
    elDyn.addEventListener('input', calculate);
    elInv.addEventListener('input', calculate);

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



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

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

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

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

.rk-err-alert-icon {
    width: 36px;
    height: 36px;
    color: #fca5a5;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
    50% { transform: scale(1.1); filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.8)); }
    100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(239, 68, 68, 0)); }
}

.rk-err-subtitle {
    font-size: 17px;
    color: #fecaca;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Ciało i Siatka Błędów */
.rk-err-body {
    padding: 40px 50px;
    background: #f8fafc;
}

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

/* Interaktywna Karta */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.3s;
    display: flex;
    flex-direction: column;
}

.rk-err-card:hover {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}

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

.rk-err-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-dark);
    flex-shrink: 0;
}

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

/* Przełącznik (Toggle) */
.rk-err-toggle-wrap {
    background: #f1f5f9;
    border-radius: 10px;
    padding: 4px;
    display: flex;
    position: relative;
    margin-bottom: 20px;
}

.rk-err-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 0;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-err-gray);
    cursor: pointer;
    border: none;
    background: transparent;
    border-radius: 8px;
    transition: all 0.3s ease;
    z-index: 2;
}

.rk-err-toggle-btn.active-red {
    color: var(--rk-err-red);
}

.rk-err-toggle-btn.active-green {
    color: var(--rk-err-green);
}

.rk-err-toggle-slider {
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 4px;
    width: calc(50% - 4px);
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Stany Karty */
.rk-err-content-wrap {
    flex-grow: 1;
    position: relative;
}

.rk-err-content {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    padding: 15px;
    border-radius: 10px;
    border-left: 4px solid transparent;
    display: none;
    animation: fadeIn 0.4s ease;
}

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

.rk-err-content.state-bad {
    background: var(--rk-err-red-light);
    border-color: var(--rk-err-red);
    color: #7f1d1d;
}

.rk-err-content.state-good {
    background: var(--rk-err-green-light);
    border-color: var(--rk-err-green);
    color: #064e3b;
}

.rk-err-content a {
    color: inherit;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

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

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

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

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

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

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #1e293b;
    box-shadow: 0 20px 35px -5px rgba(15, 23, 42, 0.5);
    border-color: #cbd5e1;
    color: #ffffff;
}

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

@media (max-width: 768px) {
    .rk-err-header, .rk-err-body, .rk-err-cta-box { padding: 30px 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-err-header h2 { font-size: 22px; align-items: flex-start; }
    .rk-err-alert-icon { width: 28px; height: 28px; margin-top: 2px; flex-shrink: 0; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 15px; flex-direction: column; gap: 8px;}
    .rk-btn-massive svg { transform: rotate(90deg); }
    .rk-btn-massive:hover svg { transform: translateY(5px) rotate(90deg); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Najczęstsze błędy inwestorów i wykonawców w instalacjach akumulacyjnych",
    "description": "Zestawienie krytycznych błędów wykonawczych niszczących opłacalność magazynowania ciepła: od zbyt cienkiej wylewki po brak integracji SG Ready.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-bledy",
    "name": "Zestawienie krytycznych błędów instalacyjnych 2026",
    "description": "Baza danych błędów wykonawczych w systemach ogrzewania podłogowego współpracujących z taryfami dynamicznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubosc wylewki na ogrzewanie podlogowe",
      "sg ready pompa ciepla",
      "sprzeglo hydrauliczne podlogowka",
      "sterowanie strefowe ogrzewaniem"
    ],
    "measurementTechnique": "Analiza porównawcza parametrów brzegowych instalacji termicznych (pojemność cieplna, automatyka EMS, pojemność zładu).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Wylewka poniżej 4,5 cm niszcząca bezwładność.",
        "Błąd 2: Brak komunikacji Modbus/SG Ready.",
        "Błąd 3: Bufory 100-200l zamiast 500-1000l.",
        "Błąd 4: Brak blokad termostatycznych stref nocnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-bledy",
    "name": "Symulator Weryfikacji Błędów Instalacyjnych",
    "description": "Narzędzie pozwalające na interaktywne porównanie błędów wykonawczych z prawidłowymi standardami inżynierskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="sekcja-bledow-app">
    <div class="rk-err-header">
        <h2>
            <svg class="rk-err-alert-icon" 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 inwestorów i wykonawców
        </h2>
        <p class="rk-err-subtitle">Przełącz widok, aby zobaczyć, jak amatorszczyzna niszczy portfel i jak wygląda rzetelny standard inżynierski.</p>
    </div>

    <div class="rk-err-body">
        <div class="rk-err-grid">
            
            <div class="rk-err-card" data-card-id="1">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                    </div>
                    <h3>Brak obliczeń bezwładności</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Zastosowanie zbyt cienkiej warstwy jastrychu (np. poniżej 4,5 cm nad rurami) skutkuje drastycznym obniżeniem masy akumulacyjnej i zbyt szybkim stygnięciem podłogi.
                    </div>
                    <div class="rk-err-content state-good">
                        Precyzyjnie dobrana <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">grubość wylewki betonowej</a> (zazwyczaj 6-7 cm nad rurką) gwarantuje odpowiednią bezwładność, oddając ciepło przez wiele godzin w drogiej taryfie.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="2">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    <h3>Ignorowanie komunikacji</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Zakup pompy ciepła bez fabrycznego protokołu SG Ready (Smart Grid) lub otwartego interfejsu Modbus uniemożliwia spięcie urządzenia z systemem EMS, który śledzi ceny taryfy dynamicznej.
                    </div>
                    <div class="rk-err-content state-good">
                        Pompa ciepła w pełni współpracuje z <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">inteligentnymi sterownikami</a> (EMS), samodzielnie uruchamiając się, gdy prąd giełdowy osiąga najniższe wartości w ciągu doby.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="3">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 14.899A7 7 0 1 1 20 14.9V19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4.101z"></path><path d="M12 2v6"></path><path d="M8 5h8"></path></svg>
                    </div>
                    <h3>Miniaturowe bufory</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Instalatorzy masowo montują bufory o pojemności 100–200 litrów, twierdząc, że to wystarczy. Taki zład wody starcza na 15 minut pracy pompy, a nie na 5 godzin blokady taryfowej.
                    </div>
                    <div class="rk-err-content state-good">
                        Zastosowanie zasobnika 500–1000 litrów, a nie zwykłego <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a>, daje pompie ciepła zapas zładu niezbędny do "naładowania" domu na wiele godzin.
                    </div>
                </div>
            </div>

            <div class="rk-err-card" data-card-id="4">
                <div class="rk-err-card-header">
                    <div class="rk-err-card-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>Brak strefowania temperatury</h3>
                </div>
                <div class="rk-err-toggle-wrap">
                    <div class="rk-err-toggle-slider" style="transform: translateX(0);"></div>
                    <button class="rk-err-toggle-btn active-red" data-view="bad">Błąd Wykonawcy</button>
                    <button class="rk-err-toggle-btn" data-view="good">Standard OZC</button>
                </div>
                <div class="rk-err-content-wrap">
                    <div class="rk-err-content state-bad active">
                        Brak blokad termostatycznych w sypialniach prowadzi do ich przegrzewania podczas nocnego ładowania podłogówki, co niszczy komfort higieniczny człowieka.
                    </div>
                    <div class="rk-err-content state-good">
                        Prawidłowe <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe</a> zamyka obiegi w sypialniach na czas intensywnego ładowania magazynu w salonie, dbając o zdrowy, chłodny sen domowników.
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-cta-box">
        <h3 class="rk-err-cta-title">Budowa to nie miejsce na eksperymenty</h3>
        <p class="rk-err-cta-text">
            Błędy popełnione na etapie wylewek są nie do naprawienia. Zbuduj swój kapitał wiedzy, poznaj inżynierskie triki i zabezpiecz swoją inwestycję przed pseudo-fachowcami.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            ZDOBĄDŹ WIEDZĘ EKSKLUZYWNĄ
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('.rk-err-card');

    cards.forEach(card => {
        const btns = card.querySelectorAll('.rk-err-toggle-btn');
        const slider = card.querySelector('.rk-err-toggle-slider');
        const badContent = card.querySelector('.state-bad');
        const goodContent = card.querySelector('.state-good');

        btns.forEach(btn => {
            btn.addEventListener('click', function() {
                const view = this.getAttribute('data-view');
                
                // Reset active states
                btns.forEach(b => {
                    b.classList.remove('active-red');
                    b.classList.remove('active-green');
                });

                if (view === 'bad') {
                    this.classList.add('active-red');
                    slider.style.transform = 'translateX(0)';
                    goodContent.classList.remove('active');
                    badContent.classList.add('active');
                } else {
                    this.classList.add('active-green');
                    // Przesunięcie slidera: o 100% własnej szerokości + 8px na paddingi
                    slider.style.transform = 'translateX(calc(100% + 8px))';
                    badContent.classList.remove('active');
                    goodContent.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-navy: #1e293b;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-light: #f0f9ff;
    --rk-auth-gray: #64748b;
    --rk-auth-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-green: #10b981;
    --rk-auth-red: #ef4444;
}

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

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Sekcja Główna Autorytetu (Desktop: Grid 1/2) */
.rk-auth-header {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, var(--rk-auth-navy) 100%);
    color: #ffffff;
}

/* Kolumna Lewa - Zdjęcie i Sociale */
.rk-auth-profile {
    padding: 40px 30px;
    background: rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.rk-auth-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-blue);
    object-fit: cover;
    margin-bottom: 20px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}

.rk-auth-badge {
    background: #0284c7;
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-auth-socials {
    display: flex;
    gap: 15px;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    text-decoration: none;
}

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

/* Kolumna Prawa - Cytat i Tytuł */
.rk-auth-quote-area {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-auth-quote-area h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.2;
}

.rk-auth-quote-box {
    position: relative;
    padding-left: 25px;
    border-left: 4px solid var(--rk-auth-blue);
}

.rk-auth-quote-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.6;
    color: #e2e8f0;
    margin: 0;
    font-style: italic;
}

/* Sekcja Interaktywna - Przełącznik */
.rk-auth-interactive {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-toggle-wrapper {
    display: flex;
    background: var(--rk-auth-light);
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 30px;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-gray);
    cursor: pointer;
    border-radius: 8px;
    border: none;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-toggle-btn.active[data-view="myth"] {
    background: #fef2f2;
    color: var(--rk-auth-red);
    border: 1px solid #fca5a5;
}

.rk-toggle-btn.active[data-view="truth"] {
    background: #f0f9ff;
    color: var(--rk-auth-blue);
    border: 1px solid #7dd3fc;
}

/* Treść przełączana */
.rk-view-panel {
    display: none;
}

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

.rk-view-card {
    border: 1px solid var(--rk-auth-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-view-card.card-red {
    background: #fff5f5;
    border-color: #fca5a5;
}

.rk-view-card.card-blue {
    background: #f0f9ff;
    border-color: #7dd3fc;
}

.rk-view-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
}

.rk-view-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.card-red .rk-view-icon { background: var(--rk-auth-red); color: #ffffff; }
.card-blue .rk-view-icon { background: var(--rk-auth-blue); color: #ffffff; }

.rk-view-title {
    font-size: 18px;
    font-weight: 800;
    margin: 0;
}

.card-red .rk-view-title { color: #991b1b; }
.card-blue .rk-view-title { color: #0369a1; }

.rk-view-content {
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
    margin: 0;
}

.rk-view-content strong {
    font-weight: 800;
}

.card-red .rk-view-content strong { color: var(--rk-auth-red); }
.card-blue .rk-view-content strong { color: var(--rk-auth-blue); }

@media (max-width: 768px) {
    .rk-auth-header { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 30px 20px; }
    .rk-auth-quote-area { padding: 30px 20px; text-align: center; }
    .rk-auth-quote-area h2 { font-size: 24px; }
    .rk-auth-quote-box { padding-left: 0; border-left: none; border-top: 4px solid var(--rk-auth-blue); padding-top: 20px; }
    .rk-auth-interactive { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; gap: 5px; }
    .rk-toggle-btn { padding: 15px; }
    .rk-view-card { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-werdykt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Werdykt inżynierski: Robert Kucharski o magazynowaniu energii",
    "description": "Autorskie podsumowanie i opinia głównego inżyniera portalu Projekt-Ogrzewania.pl na temat opłacalności systemów akumulacyjnych względem fizyki budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-werdykt",
    "name": "Zestawienie weryfikacji mitów branżowych przez inżyniera (2026)",
    "description": "Baza danych konfrontująca powszechne mity sprzedażowe OZE z prawami termodynamiki i opłacalnością inwestycyjną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert ogrzewania podłogowego",
      "robert kucharski projekt ogrzewania",
      "opinie o magazynach energii",
      "doradztwo pompy ciepła",
      "weryfikacja ofert fotowoltaiki"
    ],
    "measurementTechnique": "Jakościowa analiza inżynierska oparta na konfrontacji chwytów marketingowych (wymuszanie zakupów akumulatorów) z wyliczeniami OZC i fizyką wylewek betonowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Mit branżowy: Magazyn bateryjny jest niezbędny do oszczędności przy pompie ciepła.",
        "Prawda inżynierska: Odpowiednio wysterowany bufor wodny i wylewka generują wyższy ROI przy ułamku kosztów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-werdykt",
    "name": "Interaktywny Panel Werdyktu Eksperta",
    "description": "Komponent interfejsu pozwalający użytkownikowi przełączać perspektywy między obietnicą sprzedażową a twardą analizą techniczną Roberta Kucharskiego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="werdykt-eksperta-app">
    
    <div class="rk-sr-only">
        Baza wiedzy z zakresu: ekspert ogrzewania podłogowego, robert kucharski projekt ogrzewania, opinie o magazynach energii, doradztwo pompy ciepła, weryfikacja ofert fotowoltaiki.
    </div>

    <div class="rk-auth-header">
        
        <div class="rk-auth-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-auth-photo">
            <div class="rk-auth-badge">HVAC / CEO</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" aria-label="LinkedIn Robert Kucharski">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <div class="rk-auth-quote-area">
            <h2>Werdykt specjalisty: Robert Kucharski</h2>
            <div class="rk-auth-quote-box">
                <p class="rk-auth-quote-text">
                    "Zanim wydasz 50 tysięcy złotych na elektronikę, upewnij się, że wykorzystałeś w 100% fizykę własnego budynku. Twoja betonowa podłoga potrafi zakumulować więcej darmowej energii niż najdroższe akumulatory na rynku, o ile została prawidłowo policzona i wysterowana na etapie projektu OZC."
                </p>
            </div>
        </div>

    </div>

    <div class="rk-auth-interactive">
        <h3>Przełącz perspektywę inwestycyjną</h3>
        
        <div class="rk-toggle-wrapper" id="authToggleBtns">
            <button class="rk-toggle-btn active" data-view="myth">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Narracja Handlowców
            </button>
            <button class="rk-toggle-btn" data-view="truth">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Werdykt Inżyniera
            </button>
        </div>

        <div class="rk-view-panel active" id="view-myth">
            <div class="rk-view-card card-red">
                <div class="rk-view-header">
                    <div class="rk-view-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    </div>
                    <h4 class="rk-view-title">Mit: Akumulator to gwarancja oszczędności</h4>
                </div>
                <p class="rk-view-content">
                    Sprzedawcy przekonują, że bez magazynu chemicznego instalacja fotowoltaiczna traci sens, wymuszając na inwestorach dobieranie <strong>baterii za 30-40 tysięcy złotych</strong>. Kalkulacje te milczą na temat utraty sprawności ogniw (degradacja do 80% po 10 latach) oraz faktu, że w kluczowym okresie zimowym bateria stoi pusta przez brak odpowiedniego nasłonecznienia.
                </p>
            </div>
        </div>

        <div class="rk-view-panel" id="view-truth">
            <div class="rk-view-card card-blue">
                <div class="rk-view-header">
                    <div class="rk-view-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    </div>
                    <h4 class="rk-view-title">Fakt: Woda i beton są darmowe i wieczne</h4>
                </div>
                <p class="rk-view-content">
                    Z perspektywy projektowej i obliczeń zapotrzebowania na ciepło, <strong>bufor wody grzewczej i podłogówka</strong> pozwalają przesunąć pobór mocy pompy ciepła na tanie godziny (taryfy dynamiczne). Koszt magazynowania 1 kWh w betonie wynosi około 120 PLN. Koszt w baterii chemicznej to blisko 2000 PLN. Inwestycja w fizykę budynku i taryfy zawsze zwraca się szybciej.
                </p>
            </div>
        </div>

    </div>
</div>

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

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe czyszczenie klas (BEZ ANIMACJI)
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja klikniętego elementu
            this.classList.add('active');
            const targetId = this.getAttribute('data-view');
            document.getElementById('view-' + targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-green: #10b981;
    --rk-faq-red: #ef4444;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-accent: #8b5cf6; /* Nowy akcent dla sekcji z mitami/FAQ */
    --rk-faq-accent-light: #f5f3ff;
}

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

/* Nagłówek Sekcji FAQ */
.rk-faq-header {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #2e1065 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

/* Animowana ikona kłódki/prawdy */
.rk-faq-title-icon {
    width: 32px;
    height: 32px;
    color: #c4b5fd;
    animation: unlockTruth 3s infinite ease-in-out;
}

@keyframes unlockTruth {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50% { transform: scale(1.1) rotate(-10deg); color: #ffffff; filter: drop-shadow(0 0 8px rgba(196, 181, 253, 0.8)); }
}

.rk-faq-subtitle {
    font-size: 16px;
    color: #c4b5fd;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-faq-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    color: var(--rk-faq-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    border-color: var(--rk-faq-accent);
    color: var(--rk-faq-accent);
    transform: translateY(-2px);
}

/* Interaktywny Akordeon (Aplikacyjny Wygląd) */
.rk-faq-body {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

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

.rk-faq-item:hover {
    border-color: #c4b5fd;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-accent);
    background: var(--rk-faq-accent-light);
    box-shadow: 0 10px 20px -5px rgba(139, 92, 246, 0.1);
}

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 20px 24px;
    background: transparent;
    border: none;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    transition: color 0.3s;
}

.rk-faq-item.active .rk-faq-btn {
    color: var(--rk-faq-accent);
}

/* Animowana ikona plus/minus w akordeonie */
.rk-faq-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    position: relative;
}

.rk-faq-icon::before,
.rk-faq-icon::after {
    content: '';
    position: absolute;
    background: var(--rk-faq-dark);
    border-radius: 2px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-icon::before {
    top: 11px; left: 4px; right: 4px; height: 2px;
}

.rk-faq-icon::after {
    top: 4px; bottom: 4px; left: 11px; width: 2px;
}

.rk-faq-item.active .rk-faq-icon::after {
    transform: rotate(90deg) scale(0);
}

.rk-faq-item.active .rk-faq-icon::before {
    background: var(--rk-faq-accent);
    transform: rotate(180deg);
}

.rk-faq-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-content-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-content {
    overflow: hidden;
}

.rk-faq-content-inner {
    padding: 0 24px 24px 24px;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

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

.rk-faq-content-inner a:hover {
    border-color: var(--rk-faq-blue);
    color: #0369a1;
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-tags-wrapper, .rk-faq-body { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 22px; align-items: flex-start; }
    .rk-faq-title-icon { width: 28px; height: 28px; margin-top: 2px; }
    .rk-faq-btn { font-size: 15px; padding: 18px; }
    .rk-faq-content-inner { padding: 0 18px 18px 18px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "FAQ – Czego sprzedawcy OZE wolą Ci nie mówić",
    "description": "Najważniejsze pytania i odpowiedzi o taryfy dynamiczne, żywotność pompy ciepła, degradację wody w buforze oraz bezpieczeństwo podłóg drewnianych przy magazynowaniu ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy woda w buforze ogrzewania podłogowego nie ulega zepsuciu lub degradacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Wodna instalacja grzewcza pracuje w układzie zamkniętym. Po odgazowaniu i związaniu tlenu woda nie zmienia swoich właściwości fizycznych ani pojemności cieplnej przez 40 lat."
        }
      },
      {
        "@type": "Question",
        "name": "Czy taryfy dynamiczne nie zniszczą sprężarki pompy ciepła przez częste włączanie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wręcz przeciwnie. Dobrze zaprojektowany system z dużym buforem 1000 l wydłuża cykle pracy pompy ciepła – urządzenie włącza się rzadziej, ale pracuje jednorazowo dłużej w optymalnym punkcie sprawności, eliminując szkodliwe dla sprężarki tzw. taktowanie."
        }
      },
      {
        "@type": "Question",
        "name": "Czy podłoga nagrzana do wyższej temperatury nie zniszczy paneli lub parkietu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "System projektuje się tak, aby temperatura powierzchni wylewki nigdy nie przekroczyła normowych 29°C. Nowoczesne okładziny dedykowane na podłogówkę bezproblemowo znoszą te parametry bez ryzyka rozsychania czy emisji szkodliwych substancji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy bez instalacji fotowoltaicznej ten system ma jakikolwiek sens?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, i to ogromny. System pozwala zarabiać na zmienności cen prądu w sieci krajowej. Kupujesz tanią energię systemową (np. z nocnej nadprodukcji wiatrowej), przetwarzasz na ciepło i odcinasz pobór w ciągu dnia, kiedy cena prądu szybuje w górę."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, jeśli ceny w taryfach dynamicznych wyrównają się w przyszłości?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Struktura rynku energii opartego na niestabilnych źródłach odnawialnych (wiatr, słońce) gwarantuje coraz większe rozpiętości cenowe między dniami słonecznymi/wietrznymi a bezwietrznymi nocami. Różnice cen będą rosły, a nie malały."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-faq",
    "name": "Baza Wiedzy: Mity i Fakty o Magazynowaniu Termicznym (2026)",
    "description": "Techniczne odpowiedzi na najczęstsze obiekcje inwestorów dotyczące integracji buforów, pomp ciepła i paneli podłogowych z systemem taryf dynamicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "degradacja wody w buforze ciepła",
      "żywotność sprężarki pompy ciepła",
      "panele podłogowe a temperatura wylewki",
      "taryfy dynamiczne bez fotowoltaiki",
      "opłacalność taryf dynamicznych 2026"
    ],
    "measurementTechnique": "Weryfikacja mitów sprzedażowych OZE w oparciu o fizykę budowli, normę PN-EN 1264 oraz termodynamikę układów zamkniętych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Trwałość medium: Woda w układzie zamkniętym nie traci pojemności cieplnej.",
        "Trwałość urządzeń: Bufor 1000l eliminuje taktowanie, wydłużając żywotność sprężarki.",
        "Komfort higieniczny: Gwarancja utrzymania temperatury powierzchni poniżej 29°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-faq",
    "name": "Interaktywny Panel FAQ Inwestora",
    "description": "Aplikacyjny komponent akordeonowy umożliwiający szybkie wyszukiwanie i rozwiązywanie wątpliwości technicznych inwestorów budowlanych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="sekcja-faq-app">
    <div class="rk-faq-header">
        <h2>
            <svg class="rk-faq-title-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
                <path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
                <path d="M12 15v2"></path>
            </svg>
            FAQ – Czego sprzedawcy OZE wolą Ci nie mówić
        </h2>
        <p class="rk-faq-subtitle">Prawda inżynierska ukryta przed prospektami marketingowymi. Kliknij, aby poznać fakty.</p>
    </div>

    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># degradacja wody w buforze ciepła</span>
        <span class="rk-mat-tag"># żywotność sprężarki pompy ciepła</span>
        <span class="rk-mat-tag"># panele podłogowe a temperatura wylewki</span>
        <span class="rk-mat-tag"># taryfy dynamiczne bez fotowoltaiki</span>
    </div>

    <div class="rk-faq-body">
        <div class="rk-faq-list" id="rkFaqList">
            
            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy woda w buforze ogrzewania podłogowego nie ulega zepsuciu lub degradacji?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Nie.</strong> Wodna instalacja grzewcza pracuje w układzie zamkniętym. Po odgazowaniu i związaniu tlenu na etapie uruchomienia, woda nie zmienia swoich właściwości fizycznych ani pojemności cieplnej przez dziesięciolecia. Zabezpiecza to domowy magazyn energii przed utratą wydajności, w przeciwieństwie do degradujących się ogniw chemicznych.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy taryfy dynamiczne nie zniszczą sprężarki pompy ciepła przez częste włączanie?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Wręcz przeciwnie.</strong> Dobrze zaprojektowany system z dużym buforem (np. 1000 l) znacząco wydłuża cykle pracy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>. Urządzenie włącza się rzadziej, ale pracuje jednorazowo dłużej w stabilnym i optymalnym punkcie sprawności, eliminując szkodliwe dla każdej sprężarki tzw. taktowanie (częste starty).
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy podłoga nagrzana do wyższej temperatury nie zniszczy paneli lub parkietu?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            System projektuje się tak, aby temperatura powierzchni wylewki w strefie przebywania ludzi nigdy nie przekroczyła dopuszczalnych normą <strong>29°C</strong>. Prawidłowo dobrane <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele lub okładziny drewniane</a> dedykowane na podłogówkę bezproblemowo znoszą te parametry bez ryzyka rozsychania czy emisji szkodliwych substancji. Zapas akumulacyjny kryje się w masie betonu, a nie w niekomfortowym przegrzewaniu powierzchni.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Czy bez instalacji fotowoltaicznej ten system ma jakikolwiek sens?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            <strong>Tak, i to ogromny.</strong> System pozwala zarabiać na zmienności cen prądu z sieci krajowej. Korzystając z <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">taryf dynamicznych</a> kupujesz tanią energię systemową (np. z nocnej nadprodukcji wiatrowej w całym kraju), przetwarzasz ją na ciepło i odcinasz pobór w ciągu dnia, kiedy giełdowa cena prądu szybuje w górę.
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-btn" aria-expanded="false">
                    <span>Co się stanie, jeśli ceny w taryfach dynamicznych wyrównają się w przyszłości?</span>
                    <div class="rk-faq-icon"></div>
                </button>
                <div class="rk-faq-content-wrapper">
                    <div class="rk-faq-content">
                        <div class="rk-faq-content-inner">
                            Struktura nowoczesnego rynku energii, opartego coraz mocniej na niestabilnych źródłach odnawialnych (wiatr, słońce), gwarantuje powstawanie coraz większych rozpiętości cenowych. Różnice między tanimi godzinami (np. wietrzna noc) a drogimi szczytami będą rosły, co oznacza, że magazynowanie energii w postaci ciepła będzie z każdym rokiem jeszcze bardziej zyskowne.
                        </div>
                    </div>
                </div>
            </div>

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

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

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-btn');
        
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Zamykamy wszystkie pozostałe (zachowanie akordeonu)
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełączamy kliknięty element
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



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

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

/* Sekcja Nagłówkowa i Cytat */
.rk-sum-header {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-sum-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

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

.rk-sum-quote-box {
    position: relative;
    max-width: 750px;
    margin: 0 auto;
}

.rk-sum-quote-mark {
    font-size: 80px;
    color: rgba(255,255,255,0.08);
    position: absolute;
    top: -30px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

.rk-sum-quote-text {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    color: #e2e8f0;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-sum-author {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}

.rk-sum-author span { color: var(--rk-sum-gold); }

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    color: var(--rk-sum-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    border-color: var(--rk-sum-blue);
    color: var(--rk-sum-blue);
    transform: translateY(-2px);
}

/* Interaktywny Symulator Decyzji */
.rk-sum-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-decision-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 30px;
}

.rk-decision-btn {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

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

.rk-decision-btn.active[data-choice="termiczny"] {
    background: var(--rk-sum-orange-light);
    border-color: var(--rk-sum-orange);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.15);
}

.rk-decision-btn.active[data-choice="elektryczny"] {
    background: #fef2f2;
    border-color: var(--rk-sum-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

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

.rk-decision-btn.active[data-choice="termiczny"] .rk-decision-icon {
    background: var(--rk-sum-orange);
    color: #ffffff;
}

.rk-decision-btn.active[data-choice="elektryczny"] .rk-decision-icon {
    background: var(--rk-sum-red);
    color: #ffffff;
}

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

.rk-decision-subtitle {
    font-size: 13px;
    color: var(--rk-sum-gray);
    font-weight: 500;
    margin: 0;
}

/* Wynik symulacji */
.rk-sim-result {
    padding: 35px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

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

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

.rk-result-content ul {
    margin: 15px 0;
    padding-left: 20px;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
}

.rk-result-content li { margin-bottom: 8px; }

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

.rk-result-content a:hover { color: var(--rk-sum-orange); }

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

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

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

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

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

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

@media (max-width: 768px) {
    .rk-sum-header, .rk-tags-wrapper, .rk-sum-interactive, .rk-sum-cta-box { padding: 30px 20px; }
    .rk-sum-header h2 { font-size: 24px; }
    .rk-sum-quote-text { font-size: 18px; }
    .rk-decision-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-sim-result { padding: 25px 20px; }
    .rk-result-content ul { display: inline-block; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 15px; flex-direction: column; gap: 8px;}
    .rk-btn-massive svg { transform: rotate(90deg); }
    .rk-btn-massive:hover svg { transform: translateY(5px) rotate(90deg); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Podsumowanie – Zbuduj magazyn energii w podłodze",
    "description": "Porównanie kosztów i efektywności magazynowania termicznego (bufor + wylewka) z magazynowaniem elektrycznym (akumulatory Li-ion) w domach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-podsumowanie",
    "name": "Zestawienie ROI: Magazyn Termiczny vs Magazyn Elektryczny (2026)",
    "description": "Analiza przepływów finansowych i kosztów magazynowania 1 kWh energii w układzie bufor ciepła vs akumulator domowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor ciepła do pompy ciepła",
      "ogrzewanie podłogowe jako magazyn energii",
      "koszt magazynu energii",
      "projekt ogrzewania podłogowego OZC",
      "opłacalność taryf dynamicznych"
    ],
    "measurementTechnique": "Kalkulacja kosztu inwestycyjnego na 1 kWh zmagazynowanej energii oraz analiza żywotności układów wodno-betonowych względem ogniw chemicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Magazyn Termiczny: Pojemność ok. 70 kWh, koszt ok. 7 000 PLN, zwrot 4.6 roku, trwałość 30+ lat.",
        "Magazyn Elektryczny: Pojemność ok. 10 kWh, koszt ok. 30 000 PLN, zwrot ok. 15 lat, degradacja po 10 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-podsumowanie",
    "name": "Symulator Strategii Magazynowania Energii",
    "description": "Interaktywny komponent webowy wizualizujący różnice technologiczne i finansowe pomiędzy fizycznym magazynem w wylewce a rynkowym magazynem akumulatorowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-container" id="magazyn-sum-app">
    <div class="rk-sum-header">
        <div class="rk-sum-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Brutalna Ekonomia
        </div>
        <h2>Podsumowanie – Zbuduj magazyn w podłodze</h2>
        <div class="rk-sum-quote-box">
            <div class="rk-sum-quote-mark">"</div>
            <p class="rk-sum-quote-text">
                Prawdziwa optymalizacja to nie kupowanie najdroższych zabawek technologicznych. To wykorzystanie fizyki budynku w służbie Twojego portfela.
            </p>
            <div class="rk-sum-author">
                <span>Robert Kucharski</span> | CEO, Specjalista OZE i HVAC
            </div>
        </div>
    </div>

    <!-- Tagi z długim ogonem (Search Intent) -->
    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># bufor ciepła do pompy ciepła</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe jako magazyn energii</span>
        <span class="rk-mat-tag"># koszt magazynu energii</span>
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego OZC</span>
    </div>

    <div class="rk-sum-interactive">
        <h3>Sprawdź symulację kosztów dla Twojego domu</h3>
        <div class="rk-decision-wrapper" id="simDecisions">
            <button class="rk-decision-btn active" data-choice="termiczny">
                <div class="rk-decision-icon">
                    <!-- Ikona Termiczna (Podłoga/Ciepło) -->
                    <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="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path><path d="M4 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"></path><path d="M20 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"></path></svg>
                </div>
                <h4 class="rk-decision-title">Magazyn Termiczny</h4>
                <p class="rk-decision-subtitle">Bufor 1000L + Wylewka</p>
            </button>
            <button class="rk-decision-btn" data-choice="elektryczny">
                <div class="rk-decision-icon">
                    <!-- Ikona Elektryczna (Bateria) -->
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="16" height="10" x="2" y="7" rx="2" ry="2"></rect><line x1="22" x2="22" y1="11" y2="13"></line><line x1="6" x2="6" y1="11" y2="13"></line><line x1="10" x2="10" y1="11" y2="13"></line><line x1="14" x2="14" y1="11" y2="13"></line></svg>
                </div>
                <h4 class="rk-decision-title">Magazyn Elektryczny</h4>
                <p class="rk-decision-subtitle">Akumulator Li-ion 10kWh</p>
            </button>
        </div>

        <div class="rk-sim-result state-termiczny" id="simResultBox">
            <div class="rk-result-content" id="simResultContent">
                <h4 style="color: var(--rk-sum-orange);">Zysk na czysto: +23 000 PLN</h4>
                <p>Wykorzystujesz to, co już masz. Woda w <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforze ciepła</a> i tony betonu potrafią zakumulować ok. <strong>70 kWh</strong> energii po koszcie niecałych 150 zł za 1 kWh pojemności.</p>
                <ul>
                    <li>Koszt wejścia: ok. 7 000 zł</li>
                    <li>Zwrot: ok. 4.6 roku</li>
                    <li>Trwałość: 30+ lat (brak degradacji)</li>
                </ul>
                <p>Kluczem jest rygorystyczny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt ogrzewania podłogowego</a>, który zapewni optymalny przepływ w strefach ładowania.</p>
            </div>
        </div>
    </div>

    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Przestań zgadywać. Zacznij liczyć.</h3>
        <p class="rk-sum-cta-text">
            Chcesz wiedzieć, czy instalator nie naciąga Cię na sprzęt, którego Twój dom nie potrzebuje? Sprawdź naszą inżynierską bibliotekę. Znajdziesz tam bezkompromisowe kalkulatory, analizy OZC i standardy wykonawcze.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            ZABEZPIECZ SWOJE PIENIĄDZE – CZYTAJ BLOG
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-decision-btn');
    const resultBox = document.getElementById('simResultBox');
    const resultContent = document.getElementById('simResultContent');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset i aktywny przycisk
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const choice = this.getAttribute('data-choice');

            // Aktualizacja HTML w zależności od wyboru
            if (choice === 'termiczny') {
                resultBox.className = 'rk-sim-result state-termiczny';
                
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-orange);">Zysk na czysto: +23 000 PLN</h4>
                    <p>Wykorzystujesz to, co już masz. Woda w <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">buforze ciepła</a> i tony betonu potrafią zakumulować ok. <strong>70 kWh</strong> energii po koszcie niecałych 150 zł za 1 kWh pojemności.</p>
                    <ul>
                        <li>Koszt wejścia: ok. 7 000 zł</li>
                        <li>Zwrot: ok. 4.6 roku</li>
                        <li>Trwałość: 30+ lat (brak degradacji)</li>
                    </ul>
                    <p>Kluczem jest rygorystyczny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt ogrzewania podłogowego</a>, który zapewni optymalny przepływ w strefach ładowania.</p>
                `;
            } else {
                resultBox.className = 'rk-sim-result state-elektryczny';

                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-red);">Pułapka 15-letniego zwrotu</h4>
                    <p>Kupujesz drogi sprzęt, który zimą (kiedy pompa ciepła potrzebuje najwięcej mocy) często stoi pusty ze względu na brak słońca.</p>
                    <ul>
                        <li>Koszt wejścia: 30 000 - 45 000 zł</li>
                        <li>Pojemność użyteczna: tylko 10 kWh</li>
                        <li>Trwałość: 10 lat (degradacja chemiczna ogniw)</li>
                    </ul>
                    <p>Brak weryfikacji <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążeń cieplnych OZC</a> sprawia, że instalatorzy maskują błędy przewymiarowaną elektroniką za Twoje pieniądze.</p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #64748b;
    --rk-dl-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-teal: #0d9488;
    --rk-dl-teal-light: #f0fdfa;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 15px 35px -10px rgba(13, 148, 136, 0.15);
    border: 1px solid var(--rk-dl-teal);
    overflow: hidden;
}

/* Ukryte Tagi SEO dla robotów */
.rk-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Sekcja Nagłówkowa */
.rk-dl-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-dl-dark) 0%, var(--rk-dl-navy) 100%);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-dl-teal);
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

/* Tagi Długiego Ogona */
.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding: 20px 50px;
    background: var(--rk-dl-light);
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    color: var(--rk-dl-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

/* Sekcja Główna z Podglądem i Pobieraniem */
.rk-dl-body {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    background: #ffffff;
}

/* Podgląd Infografiki */
.rk-dl-preview-box {
    background: var(--rk-dl-light);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
}

.rk-dl-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    border: 1px solid var(--rk-dl-border);
    display: block;
}

/* Panel Akcji (Pobieranie) */
.rk-dl-actions {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

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

/* Przyciski (Brak animacji, natychmiastowy hover) */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 25px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    transition: none; /* Wymuszony brak animacji */
}

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

.rk-dl-btn-primary:hover {
    background: #0f766e;
    color: #ffffff;
}

.rk-dl-btn-secondary {
    background: var(--rk-dl-blue-light);
    color: var(--rk-dl-blue);
    border: 1px solid #7dd3fc;
}

.rk-dl-btn-secondary:hover {
    background: #e0f2fe;
    color: #0369a1;
}

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

.rk-dl-btn-meta {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
    background: rgba(0,0,0,0.1);
    padding: 4px 8px;
    border-radius: 6px;
}

.rk-dl-btn-primary .rk-dl-btn-meta { background: rgba(255,255,255,0.2); }

/* Stopka / Prawa autorskie */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--rk-dl-light);
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    text-align: center;
}

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

@media (max-width: 768px) {
    .rk-dl-header, .rk-tags-wrapper, .rk-dl-body, .rk-dl-footer { padding: 30px 20px; }
    .rk-dl-header h2 { font-size: 24px; flex-direction: column; }
    .rk-dl-body { grid-template-columns: 1fr; gap: 30px; }
    .rk-dl-btn { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/"
    },
    "headline": "Pobierz darmowe zestawienie techniczne: Infografika i Raport PDF",
    "description": "Autorska infografika i raport PDF zestawiający 8 argumentów sprzedawców z 8 faktami inżynierskimi. Darmowe materiały edukacyjne do pobrania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#dataset-infografika",
    "name": "Materiały do pobrania: Fakty Inżynierskie vs Mity OZE (PDF/WebP)",
    "description": "Zasoby graficzne i dokumentowe udostępniane inwestorom budowlanym w celu weryfikacji ofert instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "darmowy projekt ogrzewania podłogowego pdf",
      "porównanie pomp ciepła i magazynów energii",
      "schemat bufora ciepła pdf",
      "materiały edukacyjne hvac"
    ],
    "measurementTechnique": "Dystrybucja materiałów cyfrowych (PDF, WebP) z zabezpieczeniem praw autorskich portalu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik WebP: Infografika podsumowująca parametry techniczne w wysokiej rozdzielczości.",
        "Plik PDF: Kompletny raport do druku dla inwestorów z zachowaniem praw autorskich."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/#webapp-infografika",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej",
    "description": "Interfejs przeglądarkowy umożliwiający bezpośrednie pobieranie autorskich opracowań technicznych i dokumentacji wizualnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="pobieranie-materialow-app">
    
    <div class="rk-sr-only">
        Materiały źródłowe dla haseł: darmowy projekt ogrzewania podłogowego pdf, porównanie pomp ciepła i magazynów energii, schemat bufora ciepła pdf, materiały edukacyjne hvac.
    </div>

    <div class="rk-dl-header">
        <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" style="color: #ccfbf1;">
                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                <polyline points="7 10 12 15 17 10"></polyline>
                <line x1="12" y1="15" x2="12" y2="3"></line>
            </svg>
            Pobierz darmowe zestawienie techniczne
        </h2>
        <p>Przygotowałem dla Ciebie czytelną infografikę oraz dokument PDF, które możesz wydrukować i skonfrontować z ofertą sprzedawcy magazynów energii. Miej twarde argumenty zawsze pod ręką.</p>
    </div>

    <div class="rk-tags-wrapper">
        <span class="rk-mat-tag"># darmowy projekt ogrzewania podłogowego pdf</span>
        <span class="rk-mat-tag"># porównanie pomp ciepła i magazynów energii</span>
        <span class="rk-mat-tag"># schemat bufora ciepła pdf</span>
        <span class="rk-mat-tag"># materiały edukacyjne hvac</span>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp" alt="Infografika - Największy magazyn energii w Twoim domu" class="rk-dl-image" loading="lazy">
        </div>

        <div class="rk-dl-actions">
            <div>
                <h3 class="rk-dl-action-title">Wybierz format materiałów</h3>
                <p class="rk-dl-action-desc">Raport zawiera 8 faktów inżynierskich obalających mity marketingowe. Idealny do zapisu na telefonie lub wydruku przed spotkaniem z instalatorem.</p>
            </div>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-primary">
                <div class="rk-dl-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                    Pobierz raport do druku
                </div>
                <span class="rk-dl-btn-meta">Dokument PDF</span>
            </a>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Najwiekszy-magazyn-energii-w-Twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-secondary">
                <div class="rk-dl-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz jako obraz (WebP)
                </div>
                <span class="rk-dl-btn-meta">Grafika HD</span>
            </a>
        </div>

    </div>

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

</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">Największy magazyn energii w Twoim domu już istnieje i  prawdopodobnie po nim chodzisz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Frezowanie ogrzewania podłogowego w starym domu.</title>
		<link>https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 07 Apr 2026 09:03:02 +0000</pubDate>
				<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Budowa i remonty]]></category>
		<category><![CDATA[Frezowanie posadzki]]></category>
		<category><![CDATA[Modernizacja instalacji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla domu]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Remont i modernizacja]]></category>
		<category><![CDATA[Remont starego domu]]></category>
		<category><![CDATA[Technologia budowlana]]></category>
		<category><![CDATA[Technologia w budownictwie]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[bezpyłowe frezowanie]]></category>
		<category><![CDATA[frezowanie betonu]]></category>
		<category><![CDATA[frezowanie podłogówki]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[koszty frezowania]]></category>
		<category><![CDATA[modernizacja ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka w starym domu]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[remont starego domu]]></category>
		<category><![CDATA[stara wylewka]]></category>
		<category><![CDATA[system suchy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4152</guid>

					<description><![CDATA[<p>Remont starego budynku często wiąże się z trudnymi decyzjami, a jedną z najważniejszych jest wybór odpowiedniego systemu grzewczego. Wiele osób marzy o komfortowej, ciepłej podłodze, jednak przeraża je wizja skuwania starych wylewek, wywożenia ton gruzu i drastycznego podnoszenia poziomu posadzki, co niesie za sobą konieczność przerabiania progów czy skracania drzwi. Na szczęście istnieje nowoczesna, znacznie mniej inwazyjna alternatywa. Frezowanie ogrzewania podłogowego w starym domu to innowacyjna metoda, która pozwala ukryć rury grzewcze bezpośrednio w istniejącym już betonie. W tym obszernym poradniku przyjrzymy się z bliska, jak krok po kroku przebiega ten proces. Sprawdzimy, z jakimi realnymi kosztami musisz się liczyć, czy prace faktycznie przebiegają bezpyłowo oraz w jakich sytuacjach ta technologia sprawdzi się najlepiej.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">Frezowanie ogrzewania podłogowego w starym domu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #082f49; /* Głęboki granat */
    --rk-intro-brand: #06b6d4; /* Techniczny cyjan */
    --rk-intro-brand-light: #cffafe;
    --rk-intro-accent: #f43f5e; /* Róż/Czerwień do pokazania "starego" */
    --rk-intro-bg: #f8fafc;
    --rk-intro-card: #ffffff;
    --rk-intro-text: #334155;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(8, 47, 73, 0.15);
    border: 1px solid rgba(6, 182, 212, 0.3);
    overflow: hidden;
}

/* Sekcja Wprowadzająca (Header & Text) */
.rk-intro-header {
    background: linear-gradient(145deg, var(--rk-intro-dark) 0%, #0f172a 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-intro-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-intro-brand) 0%, #3b82f6 100%);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #22d3ee;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(34, 211, 238, 0.3);
}

.rk-intro-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-intro-paragraph {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-intro-paragraph strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-intro-link {
    color: var(--rk-intro-brand);
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-intro-brand);
    transition: all 0.3s;
}

.rk-intro-link:hover {
    color: #67e8f9;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-intro-interactive {
    padding: 40px 50px;
    background: var(--rk-intro-bg);
}

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

.rk-sim-btn {
    flex: 1;
    max-width: 250px;
    padding: 16px 20px;
    border: 2px solid var(--rk-intro-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-sim-btn.active[data-mode="old"] {
    border-color: var(--rk-intro-accent);
    background: #fff1f2;
    color: #9f1239;
    box-shadow: 0 10px 20px -5px rgba(244, 63, 94, 0.15);
}

.rk-sim-btn.active[data-mode="new"] {
    border-color: var(--rk-intro-brand);
    background: var(--rk-intro-brand-light);
    color: var(--rk-intro-dark);
    box-shadow: 0 10px 20px -5px rgba(6, 182, 212, 0.2);
}

/* Ekran Symulatora (Grid: Lewo animacja, Prawo parametry) */
.rk-sim-screen {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG) */
.rk-sim-visual {
    background: var(--rk-intro-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 180px;
}

.rk-svg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.rk-svg-layer.hidden {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.95);
}

/* Animacje SVG - Kucie (Old) */
.anim-shake { animation: jackhammer 0.1s infinite; transform-origin: bottom center; }
.anim-debris { animation: flyDebris 1s infinite linear; }
@keyframes jackhammer { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes flyDebris { 0% { transform: translate(0,0) rotate(0deg); opacity: 1; } 100% { transform: translate(30px, -30px) rotate(180deg); opacity: 0; } }

/* Animacje SVG - Frezowanie (New) - NAPRAWIONY SKACZĄCY EFEKT */
.anim-spin { 
    animation: spinBlade 0.8s linear infinite; 
    /* Sztywny matematyczny środek obrotu dla cx=0 cy=0 */
    transform-origin: 0px 0px; 
    transform-box: fill-box;
}
.anim-cut-line { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 2s ease-out; }
.rk-sim-btn.active[data-mode="new"] ~ .rk-sim-screen .anim-cut-line { stroke-dashoffset: 0; }
@keyframes spinBlade { 
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); } 
}

/* Część z parametrami (Grid) */
.rk-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-param-box {
    background: var(--rk-intro-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-intro-border);
    transition: all 0.3s;
}

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

.rk-param-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-param-value.alert { color: var(--rk-intro-accent); }
.rk-param-value.success { color: var(--rk-intro-brand); }

/* Opisy pod kafelkami */
.rk-sim-desc {
    grid-column: 1 / -1;
    font-size: 14px;
    color: var(--rk-intro-text);
    line-height: 1.6;
    margin-top: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--rk-intro-border);
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-interactive { padding: 30px 25px; }
    .rk-sim-controls { flex-direction: column; }
    .rk-sim-btn { max-width: 100%; }
    .rk-sim-screen { grid-template-columns: 1fr; }
    .rk-sim-visual { min-height: 150px; }
    .rk-param-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Frezowanie ogrzewania podłogowego – Bezpyłowa technologia modernizacji",
    "description": "Przełom w inżynierii instalacyjnej. Technologia wycinania kanałów pod rury grzewcze eliminuje potrzebę skuwania wylewek i radykalnie zmniejsza bezwładność cieplną.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-tech-compare",
    "name": "Analiza porównawcza: Frezowanie vs Kucie starej wylewki",
    "description": "Zestawienie parametrów operacyjnych i czasowych dla procesu modernizacji systemu grzewczego na układ niskotemperaturowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "podłogówka bez kucia jastrychu",
      "redukcja bezwładności cieplnej",
      "bezpyłowa technologia grzewcza",
      "modernizacja pod pompę ciepła"
    ],
    "measurementTechnique": "Analiza czasowo-kosztowa i termiczna na podstawie realizacji instalatorskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metoda tradycyjna: Wymaga skuwania, generuje gruz, czas nagrzewania ok. 4 godzin.",
        "Metoda bezpyłowa (frezowanie): Brak gruzu, rury w nacięciach, czas nagrzewania poniżej 45 minut."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-simulator",
    "name": "Symulator Modernizacji Podłogi",
    "description": "Narzędzie pozwalające przełączać i porównywać inżynierskie parametry kucia starej wylewki z innowacyjną technologią frezowania diamentowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-tech-compare-app">
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 20V10"></path><path d="M18 20V4"></path><path d="M6 20v-4"></path></svg>
            Technologia
        </div>
        <h2 class="rk-intro-title">Frezowanie ogrzewania podłogowego w starym domu</h2>
        <p class="rk-intro-paragraph">
            To <strong>bezpyłowa technologia modernizacji instalacji grzewczej</strong>, polegająca na wycinaniu kanałów montażowych bezpośrednio w istniejącym podłożu betonowym lub anhydrytowym w celu ułożenia rur grzewczych bez podnoszenia poziomu podłogi. 
        </p>
        <p class="rk-intro-paragraph" style="margin-top: 15px;">
            Metoda ta pozwala na <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/" class="rk-intro-link">eliminację tradycyjnych grzejników wysokotemperaturowych</a> w budynkach poddawanych termomodernizacji, umożliwiając efektywną współpracę z pompami ciepła. Rozwiązanie to drastycznie skraca czas remontu, <strong>redukuje bezwładność cieplną układu</strong> i eliminuje konieczność kłopotliwego skuwania starych wylewek, co stanowi przełom w inżynierii instalacyjnej dla obiektów poddawanych remontom kapitalnym.
        </p>
    </div>

    <div class="rk-intro-interactive">
        <div class="rk-sim-controls">
            <button class="rk-sim-btn" data-mode="old" onclick="rkSwitchTech('old')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                Tradycyjne Kucie
            </button>
            <button class="rk-sim-btn active" data-mode="new" onclick="rkSwitchTech('new')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Frezowanie Bezpyłowe
            </button>
        </div>

        <div class="rk-sim-screen">
            <div class="rk-sim-visual">
                <svg id="rk-svg-old" class="rk-svg-layer hidden" viewBox="0 0 100 100">
                    <rect x="10" y="70" width="80" height="20" fill="#475569" rx="2"/>
                    <path d="M 30 70 L 40 90 M 50 70 L 60 90 M 70 70 L 55 90" stroke="#1e293b" stroke-width="3" stroke-linecap="round"/>
                    <g class="anim-shake">
                        <path d="M 45 30 L 55 30 L 52 70 L 48 70 Z" fill="#94a3b8"/>
                        <rect x="40" y="20" width="20" height="10" fill="#f43f5e" rx="2"/>
                        <rect x="35" y="10" width="30" height="10" fill="#334155" rx="2"/>
                    </g>
                    <circle class="anim-debris" cx="50" cy="70" r="3" fill="#cbd5e1"/>
                    <circle class="anim-debris" cx="55" cy="70" r="2" fill="#cbd5e1" style="animation-delay: 0.2s;"/>
                    <circle class="anim-debris" cx="45" cy="70" r="4" fill="#64748b" style="animation-delay: 0.4s;"/>
                </svg>

                <svg id="rk-svg-new" class="rk-svg-layer" viewBox="0 0 100 100">
                    <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                    <path class="anim-cut-line" d="M 10 70 L 90 70" fill="none" stroke="#f8fafc" stroke-width="8" stroke-linecap="square"/>
                    <path class="anim-cut-line" d="M 10 75 L 90 75" fill="none" stroke="#06b6d4" stroke-width="4" stroke-linecap="square" style="transition-delay: 0.2s;"/>
                    
                    <g transform="translate(50, 60)">
                        <g class="anim-spin">
                            <circle cx="0" cy="0" r="25" fill="none" stroke="#06b6d4" stroke-width="6" stroke-dasharray="15.7 15.7"/>
                            <circle cx="0" cy="0" r="8" fill="#082f49"/>
                            <circle cx="0" cy="0" r="3" fill="#ffffff"/>
                        </g>
                        <path d="M -35 0 C -35 -25 -15 -35 0 -35 L 0 -10 Z" fill="#334155" opacity="0.9"/>
                        <rect x="-35" y="-60" width="12" height="40" fill="#475569" rx="2"/>
                    </g>
                </svg>
            </div>

            <div class="rk-param-data">
                <div class="rk-param-grid" id="rk-data-old" style="display: none;">
                    <div class="rk-param-box">
                        <div class="rk-param-label">Gruz i Pył</div>
                        <div class="rk-param-value alert">~150 kg/m²</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Bezwładność po wylaniu</div>
                        <div class="rk-param-value alert">> 4 godziny</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Wysokość posadzki</div>
                        <div class="rk-param-value alert">+ 65 mm</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Ryzyko inwestycyjne</div>
                        <div class="rk-param-value alert">Wysokie</div>
                    </div>
                    <div class="rk-sim-desc">
                        Decyzja o <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/" class="rk-intro-link">rozkuwaniu starych wylewek</a> wiąże się z ogromnym nakładem pracy, potężną ilością gruzu i często nieoczekiwanymi kosztami po zerwaniu podłoża (np. uszkodzeniem rur kanalizacyjnych).
                    </div>
                </div>

                <div class="rk-param-grid" id="rk-data-new">
                    <div class="rk-param-box">
                        <div class="rk-param-label">Gruz i Pył</div>
                        <div class="rk-param-value success">Brak (Odciąg)</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Czas stabilizacji ciepła</div>
                        <div class="rk-param-value success">< 45 minut</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Podniesienie podłogi</div>
                        <div class="rk-param-value success">0 mm</div>
                    </div>
                    <div class="rk-param-box">
                        <div class="rk-param-label">Wydajność dla Pompy Ciepła</div>
                        <div class="rk-param-value success">Maksymalna</div>
                    </div>
                    <div class="rk-sim-desc">
                        Kanały nacinane są tarczą diamentową z odsysaniem urobku. Cienkowarstwowe przykrycie rury (<a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/" class="rk-intro-link">drastyczny spadek bezwładności</a>) sprawia, że podłoga reaguje na sygnał z termostatu błyskawicznie, jak w systemach lekkich suchych.
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed kradzieżą (bez H2/H3 w alercie)
document.addEventListener('DOMContentLoaded', function() {
    var loc = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(loc) === -1) {
        var wrap = document.getElementById('rk-tech-compare-app');
        if (wrap) {
            wrap.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f43f5e; border-radius:20px; border: 2px solid #f43f5e; font-weight:800; font-family:sans-serif;">Wykryto naruszenie licencji. Kod udostępniony wyłącznie dla domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchTech(mode) {
    // Buttons
    var btns = document.querySelectorAll('.rk-sim-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-sim-btn[data-mode="' + mode + '"]').classList.add('active');

    // SVG
    document.getElementById('rk-svg-old').classList.add('hidden');
    document.getElementById('rk-svg-new').classList.add('hidden');
    
    // Data Grids
    document.getElementById('rk-data-old').style.display = 'none';
    document.getElementById('rk-data-new').style.display = 'none';

    // Activate selected
    if (mode === 'old') {
        document.getElementById('rk-svg-old').classList.remove('hidden');
        document.getElementById('rk-data-old').style.display = 'grid';
    } else {
        // Mały delay na reset animacji rysowania rury (stroke-dashoffset)
        var newSvg = document.getElementById('rk-svg-new');
        newSvg.classList.remove('hidden');
        var line = newSvg.querySelector('.anim-cut-line');
        if(line) {
            line.style.transition = 'none';
            line.style.strokeDashoffset = '100';
            setTimeout(function() {
                line.style.transition = 'stroke-dashoffset 2s ease-out';
                line.style.strokeDashoffset = '0';
            }, 50);
        }
        document.getElementById('rk-data-new').style.display = 'grid';
    }
}
</script>



<style>
:root {
    --rk-diag-dark: #111827;
    --rk-diag-card: #ffffff;
    --rk-diag-brand: #3b82f6; /* Inżynierski niebieski */
    --rk-diag-success: #10b981; /* Bezpieczna wylewka */
    --rk-diag-warning: #f59e0b; /* Wylewka na styk */
    --rk-diag-danger: #ef4444; /* Krytycznie cienka */
    --rk-diag-bg: #f3f4f6;
    --rk-diag-text: #374151;
    --rk-diag-border: #e5e7eb;
}

.rk-diag-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-diag-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(17, 24, 39, 0.1);
    border: 1px solid rgba(59, 130, 246, 0.2);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-diag-header {
    background: var(--rk-diag-dark);
    background-image: radial-gradient(circle at top right, #1f2937 0%, transparent 50%);
    padding: 40px 50px 30px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-diag-brand);
}

.rk-diag-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(147, 197, 253, 0.2);
}

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

.rk-diag-title span { color: var(--rk-diag-brand); }

.rk-diag-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #9ca3af;
    margin: 0;
}

.rk-diag-intro strong {
    color: #f3f4f6;
    font-weight: 700;
}

.rk-diag-link {
    color: #60a5fa;
    text-decoration: none;
    border-bottom: 1px dashed #60a5fa;
    transition: all 0.3s;
}

.rk-diag-link:hover {
    color: #93c5fd;
    border-bottom-style: solid;
}

/* Moduł Interaktywny (Symulator) */
.rk-diag-interactive {
    padding: 40px 50px;
    background: var(--rk-diag-bg);
}

.rk-diag-sim-wrapper {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-diag-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

/* SVG Wizualizacja */
.rk-diag-visual {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 2px dashed #cbd5e1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    overflow: hidden;
}

.rk-diag-svg {
    width: 100%;
    height: 100%;
    max-width: 300px;
}

/* Elementy SVG z CSS Transitions */
.svg-screed-bottom { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-crack { opacity: 0; transition: opacity 0.3s; stroke-dasharray: 50; stroke-dashoffset: 50; }
.svg-blade { animation: spinBladeDiag 1s linear infinite; transform-origin: 50px 30px; transform-box: fill-box; }
.svg-measure-text { font-family: monospace; font-weight: bold; font-size: 12px; transition: fill 0.3s; }
.svg-measure-line { transition: stroke 0.3s; }

@keyframes spinBladeDiag { to { transform: rotate(360deg); } }
@keyframes drawCrack { to { stroke-dashoffset: 0; } }

/* Stany Symulatora (Kontrolowane przez klasę rodzica) */
/* 1. Danger (< 30mm) */
#rk-sim-core.state-danger .svg-screed-bottom { transform: translateY(-20px); }
#rk-sim-core.state-danger .svg-crack { opacity: 1; animation: drawCrack 0.5s 0.6s forwards; }
#rk-sim-core.state-danger .svg-measure-text { fill: var(--rk-diag-danger); }
#rk-sim-core.state-danger .svg-measure-line { stroke: var(--rk-diag-danger); }
#rk-sim-core.state-danger .rk-diag-visual { border-color: var(--rk-diag-danger); background: #fef2f2; }

/* 2. Warning (35mm) */
#rk-sim-core.state-warning .svg-screed-bottom { transform: translateY(-10px); }
#rk-sim-core.state-warning .svg-measure-text { fill: var(--rk-diag-warning); }
#rk-sim-core.state-warning .svg-measure-line { stroke: var(--rk-diag-warning); }
#rk-sim-core.state-warning .rk-diag-visual { border-color: var(--rk-diag-warning); background: #fffbeb; }

/* 3. Success (> 50mm) */
#rk-sim-core.state-success .svg-screed-bottom { transform: translateY(10px); }
#rk-sim-core.state-success .svg-measure-text { fill: var(--rk-diag-success); }
#rk-sim-core.state-success .svg-measure-line { stroke: var(--rk-diag-success); }
#rk-sim-core.state-success .rk-diag-visual { border-color: var(--rk-diag-success); background: #ecfdf5; }

/* Panel Kontrolny */
.rk-diag-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-diag-btn {
    width: 100%;
    padding: 16px 20px;
    border: 2px solid var(--rk-diag-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-diag-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-diag-btn:hover { background: #f8fafc; border-color: #cbd5e1; }

.rk-diag-btn.active[data-state="danger"] { border-color: var(--rk-diag-danger); background: #fef2f2; color: #991b1b; }
.rk-diag-btn.active[data-state="warning"] { border-color: var(--rk-diag-warning); background: #fffbeb; color: #92400e; }
.rk-diag-btn.active[data-state="success"] { border-color: var(--rk-diag-success); background: #ecfdf5; color: #065f46; }

.rk-sim-feedback {
    margin-top: 15px;
    padding: 15px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    display: none;
}

#rk-sim-core.state-danger .feedback-danger { display: block; background: #fee2e2; color: #991b1b; border-left: 4px solid var(--rk-diag-danger); }
#rk-sim-core.state-warning .feedback-warning { display: block; background: #fef3c7; color: #92400e; border-left: 4px solid var(--rk-diag-warning); }
#rk-sim-core.state-success .feedback-success { display: block; background: #d1fae5; color: #065f46; border-left: 4px solid var(--rk-diag-success); }

/* Kafelki Informacyjne */
.rk-diag-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-diag-box {
    background: #ffffff;
    border: 1px solid var(--rk-diag-border);
    padding: 25px;
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-diag-box h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-diag-dark);
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-diag-box h4 svg { color: var(--rk-diag-brand); }
.rk-diag-box p { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 0; }

@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-interactive { padding: 30px 20px; }
    .rk-diag-sim-wrapper { grid-template-columns: 1fr; padding: 20px; }
    .rk-diag-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-diag-visual { min-height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-wylewka-test",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Czy istniejąca wylewka nadaje się pod frezowanie? Wymagania techniczne",
    "description": "Poznaj inżynieryjne wytyczne dotyczące grubości (min. 35 mm) i klasy betonu (C12/15) dla bezpiecznego frezowania podłogówki w starym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-nośność",
    "name": "Wymagania nośności i geometrii jastrychu dla frezowania (PN-EN 13813)",
    "description": "Parametry graniczne określające przydatność istniejącej wylewki betonowej i anhydrytowej pod instalacje płaszczyznowe w technologii bezpyłowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna grubość wylewki pod frezowanie",
      "klasa betonu c12/15 pn-en 13813",
      "badanie sklerometryczne młotkiem schmidta",
      "nośność jastrychu frezowanego",
      "odkrywki kontrolne wylewki"
    ],
    "measurementTechnique": "Analiza sklerometryczna wytrzymałości betonu (klasa C12/15) oraz punktowe pomiary geometryczne w celu zagwarantowania 15 mm nienaruszonej warstwy monolitycznej pod wyfrezowanym kanałem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Grubość krytyczna: Poniżej 30 mm bezwzględny zakaz frezowania.",
        "Grubość normatywna: 35 mm całkowitej grubości, zapewniająca 15 mm buforu bezpieczeństwa nad warstwą chudego betonu lub styropianu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-screed-test",
    "name": "Symulator Przekroju i Nośności Wylewki",
    "description": "Interaktywne narzędzie edukacyjne obrazujące ryzyko uszkodzenia i pękania jastrychu w zależności od wyjściowej grubości podłoża podczas cięcia na głębokość 20 mm.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-screed-check-app">
    <div class="rk-diag-header">
        <div class="rk-diag-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Analiza Podłoża
        </div>
        <h2 class="rk-diag-title">Czy istniejąca wylewka nadaje się pod frezowanie?</h2>
        <p class="rk-diag-intro">
            W starym budownictwie wylewka nadaje się pod frezowanie, pod warunkiem że jej <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-diag-link">całkowita grubość wynosi minimum 35 mm</a>, a wytrzymałość na ściskanie odpowiada klasie co najmniej <strong>C12/15 (norma PN-EN 13813)</strong>. Kanały pod rury nacinane są zazwyczaj na 20–22 mm, więc pod dnem musi zostać <strong>minimum 15 mm nienaruszonej warstwy</strong>, by zapobiec pękaniu.
        </p>
    </div>

    <div class="rk-diag-interactive">
        <div id="rk-sim-core" class="rk-diag-sim-wrapper state-success">
            <div class="rk-diag-visual">
                <svg class="rk-diag-svg" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="20" fill="#d1d5db"/>
                    <path d="M 10 80 L 90 80" stroke="#9ca3af" stroke-width="2" stroke-dasharray="2 2"/>
                    
                    <g class="svg-screed-bottom">
                        <rect x="10" y="30" width="80" height="50" fill="#e5e7eb"/>
                        <path d="M 10 30 L 90 30" stroke="#cbd5e1" stroke-width="2"/>
                        <path d="M 40 30 L 40 50 L 60 50 L 60 30" fill="#f8fafc" stroke="#cbd5e1" stroke-width="2"/>
                        
                        <path class="svg-crack" d="M 42 50 L 38 65 L 45 80 M 58 50 L 62 60 L 55 80" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                        
                        <line class="svg-measure-line" x1="65" y1="50" x2="65" y2="80" stroke="#10b981" stroke-width="2" stroke-dasharray="2 2"/>
                        <text class="svg-measure-text" x="70" y="68" fill="#10b981">BUFOR</text>
                    </g>
                    
                    <rect x="10" y="28" width="80" height="2" fill="#9ca3af"/>
                    
                    <g class="svg-blade">
                        <circle cx="50" cy="30" r="18" fill="none" stroke="#374151" stroke-width="4" stroke-dasharray="10 4"/>
                        <circle cx="50" cy="30" r="4" fill="#374151"/>
                    </g>
                </svg>
            </div>

            <div class="rk-diag-controls">
                <h3 style="margin: 0 0 10px; font-size: 15px; color: var(--rk-diag-dark);">Symulacja cięcia (głębokość 20 mm)</h3>
                
                <button class="rk-diag-btn active" data-state="success" onclick="rkSetThickness('success')">
                    Grubość 50+ mm (Optymalna) <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </button>
                <button class="rk-diag-btn" data-state="warning" onclick="rkSetThickness('warning')">
                    Grubość ~35 mm (Minimum) <svg width="18" height="18" 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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </button>
                <button class="rk-diag-btn" data-state="danger" onclick="rkSetThickness('danger')">
                    Grubość < 30 mm (Krucha) <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                </button>

                <div class="rk-sim-feedback feedback-success">
                    <strong>Bezpieczny zapas!</strong> Ostrze diamentowe swobodnie nacina beton. Pozostała warstwa (bufor) w pełni chroni ułożoną rurę i zapewnia nośność stropu.
                </div>
                <div class="rk-sim-feedback feedback-warning">
                    <strong>Wymaga ostrożności.</strong> Pozostaje minimalny bufor 15 mm. Należy bezwzględnie sprawdzić, czy pod wylewką nie ma pustek lub luźnego piasku.
                </div>
                <div class="rk-sim-feedback feedback-danger">
                    <strong>Ryzyko zniszczenia!</strong> Frezarka przebija wylewkę na wylot lub uszkadza folię. Brak bufora nośnego powoduje zapadanie się rur i łamanie jastrychu pod ciężarem mebli.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-diag-grid">
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="20" rx="2" ry="2"></rect><line x1="8" y1="2" x2="8" y2="22"></line><line x1="16" y1="2" x2="16" y2="22"></line></svg> Młotek Schmidta</h4>
            <p>
                Weryfikacja przydatności podłoża powinna być przeprowadzona za pomocą sklerometru. Rozwarstwiony lub kruchy jastrych dyskwalifikuje obiekt z frezowania do czasu iniekcji żywicami.
            </p>
        </div>
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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> Odkrywki kontrolne</h4>
            <p>
                Starsze budynki mają nierówną grubość posadzek. Odkrywki należy wykonywać w strefach brzegowych i środkowych. Natrafienie maszyny na piasek powoduje wstrzymanie prac.
            </p>
        </div>
        <div class="rk-diag-box">
            <h4><svg width="20" height="20" 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="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Zbrojenie Teriva</h4>
            <p>
                Nacięcie cienkiej siatki przeciwskurczowej (do 3 mm) nie jest destrukcyjne. Jednak <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color:var(--rk-diag-brand); font-weight:700;">błędem wykonawczym</a> jest cięcie prętów konstrukcyjnych w stropach gęstożebrowych.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie na poziomie domeny (Bez elementów H2/H3 w Alercie)
document.addEventListener('DOMContentLoaded', function() {
    var h = window.location.hostname;
    var a = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (a.indexOf(h) === -1) {
        var box = document.getElementById('rk-screed-check-app');
        if (box) {
            box.innerHTML = '<div style="padding:40px; text-align:center; background:#111827; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif;"><strong>Błąd weryfikacji.</strong> Skrypt symulatora przypisany jest wyłącznie do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSetThickness(stateClass) {
    var core = document.getElementById('rk-sim-core');
    
    // Reset klas głównych
    core.classList.remove('state-success', 'state-warning', 'state-danger');
    
    // Dodaj nową klasę do wrappera (steruje to całym CSSem, SVG i komunikatami)
    core.classList.add('state-' + stateClass);

    // Zmiana aktywnych przycisków
    var btns = document.querySelectorAll('.rk-diag-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-diag-btn[data-state="' + stateClass + '"]').classList.add('active');
}
</script>



<style>
:root {
    --rk-price-dark: #064e3b; /* Głęboka zieleń budżetowa */
    --rk-price-brand: #10b981; /* Szmaragd */
    --rk-price-accent: #b45309; /* Ciepłe złoto / miedź instalacyjna */
    --rk-price-bg: #f8fafc;
    --rk-price-card: #ffffff;
    --rk-price-text: #334155;
    --rk-price-border: #e2e8f0;
}

.rk-price-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-price-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(6, 78, 59, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.2);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-price-header {
    background: linear-gradient(135deg, var(--rk-price-dark) 0%, #022c22 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-price-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-price-brand) 0%, var(--rk-price-accent) 100%);
}

.rk-price-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #a7f3d0;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(167, 243, 208, 0.3);
}

.rk-price-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
}

.rk-price-intro {
    font-size: 16px;
    line-height: 1.8;
    color: #d1fae5;
    margin: 0;
}

.rk-price-intro strong {
    color: #ffffff;
}

.rk-price-link {
    color: #34d399;
    text-decoration: none;
    border-bottom: 1px dashed #34d399;
    transition: all 0.3s;
}

.rk-price-link:hover {
    color: #6ee7b7;
    border-bottom-style: solid;
}

/* Część Interaktywna - Suwak i Kalkulator */
.rk-price-interactive {
    padding: 40px 50px;
    background: var(--rk-price-bg);
}

.rk-calc-box {
    background: #ffffff;
    border: 1px solid var(--rk-price-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

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

.rk-slider-label span {
    font-size: 24px;
    color: var(--rk-price-accent);
}

/* Custom Range Slider Styling */
.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 5px;
    background: #e2e8f0;
    outline: none;
    margin: 0;
}

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

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

/* Grid Wyników */
.rk-cost-display-grid {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wykres pierścieniowy dynamiczny */
.rk-cost-visual-box {
    position: relative;
    width: 100%;
    height: 220px;
    background: #0f172a;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-chart-svg {
    width: 100%;
    height: 100%;
    max-width: 180px;
}

.rk-chart-circle-bg { fill: none; stroke: #334155; stroke-width: 8; }
.rk-chart-circle-value {
    fill: none;
    stroke: var(--rk-price-brand);
    stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 251.2;
    stroke-dashoffset: 251.2;
    transform: rotate(-90deg);
    transform-origin: center;
    transition: stroke-dashoffset 0.5s ease-out;
}

.rk-chart-center-text {
    position: absolute;
    text-align: center;
    color: #ffffff;
}

.rk-chart-total { font-size: 20px; font-weight: 900; color: #34d399; }
.rk-chart-lbl { font-size: 11px; color: #94a3b8; text-transform: uppercase; }

/* Kafelki składowe kosztów */
.rk-breakdown-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-breakdown-item {
    background: var(--rk-price-bg);
    border: 1px solid var(--rk-price-border);
    padding: 15px 20px;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-item-title { font-size: 13px; color: var(--rk-price-text); font-weight: 600; }
.rk-item-value { font-size: 15px; color: var(--rk-price-dark); font-weight: 800; }

/* Porównanie metod na dole na mobile jedna pod drugą */
.rk-compare-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-compare-card {
    background: #ffffff;
    border: 1px solid var(--rk-price-border);
    border-radius: 12px;
    padding: 25px;
    position: relative;
}

.rk-compare-card.pro-method { border-left: 4px solid var(--rk-price-brand); }
.rk-compare-card.old-method { border-left: 4px solid #ef4444; }

.rk-comp-h { font-size: 16px; font-weight: 800; color: var(--rk-price-dark); margin: 0 0 10px 0; }
.rk-comp-p { font-size: 13px; line-height: 1.6; color: #64748b; margin: 0; }

@media (max-width: 768px) {
    .rk-price-header, .rk-price-interactive { padding: 30px 25px; }
    .rk-cost-display-grid { grid-template-columns: 1fr; }
    .rk-breakdown-list { grid-template-columns: 1fr; }
    .rk-compare-box { grid-template-columns: 1fr; gap: 15px; }
    .rk-price-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Koszty frezowania ogrzewania podłogowego w starym domu – Cennik 2026",
    "description": "Szczegółowa analiza budżetowa modernizacji instalacji. Sprawdź cennik robocizny, materiałów (PEX 14mm) oraz mas cementowych C2TE dla powierzchni 100 m².",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-koszty",
    "name": "Zestawienie kosztów składowych modernizacji instalacji płaszczyznowej",
    "description": "Dane finansowo-techniczne kosztów robocizny, materiałów instalacyjnych i próby szczelności dla powierzchni bazowej 100 m² netto.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena frezowania podłogówki za m²",
      "koszt rury pex pert 14mm",
      "masa polimerowo cementowa c2te cena",
      "próba ciśnieniowa ogrzewania koszt",
      "koszt modernizacji instalacji grzewczej"
    ],
    "measurementTechnique": "Kalkulacja rynkowa nakładów rzeczowo-finansowych na bazie standardów wykonawczych normy PN-EN 1264-4 dla systemów cienkowarstwowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Frezowanie i rury: Szacunkowo od 120 PLN do 180 PLN za m² netto.",
        "Materiały dodatkowe: Wymóg stosowania mas klasy C2TE o wysokiej przewodności cieplnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-kalkulator",
    "name": "Dynamiczny Kalkulator Budżetu Frezowania",
    "description": "Narzędzie matematyczne automatycznie obliczające wydatki na bazie metrażu z uwzględnieniem podziału na rury, robociznę, rozdzielacze i masę zalewową.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-price-container" id="rk-cost-analysis-app">
    <div class="rk-price-header">
        <div class="rk-price-badge">
            <svg width="14" height="14" 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>
            Analiza Budżetu
        </div>
        <h2 class="rk-price-title">Ile kosztuje frezowanie ogrzewania podłogowego w starym domu za m²?</h2>
        <p class="rk-price-intro">
            Średni koszt wykonania frezowania ogrzewania podłogowego w starym domu wynosi od <strong>120 PLN do 180 PLN za m² netto</strong> za samą usługę nacinania kanałów wraz z dostawą i montażem rury oraz rozdzielacza. Przyjmując kompleksową modernizację powierzchni wynoszącej dokładnie <strong>100 m²</strong>, całkowity budżet inwestycji, uwzględniający chemię montażową, <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-price-link">próby szczelności według normy PN-EN 1264-4</a> oraz podłączenie pętli do szafki rozdzielaczowej, zamyka się w przedziale <strong>16 000 PLN – 22 000 PLN</strong>.
        </p>
    </div>

    <div class="rk-price-interactive">
        <div class="rk-calc-box">
            <div class="rk-slider-group">
                <label class="rk-slider-label">
                    Wybierz powierzchnię modernizacji:
                    <span id="rk-area-val">100 m²</span>
                </label>
                <input type="range" min="30" max="200" value="100" class="rk-range-input" id="rkAreaRange" oninput="rkUpdateCosts(this.value)">
            </div>

            <div class="rk-cost-display-grid">
                <div class="rk-cost-visual-box">
                    <svg class="rk-chart-svg" viewBox="0 0 100 100">
                        <circle class="rk-chart-circle-bg" cx="50" cy="50" r="40"/>
                        <circle class="rk-chart-circle-value" id="rkChartCircle" cx="50" cy="50" r="40"/>
                    </svg>
                    <div class="rk-chart-center-text">
                        <div class="rk-chart-total" id="rk-total-price">19 000 zł</div>
                        <div class="rk-chart-lbl">Suma Netto</div>
                    </div>
                </div>

                <div class="rk-breakdown-list">
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Frezowanie linii i łuków</span>
                        <span class="rk-item-value" id="cost-frez">6 000 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Rura 5-warstwowa 14x2mm</span>
                        <span class="rk-item-value" id="cost-rura">3 000 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Rozdzielacz z rotametrami</span>
                        <span class="rk-item-value" id="cost-rozdz">2 150 zł</span>
                    </div>
                    <div class="rk-breakdown-item">
                        <span class="rk-item-title">Masa naprawcza C2TE</span>
                        <span class="rk-item-value" id="cost-masa">1 850 zł</span>
                    </div>
                    <div class="rk-breakdown-item" style="grid-column: 1 / -1;">
                        <span class="rk-item-title">Montaż i próba wodna (0,6 MPa)</span>
                        <span class="rk-item-value" id="cost-robota">6 000 zł</span>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-compare-box">
            <div class="rk-compare-card pro-method">
                <h4 class="rk-comp-h">Technologia frezowania jastrychu</h4>
                <p class="rk-comp-p">
                    Wylewka o grubości min. 35 mm z betonu klasy C12/15 pozwala zaoszczędzić około <strong>40% nakładów finansowych</strong>. Czas realizacji skraca się do zaledwie 3 dni roboczych, zachowując nienaruszone poziomy progów i drzwi.
                </p>
            </div>
            <div class="rk-compare-card old-method">
                <h4 class="rk-comp-h">Tradycyjna metoda &#8222;Mokra&#8221;</h4>
                <p class="rk-comp-p">
                    Skuwanie betonu, wywóz ton gruzu, nowy <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-price-link">styropian 100 mm</a> oraz wylewanie nowego jastrychu generuje koszty rzędu 220–310 PLN/m² (bez rur i rozdzielacza) oraz wyłącza dom z użytku na 4 tygodnie.
                </p>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym użyciem (bez znaczników nagłówkowych)
document.addEventListener('DOMContentLoaded', function() {
    var domainName = window.location.hostname;
    var validDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (validDomains.indexOf(domainName) === -1) {
        var el = document.getElementById('rk-cost-analysis-app');
        if (el) {
            el.innerHTML = '<div style="padding:40px; text-align:center; background:#022c22; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif;"><strong>Licencja wygasła.</strong> Ten komponent finansowy jest własnością chronioną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
    // Inicjalizacja koła na starcie
    rkUpdateCosts(100);
});

// 2. Logika dynamicznego przeliczania kosztów w czasie rzeczywistym
function rkUpdateCosts(area) {
    area = parseInt(area);
    document.getElementById('rk-area-val').innerText = area + ' m²';

    // Przeliczniki bazowe na bazie tekstu inżynierskiego
    var frez = Math.round(area * 60); 
    var rura = Math.round(area * 30);
    var rozdz = Math.round(1800 + (area * 3.5)); // Skalowanie wielkości rozdzielacza
    var masa = Math.round(area * 18.5);
    var robota = Math.round(area * 37.5 + 2250);

    var total = frez + rura + rozdz + masa + robota;

    // Aktualizacja pól tekstowych
    document.getElementById('cost-frez').innerText = frez.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-rura').innerText = rura.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-rozdz').innerText = rozdz.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-masa').innerText = masa.toLocaleString('pl-PL') + ' zł';
    document.getElementById('cost-robota').innerText = robota.toLocaleString('pl-PL') + ' zł';
    document.getElementById('rk-total-price').innerText = total.toLocaleString('pl-PL') + ' zł';

    // Aktualizacja animacji okręgu SVG (Obwód wynosi 251.2)
    var circle = document.getElementById('rkChartCircle');
    var maxTotal = 40000; // Punkt odniesienia dla 100% obwodu
    var percentage = total / maxTotal;
    if(percentage > 1) percentage = 1;
    var offset = 251.2 - (percentage * 251.2);
    circle.style.strokeDashoffset = offset;
}
</script>



<style>
:root {
    --rk-hydro-dark: #1e1b4b; /* Głębokie indygo */
    --rk-hydro-brand: #3b82f6; /* Wodny błękit */
    --rk-hydro-brand-light: #dbeafe;
    --rk-hydro-accent: #f97316; /* Ostrzegawczy pomarańcz */
    --rk-hydro-success: #10b981; /* Szmaragd */
    --rk-hydro-bg: #f8fafc;
    --rk-hydro-card: #ffffff;
    --rk-hydro-text: #334155;
    --rk-hydro-border: #e2e8f0;
}

.rk-hydro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-hydro-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(30, 27, 75, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.2);
    overflow: hidden;
}

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

.rk-hydro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.25);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-hydro-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
}

.rk-hydro-title span { color: #60a5fa; }

.rk-hydro-intro {
    font-size: 15px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-hydro-link {
    color: #93c5fd;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    transition: color 0.3s, border-color 0.3s;
}

.rk-hydro-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-hydro-interactive {
    padding: 40px 50px;
    background: var(--rk-hydro-bg);
}

.rk-hydro-sim-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    border-radius: 16px;
    padding: 10px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

/* Przełączniki (Toggle) */
.rk-hydro-controls {
    display: flex;
    gap: 10px;
    background: var(--rk-hydro-bg);
    padding: 10px;
    border-radius: 12px 12px 0 0;
    border-bottom: 1px solid var(--rk-hydro-border);
}

.rk-hydro-btn {
    flex: 1;
    padding: 14px 20px;
    border: 2px solid transparent;
    background: #ffffff;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-hydro-text);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-hydro-btn.active[data-pipe="14"] {
    background: var(--rk-hydro-brand-light);
    border-color: var(--rk-hydro-brand);
    color: #1e3a8a;
}

.rk-hydro-btn.active[data-pipe="16"] {
    background: #ffedd5;
    border-color: var(--rk-hydro-accent);
    color: #7c2d12;
}

/* Lewa Strona: Dane i Wzory */
.rk-hydro-data-panel {
    padding: 20px;
}

.rk-math-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-hydro-brand);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-bottom: 25px;
    font-family: monospace;
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

.rk-math-box strong { color: var(--rk-hydro-dark); font-size: 15px; }

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

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    padding: 15px;
    border-radius: 10px;
    transition: all 0.3s;
}

.rk-data-lbl { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
.rk-data-val { font-size: 20px; font-weight: 900; color: var(--rk-hydro-dark); }
.rk-data-val span { font-size: 14px; font-weight: 600; color: #94a3b8; }

/* Dynamiczne kolory w zależności od stanu */
#rk-sim-app.state-16 .rk-math-box { border-color: var(--rk-hydro-accent); }
#rk-sim-app.state-16 .val-alert { color: var(--rk-hydro-accent); }
#rk-sim-app.state-14 .val-success { color: var(--rk-hydro-success); }

/* Prawa Strona: SVG Wizualizacja */
.rk-hydro-visual {
    background: var(--rk-hydro-dark);
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 250px;
}

.rk-hydro-svg { width: 100%; height: 100%; max-width: 250px; }

/* Elementy SVG z CSS Transitions */
.svg-pipe { transition: r 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-groove { transition: d 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.svg-crack { opacity: 0; stroke-dasharray: 40; stroke-dashoffset: 40; transition: opacity 0.3s; }
.svg-water { transform-origin: center; animation: pulseWater 2s infinite alternate; }
.svg-heat-wave { stroke-dasharray: 8 8; animation: heatRise 1.5s linear infinite; opacity: 0; transition: opacity 0.3s; }

@keyframes pulseWater { 0% { fill: #3b82f6; } 100% { fill: #60a5fa; } }
@keyframes heatRise { to { stroke-dashoffset: -16; } }

/* Stan 14mm */
#rk-sim-app.state-14 .svg-pipe { r: 14; }
#rk-sim-app.state-14 .svg-groove { d: path("M 20 40 L 20 65 L 80 65 L 80 40"); }
#rk-sim-app.state-14 .svg-heat-wave { opacity: 1; stroke: #ef4444; }

/* Stan 16mm (Ryzyko) */
#rk-sim-app.state-16 .svg-pipe { r: 18; }
#rk-sim-app.state-16 .svg-groove { d: path("M 15 40 L 15 75 L 85 75 L 85 40"); }
#rk-sim-app.state-16 .svg-crack { opacity: 1; animation: drawCrackHydro 0.5s 0.3s forwards; }
#rk-sim-app.state-16 .svg-heat-wave { opacity: 0.3; stroke: #f97316; animation-duration: 4s; }

@keyframes drawCrackHydro { to { stroke-dashoffset: 0; } }

/* Informacje pod spodem */
.rk-hydro-footer-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-hydro-info-card {
    background: #ffffff;
    border: 1px solid var(--rk-hydro-border);
    padding: 20px;
    border-radius: 16px;
}

.rk-hydro-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-hydro-dark);
}

.rk-hydro-info-card p {
    font-size: 13px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-hydro-header, .rk-hydro-interactive { padding: 30px 20px; }
    .rk-hydro-sim-layout { grid-template-columns: 1fr; }
    .rk-hydro-controls { flex-direction: column; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-hydro-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-hydro-title { font-size: 24px; }
    .rk-hydro-visual { min-height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-rury",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Dobór rur i parametrów hydraulicznych przy frezowaniu",
    "description": "Standardem inżynierskim dla frezowania jest rura 14x2 mm. Zapewnia mniejszy zład wody, szybki czas reakcji i chroni cienką wylewkę przed spękaniem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-hydraulika",
    "name": "Analiza parametrów hydraulicznych rur PEX/PERT",
    "description": "Zestawienie pojemności wodnej (zładu instalacji) i wpływu średnicy rury na bezwładność cieplną systemu podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "średnica rury pex frezowanie",
      "rozstaw rur ogrzewanie podłogowe 10 15",
      "bariera antydyfuzyjna evoh din 4726",
      "pojemność wodna zład instalacji",
      "bezwładność cieplna podłogówki"
    ],
    "measurementTechnique": "Obliczenia pojemności na bazie wzoru na objętość walca (V = π · r²) weryfikujące masę czynnika grzewczego dla 100 m².",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność rury 14x2: 0,078 l/m.b., dająca szybką reakcję w < 45 minut.",
        "Ryzyko rury 16x2: Większy zład i wymóg głębokiej bruzdy (24 mm) grozi pęknięciem wylewki 40 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-pojemnosc",
    "name": "Symulator Zładu i Przekroju Hydraulicznego",
    "description": "Kalkulator interaktywny porównujący wpływ średnicy rury na objętość wody w pętlach i zagrożenia strukturalne dla jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hydro-container" id="rk-hydro-sim-lock">
    <div class="rk-hydro-header">
        <div class="rk-hydro-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Parametry Hydrauliczne
        </div>
        <h2 class="rk-hydro-title">Jaki rozstaw rur i średnicę PEX/PERT wybrać przy frezowaniu?</h2>
        <p class="rk-hydro-intro">
            W technologii frezowania jastrychu standardem inżynierskim jest stosowanie <strong>rur o średnicy zewnętrznej 14 mm (14 × 2 mm)</strong>. Układa się je w rozstawie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-hydro-link">100 mm w strefach brzegowych</a> oraz 150 mm w strefach stałego przebywania ludzi. Zastosowanie popularnej rury 16 mm jest ryzykowne, ponieważ wymaga wykonania bruzdy o głębokości aż 24 mm, co przy cienkich starych wylewkach <strong>może doprowadzić do pękania jastrychu</strong>.
        </p>
        <p class="rk-hydro-intro" style="margin:0;">
            Niezależnie od średnicy, rury muszą bezwzględnie posiadać <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-hydro-link">barierę antydyfuzyjną EVOH (norma DIN 4726)</a> zapobiegającą przenikaniu niszczącego tlenu do instalacji.
        </p>
    </div>

    <div class="rk-hydro-interactive">
        <div id="rk-sim-app" class="rk-hydro-sim-layout state-14">
            
            <div style="display: flex; flex-direction: column;">
                <div class="rk-hydro-controls">
                    <button class="rk-hydro-btn active" data-pipe="14" onclick="rkSwitchPipe('14')">Rura 14x2 mm (Standard)</button>
                    <button class="rk-hydro-btn" data-pipe="16" onclick="rkSwitchPipe('16')">Rura 16x2 mm (Ryzyko)</button>
                </div>

                <div class="rk-hydro-data-panel">
                    <div class="rk-math-box" id="rk-math-content">
                        <strong>Obliczenie zładu (14 mm):</strong><br>
                        Średnica wew. (d_i) = 10 mm = 0,01 m.<br>
                        V = π · (d_i / 2)²<br>
                        V = 3,14159 · (0,005 m)²<br>
                        V = <strong>0,07854 l/m.b.</strong>
                    </div>

                    <div class="rk-data-grid">
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Zład wody (100 m²)</div>
                            <div class="rk-data-val" id="rk-val-vol">52,38 <span>litrów</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Reakcja (Bezwładność)</div>
                            <div class="rk-data-val val-success" id="rk-val-time">< 45 <span>minut</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Szerokość bruzdy</div>
                            <div class="rk-data-val" id="rk-val-groove">16 <span>mm</span></div>
                        </div>
                        <div class="rk-data-card">
                            <div class="rk-data-lbl">Głębokość bruzdy</div>
                            <div class="rk-data-val" id="rk-val-depth">20-22 <span>mm</span></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-hydro-visual">
                <svg class="rk-hydro-svg" viewBox="0 0 100 100">
                    <rect x="0" y="40" width="100" height="60" fill="#334155"/>
                    <path d="M 0 40 L 100 40" stroke="#475569" stroke-width="2"/>
                    
                    <path class="svg-groove" fill="#0f172a" stroke="#475569" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                    
                    <circle class="svg-pipe" cx="50" cy="50" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                    <circle class="svg-pipe svg-water" cx="50" cy="50"/>

                    <path class="svg-heat-wave" d="M 35 25 Q 40 10 35 0 M 50 30 L 50 0 M 65 25 Q 60 10 65 0" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <path class="svg-crack" d="M 45 75 L 40 85 L 50 100" fill="none" stroke="#f97316" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-hydro-footer-grid">
        <div class="rk-hydro-info-card">
            <h4><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="var(--rk-hydro-brand)" stroke-width="3" style="margin-right:5px; vertical-align:middle;"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg> Drastyczna redukcja zładu</h4>
            <p>
                Zastosowanie rury o mniejszej średnicy redukuje ilość wody w układzie o ponad 30%. Oznacza to, że <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/" style="color:var(--rk-hydro-brand); font-weight:600;">zład instalacji nagrzewa się znacznie szybciej</a>, co pozwala na błyskawiczne wyczucie ciepła pod stopami po uruchomieniu termostatu.
            </p>
        </div>
        <div class="rk-hydro-info-card">
            <h4><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="3" style="margin-right:5px; vertical-align:middle;"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> Dlaczego rura 16 mm jest groźna?</h4>
            <p>
                Tradycyjna <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" style="color:#f97316; font-weight:600;">rura 16 mm</a> wymusza głębsze nacięcia. Przy wylewkach rzędu 40 mm, ostrze może naruszyć izolację lub doprowadzić do przełamania betonu, niszcząc nośność posadzki.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny bez H2/H3 w komunikacie o błędzie
document.addEventListener('DOMContentLoaded', function() {
    var checkDomain = window.location.hostname;
    var allowedList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedList.indexOf(checkDomain) === -1) {
        var app = document.getElementById('rk-hydro-sim-lock');
        if (app) {
            app.innerHTML = '<div style="padding:40px; text-align:center; background:#1e1b4b; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa dostępu.</strong> Skrypt symulacyjny jest przypisany wyłącznie do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchPipe(type) {
    var core = document.getElementById('rk-sim-app');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-hydro-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-hydro-btn[data-pipe="' + type + '"]').classList.add('active');

    // Zmiana klas i danych
    if (type === '14') {
        core.className = 'rk-hydro-sim-layout state-14';
        
        document.getElementById('rk-math-content').innerHTML = "<strong>Obliczenie zładu (14 mm):</strong><br>Średnica wew. (d_i) = 10 mm = 0,01 m.<br>V = π · (d_i / 2)²<br>V = 3,14159 · (0,005 m)²<br>V = <strong>0,07854 l/m.b.</strong>";
        document.getElementById('rk-val-vol').innerHTML = "52,38 <span>litrów</span>";
        
        var t = document.getElementById('rk-val-time');
        t.className = 'rk-data-val val-success';
        t.innerHTML = "< 45 <span>minut</span>";
        
        document.getElementById('rk-val-groove').innerHTML = "16 <span>mm</span>";
        document.getElementById('rk-val-depth').innerHTML = "20-22 <span>mm</span>";

    } else {
        core.className = 'rk-hydro-sim-layout state-16';
        
        document.getElementById('rk-math-content').innerHTML = "<strong>Obliczenie zładu (16 mm):</strong><br>Średnica wew. (d_i) = 12 mm = 0,012 m.<br>V = π · (d_i / 2)²<br>V = 3,14159 · (0,006 m)²<br>V = <strong>0,1130 l/m.b.</strong>";
        document.getElementById('rk-val-vol').innerHTML = "75,40 <span>litrów</span>";
        
        var t = document.getElementById('rk-val-time');
        t.className = 'rk-data-val val-alert';
        t.innerHTML = "3-5 <span>godzin</span>";
        
        document.getElementById('rk-val-groove').innerHTML = "18 <span>mm</span>";
        document.getElementById('rk-val-depth').innerHTML = "24-26 <span>mm</span>";
    }
}
</script>



<style>
:root {
    --rk-therm-dark: #1e293b; /* Głęboki bazalt */
    --rk-therm-brand: #ef4444; /* Termiczna czerwień */
    --rk-therm-brand-light: #fee2e2;
    --rk-therm-shield: #06b6d4; /* Błękit aerożelu */
    --rk-therm-shield-light: #cffafe;
    --rk-therm-warning: #f97316; /* Ostrzegawczy pomarańcz */
    --rk-therm-bg: #f8fafc;
    --rk-therm-card: #ffffff;
    --rk-therm-text: #334155;
    --rk-therm-border: #e2e8f0;
}

.rk-therm-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-therm-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(30, 41, 59, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.2);
    overflow: hidden;
}

/* Sekcja Wprowadzająca (Header) */
.rk-therm-header {
    background: linear-gradient(145deg, #0f172a 0%, var(--rk-therm-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-therm-brand);
}

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

.rk-therm-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-therm-paragraph {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-therm-paragraph strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-therm-link {
    color: #fca5a5;
    text-decoration: none;
    border-bottom: 1px dashed #fca5a5;
    transition: all 0.3s;
}

.rk-therm-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-therm-interactive {
    padding: 40px 50px;
    background: var(--rk-therm-bg);
}

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

.rk-sim-btn {
    flex: 1;
    max-width: 280px;
    padding: 16px 20px;
    border: 2px solid var(--rk-therm-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-therm-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-sim-btn.active[data-mode="loss"] {
    border-color: var(--rk-therm-brand);
    background: var(--rk-therm-brand-light);
    color: #991b1b;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-sim-btn.active[data-mode="shield"] {
    border-color: var(--rk-therm-shield);
    background: var(--rk-therm-shield-light);
    color: #083344;
    box-shadow: 0 10px 20px -5px rgba(6, 182, 212, 0.2);
}

/* Ekran Symulatora (Grid: SVG + Parametry) */
.rk-therm-screen {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-therm-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG Termowizja) */
.rk-therm-visual {
    background: #0f172a;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 220px;
    border: 2px solid #334155;
}

.rk-svg-thermo {
    width: 100%;
    height: 100%;
    max-width: 250px;
}

/* Animacje SVG */
.anim-heat-pipe { animation: pulseCore 2s infinite alternate; }
.anim-heat-arrow { stroke-dasharray: 10; animation: flowDown 1.5s linear infinite; transition: opacity 0.4s; }
.anim-reflect-arrow { stroke-dasharray: 10; animation: flowUp 1.5s linear infinite; opacity: 0; transition: opacity 0.4s; }
.svg-aerogel-layer { stroke-dasharray: 150; stroke-dashoffset: 150; opacity: 0; transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }

@keyframes pulseCore { 0% { fill: #f97316; filter: drop-shadow(0 0 5px #f97316); } 100% { fill: #ef4444; filter: drop-shadow(0 0 15px #ef4444); } }
@keyframes flowDown { to { stroke-dashoffset: -20; } }
@keyframes flowUp { to { stroke-dashoffset: 20; } }

/* Stan 1: Ucieczka w dół (Loss) */
#rk-sim-therm.state-loss .anim-heat-arrow { opacity: 1; stroke: #ef4444; }

/* Stan 2: Aerożel (Shield) */
#rk-sim-therm.state-shield .anim-heat-arrow { opacity: 0.2; stroke: #f59e0b; }
#rk-sim-therm.state-shield .anim-reflect-arrow { opacity: 1; stroke: #06b6d4; }
#rk-sim-therm.state-shield .svg-aerogel-layer { stroke-dashoffset: 0; opacity: 1; filter: drop-shadow(0 0 8px #06b6d4); }

/* Część z parametrami */
.rk-therm-data-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    align-content: center;
}

.rk-therm-box {
    background: var(--rk-therm-bg);
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-therm-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-therm-label { font-size: 13px; color: #64748b; font-weight: 700; text-transform: uppercase; }
.rk-therm-val { font-size: 18px; font-weight: 900; color: var(--rk-therm-dark); transition: color 0.3s; }
.rk-therm-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

#rk-sim-therm.state-loss .val-dynamic { color: var(--rk-therm-brand); }
#rk-sim-therm.state-shield .val-dynamic { color: var(--rk-therm-shield); }

/* Kafelki Informacyjne (Dół) */
.rk-therm-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

.rk-therm-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-therm-dark);
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-therm-info-card h4 svg { color: var(--rk-therm-warning); }
.rk-therm-info-card p { font-size: 13px; line-height: 1.6; color: #4b5563; margin: 0; }

@media (max-width: 768px) {
    .rk-therm-header, .rk-therm-interactive { padding: 30px 20px; }
    .rk-sim-controls { flex-direction: column; }
    .rk-sim-btn { max-width: 100%; }
    .rk-therm-screen { grid-template-columns: 1fr; }
    .rk-therm-visual { min-height: 180px; }
    .rk-therm-info-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-therm-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Jak rozwiązać problem braku izolacji termicznej podłogi na gruncie przy frezowaniu?",
    "description": "Zastosowanie powłok aerożelowych, mikrosfer szklanych oraz rekuperacji pozwala ograniczyć ucieczkę ciepła w dół do gruntu i ratuje SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-izolacja",
    "name": "Analiza strat cieplnych i mikroizolacji bruzd frezowanych",
    "description": "Porównanie efektywności energetycznej standardowej wylewki na gruncie z systemem wyposażonym w odbłyśniki aerożelowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "mikrosfery szklane podłogówka",
      "powłoka termoizolacyjna aerożel ogrzewanie",
      "straty ciepła do gruntu frezowanie",
      "rekuperacja a podłogówka",
      "spadek scop pompy ciepła"
    ],
    "measurementTechnique": "Obliczenia strat przenikania do gruntu i odbicia podczerwieni wg wytycznych normy PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Strata rzędu 35%-45% w dół, drastyczny spadek SCOP pompy ciepła o 20%.",
        "Stan zoptymalizowany: Zastosowanie powłoki aerożelowej o współczynniku λ = 0,014 W/(m·K) ratuje bilans energetyczny."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-izolacja",
    "name": "Symulator Strat Ciepła do Gruntu",
    "description": "Narzędzie wizualizujące kierunki przepływu energii cieplnej w systemach bez poziomej izolacji EPS/PIR, obrazujące działanie mikrobarier.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-therm-container" id="rk-therm-guard-lock">
    <div class="rk-therm-header">
        <div class="rk-therm-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Termika i Mostki
        </div>
        <h2 class="rk-therm-title">Jak rozwiązać problem braku izolacji termicznej podłogi na gruncie?</h2>
        <p class="rk-therm-paragraph">
            Brak izolacji termicznej pod jastrychem na gruncie w starym domu powoduje <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/" class="rk-therm-link">ucieczkę strumienia ciepła w dół na poziomie 35% - 45%</a>. Stanowi to bezpośrednie naruszenie zapisów <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-therm-link">normy PN-EN 1264-4</a>, która dla podłóg na gruncie wymaga minimalnego oporu cieplnego izolacji o wartości <strong>R = 2,25 m²·K/W</strong>.
        </p>
        <p class="rk-therm-paragraph" style="margin: 0;">
            Jeżeli nie możemy ułożyć płyt EPS100 lub PIR, jedynym inżynierskim ratunkiem ograniczającym straty jest <strong>obniżenie zasilania do max 32°C</strong>, zastosowanie powłok z aerożelu (<strong>λ = 0,014 W/(m·K)</strong>) oraz integracja z systemem mechanicznej <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-therm-link">wentylacji z odzyskiem ciepła (rekuperacją)</a>.
        </p>
    </div>

    <div class="rk-therm-interactive">
        <div class="rk-sim-controls">
            <button class="rk-sim-btn active" data-mode="loss" onclick="rkSwitchTherm('loss')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
                Standard (Ucieczka ciepła w dół)
            </button>
            <button class="rk-sim-btn" data-mode="shield" onclick="rkSwitchTherm('shield')">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Mikrobariera Aerożelowa + OZE
            </button>
        </div>

        <div id="rk-sim-therm" class="rk-therm-screen state-loss">
            <div class="rk-therm-visual">
                <svg class="rk-svg-thermo" viewBox="0 0 100 100">
                    <rect x="0" y="70" width="100" height="30" fill="#1e293b"/>
                    <path d="M 0 70 L 100 70" stroke="#334155" stroke-width="2" stroke-dasharray="4 4"/>
                    
                    <rect x="0" y="30" width="100" height="40" fill="#334155"/>
                    <path d="M 30 30 L 30 55 L 70 55 L 70 30" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                    
                    <path class="svg-aerogel-layer" d="M 32 30 L 32 53 L 68 53 L 68 30" fill="none" stroke="#06b6d4" stroke-width="4" stroke-linejoin="round"/>

                    <circle cx="50" cy="42" r="10" fill="none" stroke="#f8fafc" stroke-width="2"/>
                    <circle class="anim-heat-pipe" cx="50" cy="42" r="8"/>

                    <path class="anim-heat-arrow" d="M 40 55 L 40 85 M 50 55 L 50 90 M 60 55 L 60 85" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <polygon points="38,82 42,82 40,86" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>
                    <polygon points="48,87 52,87 50,91" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>
                    <polygon points="58,82 62,82 60,86" fill="#ef4444" class="anim-heat-arrow" style="stroke:none;"/>

                    <path class="anim-reflect-arrow" d="M 40 50 Q 30 50 30 20 M 60 50 Q 70 50 70 20 M 50 48 L 50 15" fill="none" stroke-width="3" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-therm-data-grid">
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Straty w dół</span>
                    <span class="rk-therm-val val-dynamic" id="rk-val-loss">45% <span>(Krytyczne)</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Wpływ na SCOP pompy</span>
                    <span class="rk-therm-val val-dynamic" id="rk-val-scop">- 20% <span>spadku</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Temp. zasilania</span>
                    <span class="rk-therm-val" id="rk-val-temp">38°C <span>(Wysoka)</span></span>
                </div>
                <div class="rk-therm-box">
                    <span class="rk-therm-label">Lambda izolacji bruzdy</span>
                    <span class="rk-therm-val" id="rk-val-lambda">Brak <span>(Zwykły grunt)</span></span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-therm-info-grid">
        <div class="rk-therm-info-card">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg> 1. Grunt o wysokiej penetracji</h4>
            <p>
                Przed zastosowaniem barier odbijających, frezowany kanał musi zostać idealnie odkurzony (odkurzacz klasy M) i zagruntowany. Pył betonowy blokuje adhezję powłok izolacyjnych.
            </p>
        </div>
        <div class="rk-therm-info-card">
            <h4><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"></path></svg> 2. Płynny Aerożel lub Mikrosfery</h4>
            <p>
                Natrysk lub malowanie wnętrza rowka płynną powłoką na bazie mikrosfer szklanych (λ = 0,014 W/(m·K)) tworzy lustro odbijające promieniowanie podczerwone (cieplne) ku górze.
            </p>
        </div>
        <div class="rk-therm-info-card">
            <h4><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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> 3. Rekuperacja (Złota zasada)</h4>
            <p>
                Jeśli tracimy ciepło w podłogę, musimy odzyskać je z powietrza. <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" style="color:var(--rk-therm-warning); font-weight:700;">Wentylacja z odzyskiem</a> drastycznie obniża zapotrzebowanie budynku, rekompensując ucieczkę energii w grunt.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym użyciem (bez znaczników nagłówkowych)
document.addEventListener('DOMContentLoaded', function() {
    var locHost = window.location.hostname;
    var allowedList = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedList.indexOf(locHost) === -1) {
        var appCont = document.getElementById('rk-therm-guard-lock');
        if (appCont) {
            appCont.innerHTML = '<div style="padding:40px; text-align:center; background:#1e293b; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Blokada bezpieczeństwa.</strong> Algorytm wizualizacji termicznej przypisany jest tylko do autoryzowanej domeny projekt-ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchTherm(mode) {
    var screen = document.getElementById('rk-sim-therm');
    
    // Obsługa przycisków
    var btns = document.querySelectorAll('.rk-sim-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-sim-btn[data-mode="' + mode + '"]').classList.add('active');

    // Obsługa logiki widoku i danych
    if (mode === 'loss') {
        screen.className = 'rk-therm-screen state-loss';
        document.getElementById('rk-val-loss').innerHTML = "45% <span>(Krytyczne)</span>";
        document.getElementById('rk-val-scop').innerHTML = "- 20% <span>spadku</span>";
        document.getElementById('rk-val-temp').innerHTML = "38°C <span>(Wysoka)</span>";
        document.getElementById('rk-val-lambda').innerHTML = "Brak <span>(Zwykły grunt)</span>";
    } else {
        screen.className = 'rk-therm-screen state-shield';
        document.getElementById('rk-val-loss').innerHTML = "< 18% <span>(Zredukowane)</span>";
        document.getElementById('rk-val-scop').innerHTML = "Stabilny <span>(<a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-therm-shield); font-weight:700;'>Pompa Ciepła chroniona</a>)</span>";
        document.getElementById('rk-val-temp').innerHTML = "32°C <span>(Zoptymalizowana)</span>";
        document.getElementById('rk-val-lambda').innerHTML = "0,014 W/(m·K) <span>(Aerożel)</span>";
    }
}
</script>



<style>
:root {
    --rk-loop-dark: #0f172a; /* Głęboki grafit */
    --rk-loop-brand: #6366f1; /* Indygo / Fiolet techniczny */
    --rk-loop-brand-light: #e0e7ff;
    --rk-loop-cyan: #06b6d4; /* Cyjan przepływu */
    --rk-loop-danger: #f43f5e; /* Czerwień blokady */
    --rk-loop-success: #10b981; /* Zielony bezpieczny */
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-text: #334155;
    --rk-loop-border: #e2e8f0;
}

.rk-loop-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-loop-card);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.2);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-loop-header {
    background: linear-gradient(135deg, #1e1b4b 0%, var(--rk-loop-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-loop-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-loop-brand) 0%, var(--rk-loop-cyan) 100%);
}

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.2);
    color: #c7d2fe;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(199, 210, 254, 0.3);
}

.rk-loop-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
}

.rk-loop-intro {
    font-size: 15px;
    line-height: 1.75;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-loop-intro strong {
    color: #ffffff;
}

.rk-loop-link {
    color: #a5b4fc;
    text-decoration: none;
    border-bottom: 1px dashed #a5b4fc;
    transition: all 0.3s;
}

.rk-loop-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Część Interaktywna - Suwak i Wykresy */
.rk-loop-interactive {
    padding: 40px 50px;
    background: var(--rk-loop-bg);
}

.rk-loop-calc-box {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

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

.rk-loop-slider-label span {
    font-size: 24px;
    color: var(--rk-loop-brand);
}

/* Custom Range Input */
.rk-loop-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 5px;
    background: #e2e8f0;
    outline: none;
    margin: 0;
}

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

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

/* Układ Wizualizacja + Kafelki */
.rk-loop-display-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: center;
}

/* NOWE SVG: Pętla i Pompa Obiegowa */
.rk-loop-visual-box {
    background: #0f172a;
    border-radius: 12px;
    padding: 15px;
    height: 240px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-hydro-diagram {
    width: 100%;
    height: 100%;
}

/* Animacje i Transformacje dla nowego SVG */
.rk-svg-rotor { transform-origin: 30px 50px; } /* Środek pompy (x:30, y:50) */
.rk-svg-flow-path { stroke-dasharray: 8 8; }
.rk-svg-alert-wave { opacity: 0; transition: opacity 0.3s; transform-origin: 50px 50px; }

@keyframes spinRotorFast { 100% { transform: rotate(360deg); } }
@keyframes spinRotorSlow { 100% { transform: rotate(360deg); } }
@keyframes flowFast { to { stroke-dashoffset: -16; } }
@keyframes flowSlow { to { stroke-dashoffset: -16; } }
@keyframes alertPulse { 0% { opacity: 0.3; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }

/* Dynamiczne modyfikowanie CSS przez JS */
.state-safe .rk-svg-rotor { animation: spinRotorFast 1s linear infinite; }
.state-safe .rk-svg-flow-path { animation: flowFast 1s linear infinite; stroke: var(--rk-loop-cyan); }
.state-safe .rk-svg-alert-wave { opacity: 0; animation: none; }

.state-blocked .rk-svg-rotor { animation: spinRotorSlow 3s linear infinite; }
.state-blocked .rk-svg-flow-path { animation: flowSlow 4s linear infinite; stroke: var(--rk-loop-danger); }
.state-blocked .rk-svg-alert-wave { opacity: 1; animation: alertPulse 1.5s infinite alternate; }

/* Kafelki parametrów hydraulicznych */
.rk-loop-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-loop-card-stat {
    background: var(--rk-loop-bg);
    border: 1px solid var(--rk-loop-border);
    padding: 15px 20px;
    border-radius: 10px;
}

.rk-stat-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
.rk-stat-val { font-size: 20px; font-weight: 900; color: var(--rk-loop-dark); }
.rk-stat-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

/* Komunikat Inżynierski */
.rk-loop-feedback {
    grid-column: 1 / -1;
    padding: 15px 20px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
    margin-top: 10px;
    font-weight: 500;
}

.rk-loop-feedback.success { background: #d1fae5; color: #065f46; border-left: 4px solid var(--rk-loop-success); }
.rk-loop-feedback.danger { background: #fee2e2; color: #991b1b; border-left: 4px solid var(--rk-loop-danger); }

/* Dolna sekcja obliczeniowa (Kafelki na mobile) */
.rk-loop-footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px 40px;
}

.rk-formula-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    padding: 20px;
    border-radius: 14px;
}

.rk-formula-card h4 { font-size: 14px; font-weight: 800; color: var(--rk-loop-dark); margin: 0 0 8px 0; }
.rk-formula-card p { font-size: 12px; font-family: monospace; color: #475569; margin: 0; background: var(--rk-loop-bg); padding: 8px 12px; border-radius: 6px; }

@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive { padding: 30px 25px; }
    .rk-loop-display-grid { grid-template-columns: 1fr; }
    .rk-loop-param-grid { grid-template-columns: 1fr; }
    .rk-loop-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-loop-title { font-size: 24px; }
    .rk-loop-visual-box { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-dlugosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Maksymalna długość pętli ogrzewania podłogowego przy rurach 14 mm",
    "description": "Analiza hydrauliczna dla średnicy 14 mm. Dowiedz się, dlaczego 80 m to nieprzekraczalna granica i jak obliczyć opory liniowe oraz strumień masowy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-hydraulika-14mm",
    "name": "Zależność oporów hydraulicznych i przepływów od długości pętli 14x2mm",
    "description": "Dane fizyczne i hydrauliczne: strumień masowy, prędkość liniowa i strata ciśnienia obliczone dla zasilania pompy ciepła (delta T = 5K, Q = 900W).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki 14mm",
      "opory hydrauliczne rury pex 14x2",
      "strumień masowy wody bilans cieplny",
      "zamknięcie hydrauliczne pętli grzewczej",
      "regulacja rotometrów rozdzielacza"
    ],
    "measurementTechnique": "Modelowanie hydrauliczne oparte na równaniu Darcy-Weisbacha dla przepływów w rurach gładkich polimerowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Granica bezpieczeństwa: Do 80 metrów bieżących, strata ciśnienia poniżej 20 kPa.",
        "Strefa krytyczna: Powyżej 85 metrów, opory przekraczają 22 kPa, ryzyko braku przepływu czynnika."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-kalkulator-pętli",
    "name": "Interaktywny Symulator Oporów Pętli 14mm",
    "description": "Aplikacja inżynierska wyliczająca dynamicznie stratę ciśnienia oraz odwzorowująca zjawisko zamknięcia hydraulicznego przy zmianie długości obwodu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-length-app">
    <div class="rk-loop-header">
        <div class="rk-loop-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="6" y1="3" x2="6" y2="21"></line><line x1="18" y1="3" x2="18" y2="21"></line><line x1="12" y1="3" x2="12" y2="21"></line></svg>
            Hydraulika Układu
        </div>
        <h2 class="rk-loop-title">Jaka jest maksymalna długość pętli ogrzewania podłogowego przy rurach 14 mm?</h2>
        <p class="rk-loop-intro">
            Maksymalna dopuszczalna długość pojedynczej pętli grzewczej dla rury o średnicy 14 × 2 mm wynosi <strong>80 metrów bieżących</strong> (wliczając odcinki dojściowe do rozdzielacza). Pozwala to na pokrycie maksymalnie 11–12 m² powierzchni pomieszczenia przy <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/" class="rk-loop-link">rozstawie rur co 150 mm</a>. 
        </p>
        <p class="rk-loop-intro" style="margin: 0;">
            Przekroczenie tej granicy skutkuje gwałtownym, nieliniowym wzrostem oporów hydraulicznych <strong>powyżej wartości 22 kPa</strong>. Przekracza to możliwości regulacyjne standardowych rotometrów i prowadzi do zjawiska <strong>"zamknięcia hydraulicznego" pętli</strong> – woda wybiera drogę o mniejszym oporze w krótszych obwodach, a pomieszczenie pozostaje niedogrzane.
        </p>
    </div>

    <div class="rk-loop-interactive">
        <div class="rk-loop-calc-box">
            <div class="rk-loop-slider-group">
                <label class="rk-loop-slider-label">
                    Zmień długość projektowanej pętli 14 mm:
                    <span id="rk-loop-len-text">80 m</span>
                </label>
                <input type="range" min="40" max="120" value="80" step="5" class="rk-loop-range" id="rkLoopRange" oninput="rkCalcHydraulics(this.value)">
            </div>

            <div class="rk-loop-display-grid">
                
                <div class="rk-loop-visual-box" id="rkSvgStateCtrl">
                    <svg class="rk-hydro-diagram" viewBox="0 0 100 100">
                        <path d="M 30 20 L 70 20 C 81 20 90 29 90 40 L 90 60 C 90 71 81 80 70 80 L 30 80" fill="none" stroke="#1e293b" stroke-width="8" stroke-linecap="round"/>
                        <path class="rk-svg-flow-path" d="M 30 20 L 70 20 C 81 20 90 29 90 40 L 90 60 C 90 71 81 80 70 80 L 30 80" fill="none" stroke-width="4" stroke-linecap="round"/>
                        
                        <line x1="30" y1="20" x2="30" y2="40" stroke="#1e293b" stroke-width="8"/>
                        <line x1="30" y1="60" x2="30" y2="80" stroke="#1e293b" stroke-width="8"/>
                        
                        <circle cx="30" cy="50" r="14" fill="#334155" stroke="#1e293b" stroke-width="4"/>
                        <g class="rk-svg-rotor">
                            <line x1="30" y1="40" x2="30" y2="60" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                            <line x1="20" y1="50" x2="40" y2="50" stroke="#94a3b8" stroke-width="3" stroke-linecap="round"/>
                            <circle cx="30" cy="50" r="3" fill="#cbd5e1"/>
                        </g>

                        <circle class="rk-svg-alert-wave" cx="70" cy="50" r="12" fill="none" stroke="#f43f5e" stroke-width="3"/>
                        <path class="rk-svg-alert-wave" d="M 64 44 L 76 56 M 76 44 L 64 56" stroke="#f43f5e" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>

                <div class="rk-loop-param-grid">
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Opór hydrauliczny pętli</div>
                        <div class="rk-stat-val" id="val-pressure">19,4 <span>kPa</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Przepływ (Rotametr)</div>
                        <div class="rk-stat-val" id="val-flow">2,6 <span>l/min</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Prędkość liniowa czynnika</div>
                        <div class="rk-stat-val" id="val-velocity">0,55 <span>m/s</span></div>
                    </div>
                    <div class="rk-loop-card-stat">
                        <div class="rk-stat-lbl">Strumień masowy</div>
                        <div class="rk-stat-val">154,8 <span>kg/h</span></div>
                    </div>

                    <div class="rk-loop-feedback success" id="loop-msg">
                        <strong>Standard Inżynierski spełniony.</strong> Przepływ wody wynosi 0,55 m/s – zapewnia to samoodpowietrzanie pętli (zgodnie z PN-EN 1264) bez generowania szumów i przeciążania pompy obiegowej.
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-loop-footer-grid">
        <div class="rk-formula-card">
            <h4>1. Strumień masowy (m)</h4>
            <p>m = Q / (c_w · ΔT)</p>
        </div>
        <div class="rk-formula-card">
            <h4>2. Przepływ objętościowy (V)</h4>
            <p>V_obj = m / ρ_wody</p>
        </div>
        <div class="rk-formula-card">
            <h4>3. Prędkość liniowa (v)</h4>
            <p>v = V_obj / A_wew</p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny przed kradzieżą (bez tagów H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var currentHost = window.location.hostname;
    var allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedHosts.indexOf(currentHost) === -1) {
        var wrapperApp = document.getElementById('rk-loop-length-app');
        if (wrapperApp) {
            wrapperApp.innerHTML = '<div style="padding:40px; text-align:center; background:#1e1b4b; color:#f43f5e; border-radius:20px; border:2px solid #f43f5e; font-family:sans-serif; font-size:15px;"><strong>Błąd autoryzacji kodu.</strong> Panel obliczeń hydraulicznych jest licencjonowany wyłącznie dla witryny Projekt-Ogrzewania.pl.</div>';
        }
    }
    // Uruchomienie kalkulatora na start z wartością normatywną 80m
    rkCalcHydraulics(80);
});

// 2. Inżynierska logika kalkulacji hydraulicznej dla rury 14x2 mm
function rkCalcHydraulics(length) {
    length = parseInt(length);
    document.getElementById('rk-loop-len-text').innerText = length + ' m';

    // Założenia projektowe z tekstu Roberta: Q = 900 W, delta T = 5 K
    // Opory rosną nieliniowo powyżej 80 metrów
    var pressure;
    if (length <= 80) {
        pressure = (length * 0.2425).toFixed(1); // Stały liniowy wzrost do 19.4 kPa
    } else {
        // Gwałtowny nieliniowy skok oporów powyżej normy 80m (zjawisko dławienia przekroju)
        pressure = (19.4 + Math.pow((length - 80), 1.35) * 0.45).toFixed(1);
    }

    // Przepływ i prędkość drastycznie spadają gdy opory blokują pętlę
    var flow, velocity;
    if (length <= 80) {
        flow = "2.6";
        velocity = "0.55";
    } else {
        // Symulacja blokowania hydraulicznego
        var dropFactor = 1 - ((length - 80) * 0.022);
        if(dropFactor < 0.2) dropFactor = 0.2; // Całkowite zdławienie / minimalny przesącz
        flow = (2.6 * dropFactor).toFixed(1);
        velocity = (0.55 * dropFactor).toFixed(2);
    }

    // Aktualizacja pól tekstowych i statystyk
    document.getElementById('val-pressure').innerHTML = pressure + ' <span>kPa</span>';
    document.getElementById('val-flow').innerHTML = flow + ' <span>l/min</span>';
    document.getElementById('val-velocity').innerHTML = velocity + ' <span>m/s</span>';

    // Obsługa stanów SVG
    var svgStateCtrl = document.getElementById('rkSvgStateCtrl');
    var msgBox = document.getElementById('loop-msg');

    if (length <= 80) {
        // Stan Bezpieczny (Safe)
        svgStateCtrl.className = "rk-loop-visual-box state-safe";
        msgBox.className = "rk-loop-feedback success";
        msgBox.innerHTML = "<strong>Standard Inżynierski spełniony.</strong> Przepływ wody wynosi " + velocity + " m/s – zapewnia to prawidłowe samoodpowietrzanie obwodu (zgodnie z PN-EN 1264) bez generowania hałasów.";
    } else {
        // Stan Zablokowany (Blocked)
        svgStateCtrl.className = "rk-loop-visual-box state-blocked";
        msgBox.className = "rk-loop-feedback danger";
        msgBox.innerHTML = "<strong>KRYTYCZNE PRZEKROCZENIE NORMY!</strong> Opory osiągnęły " + pressure + " kPa. Następuje zjawisko <strong>zamknięcia hydraulicznego</strong>. Prędkość spadła do " + velocity + " m/s – pętla zostanie zapowietrzona, a pompa obiegowa nie dogrzeje tego pomieszczenia.";
    }
}
</script>



<style>
:root {
    --rk-floor-dark: #1f2937; /* Grafit inżynieryjny */
    --rk-floor-tile: #0ea5e9; /* Błękit ceramiczny */
    --rk-floor-tile-bg: #e0f2fe;
    --rk-floor-wood: #d97706; /* Ciepły bursztyn/drewno */
    --rk-floor-wood-bg: #fef3c7;
    --rk-floor-danger: #ef4444; /* Czerwień strat */
    --rk-floor-bg: #f8fafc;
    --rk-floor-card: #ffffff;
    --rk-floor-text: #374151;
    --rk-floor-border: #e5e7eb;
}

.rk-floor-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-floor-card);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(31, 41, 55, 0.12);
    border: 1px solid var(--rk-floor-border);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-floor-header {
    background: linear-gradient(135deg, var(--rk-floor-dark) 0%, #374151 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-floor-tile);
    transition: border-color 0.4s ease;
}

.rk-floor-container.state-wood .rk-floor-header {
    border-color: var(--rk-floor-wood);
}

.rk-floor-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
    padding: 6px 16px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-floor-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
}

.rk-floor-intro {
    font-size: 15px;
    line-height: 1.75;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-floor-intro strong {
    color: #ffffff;
}

.rk-floor-link {
    color: #93c5fd;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    transition: all 0.3s;
}

.rk-floor-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Część Interaktywna - Suwak i Wykresy */
.rk-floor-interactive {
    padding: 40px 50px;
    background: var(--rk-floor-bg);
}

.rk-floor-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

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

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

.rk-floor-btn.active[data-type="tile"] {
    border-color: var(--rk-floor-tile);
    background: var(--rk-floor-tile-bg);
    color: #0369a1;
    box-shadow: 0 8px 15px -5px rgba(14, 165, 233, 0.2);
}

.rk-floor-btn.active[data-type="wood"] {
    border-color: var(--rk-floor-wood);
    background: var(--rk-floor-wood-bg);
    color: #92400e;
    box-shadow: 0 8px 15px -5px rgba(217, 119, 6, 0.2);
}

/* Ekran Symulatora (Grid: Lewo animacja, Prawo parametry) */
.rk-floor-screen {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-floor-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

/* Część wizualna (SVG) */
.rk-floor-visual {
    background: var(--rk-floor-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 200px;
}

.rk-svg-cross {
    width: 100%;
    height: 100%;
}

/* Elementy SVG z CSS Transitions */
.svg-layer-top { transition: fill 0.4s ease, height 0.4s ease, y 0.4s ease; }
.svg-heat-arrow { stroke-dasharray: 10 10; transition: stroke-dashoffset 0.5s, stroke 0.4s, opacity 0.4s; }
.svg-block-wave { opacity: 0; transform-origin: top center; transition: opacity 0.4s, transform 0.4s; }

@keyframes heatFlowFast { to { stroke-dashoffset: -30; } }
@keyframes heatFlowSlow { to { stroke-dashoffset: -10; } }

/* Stan 1: Płytki (Tile) */
.state-tile .svg-layer-top { fill: #38bdf8; height: 10px; y: 20px; }
.state-tile .svg-heat-arrow { stroke: #ef4444; animation: heatFlowFast 1s linear infinite; opacity: 1; }
.state-tile .svg-block-wave { opacity: 0; transform: scaleY(0.5); }

/* Stan 2: Panele/Drewno (Wood) */
.state-wood .svg-layer-top { fill: #f59e0b; height: 18px; y: 12px; }
.state-wood .svg-heat-arrow { stroke: #f97316; animation: heatFlowSlow 2s linear infinite; opacity: 0.5; }
.state-wood .svg-block-wave { opacity: 1; transform: scaleY(1); fill: #f87171; }

/* Część z parametrami (Grid) */
.rk-floor-param-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-floor-box {
    background: var(--rk-floor-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-floor-border);
    transition: all 0.3s;
}

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

.rk-floor-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-floor-dark);
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-floor-value span { font-size: 14px; font-weight: 600; color: #94a3b8; }

.val-dynamic { transition: color 0.3s; }
.state-tile .val-dynamic { color: var(--rk-floor-tile); }
.state-wood .val-dynamic { color: var(--rk-floor-danger); }

/* Podsumowanie/Feedback */
.rk-floor-feedback {
    grid-column: 1 / -1;
    font-size: 14px;
    color: var(--rk-floor-text);
    line-height: 1.6;
    margin-top: 10px;
    padding-top: 20px;
    border-top: 1px solid var(--rk-floor-border);
}

/* Wzory i procedury - dół */
.rk-floor-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 0 50px 40px;
}

.rk-floor-info-card {
    background: #ffffff;
    border: 1px solid var(--rk-floor-border);
    padding: 25px;
    border-radius: 16px;
}

.rk-floor-info-card h4 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: var(--rk-floor-dark);
}

.rk-floor-info-card p {
    font-size: 13px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

.rk-math-block {
    background: var(--rk-floor-bg);
    padding: 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 13px;
    color: var(--rk-floor-dark);
    margin-top: 10px;
    border-left: 3px solid #64748b;
}

@media (max-width: 768px) {
    .rk-floor-header, .rk-floor-interactive { padding: 30px 20px; }
    .rk-floor-controls { flex-direction: column; }
    .rk-floor-screen { grid-template-columns: 1fr; }
    .rk-floor-visual { min-height: 160px; }
    .rk-floor-param-grid { grid-template-columns: 1fr; }
    .rk-floor-footer-grid { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-floor-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-okladziny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Wpływ okładziny podłogowej na wydajność frezowanej podłogówki",
    "description": "Porównanie oporu cieplnego (gres vs panele) zgodnie z normą PN-EN 1264-3. Jak wybór materiału wpływa na temperaturę zasilania i koszty pracy pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-opor-cieplny",
    "name": "Tabela oporu cieplnego posadzek i wpływu na zasilanie pompy ciepła",
    "description": "Techniczne zestawienie parametrów przewodzenia dla płytek ceramicznych i paneli laminowanych w układach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny posadzki r",
      "panele na ogrzewanie podłogowe",
      "gres a podłogówka",
      "spadek temperatury okładziny",
      "norma PN-EN 1264-3"
    ],
    "measurementTechnique": "Obliczenia spadku temperatury ΔT wg prawa Fouriera dla założonej gęstości strumienia cieplnego q = 60 W/m².",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gres/Ceramika: R = 0,015 m²·K/W. Minimalny opór, spadek temperatury to zaledwie 0,9 K.",
        "Panele podłogowe: R = 0,10 m²·K/W. Znaczny opór izolacyjny, wymuszający podniesienie zasilania o 5,1 K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-opor-cieplny",
    "name": "Symulator Strat na Oporze Cieplnym",
    "description": "Interaktywny panel zestawiający różnice termiczne i ekonomiczne pomiędzy zastosowaniem ceramiki a drewna/paneli nad instalacją podłogową.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-floor-container state-tile" id="rk-floor-sim-app">
    <div class="rk-floor-header">
        <div class="rk-floor-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Materiały wykończeniowe
        </div>
        <h2 class="rk-floor-title">Jak rodzaj okładziny wpływa na wydajność frezowanej podłogówki?</h2>
        <p class="rk-floor-intro">
            Rodzaj okładziny wierzchniej decyduje o końcowej gęstości strumienia cieplnego. Zgodnie z wytycznymi normy <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-floor-link">PN-EN 1264-3</a>, całkowity <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-floor-link">opór cieplny (R) warstw posadzkowych</a> nad rurami nie może przekraczać <strong>0,15 m²·K/W</strong>. 
        </p>
        <p class="rk-floor-intro" style="margin:0;">
            Wybór między ceramiką a drewnem dramatycznie wpływa na to, czy nasze źródło ciepła będzie pracowało ekonomicznie, czy z wymuszonym, wyższym parametrem zasilania.
        </p>
    </div>

    <div class="rk-floor-interactive">
        <div class="rk-floor-controls">
            <button class="rk-floor-btn active" data-type="tile" onclick="rkSwitchFloor('tile')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
                Gres / Płytki Ceramiczne
            </button>
            <button class="rk-floor-btn" data-type="wood" onclick="rkSwitchFloor('wood')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="21" x2="4" y2="14"></line><line x1="4" y1="10" x2="4" y2="3"></line><line x1="12" y1="21" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="3"></line><line x1="20" y1="21" x2="20" y2="16"></line><line x1="20" y1="12" x2="20" y2="3"></line></svg>
                Panele / Deska Warstwowa
            </button>
        </div>

        <div class="rk-floor-screen">
            <div class="rk-floor-visual">
                <svg class="rk-svg-cross" viewBox="0 0 100 100" preserveAspectRatio="none">
                    <circle cx="50" cy="70" r="10" fill="#cbd5e1" stroke="#334155" stroke-width="2"/>
                    <circle cx="50" cy="70" r="6" fill="#ef4444"/>

                    <path class="svg-block-wave" d="M 20 30 Q 50 40 80 30" fill="none" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                    
                    <path class="svg-heat-arrow" d="M 35 60 L 35 5" fill="none" stroke-width="4" stroke-linecap="round"/>
                    <path class="svg-heat-arrow" d="M 50 55 L 50 0" fill="none" stroke-width="5" stroke-linecap="round"/>
                    <path class="svg-heat-arrow" d="M 65 60 L 65 5" fill="none" stroke-width="4" stroke-linecap="round"/>
                    
                    <rect class="svg-layer-top" x="0" width="100"/>
                    <line x1="0" y1="30" x2="100" y2="30" stroke="#334155" stroke-width="2" stroke-dasharray="4 2"/>
                </svg>
            </div>

            <div class="rk-floor-param-grid">
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Opór cieplny (R)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-r">0,015 <span>m²·K/W</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Spadek temp. warstwy (ΔT)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-dt">0,9 <span>K</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Wydajność (Zasilanie 35°C)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-power">85 - 100 <span>W/m²</span></div>
                </div>
                <div class="rk-floor-box">
                    <div class="rk-floor-label">Narzut kosztów prądu (Pompa)</div>
                    <div class="rk-floor-value val-dynamic" id="rk-val-cost">0% <span>(Baza)</span></div>
                </div>

                <div class="rk-floor-feedback" id="rk-floor-msg">
                    <strong>Idealny przesył energii.</strong> Ceramika wykazuje znikomy opór cieplny. Ogrzewanie podłogowe pracuje na minimalnych temperaturach zasilania, co gwarantuje najwyższy możliwy współczynnik COP dla pompy ciepła.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-floor-footer-grid">
        <div class="rk-floor-info-card">
            <h4>Obliczenie wpływu oporu posadzki</h4>
            <p>Załóżmy zapotrzebowanie na poziomie gęstości strumienia <strong>q = 60 W/m²</strong>. Wzór na spadek temperatury na samej warstwie okładziny wyznacza się z prostej zależności:</p>
            <div class="rk-math-block">
                ΔT_okładziny = q · R
            </div>
            <p style="margin-top:10px;">Dla paneli musimy podnieść temperaturę wody zasilającej rozdzielacz o całe <strong>5,1 K</strong> względem układu z gresem, by dostarczyć do pokoju tyle samo ciepła.</p>
        </div>
        <div class="rk-floor-info-card">
            <h4>Wpływ na koszty pompy ciepła</h4>
            <p>
                Każde wymuszone <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" style="color:var(--rk-floor-dark); font-weight:700;">podniesienie temperatury zasilania o 1°C</a> (aby przebić się przez barierę, jaką stanowią panele) skutkuje spadkiem sprawności sprężarki. W skali całego sezonu grzewczego oznacza to <strong>wzrost zużycia energii elektrycznej o około 2,5% na każdy stopień</strong>. Wybór drewna to ok. 12-15% wyższe rachunki za ogrzewanie.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Zabezpieczenie domeny przed kradzieżą (bez H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var checkDomain = window.location.hostname;
    var allowedHosts = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedHosts.indexOf(checkDomain) === -1) {
        var wrapperApp = document.getElementById('rk-floor-sim-app');
        if (wrapperApp) {
            wrapperApp.innerHTML = '<div style="padding:40px; text-align:center; background:#1f2937; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Odmowa dostępu.</strong> Ten symulator jest licencjonowany wyłącznie dla witryny Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchFloor(type) {
    var container = document.getElementById('rk-floor-sim-app');
    var msgBox = document.getElementById('rk-floor-msg');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-floor-btn');
    btns.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-floor-btn[data-type="' + type + '"]').classList.add('active');

    // Zmiana klas w kontenerze (uruchamia CSS SVG)
    if (type === 'tile') {
        container.className = 'rk-floor-container state-tile';
        
        document.getElementById('rk-val-r').innerHTML = "0,015 <span>m²·K/W</span>";
        document.getElementById('rk-val-dt').innerHTML = "0,9 <span>K</span>";
        document.getElementById('rk-val-power').innerHTML = "85 - 100 <span>W/m²</span>";
        document.getElementById('rk-val-cost').innerHTML = "0% <span>(Baza)</span>";

        msgBox.innerHTML = "<strong>Idealny przesył energii.</strong> Ceramika wykazuje znikomy opór cieplny. Ogrzewanie podłogowe pracuje na minimalnych temperaturach zasilania, co gwarantuje najwyższy możliwy współczynnik COP dla pompy ciepła.";
        
    } else {
        container.className = 'rk-floor-container state-wood';
        
        document.getElementById('rk-val-r').innerHTML = "0,10 <span>m²·K/W</span>";
        document.getElementById('rk-val-dt').innerHTML = "6,0 <span>K</span>";
        document.getElementById('rk-val-power').innerHTML = "50 - 65 <span>W/m²</span>";
        document.getElementById('rk-val-cost').innerHTML = "+ 12,5% <span>(Straty)</span>";

        msgBox.innerHTML = "<strong>Izolator na podłogówce.</strong> Panele lub deski stawiają opór, blokując ciepło. Instalacja <a href='https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/' style='color:#ef4444; font-weight:700;'>wymusza podniesienie parametru zasilania</a> o dodatkowe ~5°C, by osiągnąć tę samą temperaturę w pomieszczeniu.";
    }
}
</script>



<style>
:root {
    --rk-err-dark: #0f172a; /* Głęboki asfaltowy grafit */
    --rk-err-alert: #eab308; /* Żółć ostrzegawcza (Safety Yellow) */
    --rk-err-alert-light: #fef9c3;
    --rk-err-danger: #ef4444; /* Alarmowa czerwień */
    --rk-err-danger-light: #fef2f2;
    --rk-err-bg: #f8fafc;
    --rk-err-card: #ffffff;
    --rk-err-text: #334155;
    --rk-err-border: #e2e8f0;
}

.rk-err-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.2);
    border: 1px solid rgba(234, 179, 8, 0.3);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-err-header {
    background: linear-gradient(135deg, #1c1917 0%, var(--rk-err-dark) 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
}

.rk-err-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-err-alert) 0%, var(--rk-err-danger) 100%);
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.15);
    color: #fef08a;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(254, 240, 138, 0.2);
}

.rk-err-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
}

.rk-err-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-err-intro strong {
    color: #ffffff;
}

.rk-err-link {
    color: #fef08a;
    text-decoration: none;
    border-bottom: 1px dashed #fef08a;
    transition: all 0.3s;
}

.rk-err-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-err-interactive {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

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

/* Lewa strona: Selektor błędów */
.rk-err-menu {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-menu-btn {
    padding: 15px;
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 12px;
    text-align: left;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1.4;
}

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

.rk-menu-btn.active[data-err="dust"] { border-color: var(--rk-err-alert); background: var(--rk-err-alert-light); color: #854d0e; }
.rk-menu-btn.active[data-err="deep"] { border-color: var(--rk-err-danger); background: var(--rk-err-danger-light); color: #991b1b; }
.rk-menu-btn.active[data-err="bend"] { border-color: #a855f7; background: #f3e8ff; color: #6b21a8; }

/* Prawa strona: Monitor rentgenowski i SVG */
.rk-err-monitor {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-err-visual-frame {
    background: #1e1b4b; /* Ciemne indygo dla efektu RTG */
    border-radius: 12px;
    padding: 20px;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border: 2px solid #312e81;
}

.rk-err-svg {
    width: 100%;
    height: 100%;
    max-width: 320px;
}

/* Elementy i warstwy SVG */
.svg-layer-dust { opacity: 0; transition: opacity 0.4s; }
.svg-screed-crack { opacity: 0; stroke-dasharray: 40; stroke-dashoffset: 40; transition: opacity 0.4s; }
.svg-foil-cut { d: path("M 10 80 L 90 80"); transition: all 0.4s; }
.svg-pipe-kink { d: path("M 35 30 Q 50 40 65 30"); transition: all 0.4s; }

/* --- STANY ANIMACJI DLA POSZCZEGÓLNYCH BŁĘDÓW --- */
/* Stan: dust (Brak odkurzania i gruntu) */
.state-dust .svg-layer-dust { opacity: 1; }
.state-dust .svg-screed-crack { opacity: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 0.6s 0.2s ease-out; }

/* Stan: deep (Zbyt głębokie cięcie) */
.state-deep .svg-screed-box { transform: translateY(12px); } /* Symulacja głębszego cięcia */
.state-deep .svg-foil-cut { d: path("M 10 80 L 42 80 L 50 92 L 58 80 L 90 80"); stroke: var(--rk-err-danger); }

/* Stan: bend (Zły promień gięcia) */
.state-bend .svg-pipe-kink { d: path("M 35 30 L 50 52 L 65 30"); stroke: #c084fc; stroke-width: 10; }

/* Tekst dynamiczny */
.rk-err-dynamic-text {
    margin-top: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-err-text);
    min-height: 80px;
}

/* Dolna sekcja z kafelkami dla Mobile */
.rk-err-footer-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 30px 50px 40px;
    background: #ffffff;
}

.rk-err-tile-card {
    background: var(--rk-err-bg);
    border: 1px solid var(--rk-err-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-err-tile-card h4 {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0 0 8px 0;
}

.rk-err-tile-card p {
    font-size: 12px;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-interactive { padding: 30px 20px; }
    .rk-err-grid-layout { grid-template-columns: 1fr; }
    .rk-err-footer-list { grid-template-columns: 1fr; padding: 0 20px 30px; gap: 15px; }
    .rk-err-title { font-size: 24px; }
    .rk-err-visual-frame { height: 150px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Najczęstsze błędy wykonawcze podczas frezowania podłogówki",
    "description": "Przewodnik po awariach i uchybieniach montażowych. Dowiedz się, dlaczego brak odkurzania bruzd, brak dylatacji i zbyt mały promień gięcia niszczą jastrych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-awarie",
    "name": "Wskaźniki fizyczne i strukturalne błędów wykonawczych",
    "description": "Zestawienie fizycznych wartości granicznych naprężeń termicznych, długości osłon oraz ciśnień kontrolnych dla systemów jastrychów nacinanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy wykonawcze frezowania ogrzewania",
      "odparzenie jastrychu naprężenia termiczne",
      "promień gięcia rury pex pert",
      "norma PN-EN 1264-4 dylatacje",
      "ciśnieniowa próba szczelności podłogówki"
    ],
    "measurementTechnique": "Analiza wytrzymałościowa adhezji zapraw pod wpływem naprężeń termicznych powyżej 0,2 N/mm² oraz weryfikacja spadków ciśnienia testowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Naprężenia termiczne: Przekroczenie 0,2 N/mm² przy braku gruntu powoduje nieodwracalne odspojenie okładziny.",
        "Promień łuku: Przekroczenie kryterium r < 5d generuje mikropęknięcia struktury polimeru i wzrost oporów o 40%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-detektor-bledow",
    "name": "Interaktywny Detektor Uszkodzeń Przegrody",
    "description": "Aplikacja symulująca rtg posadzki i wizualizująca skutki mechaniczne oraz hydrauliczne zaniechania procedur normatywnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-damage-detector-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Czerwone Flagi Montażu
        </div>
        <h2 class="rk-err-title">Jakie są najczęstsze błędy wykonawcze podczas frezowania podłogówki?</h2>
        <p class="rk-err-intro">
            Najpoważniejszym uchybieniem jest niedokładne oczyszczenie i zaniechanie gruntowania wyfrezowanych rowków przed aplikacją masy wypełniającej. Skutkuje to brakiem adhezji i <strong>odparzeniem jastrychu pod wpływem naprężeń termicznych o wartości powyżej 0,2 N/mm²</strong>. Pył powstały podczas cięcia działa jak warstwa separacyjna – jeśli nie zostanie odessany odkurzaczem przemysłowym klasy M, wlewana masa naprawcza nie zwiąże się strukturalnie z podłożem.
        </p>
        <p class="rk-err-intro" style="margin-top: 15px;">
            Kolejnym krytycznym błędem jest <strong>zbyt głębokie frezowanie (powyżej 25 mm)</strong>, które w wylewkach o grubości 40 mm przecina jastrych na wylot, niszcząc izolację przeciwwilgociową z folii i doprowadzając do penetracji wody w głąb stropu.
        </p>
    </div>

    <div class="rk-err-interactive">
        <div id="rk-err-view-core" class="rk-err-grid-layout state-dust">
            
            <div class="rk-err-menu">
                <button class="rk-menu-btn active" data-err="dust" onclick="rkToggleError('dust')">1. Pył i brak gruntowania bruzd</button>
                <button class="rk-menu-btn" data-err="deep" onclick="rkToggleError('deep')">2. Zbyt głęboki wykop frezarki</button>
                <button class="rk-menu-btn" data-err="bend" onclick="rkToggleError('bend')">3. Załamanie rury na zakręcie</button>
            </div>

            <div class="rk-err-monitor">
                <div class="rk-err-visual-frame">
                    <svg class="rk-err-svg" viewBox="0 0 100 100">
                        <rect x="0" y="85" width="100" height="15" fill="#1e1b4b"/>
                        
                        <path class="svg-foil-cut" fill="none" stroke="#6366f1" stroke-width="2"/>

                        <g class="svg-screed-box" style="transition: transform 0.4s;">
                            <rect x="10" y="30" width="80" height="50" fill="#475569" opacity="0.8"/>
                            <path d="M 35 30 L 35 60 L 65 60 L 65 30" fill="#1e1b4b"/>
                            
                            <path class="svg-layer-dust" d="M 35 30 L 35 60 L 65 60 L 65 30" fill="none" stroke="#eab308" stroke-width="3"/>
                            
                            <path class="svg-pipe-kink" fill="none" stroke="#ef4444" stroke-width="8" stroke-linecap="round"/>
                            <path class="svg-pipe-kink" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linecap="round"/>

                            <path class="svg-screed-crack" d="M 35 45 L 20 40 M 65 50 L 85 55 M 50 60 L 50 75" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/>
                        </g>
                    </svg>
                </div>

                <div class="rk-err-dynamic-text" id="rk-err-text-content">
                    Wadliwe wykonanie. Pozostawiony mącznik i pył betonowy drastycznie ograniczają adhezję mas cementowych. Pod wpływem naprężeń termicznych powyżej <strong>0,2 N/mm²</strong> górna warstwa posadzki pęka i odkleja się od starego podłoża, niszcząc płytki lub panele.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-footer-list">
        <div class="rk-err-tile-card" style="border-top: 3px solid var(--rk-err-alert);">
            <h4>Brak dylatacji progowych</h4>
            <p>
                Zignorowanie wytycznych normy <strong>PN-EN 1264-4</strong> w progach drzwiowych skutkuje pękaniem jastrychu. Rury przechodzące przez szczeliny dylatacyjne muszą bezwzględnie biec w peszlach ochronnych o długości min. <strong>400 mm</strong>.
            </p>
        </div>
        <div class="rk-err-tile-card" style="border-top: 3px solid #a855f7;">
            <h4>Zaginanie rury "na siłę"</h4>
            <p>
                Przekroczenie minimalnego promienia gięcia (<strong>r < 5d</strong>, czyli poniżej <strong>70 mm</strong> dla rury 14 mm) wywołuje mikropęknięcia struktury polimeru EVOH. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" style="color:#a855f7; font-weight:700;">Zadławienie przekroju rury</a> podnosi opory hydrauliczne o ponad <strong>40%</strong>.
            </p>
        </div>
        <div class="rk-err-tile-card" style="border-top: 3px solid var(--rk-err-danger);">
            <h4>Zalewanie bez próby 0,6 MPa</h4>
            <p>
                Zalanie bruzd masą samopoziomującą bez wykonania 24-godzinnego testu szczelności to skrajna nieodpowiedzialność. Rury muszą pozostać pod <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:var(--rk-err-danger); font-weight:700;">roboczym ciśnieniem próbnym</a> podczas całego procesu aplikacji chemii budowlanej.
            </p>
        </div>
    </div>
</div>

<script>
// 1. Ochrona licencji kodu (bez tagów nagłówkowych H2/H3 w komunikacie)
document.addEventListener('DOMContentLoaded', function() {
    var currentDomain = window.location.hostname;
    var whitelist = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (whitelist.indexOf(currentDomain) === -1) {
        var wrapper = document.getElementById('rk-damage-detector-app');
        if (wrapper) {
            wrapper.innerHTML = '<div style="padding:40px; text-align:center; background:#1c1917; color:#ef4444; border-radius:20px; border:2px solid #ef4444; font-family:sans-serif; font-size:15px;"><strong>Naruszenie protokołu bezpieczeństwa.</strong> Skrypt monitorowania błędów wykonawczych jest przypisany wyłącznie do serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełącznika błędów wykonawczych
function rkToggleError(errorType) {
    var coreView = document.getElementById('rk-err-view-core');
    var textFrame = document.getElementById('rk-err-text-content');

    // Reset klas widoku
    coreView.className = "rk-err-grid-layout";
    coreView.classList.add('state-' + errorType);

    // Zmiana klas aktywności przycisków menu
    var buttons = document.querySelectorAll('.rk-menu-btn');
    buttons.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-menu-btn[data-err="' + errorType + '"]').classList.add('active');

    // Dynamiczna aktualizacja tekstu inżynierskiego
    if (errorType === 'dust') {
        textFrame.innerHTML = "Wadliwe wykonanie. Pozostawiony mącznik i pył betonowy drastycznie ograniczają adhezję mas cementowych. Pod wpływem naprężeń termicznych powyżej <strong>0,2 N/mm²</strong> górna warstwa posadzki pęka i odkleja się od starego podłoża, niszcząc płytki lub panele.";
    } else if (errorType === 'deep') {
        textFrame.innerHTML = "Krytyczne osłabienie jastrychu. Frezowanie na głębokość powyżej <strong>25 mm</strong> przy cienkiej wylewce przecina beton konstrukcyjny i rozrywa dolną <a href='https://projekt-ogrzewania.pl/jakie-sposoby-izolacji-pod-ogrzewanie-podlogowe/' style='color:var(--rk-err-danger); font-weight:700;'>folię izolacyjną</a>. Woda z masy zarobowej przenika w głąb stropu, wywołując zacieki.";
    } else {
        textFrame.innerHTML = "Wada hydrauliczna. Gięcie rury ze zbyt małym promieniem (<strong>poniżej 70 mm</strong>) powoduje przewężenie przekroju (tzw. załamanie rury). Skutkuje to lokalnym <a href='https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/' style='color:#6b21a8; font-weight:700;'>wzrostem oporów hydraulicznych obwodu o ponad 40%</a> i dławieniem przepływu.";
    }
}
</script>



<style>
:root {
    --rk-cs2-dark: #0f172a; /* Głęboki granat */
    --rk-cs2-brand: #10b981; /* Szmaragdowy - Sukces */
    --rk-cs2-brand-light: #d1fae5;
    --rk-cs2-accent: #3b82f6; /* Błękit inżynierski */
    --rk-cs2-danger: #ef4444; /* Czerwony - Awaria/Błąd */
    --rk-cs2-danger-light: #fee2e2;
    --rk-cs2-bg: #f8fafc;
    --rk-cs2-card: #ffffff;
    --rk-cs2-text: #475569;
    --rk-cs2-border: #e2e8f0;
}

.rk-cs2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-cs2-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-cs2-border);
    overflow: hidden;
}

/* ================= HEADER ================= */
.rk-cs2-header {
    background: linear-gradient(135deg, var(--rk-cs2-dark) 0%, #1e293b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-cs2-header::after {
    content: '';
    position: absolute;
    top: -100px;
    right: -50px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.rk-cs2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(110, 231, 183, 0.2);
}

.rk-cs2-title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 25px 0;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

/* Kafelki metryczki w headerze */
.rk-cs2-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-cs2-stat-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    backdrop-filter: blur(8px);
}

.rk-cs2-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-cs2-stat-value {
    display: block;
    font-size: 17px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= AUTOR I WSTĘP ================= */
.rk-cs2-intro-section {
    padding: 40px 50px 30px;
    background: #ffffff;
}

.rk-cs2-author-box {
    background: var(--rk-cs2-bg);
    border-left: 4px solid var(--rk-cs2-accent);
    padding: 20px;
    border-radius: 0 16px 16px 0;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-cs2-author-photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.2);
    flex-shrink: 0;
}

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

.rk-cs2-author-text a {
    color: var(--rk-cs2-accent);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

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

.rk-cs2-lead strong {
    color: var(--rk-cs2-dark);
}

/* ================= INTERAKTYWNA ANALIZA BŁĘDU ================= */
.rk-cs2-interactive {
    padding: 0 50px 40px;
}

.rk-cs2-sim-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-cs2-border);
    border-radius: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
}

/* Zakładki sterujące */
.rk-cs2-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-cs2-border);
    background: var(--rk-cs2-bg);
}

.rk-cs2-tab-btn {
    flex: 1;
    padding: 20px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-cs2-tab-btn.active[data-view="amateur"] {
    background: #ffffff;
    color: #b91c1c;
    border-bottom: 3px solid var(--rk-cs2-danger);
}

.rk-cs2-tab-btn.active[data-view="pro"] {
    background: #ffffff;
    color: #047857;
    border-bottom: 3px solid var(--rk-cs2-brand);
}

/* Ekran SVG + Wyniki */
.rk-cs2-screen {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 30px;
    padding: 30px;
}

.rk-cs2-visual {
    background: var(--rk-cs2-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border: 2px solid #1e293b;
}

.rk-cs2-svg { width: 100%; height: 100%; }

/* --- NOWE Animacje i warstwy dla rzutu (Blueprint) --- */
.svg-blueprint-path { fill: none; stroke-linecap: round; stroke-linejoin: round; transition: opacity 0.4s; }
.svg-flow-anim { stroke-dasharray: 8 8; animation: flowBlueprint 1s linear infinite; }
.svg-gauge-pointer { transform-origin: 50px 50px; transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }

@keyframes flowBlueprint { to { stroke-dashoffset: -16; } }
@keyframes pulseDanger { 0% { filter: drop-shadow(0 0 2px #ef4444); } 100% { filter: drop-shadow(0 0 10px #ef4444); } }

/* Stan 1: Amatorski (1 długa pętla = Błąd) */
.state-amateur .svg-blueprint-amateur { opacity: 1; stroke: #ef4444; }
.state-amateur .svg-blueprint-pro { opacity: 0; }
.state-amateur .svg-gauge-pointer { transform: rotate(120deg); stroke: #ef4444; }
.state-amateur .svg-danger-ring { stroke: #ef4444; animation: pulseDanger 1s infinite alternate; opacity: 1; }

/* Stan 2: Pro (3 krótkie strefy = Sukces) */
.state-pro .svg-blueprint-amateur { opacity: 0; }
.state-pro .svg-blueprint-pro { opacity: 1; stroke: #10b981; }
.state-pro .svg-gauge-pointer { transform: rotate(-50deg); stroke: #10b981; }
.state-pro .svg-danger-ring { opacity: 0; }

/* Panel Wyników Textowych */
.rk-cs2-data-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-cs2-data-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cs2-text);
    margin: 0 0 20px 0;
}

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

.rk-cs2-metric-box {
    background: var(--rk-cs2-bg);
    border: 1px solid var(--rk-cs2-border);
    padding: 15px;
    border-radius: 12px;
}

.rk-cs2-metric-lbl { font-size: 11px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px; }
.rk-cs2-metric-val { font-size: 18px; font-weight: 900; color: var(--rk-cs2-dark); }
.rk-cs2-metric-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

.state-amateur .dyn-color { color: #dc2626; }
.state-pro .dyn-color { color: #059669; }

/* ================= REZULTATY I CTA ================= */
.rk-cs2-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

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

.rk-cs2-result-card.gold::before { background: #f59e0b; }

.rk-cs2-result-lbl { font-size: 12px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 10px; }
.rk-cs2-result-val { font-size: 26px; font-weight: 900; color: var(--rk-cs2-dark); margin-bottom: 10px; }
.rk-cs2-result-desc { font-size: 13px; color: var(--rk-cs2-text); line-height: 1.5; margin: 0; }

/* CTA */
.rk-cs2-cta {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    padding: 40px 50px;
    text-align: center;
    border-top: 4px solid var(--rk-cs2-accent);
}

.rk-cs2-cta-h3 { font-size: 22px; font-weight: 900; color: #ffffff; margin: 0 0 15px 0; }
.rk-cs2-cta-p { font-size: 15px; color: #94a3b8; line-height: 1.6; max-width: 700px; margin: 0 auto 30px auto; }

.rk-cs2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-cs2-accent);
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-cs2-btn:hover { transform: translateY(-4px); background: #2563eb; box-shadow: 0 15px 35px -5px rgba(59, 130, 246, 0.5); }
.rk-cs2-btn svg { transition: transform 0.3s; }
.rk-cs2-btn:hover svg { transform: translateX(5px); }

@media (max-width: 768px) {
    .rk-cs2-header, .rk-cs2-intro-section, .rk-cs2-interactive, .rk-cs2-cta { padding: 30px 20px; }
    .rk-cs2-stats-grid { grid-template-columns: 1fr 1fr; }
    .rk-cs2-author-box { flex-direction: column; text-align: center; border-left: none; border-top: 4px solid var(--rk-cs2-accent); border-radius: 0 0 16px 16px; }
    .rk-cs2-tabs { flex-direction: column; }
    .rk-cs2-screen { grid-template-columns: 1fr; padding: 20px; }
    .rk-cs2-results-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-cs2-visual { height: 220px; }
    .rk-cs2-title { font-size: 24px; }
    .rk-cs2-btn { width: 100%; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Case Study: Rzeczywisty projekt termomodernizacji w Szczecinie",
    "description": "Analiza inżynierska termomodernizacji 135 m² domu ze zmianą źródła ciepła na pompę. Redukcja pętli z 110m do 72m uchroniła instalację przed oporami rzędu 38 kPa.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-szczecin",
    "name": "Parametry Projektowe i Oszczędności - Termomodernizacja Szczecin",
    "description": "Zestawienie parametrów wejściowych budynku wykorzystanych do optymalizacji hydraulicznej zasilania ogrzewania podłogowego po frezowaniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego frezowanego",
      "opory hydrauliczne 38 kpa rura 14mm",
      "maksymalna długość pętli ogrzewania podłogowego",
      "projektowe obciążenie cieplne budynku 7.8 kw",
      "wymiana kotła na pompę ciepła szczecin"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne długości pętli (max 72 m) względem projektowego obciążenia cieplnego (7,8 kW) w celu zapobieżenia zjawisku dławienia przepływów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przed poprawkami OZC: Planowane pętle 110 m, opór krytyczny 38 kPa (awaria).",
        "Po wdrożeniu OZC: Podział na 11 pętli max 72 m, opór bezpieczny 14,2 kPa, roczne oszczędności eksploatacyjne 42%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator-szczecin",
    "name": "Symulator Optymalizacji Hydraulicznej Szczecin",
    "description": "Panel analityczny wizualizujący błąd przewymiarowania długości pętli i wzrostu oporów względem optymalnego podziału obiegów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs2-container" id="rk-casestudy-app">
    <div class="rk-cs2-header">
        <div class="rk-cs2-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Case Study (Projekt Wdrożeniowy)
        </div>
        <h2 class="rk-cs2-title">Rzeczywisty projekt termomodernizacji w Szczecinie</h2>
        
        <div class="rk-cs2-stats-grid">
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Termin</span>
                <span class="rk-cs2-stat-value">Wrzesień 2026</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Lokalizacja</span>
                <span class="rk-cs2-stat-value">Szczecin</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">Powierzchnia</span>
                <span class="rk-cs2-stat-value">135 m²</span>
            </div>
            <div class="rk-cs2-stat-box">
                <span class="rk-cs2-stat-label">System</span>
                <span class="rk-cs2-stat-value">Pompa Ciepła</span>
            </div>
        </div>
    </div>

    <div class="rk-cs2-intro-section">
        <div class="rk-cs2-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Inżynier HVAC" class="rk-cs2-author-photo" loading="lazy">
            <p class="rk-cs2-author-text">
                "Inwestor Mariusz zmagał się z problemem drastycznie wysokich kosztów utrzymania starego kotła węglowego. Całkowity brak możliwości podniesienia posadzek (osadzone ościeżnice) narzucił jedyne racjonalne rozwiązanie..." – <strong><a href="https://projekt-ogrzewania.pl/">Robert Kucharski</a></strong>, CEO.
            </p>
        </div>
        
        <p class="rk-cs2-lead">
            Szybka odpowiedź inżynierska polegała na całkowitej rezygnacji z grzejników na rzecz frezowania wylewki jastrychowej pod rury 14x2 mm. Rozstaw ustalono na <strong>100 mm w strefach brzegowych</strong> i łazience oraz 150 mm w salonie. Pozwoliło to na zasilanie układu bardzo niskim parametrem 35°C z pompy ciepła split.
        </p>
        <p class="rk-cs2-lead" style="margin:0;">
            Optymalnie wykorzystaliśmy stary jastrych o grubości 45 mm. Po wycięciu bruzd na 20 mm, podłoga zachowała pełną stabilność. Mikroskopijna masa przykrywająca (zaledwie 3 mm chemii) zredukowała opór cieplny, <strong>skracając czas nagrzewania do zaledwie 45 minut!</strong>
        </p>
    </div>

    <div class="rk-cs2-interactive">
        <div class="rk-cs2-sim-wrapper">
            <div class="rk-cs2-tabs">
                <button class="rk-cs2-tab-btn active" data-view="amateur" onclick="rkSwitchCase('amateur')">
                    <svg width="18" height="18" 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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Błąd Instalatora (Instalacja z głowy)
                </button>
                <button class="rk-cs2-tab-btn" data-view="pro" onclick="rkSwitchCase('pro')">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Wdrożenie Projektu (Obliczenia OZC)
                </button>
            </div>

            <div id="rk-cs2-screen" class="rk-cs2-screen state-amateur">
                
                <div class="rk-cs2-visual">
                    <svg class="rk-cs2-svg" viewBox="0 0 100 100">
                        <rect x="5" y="5" width="90" height="90" fill="none" stroke="#334155" stroke-width="2"/>
                        <rect x="7" y="7" width="86" height="86" fill="#1e293b"/>

                        <rect x="2" y="15" width="6" height="70" fill="#64748b" rx="1"/>

                        <path class="svg-blueprint-path svg-blueprint-amateur svg-flow-anim" d="M 8 20 L 85 20 L 85 30 L 15 30 L 15 40 L 85 40 L 85 50 L 15 50 L 15 60 L 85 60 L 85 70 L 15 70 L 15 80 L 8 80" stroke-width="3" stroke-linejoin="round"/>

                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 16 L 85 16 L 85 30 L 8 30" stroke-width="3" stroke-linejoin="round"/>
                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 43 L 85 43 L 85 57 L 8 57" stroke-width="3" stroke-linejoin="round" style="animation-delay: 0.3s;"/>
                        <path class="svg-blueprint-path svg-blueprint-pro svg-flow-anim" d="M 8 70 L 85 70 L 85 84 L 8 84" stroke-width="3" stroke-linejoin="round" style="animation-delay: 0.6s;"/>

                        <circle cx="50" cy="50" r="18" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                        <circle class="svg-danger-ring" cx="50" cy="50" r="18" fill="none" stroke-width="2"/>
                        <path d="M 40 50 A 10 10 0 1 1 60 50" fill="none" stroke="#64748b" stroke-width="2" stroke-linecap="round"/>
                        <line class="svg-gauge-pointer" x1="50" y1="50" x2="50" y2="40" stroke-width="2.5" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="2.5" fill="#cbd5e1"/>
                    </svg>
                </div>

                <div class="rk-cs2-data-panel">
                    <h4 class="rk-cs2-data-title" id="cs2-title">Zamknięcie Hydrauliczne Pętli</h4>
                    <p class="rk-cs2-data-desc" id="cs2-desc">
                        Pierwotny instalator chciał układać pętle o długości 110 m dla rury 14 mm. Taka odległość drastycznie dławi przepływ, tworząc gigantyczny opór. Woda omijałaby tę pętlę, a pomieszczenie pozostałoby zimne.
                    </p>
                    <div class="rk-cs2-metrics">
                        <div class="rk-cs2-metric-box">
                            <div class="rk-cs2-metric-lbl">Długość pętli</div>
                            <div class="rk-cs2-metric-val dyn-color" id="cs2-val-len">110 <span>mb</span></div>
                        </div>
                        <div class="rk-cs2-metric-box">
                            <div class="rk-cs2-metric-lbl">Opór całkowity</div>
                            <div class="rk-cs2-metric-val dyn-color" id="cs2-val-pres">38,0 <span>kPa (Krytyczny)</span></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cs2-results-grid">
        <div class="rk-cs2-result-card">
            <div class="rk-cs2-result-lbl">Bilans OZC (-20°C)</div>
            <div class="rk-cs2-result-val">7,8 kW</div>
            <p class="rk-cs2-result-desc">Zapotrzebowanie wyliczone przez inżyniera. Gęstość strumienia cieplnego to zaledwie <strong>58 W/m²</strong>.</p>
        </div>
        <div class="rk-cs2-result-card">
            <div class="rk-cs2-result-lbl">Roczne oszczędności</div>
            <div class="rk-cs2-result-val" style="color:var(--rk-cs2-brand);">42%</div>
            <p class="rk-cs2-result-desc">Tyle wynosi zysk na kosztach eksploatacji w porównaniu do starego systemu grzewczego na węgiel.</p>
        </div>
        <div class="rk-cs2-result-card gold">
            <div class="rk-cs2-result-lbl">Ochrona budżetu</div>
            <div class="rk-cs2-result-val" style="color:#b45309;">14 500 zł</div>
            <p class="rk-cs2-result-desc">Tyle inwestor uniknął strat za poprawki, wymianę zniszczonej pompy i naprawy odparzonego jastrychu.</p>
        </div>
    </div>

    <div class="rk-cs2-cta">
        <h3 class="rk-cs2-cta-h3">Chcesz uniknąć błędów, które kosztują tysiące?</h3>
        <p class="rk-cs2-cta-p">
            Zastosowanie rur z barierą antydyfuzyjną EVOH, rygorystyczne trzymanie się oporów hydraulicznych i dobór pompy na bazie OZC to klucz do sukcesu. Zainwestuj w spokój na lata.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cs2-btn">
            ZAMÓW PROJEKT INSTALACJI PODŁOGOWEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym skopiowaniem (Bez tagów H w komunikacie)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-casestudy-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa autoryzacji licencji.</strong> Moduł Case Study jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulacji (Amator vs Inżynier)
function rkSwitchCase(mode) {
    var screen = document.getElementById('rk-cs2-screen');
    
    // Zmiana aktywności zakładek
    var tabs = document.querySelectorAll('.rk-cs2-tab-btn');
    tabs.forEach(function(t) { t.classList.remove('active'); });
    document.querySelector('.rk-cs2-tab-btn[data-view="' + mode + '"]').classList.add('active');

    // Wymiana danych tekstowych i klas animacji
    if (mode === 'pro') {
        screen.className = 'rk-cs2-screen state-pro';
        document.getElementById('cs2-title').innerText = "Inżynierski Podział Obwodów";
        document.getElementById('cs2-desc').innerHTML = "Dzięki interwencji zaimplementowano projekt oparty o <strong>11 pętli o maksymalnej długości 72 m</strong>. Opór spadł do bezpiecznej wartości. Pompa obiegowa działa na średnim biegu, zużywając zaledwie 22W energii elektrycznej.";
        document.getElementById('cs2-val-len').innerHTML = "max 72 <span>mb</span>";
        document.getElementById('cs2-val-pres').innerHTML = "14,2 <span>kPa (Bezpieczny)</span>";
    } else {
        screen.className = 'rk-cs2-screen state-amateur';
        document.getElementById('cs2-title').innerText = "Zamknięcie Hydrauliczne Pętli";
        document.getElementById('cs2-desc').innerHTML = "Pierwotny instalator chciał układać pętle o długości 110 m dla rury 14 mm. Taka odległość drastycznie dławi przepływ, tworząc gigantyczny opór. Woda omijałaby tę pętlę, a pomieszczenie pozostałoby zimne.";
        document.getElementById('cs2-val-len').innerHTML = "110 <span>mb</span>";
        document.getElementById('cs2-val-pres').innerHTML = "38,0 <span>kPa (Krytyczny)</span>";
    }
}
</script>



<style>
:root {
    --rk-quote-dark: #0f172a; /* Głęboki granat */
    --rk-quote-brand: #10b981; /* Szmaragd / Sukces */
    --rk-quote-accent: #f59e0b; /* Inżynierskie Złoto */
    --rk-quote-danger: #ef4444; /* Czerwień / Błąd */
    --rk-quote-bg: #f8fafc;
    --rk-quote-card: #ffffff;
    --rk-quote-text: #475569;
    --rk-quote-border: #e2e8f0;
}

.rk-quote-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-quote-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.12);
    border: 1px solid var(--rk-quote-border);
    overflow: hidden;
}

/* ================= HEADER & CYTAT ================= */
.rk-quote-header {
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-quote-dark) 100%);
    padding: 50px 60px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    border-bottom: 4px solid var(--rk-quote-accent);
}

.rk-quote-header::before {
    content: '"';
    position: absolute;
    top: -20px;
    left: 20px;
    font-size: 200px;
    font-family: serif;
    color: rgba(255, 255, 255, 0.05);
    line-height: 1;
    pointer-events: none;
}

.rk-quote-content {
    position: relative;
    z-index: 2;
}

.rk-quote-text {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.6;
    color: #f1f5f9;
    margin: 0 0 25px 0;
    font-style: italic;
}

.rk-quote-author {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-quote-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--rk-quote-accent);
}

.rk-quote-author-details h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-quote-author-details p {
    margin: 0;
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
}

/* ================= WNIOSKI INTERAKTYWNE ================= */
.rk-quote-interactive {
    padding: 40px 50px;
    background: var(--rk-quote-bg);
}

.rk-quote-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-quote-tab-btn {
    flex: 1;
    max-width: 320px;
    padding: 16px 20px;
    border: 2px solid var(--rk-quote-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-quote-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-quote-tab-btn.active[data-view="rule"] {
    border-color: var(--rk-quote-brand);
    background: #ecfdf5;
    color: #065f46;
    box-shadow: 0 8px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-quote-tab-btn.active[data-view="trap"] {
    border-color: var(--rk-quote-danger);
    background: #fef2f2;
    color: #991b1b;
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.2);
}

/* Panel SVG + Tekst */
.rk-quote-screen {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-quote-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-quote-visual {
    background: var(--rk-quote-dark);
    border-radius: 12px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 2px solid #1e293b;
    height: 180px;
}

.rk-quote-svg { width: 100%; height: 100%; }

/* --- Animacje SVG --- */
.svg-q-pipe { stroke-dasharray: 8 8; animation: qFlow 1s linear infinite; }
.svg-q-dust { opacity: 0; animation: qDustFloat 2s infinite alternate; }
.svg-q-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.5s ease-out; }
.svg-q-heat { stroke-dasharray: 6 6; animation: qHeatUp 1.5s linear infinite; }

@keyframes qFlow { to { stroke-dashoffset: -16; } }
@keyframes qDustFloat { 0% { transform: translateY(0); opacity: 0.2; } 100% { transform: translateY(-5px); opacity: 0.8; } }
@keyframes qHeatUp { to { stroke-dashoffset: -12; } }

/* Stan: Rule (Sukces) */
.state-rule .svg-q-concrete { fill: #334155; }
.state-rule .svg-q-pipe-bg { fill: #1e293b; stroke: #10b981; }
.state-rule .svg-q-pipe { stroke: #10b981; }
.state-rule .svg-q-dust { display: none; }
.state-rule .svg-q-crack { display: none; }
.state-rule .svg-q-heat { opacity: 1; stroke: #f59e0b; }

/* Stan: Trap (Błąd) */
.state-trap .svg-q-concrete { fill: #475569; }
.state-trap .svg-q-pipe-bg { fill: #1e293b; stroke: #ef4444; }
.state-trap .svg-q-pipe { stroke: #ef4444; animation-duration: 3s; } /* Słaby przepływ */
.state-trap .svg-q-dust { display: block; }
.state-trap .svg-q-crack { stroke-dashoffset: 0; stroke: #ef4444; }
.state-trap .svg-q-heat { opacity: 0; } /* Brak ciepła */

/* Tekst podsumowania */
.rk-quote-info {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-quote-info-title {
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 12px 0;
    color: var(--rk-quote-dark);
}

.rk-quote-info-desc {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-quote-text);
    margin: 0;
}

.rk-quote-info-desc strong {
    color: var(--rk-quote-dark);
}

@media (max-width: 768px) {
    .rk-quote-header { padding: 40px 25px; }
    .rk-quote-text { font-size: 18px; }
    .rk-quote-interactive { padding: 30px 20px; }
    .rk-quote-tabs { flex-direction: column; gap: 10px; }
    .rk-quote-tab-btn { max-width: 100%; }
    .rk-quote-screen { grid-template-columns: 1fr; padding: 20px; }
    .rk-quote-visual { height: 160px; max-width: 280px; margin: 0 auto; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Podsumowanie eksperckie – Frezowanie podłogówki",
    "description": "Frezowanie starej wylewki to technologiczny skrót, który wymaga ogromnej precyzji. Odkryj główne zasady i pułapki modernizacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-wnioski",
    "name": "Zestawienie kluczowych parametrów bezpieczeństwa modernizacji",
    "description": "Ostateczna weryfikacja poprawności montażu systemu cienkowarstwowego w oparciu o czystość, adhezję i obliczenia OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podsumowanie frezowania podłogówki",
      "złote zasady montażu ogrzewania",
      "odkurzanie bruzd frezowanych",
      "pękanie starej wylewki",
      "zastosowanie bariery evoh"
    ],
    "measurementTechnique": "Weryfikacja organoleptyczna oraz analityczna szczelności hydraulicznej i stabilności mechanicznej zmodernizowanej przegrody.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Złota Zasada: Idealne odessanie pyłu, zastosowanie rury EVOH, dokładne zgruntowanie bruzd.",
        "Główny Błąd: Pozostawienie pyłu separacyjnego, brak obliczeń oporów hydraulicznych, rura bez bariery antytlenowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-wnioski",
    "name": "Interaktywny Panel Podsumowujący",
    "description": "Narzędzie edukacyjne wizualizujące różnice fizyczne pomiędzy prawidłowo zrealizowaną modernizacją a najczęstszymi błędami instalatorskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-quote-container" id="rk-quote-app">
    <div class="rk-quote-header">
        <div class="rk-quote-content">
            <p class="rk-quote-text">
                "Frezowanie starej wylewki to wspaniały technologiczny skrót, który wybacza brak miejsca na grube izolacje, ale nigdy nie wybacza braku precyzji wykonawczej. Bez dokładnego odsysania pyłu, rury z barierą EVOH i rzetelnego bilansu OZC, ten skrót bardzo szybko zamienia się w najdroższą drogę do awarii całej posadzki."
            </p>
            <div class="rk-quote-author">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-quote-photo" loading="lazy">
                <div class="rk-quote-author-details">
                    <h4>Robert Kucharski</h4>
                    <p>CEO, Projekt-Ogrzewania.pl</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-quote-interactive">
        <div class="rk-quote-tabs">
            <button class="rk-quote-tab-btn active" data-view="rule" onclick="rkSwitchQuote('rule')">
                <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>
                Złota Zasada Modernizacji
            </button>
            <button class="rk-quote-tab-btn" data-view="trap" onclick="rkSwitchQuote('trap')">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Najczęstsza Pułapka
            </button>
        </div>

        <div id="rk-quote-screen" class="rk-quote-screen state-rule">
            
            <div class="rk-quote-visual">
                <svg class="rk-quote-svg" viewBox="0 0 100 100">
                    <rect class="svg-q-concrete" x="10" y="30" width="80" height="60" rx="2" style="transition: fill 0.3s;"/>
                    
                    <path class="svg-q-pipe-bg" d="M 40 30 L 40 55 L 60 55 L 60 30" stroke-width="2" style="transition: stroke 0.3s;"/>
                    
                    <path class="svg-q-crack" d="M 40 55 L 30 75 M 60 55 L 75 80" fill="none" stroke-width="3" stroke-linecap="round"/>
                    
                    <g class="svg-q-dust" fill="#eab308">
                        <circle cx="43" cy="53" r="1.5" />
                        <circle cx="48" cy="50" r="1" style="animation-delay: 0.3s;"/>
                        <circle cx="55" cy="52" r="1.5" style="animation-delay: 0.6s;"/>
                        <circle cx="58" cy="48" r="1" style="animation-delay: 0.9s;"/>
                    </g>

                    <circle cx="50" cy="45" r="5" fill="#0f172a"/>
                    <circle class="svg-q-pipe" cx="50" cy="45" r="5" fill="none" stroke-width="2"/>

                    <path class="svg-q-heat" d="M 35 25 L 35 5 M 50 20 L 50 0 M 65 25 L 65 5" fill="none" stroke-width="3" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-quote-info">
                <h4 class="rk-quote-info-title" id="q-title">Czystość i Obliczenia to Fundament</h4>
                <p class="rk-quote-info-desc" id="q-desc">
                    W technologii cienkowarstwowej nie ma miejsca na błędy. Odessanie pyłu odkurzaczem klasy M, głębokie zgruntowanie wyfrezowanych rowków i zatopienie rury w masie polimerowej klasy <strong>C2TE</strong> gwarantuje idealny transfer ciepła i chroni wylewkę przed pękaniem.
                </p>
            </div>

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

<script>
// Zabezpieczenie przed kradzieżą (Bez tagów H)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-quote-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Brak licencji.</strong> Kontener podsumowujący jest własnością serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// Logika przełączania
function rkSwitchQuote(mode) {
    var screen = document.getElementById('rk-quote-screen');
    
    // Klasy przycisków
    var btns = document.querySelectorAll('.rk-quote-tab-btn');
    btns.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-quote-tab-btn[data-view="' + mode + '"]').classList.add('active');

    // Wymiana tekstu i klas CSS
    if (mode === 'rule') {
        screen.className = 'rk-quote-screen state-rule';
        document.getElementById('q-title').innerText = "Czystość i Obliczenia to Fundament";
        document.getElementById('q-desc').innerHTML = "W technologii cienkowarstwowej nie ma miejsca na błędy. Odessanie pyłu odkurzaczem klasy M, głębokie zgruntowanie wyfrezowanych rowków i zatopienie rury w masie polimerowej klasy <strong>C2TE</strong> gwarantuje idealny transfer ciepła i chroni wylewkę przed pękaniem.";
    } else {
        screen.className = 'rk-quote-screen state-trap';
        document.getElementById('q-title').innerText = "Pył Separacyjny i Ślepe Frezowanie";
        document.getElementById('q-desc').innerHTML = "Brak odkurzenia bruzd sprawia, że nowa masa nie łączy się ze starym betonem. Pył działa jak bufor izolacyjny. Naprężenia termiczne rur wyginają posadzkę, co kończy się <strong>odparzeniem jastrychu</strong> i pęknięciem ułożonych na wierzchu płytek ceramicznych.";
    }
}
</script>



<style>
:root {
    --rk-comp-dark: #1e293b; /* Chłodny antracyt */
    --rk-comp-brand: #06b6d4; /* Cyjan */
    --rk-comp-brand-light: #ecfeff;
    --rk-comp-accent: #6366f1; /* Fiolet techniczny */
    --rk-comp-bg: #f8fafc;
    --rk-comp-card: #ffffff;
    --rk-comp-text: #475569;
    --rk-comp-title: #0f172a;
    --rk-comp-border: #e2e8f0;
    --rk-comp-green: #10b981;
}

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

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

.rk-comp-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-comp-brand) 0%, var(--rk-comp-accent) 100%);
}

.rk-comp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.15);
    color: #22d3ee;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(34, 211, 238, 0.2);
}

.rk-comp-title-h2 {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 15px 0;
    color: #ffffff;
}

.rk-comp-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
}

.rk-comp-intro strong {
    color: #ffffff;
}

/* Część Interaktywna - Karty i Porównanie */
.rk-comp-interactive {
    padding: 40px 50px;
    background: var(--rk-comp-bg);
}

.rk-comp-switcher-group {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 35px;
}

.rk-comp-tab-btn {
    flex: 1;
    max-width: 260px;
    padding: 14px 18px;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--rk-comp-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    line-height: 1.3;
}

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

.rk-comp-tab-btn.active[data-tech="frez"] { border-color: var(--rk-comp-brand); background: var(--rk-comp-brand-light); color: #0891b2; box-shadow: 0 8px 16px -4px rgba(6, 182, 212, 0.15); }
.rk-comp-tab-btn.active[data-tech="suchy"] { border-color: var(--rk-comp-accent); background: #f5f3ff; color: #4f46e5; box-shadow: 0 8px 16px -4px rgba(99, 102, 241, 0.15); }
.rk-comp-tab-btn.active[data-tech="mokry"] { border-color: #64748b; background: #f8fafc; color: #334155; box-shadow: 0 8px 16px -4px rgba(100, 116, 139, 0.15); }

/* Główny Ekran Porównania (Karty i SVG) */
.rk-comp-display-view {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

/* SVG Wizualizacje Technologii */
.rk-comp-visual-frame {
    background: #0f172a;
    border-radius: 12px;
    padding: 15px;
    height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border: 2px solid #1e293b;
}

.rk-comp-svg {
    width: 100%;
    height: 100%;
}

/* Animacje i Przejścia SVG */
.svg-tech-group { display: none; opacity: 0; transition: opacity 0.4s ease; }
.state-frez .svg-frez { display: block; opacity: 1; }
.state-suchy .svg-suchy { display: block; opacity: 1; }
.state-mokry .svg-mokry { display: block; opacity: 1; }

.anim-wave-frez { stroke-dasharray: 6 6; animation: flowFrez 1.2s linear infinite; }
.anim-wave-suchy { stroke-dasharray: 4 4; animation: flowFrez 0.8s linear infinite; }
.anim-wave-mokry { stroke-dasharray: 12 12; animation: flowFrez 2.5s linear infinite; }

@keyframes flowFrez { to { stroke-dashoffset: -24; } }

/* Specyfikacja w Kafelkach (Zamiast tabeli) */
.rk-spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-spec-card {
    background: var(--rk-comp-bg);
    border: 1px solid var(--rk-comp-border);
    padding: 16px 20px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-spec-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 6px; letter-spacing: 0.5px; }
.rk-spec-val { font-size: 15px; font-weight: 800; color: var(--rk-comp-title); line-height: 1.4; }

/* Dynamiczne modyfikatory wartości dla Frezowania */
.val-highlight { font-weight: 900; }
.state-frez .val-highlight { color: var(--rk-comp-green); }
.state-suchy .val-highlight { color: var(--rk-comp-accent); }
.state-mokry .val-highlight { color: #475569; }

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 20px; }
    .rk-comp-switcher-group { flex-direction: column; gap: 10px; }
    .rk-comp-tab-btn { max-width: 100%; }
    .rk-comp-display-view { grid-template-columns: 1fr; padding: 20px; }
    .rk-comp-visual-frame { height: 150px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-spec-grid { grid-template-columns: 1fr; gap: 12px; }
    .rk-comp-title-h2 { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Porównanie technologii modernizacji ogrzewania podłogowego",
    "description": "Inżynierskie zestawienie systemów grzewczych pod remonty kapitalne. Porównaj wysokość zabudowy, bezwładność, koszty m² oraz zgodność z normą PN-EN 1264-4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-komparator",
    "name": "Matryca porównawcza systemów ogrzewania płaszczyznowego dla termomodernizacji",
    "description": "Zbiór danych technicznych (wysokość profilu, masa jastrychu, opór i czas reakcji) trzech konkurencyjnych systemów wodnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie ogrzewania podłogowego frezowanie",
      "wysokość zabudowy podłogówki sucha zabudowa",
      "bezwładność cieplna wylewka z miksokreta",
      "koszt materiału i robocizny podłogówki",
      "norma PN-EN 1264-4 wymagania jastrych"
    ],
    "measurementTechnique": "Zestawienie fizyczno-konstrukcyjne grubości przegród i bilansu mas budowlanych obciążających stropy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Frezowanie w jastrychu: Profil 0 mm, obciążenie stropu 0 kg/m², wysoka reaktywność termiczna w 45 minut.",
        "System suchy: Profil 20-30 mm, idealny na stropy drewniane, wyższy koszt jednostkowy.",
        "Tradycyjny system mokry: Profil 65-80 mm, potężna masa 130 kg/m², bezwładność do 5 godzin."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-komparator-technologii",
    "name": "Interaktywny Komparator Technologii Modernizacji",
    "description": "Aplikacja filtrująca i kafelkująca parametry techniczno-eksploatacyjne posadzek grzewczych na bazie wybranego wariantu wykonawczego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-tech-matrix-app">
    <div class="rk-comp-header">
        <div class="rk-comp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
            Analiza Porównawcza
        </div>
        <h2 class="rk-comp-title-h2">Porównanie technologii modernizacji ogrzewania podłogowego</h2>
        <p class="rk-comp-intro">
            Poniższe zestawienie przedstawia weryfikację kluczowych parametrów techniczno-eksploatacyjnych trzech najpopularniejszych metod montażu wodnego ogrzewania podłogowego w obiektach poddawanych remontom kapitalnym. Pozwala ono podjąć świadomą decyzję inżynieryjną w oparciu o nośność stropu oraz czas reakcji układu.
        </p>
    </div>

    <div class="rk-comp-interactive">
        <div class="rk-comp-switcher-group">
            <button class="rk-comp-tab-btn active" data-tech="frez" onclick="rkFilterTech('frez')">Frezowanie w starym jastrychu</button>
            <button class="rk-comp-tab-btn" data-tech="suchy" onclick="rkFilterTech('suchy')">System suchy (Zabudowa lekka)</button>
            <button class="rk-comp-tab-btn" data-tech="mokry" onclick="rkFilterTech('mokry')">System mokry (Skuwanie do zera)</button>
        </div>

        <div id="rk-matrix-core" class="rk-comp-display-view state-frez">
            <div class="rk-comp-visual-frame">
                <svg class="rk-comp-svg svg-tech-group svg-frez" viewBox="0 0 100 100">
                    <rect x="0" y="35" width="100" height="65" fill="#334155"/>
                    <path d="M 30 35 L 30 65 L 70 65 L 70 35" fill="#0f172a" stroke="#475569" stroke-width="2"/>
                    <circle cx="50" cy="50" r="10" fill="#38bdf8"/>
                    <path class="anim-wave-frez" d="M 15 20 Q 50 10 85 20" fill="none" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                </svg>

                <svg class="rk-comp-svg svg-tech-group svg-suchy" viewBox="0 0 100 100">
                    <rect x="0" y="55" width="100" height="45" fill="#1e293b"/> <rect x="0" y="35" width="100" height="20" fill="#d97706" opacity="0.8"/> <circle cx="50" cy="45" r="8" fill="#a855f7"/>
                    <path class="anim-wave-suchy" d="M 20 15 Q 50 5 80 15" fill="none" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/>
                </svg>

                <svg class="rk-comp-svg svg-tech-group svg-mokry" viewBox="0 0 100 100">
                    <rect x="0" y="75" width="100" height="25" fill="#1e293b"/> <rect x="0" y="25" width="100" height="50" fill="#64748b"/> <circle cx="50" cy="50" r="10" fill="#475569" stroke="#94a3b8" stroke-width="2"/>
                    <path class="anim-wave-mokry" d="M 10 10 L 90 10" fill="none" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-spec-grid">
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Minimalna wysokość zabudowy</div>
                    <div class="rk-spec-val val-highlight" id="matrix-height">0 mm (rury chowają się w strukturze)</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Dodatkowe obciążenie stropu</div>
                    <div class="rk-spec-val" id="matrix-weight">0 kg/m² (brak zmiany bilansu mas)</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Jednostkowy koszt (Materiał + Robota)</div>
                    <div class="rk-spec-val" id="matrix-cost">120 – 180 PLN/m²</div>
                </div>
                <div class="rk-spec-card">
                    <div class="rk-spec-lbl">Bezwładność termiczna układu</div>
                    <div class="rk-spec-val" id="matrix-inertia">Niska (czas reakcji ok. 45 min)</div>
                </div>
                <div class="rk-spec-card" style="grid-column: 1 / -1;">
                    <div class="rk-spec-lbl">Zgodność z normą PN-EN 1264-4</div>
                    <div class="rk-spec-val" id="matrix-norm">Wymaga weryfikacji geometrii i klasy jastrychu (min. C12/15)</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
// 1. Ochrona licencji kodu (Zgodnie z zasadami - brak tagów H2/H3 w kodzie błędu)
document.addEventListener('DOMContentLoaded', function() {
    var domainVerify = window.location.hostname;
    var safeDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (safeDomains.indexOf(domainVerify) === -1) {
        var containerApp = document.getElementById('rk-tech-matrix-app');
        if (wrapperContainer) {
            containerApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f43f5e; border-radius:20px; border:2px solid #f43f5e; font-family:sans-serif; font-size:15px;"><strong>Odmowa dostępu do komponentu.</strong> Tablica porówania systemów płaszczyznowych jest zastrzeżona dla domeny Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika interaktywnego filtrowania macierzy danych
function rkFilterTech(techType) {
    var matrixCore = document.getElementById('rk-matrix-core');

    // Nadanie odpowiedniej klasy stanu dla sterowania widocznością SVG
    matrixCore.className = "rk-comp-display-view";
    matrixCore.classList.add('state-' + techType);

    // Aktualizacja podświetlenia przycisku tabulatora
    var buttons = document.querySelectorAll('.rk-comp-tab-btn');
    buttons.forEach(function(btn) { btn.classList.remove('active'); });
    document.querySelector('.rk-comp-tab-btn[data-tech="' + techType + '"]').classList.add('active');

    // Podmiana danych w kafelkach specyfikacji
    if (techType === 'frez') {
        document.getElementById('matrix-height').innerText = "0 mm (rury chowają się w strukturze posadzki)";
        document.getElementById('matrix-weight').innerText = "0 kg/m² (brak zmiany pierwotnego bilansu mas)";
        document.getElementById('matrix-cost').innerText = "120 – 180 PLN/m²";
        document.getElementById('matrix-inertia').innerText = "Niska (czas reakcji i odczucia ciepła ok. 45 min)";
        document.getElementById('matrix-norm').innerHTML = "Wymaga weryfikacji jastrychu kontrolą sklerometryczną według <a href='https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/' style='color:var(--rk-comp-brand);font-weight:700;'>kryteriów inżynierskich</a>.";
    } else if (techType === 'suchy') {
        document.getElementById('matrix-height').innerText = "20 – 30 mm (nominalna grubość płyt systemowych)";
        document.getElementById('matrix-weight').innerText = "15 – 25 kg/m² (suche płyty gipsowo-włóknowe)";
        document.getElementById('matrix-cost').innerText = "240 – 350 PLN/m²";
        document.getElementById('matrix-inertia').innerText = "Bardzo niska (czas reakcji rzędu ok. 30 min)";
        document.getElementById('matrix-norm').innerHTML = "Pełna zgodność systemowa. Rozwiązanie dedykowane na stare <a href='https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/' style='color:var(--rk-comp-accent);font-weight:700;'>stropy drewniane i belkowe</a>.";
    } else {
        document.getElementById('matrix-height').innerText = "65 – 80 mm (grubość izolacji styropianowej + nowy jastrych)";
        document.getElementById('matrix-weight').innerText = "130 – 160 kg/m² (monolityczny wylewany beton)";
        document.getElementById('matrix-cost').innerText = "220 – 310 PLN/m² (wliczając kucie i wywóz gruzu)";
        document.getElementById('matrix-inertia').innerText = "Wysoka (bezwładność i czas nagrzewania ok. 180–300 min)";
        document.getElementById('matrix-norm').innerHTML = "Pełna zgodność normatywna. Wymaga wykonania <a href='https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/' style='color:#334155;font-weight:700;'>nowej wylewki betonowej lub anhydrytowej</a> od zera.";
    }
}
</script>



<style>
:root {
    --rk-eq-dark: #0f172a; /* Głęboki granat pulpitu */
    --rk-eq-brand: #0ea5e9; /* Morski cyjan / przepływ */
    --rk-eq-brand-light: #e0f2fe;
    --rk-eq-accent: #f59e0b; /* Bursztyn / Ostrzeżenie */
    --rk-eq-success: #10b981; /* Zielony / Stabilność */
    --rk-eq-danger: #ef4444; /* Czerwony / Awaria */
    --rk-eq-bg: #f8fafc;
    --rk-eq-card: #ffffff;
    --rk-eq-text: #334155;
    --rk-eq-border: #e2e8f0;
}

.rk-eq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-eq-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.2);
    overflow: hidden;
}

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

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

.rk-eq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.35;
    margin: 0 0 20px 0;
}

.rk-eq-intro {
    font-size: 15px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0 0 15px 0;
}

.rk-eq-intro strong {
    color: #ffffff;
}

.rk-eq-link {
    color: #7dd3fc;
    text-decoration: none;
    border-bottom: 1px dashed #7dd3fc;
    transition: all 0.3s;
}

.rk-eq-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* Moduł Interaktywny */
.rk-eq-interactive {
    padding: 40px 50px;
    background: var(--rk-eq-bg);
}

.rk-eq-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-eq-btn {
    flex: 1;
    max-width: 300px;
    padding: 16px 20px;
    border: 2px solid var(--rk-eq-border);
    background: #ffffff;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-eq-text);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-eq-btn.active[data-sys="amateur"] {
    border-color: var(--rk-eq-danger);
    background: #fef2f2;
    color: #991b1b;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-eq-btn.active[data-sys="pro"] {
    border-color: var(--rk-eq-brand);
    background: var(--rk-eq-brand-light);
    color: #0369a1;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.2);
}

/* Ekran Symulatora (SVG) */
.rk-eq-visual-frame {
    background: var(--rk-eq-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    min-height: 260px;
    border: 2px solid #1e293b;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    margin-bottom: 30px;
}

.rk-eq-svg {
    width: 100%;
    height: 100%;
    max-width: 600px;
}

/* NOWE Elementy i Animacje SVG */
.svg-flow-path { stroke-dasharray: 8 8; transition: stroke 0.4s; }
.svg-hp-fan { transform-origin: 25px 55px; }
.svg-sun { transform-origin: 180px 30px; transition: opacity 0.4s; }
.svg-recu { transition: opacity 0.4s; }
.svg-buffer-cross { opacity: 0; transition: opacity 0.3s; }
.svg-floor-pipe { transition: fill 0.3s; }
.svg-recu-air { stroke-dasharray: 6 6; }

/* Stany Animacji */
/* Stan Amatorski (Awaria) */
.state-amateur .svg-flow-path { animation: flowSlow 0.5s linear infinite; stroke: #ef4444; }
.state-amateur .svg-hp-fan { animation: spinRotor 0.3s linear infinite; } /* Taktowanie pompy */
.state-amateur .svg-buffer { opacity: 0.3; filter: grayscale(1); } /* Brak bufora */
.state-amateur .svg-buffer-cross { opacity: 1; }
.state-amateur .svg-sun { opacity: 1; animation: pulseSun 1s infinite alternate; }
.state-amateur .svg-recu { opacity: 0.2; }
.state-amateur .svg-recu-air { opacity: 0; animation: none; }
.state-amateur .svg-floor-pipe { fill: #ef4444; } /* Przegrzanie */

/* Stan Pro (Inżynierski) */
.state-pro .svg-flow-path { animation: flowFast 1.5s linear infinite; stroke: #0ea5e9; }
.state-pro .svg-hp-fan { animation: spinRotor 2s linear infinite; } /* Spokojna praca */
.state-pro .svg-buffer { opacity: 1; filter: grayscale(0); }
.state-pro .svg-buffer-cross { opacity: 0; }
.state-pro .svg-sun { opacity: 0.4; animation: none; }
.state-pro .svg-recu { opacity: 1; }
.state-pro .svg-recu-air { opacity: 1; animation: flowFast 1.5s linear infinite reverse; }
.state-pro .svg-floor-pipe { fill: #f59e0b; }

@keyframes spinRotor { 100% { transform: rotate(360deg); } }
@keyframes flowFast { to { stroke-dashoffset: -16; } }
@keyframes flowSlow { to { stroke-dashoffset: -16; } }
@keyframes pulseSun { 0% { transform: scale(0.9); filter: drop-shadow(0 0 5px #ef4444); } 100% { transform: scale(1.3); filter: drop-shadow(0 0 15px #ef4444); } }

/* Kafelki Parametrów */
.rk-eq-param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-eq-card {
    background: #ffffff;
    border: 1px solid var(--rk-eq-border);
    padding: 20px;
    border-radius: 12px;
    transition: all 0.3s;
}

.rk-eq-lbl { font-size: 11px; color: #64748b; font-weight: 700; text-transform: uppercase; margin-bottom: 8px; }
.rk-eq-val { font-size: 20px; font-weight: 900; color: var(--rk-eq-dark); display: flex; align-items: baseline; gap: 5px; }
.rk-eq-val span { font-size: 13px; font-weight: 600; color: #94a3b8; }

.rk-eq-desc {
    font-size: 13px;
    color: #475569;
    line-height: 1.5;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--rk-eq-border);
}

/* Dynamiczne kolory tekstu w kafelkach */
.state-amateur .dyn-alert { color: var(--rk-eq-danger); }
.state-pro .dyn-success { color: var(--rk-eq-brand); }

/* POTĘŻNE CTA NA DOLE */
.rk-eq-cta-block {
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 4px solid var(--rk-eq-accent);
}

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

.rk-eq-cta-text {
    font-size: 15px;
    line-height: 1.6;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto 30px auto;
}

.rk-eq-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-eq-accent);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-eq-cta-btn:hover {
    transform: translateY(-4px);
    background: #d97706;
    box-shadow: 0 15px 35px -5px rgba(245, 158, 11, 0.5);
}

.rk-eq-cta-btn svg { transition: transform 0.3s; }
.rk-eq-cta-btn:hover svg { transform: translateX(5px); }

@media (max-width: 768px) {
    .rk-eq-header, .rk-eq-interactive, .rk-eq-cta-block { padding: 30px 20px; }
    .rk-eq-controls { flex-direction: column; }
    .rk-eq-btn { max-width: 100%; }
    .rk-eq-visual-frame { min-height: 180px; padding: 10px; }
    .rk-eq-param-grid { grid-template-columns: 1fr; }
    .rk-eq-title { font-size: 24px; }
    .rk-eq-cta-title { font-size: 20px; }
    .rk-eq-cta-btn { width: 100%; padding: 15px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-urzadzenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Jak frezowanie wpływa na projekt instalacji i dobór urządzeń kotłowni?",
    "description": "Frezowanie drastycznie zmniejsza bezwładność cieplną. Wymaga mocnej pompy obiegowej (min. 6m słupa wody) oraz instalacji bufora ciepła zapobiegającego taktowaniu sprężarki pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-dobor-urzadzen",
    "name": "Parametry doboru urządzeń dla systemów frezowanych",
    "description": "Zestawienie wymogów hydraulicznych i pojemnościowych dla kotłowni współpracującej z frezowanym ogrzewaniem podłogowym i OZE.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy obiegowej podłogówka",
      "taktowanie pompy ciepła bufor",
      "pojemność bufora ciepła na kw",
      "rekuperacja z ogrzewaniem podłogowym",
      "charakterystyka stałociśnieniowa p=const"
    ],
    "measurementTechnique": "Algorytm doboru komponentów na bazie zsumowanych oporów pętli o mniejszej średnicy i zmniejszonej bezwładności termicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bufor ciepła: Minimum 15 litrów pojemności zładu na każdy 1 kW nominalnej mocy pompy ciepła.",
        "Pompa obiegowa: Wymagana wysokość podnoszenia minimum 6 m słupa wody (60 kPa) przy charakterystyce p=const."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator-kotlowni",
    "name": "Symulator Architektury Kotłowni i Automatyki",
    "description": "Interaktywny diagram obrazujący ryzyko braku projektu OZC, wizualizujący taktowanie pompy ciepła i problemy z oporem hydraulicznym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eq-container" id="rk-hvac-arch-app">
    <div class="rk-eq-header">
        <div class="rk-eq-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Architektura Systemu
        </div>
        <h2 class="rk-eq-title">Jak frezowanie ogrzewania podłogowego wpływa na projekt instalacji i dobór urządzeń?</h2>
        <p class="rk-eq-intro">
            Wykonanie frezowania podłogówki wymusza precyzyjne dostosowanie hydrauliki całego źródła ciepła. Mała średnica wewnętrzna rur (10 mm) drastycznie zwiększa wymagane ciśnienie dyspozycyjne pompy obiegowej. Projekt instalacji musi bazować na <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-eq-link">rzetelnych obliczeniach OZC (PN-EN 12831)</a>, co eliminuje niszczące przewymiarowanie źródła.
        </p>
        <p class="rk-eq-intro" style="margin: 0;">
            Zdolność akumulacji energii przez strop jest w tej technologii zredukowana o ponad 40%. Aby uniknąć szkodliwego zjawiska taktowania pompy ciepła (zbyt częstego załączania sprężarki), <strong>bezwzględnie należy zainstalować bufor ciepła o pojemności minimum 15 litrów na każdy kW mocy urządzenia</strong>. Niska bezwładność doskonale współpracuje z rekuperacją, która szybko rozprasza zyski ciepła (np. od słońca).
        </p>
    </div>

    <div class="rk-eq-interactive">
        <div class="rk-eq-controls">
            <button class="rk-eq-btn active" data-sys="pro" onclick="rkSwitchSystem('pro')">
                <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>
                Instalacja z Projektem (OZC)
            </button>
            <button class="rk-eq-btn" data-sys="amateur" onclick="rkSwitchSystem('amateur')">
                <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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Instalacja "Na oko"
            </button>
        </div>

        <div id="rk-sim-hvac" class="state-pro">
            <div class="rk-eq-visual-frame">
                
                <svg class="rk-eq-svg" viewBox="0 0 200 100">
                    <defs>
                        <linearGradient id="gradBuffer" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" style="stop-color:#ef4444;stop-opacity:1" />
                            <stop offset="100%" style="stop-color:#0ea5e9;stop-opacity:1" />
                        </linearGradient>
                    </defs>

                    <path class="svg-flow-path" d="M 40 55 L 65 55 M 90 55 L 100 55 M 110 55 L 120 55 L 120 87 L 130 87" fill="none" stroke-width="3" stroke-linecap="round"/>

                    <rect x="10" y="30" width="30" height="50" fill="#334155" rx="3"/>
                    <rect x="12" y="32" width="26" height="46" fill="#1e293b" rx="2"/>
                    <circle cx="25" cy="55" r="12" fill="none" stroke="#64748b" stroke-width="2"/>
                    <g class="svg-hp-fan">
                        <path d="M 25 43 L 25 67 M 13 55 L 37 55" stroke="#cbd5e1" stroke-width="3"/>
                        <circle cx="25" cy="55" r="3" fill="#cbd5e1"/>
                    </g>
                    <polygon points="15,35 18,35 16,39 20,39 15,44 16,40 12,40" fill="#f59e0b"/>

                    <g class="svg-buffer" style="transition: opacity 0.4s, filter 0.4s;">
                        <rect x="65" y="20" width="25" height="60" fill="url(#gradBuffer)" rx="4"/>
                        <path d="M 65 40 L 90 40 M 65 60 L 90 60" stroke="#ffffff" stroke-width="1" opacity="0.2"/>
                    </g>
                    <path class="svg-buffer-cross" d="M 60 15 L 95 85 M 95 15 L 60 85" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>

                    <circle cx="105" cy="55" r="6" fill="#0f172a" stroke="#94a3b8" stroke-width="2"/>
                    <polygon points="102,52 102,58 108,55" fill="#cbd5e1"/>

                    <rect x="130" y="80" width="60" height="15" fill="#475569" rx="2"/>
                    <circle cx="140" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="155" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="170" cy="87.5" r="3" class="svg-floor-pipe"/>
                    <circle cx="185" cy="87.5" r="3" class="svg-floor-pipe"/>

                    <g class="svg-recu" style="transition: opacity 0.4s;">
                        <rect x="130" y="5" width="40" height="15" fill="#334155" rx="2"/>
                        <rect x="135" y="8" width="10" height="9" fill="#0f172a"/>
                        <rect x="155" y="8" width="10" height="9" fill="#0f172a"/>
                        <path class="svg-recu-air" d="M 140 28 L 140 17 M 160 28 L 160 17" fill="none" stroke="#0ea5e9" stroke-width="2" stroke-linecap="round"/>
                    </g>

                    <g class="svg-sun" style="transition: opacity 0.4s;">
                        <circle cx="180" cy="30" r="6" fill="#f59e0b"/>
                        <path d="M 180 20 L 180 16 M 180 40 L 180 44 M 170 30 L 166 30 M 190 30 L 194 30 M 173 23 L 170 20 M 187 37 L 190 40 M 173 37 L 170 40 M 187 23 L 190 20" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/>
                    </g>
                </svg>

            </div>

            <div class="rk-eq-param-grid">
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Bufor sprzęgający</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-buffer">TAK <span>(15L / kW)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-buffer">
                        Gwarantuje zład wody do odszraniania (defrostu) i eliminuje niszczące taktowanie sprężarki spowodowane małą pojemnością wylewki.
                    </div>
                </div>
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Pompa obiegowa pętli</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-pump">6 m <span>(60 kPa)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-pump">
                        Charakterystyka stałociśnieniowa (p=const). Zrównoważy gwałtowne opory hydrauliczne generowane przez rurki o średnicy wew. 10 mm.
                    </div>
                </div>
                <div class="rk-eq-card">
                    <div class="rk-eq-lbl">Reakcja na zyski słońca</div>
                    <div class="rk-eq-val dyn-alert" id="rk-val-sun">Rozproszone <span>(Reku)</span></div>
                    <div class="rk-eq-desc" id="rk-desc-sun">
                        Frezowana podłoga odcina dopływ wody. <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" style="color:inherit; font-weight:700;">Rekuperacja</a> wychwytuje gorące powietrze i redystrybuuje je po strefach zacienionych.
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-eq-cta-block">
        <h3 class="rk-eq-cta-title">Nie pozwól, by błędy instalatora zniszczyły Twoją Pompę Ciepła</h3>
        <p class="rk-eq-cta-text">
            Brak bufora, dobór za słabej pompy obiegowej i przewymiarowane źródło ciepła to najczęstsze skutki montażu "na intuicję". Zabezpiecz swoją inwestycję profesjonalną dokumentacją techniczną opartą na twardych wyliczeniach OZC i fizyce przepływów.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-eq-cta-btn">
            ZAMÓW PROJEKT INSTALACJI PODŁOGOWEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
// 1. Zabezpieczenie przed nieautoryzowanym skopiowaniem (Bez tagów H)
document.addEventListener('DOMContentLoaded', function() {
    var checkDom = window.location.hostname;
    var allowedDom = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDom.indexOf(checkDom) === -1) {
        var wrapApp = document.getElementById('rk-hvac-arch-app');
        if (wrapApp) {
            wrapApp.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; border:2px solid #ef4444; font-family:sans-serif; font-size:16px;"><strong>Odmowa autoryzacji licencji.</strong> Algorytm wizualizacji kotłowni jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.</div>';
        }
    }
});

// 2. Logika przełączania symulatora
function rkSwitchSystem(mode) {
    var hvacSim = document.getElementById('rk-sim-hvac');
    
    // Zmiana przycisków
    var btns = document.querySelectorAll('.rk-eq-btn');
    btns.forEach(function(b) { b.classList.remove('active'); });
    document.querySelector('.rk-eq-btn[data-sys="' + mode + '"]').classList.add('active');

    // Aktualizacja interfejsu (CSS SVG i teksty)
    if (mode === 'pro') {
        hvacSim.className = 'state-pro';
        
        document.getElementById('rk-val-buffer').innerHTML = "TAK <span>(15L / kW)</span>";
        document.getElementById('rk-desc-buffer').innerHTML = "Gwarantuje zład wody do odszraniania (defrostu) i eliminuje niszczące taktowanie sprężarki spowodowane małą pojemnością wylewki.";
        
        document.getElementById('rk-val-pump').innerHTML = "6 m <span>(60 kPa)</span>";
        document.getElementById('rk-desc-pump').innerHTML = "Charakterystyka stałociśnieniowa (p=const). Zrównoważy gwałtowne opory hydrauliczne generowane przez rurki o średnicy wew. 10 mm.";
        
        document.getElementById('rk-val-sun').innerHTML = "Rozproszone <span>(Reku)</span>";
        document.getElementById('rk-desc-sun').innerHTML = "Frezowana podłoga odcina dopływ wody. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/' style='color:inherit; font-weight:700;'>Rekuperacja</a> wychwytuje gorące powietrze i redystrybuuje je po strefach zacienionych.";

    } else {
        hvacSim.className = 'state-amateur';
        
        document.getElementById('rk-val-buffer').innerHTML = "BRAK <span>(Awaria)</span>";
        document.getElementById('rk-desc-buffer').innerHTML = "Zbyt mała pojemność wodna systemu frezowanego powoduje ciągłe włączanie/wyłączanie (taktowanie) pompy, niszcząc sprężarkę.";
        
        document.getElementById('rk-val-pump').innerHTML = "4 m <span>(Za słaba)</span>";
        document.getElementById('rk-desc-pump').innerHTML = "Zwykła pompa nie radzi sobie z oporem małych rurek. Woda wybiera najkrótsze drogi, zostawiając większość salonu całkowicie niedogrzaną.";
        
        document.getElementById('rk-val-sun').innerHTML = "Przegrzanie <span>(Brak OZC)</span>";
        document.getElementById('rk-desc-sun').innerHTML = "Brak projektu OZC powoduje, że słońce z okien uderza w zabetonowane rury potęgując temperaturę. Podłoga nie ma jak zrzucić tego ciepła w inny obieg.";
    }
}
</script>



<style>
:root {
    --rk-faq2-dark: #0f172a;
    --rk-faq2-card: #ffffff;
    --rk-faq2-brand: #059669; /* Profesjonalny Szmaragd / Zieleń inżynierska */
    --rk-faq2-brand-light: #d1fae5;
    --rk-faq2-accent: #f59e0b; /* Bursztyn dla kontrastu / ostrzeżeń */
    --rk-faq2-bg: #f8fafc;
    --rk-faq2-border: #e2e8f0;
    --rk-faq2-text: #334155;
    --rk-faq2-muted: #64748b;
}

.rk-faq2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-faq2-card);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(5, 150, 105, 0.1);
    border: 1px solid rgba(5, 150, 105, 0.2);
    overflow: hidden;
}

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

.rk-faq2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(110, 231, 183, 0.2);
}

.rk-faq2-title {
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq2-title span { color: #34d399; }

/* Sekcja Interaktywna */
.rk-faq2-interactive {
    padding: 35px 45px;
    background: var(--rk-faq2-bg);
}

.rk-faq2-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

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

.rk-faq2-item.active {
    border-color: var(--rk-faq2-brand);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.12);
}

/* Przycisk Akordeonu */
.rk-faq2-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq2-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq2-question:hover {
    background: #f1f5f9;
}

.rk-faq2-item.active .rk-faq2-question {
    background: var(--rk-faq2-brand-light);
    color: #064e3b;
}

.rk-faq2-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e8f0;
    color: var(--rk-faq2-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Odpowiedź z Gridem */
.rk-faq2-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq2-answer-inner {
    overflow: hidden;
}

.rk-faq2-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq2-brand-light);
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 30px;
    align-items: center;
    background: #ffffff;
}

.rk-faq2-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-faq2-text);
}

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

.rk-faq2-link {
    color: var(--rk-faq2-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(5, 150, 105, 0.4);
    transition: all 0.3s;
}

.rk-faq2-link:hover {
    color: #047857;
    border-bottom-style: solid;
}

/* Kontener SVG */
.rk-faq2-visual {
    background: #f8fafc;
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #e2e8f0;
    position: relative;
}

.rk-faq2-svg {
    width: 100%;
    height: 100%;
}

/* === ANIMACJE SVG ZALEŻNE OD KLASY ACTIVE === */

/* 1. Strop / Frezowanie */
.rk-faq2-item.active .anim-blade {
    animation: spinBlade 1s linear infinite;
    transform-origin: 50px 30px;
}
.rk-faq2-item.active .anim-groove {
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: cutGroove 2s forwards;
}
@keyframes spinBlade { to { transform: rotate(360deg); } }
@keyframes cutGroove { to { stroke-dashoffset: 0; } }

/* 2. Bariera EVOH (Tlen) */
.anim-oxygen { opacity: 0; }
.rk-faq2-item.active .anim-oxygen {
    opacity: 1;
    animation: bounceOxygen 1.5s infinite alternate ease-in-out;
}
@keyframes bounceOxygen {
    0% { transform: translateY(-15px) scale(1); fill: #ef4444; }
    100% { transform: translateY(0px) scale(0.8); fill: #fca5a5; }
}

/* 3. Masa naprawcza */
.anim-trowel { transform: translateX(-20px); opacity: 0; }
.rk-faq2-item.active .anim-trowel {
    animation: fillMass 2s ease-out forwards;
}
@keyframes fillMass {
    0% { transform: translateX(-20px); opacity: 1; }
    50% { transform: translateX(20px); opacity: 1; }
    100% { transform: translateX(20px); opacity: 0; }
}
.rk-faq2-item.active .anim-mass-fill {
    transform: scaleX(0);
    transform-origin: left;
    animation: growMass 2s forwards;
}
@keyframes growMass { to { transform: scaleX(1); } }

/* 4. Zawór mieszający */
.anim-flow-hot, .anim-flow-cold { stroke-dasharray: 4; animation: dashFlow 1s linear infinite; opacity: 0; }
.rk-faq2-item.active .anim-flow-hot { opacity: 1; stroke: #ef4444; }
.rk-faq2-item.active .anim-flow-cold { opacity: 1; stroke: #3b82f6; }
@keyframes dashFlow { to { stroke-dashoffset: -8; } }

/* 5. Woda zdemineralizowana */
.anim-drop { transform: scale(0.8); }
.rk-faq2-item.active .anim-drop {
    animation: purifyDrop 2s infinite alternate;
}
@keyframes purifyDrop {
    0% { fill: #94a3b8; transform: scale(0.8); } /* Brudna woda */
    100% { fill: #38bdf8; transform: scale(1.1); filter: drop-shadow(0 0 5px #38bdf8); } /* Czysta woda */
}

@media (max-width: 768px) {
    .rk-faq2-header, .rk-faq2-interactive { padding: 30px 20px; }
    .rk-faq2-title { font-size: 22px; }
    .rk-faq2-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq2-visual { height: 120px; max-width: 200px; margin: 0 auto; width: 100%; border: none; }
    .rk-faq2-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD) 
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Najczęściej zadawane pytania (FAQ) – Frezowanie podłogówki",
    "description": "Techniczne odpowiedzi na najważniejsze pytania dotyczące wytrzymałości wylewek, barier antydyfuzyjnych EVOH, mas naprawczych oraz jakości wody w systemach frezowanych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#faq-data",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy frezowanie niszczy strukturę starego stropu lub osłabia wylewkę?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Frezowanie na głębokość 20 mm w wylewce o grubości minimum 35 mm nie narusza stabilności, o ile beton spełnia klasę wytrzymałości C12/15. Nienaruszona warstwa dolna w pełni przenosi obciążenia użytkowe."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w kanałach frezowanych można układać rury bez barier (np. zwykłe PEX)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Wymagane jest bezwzględne stosowanie rur z barierą antydyfuzyjną EVOH (norma DIN 4726). Brak bariery prowadzi do korozji elementów stalowych i uszkodzenia wymiennika pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka masa jest najlepsza do zalewania wyfrezowanych rowków?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy stosować wyłącznie dedykowane masy polimerowo-cementowe (klasa C2TE) o przewodności cieplnej λ ≥ 1,4 W/(m·K). Zwykła zaprawa pęka pod wpływem naprężeń termicznych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy przy frezowaniu trzeba montować układ mieszający z zaworem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jeśli jedynym źródłem jest pompa ciepła generująca 35°C, układ mieszający jest zbędny. Jest on wymagany wyłącznie w systemach hybrydowych (np. przy jednoczesnej pracy grzejników na 60°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy instalację po frezowaniu można napełnić wodą z kranu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Instalację należy napełnić wodą demineralizowaną (przewodność <100 µS/cm) z inhibitorem korozji. Zwykła woda w rurkach 14 mm grozi osadzaniem kamienia kotłowego i spadkiem wydajności."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-tech",
    "name": "Parametry techniczne materiałów dla systemów frezowanych",
    "description": "Wymagania inżynierskie dla jastrychów, klas zapraw, norm rur i parametrów fizykochemicznych zładu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "bariera antydyfuzyjna evoh",
      "norma din 4726",
      "zawór mieszający instalacji",
      "woda demineralizowana ogrzewanie"
    ],
    "measurementTechnique": "Normatywne wartości graniczne (wytrzymałość C12/15, przewodność cieplna λ ≥ 1,4 W/(m·K), przewodność wody <100 µS/cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany minimalny opór dyfuzyjny tlenu wg DIN 4726.",
        "Parametry mas naprawczych do przewodzenia energii cieplnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-faq",
    "name": "Interaktywny Asystent FAQ Frezowania",
    "description": "Baza wiedzy z wizualizacjami SVG pomagająca inwestorom w doborze parametrów modernizacji cieplnej bez błędów wykonawczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA FAQ
=========================================== -->
<div class="rk-faq2-container" id="rk-frez-faq-app">
    <div class="rk-faq2-header">
        <div class="rk-faq2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Baza Wiedzy Wykonawcy
        </div>
        <h2 class="rk-faq2-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq2-interactive">
        <div class="rk-faq2-list">
            
            <!-- Pytanie 1: Wytrzymałość stropu -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>1. Czy frezowanie niszczy strukturę starego stropu lub osłabia wylewkę?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Frezowanie na głębokość <strong>20 mm</strong> w wylewce o całkowitej grubości minimum 35 mm nie narusza stabilności konstrukcyjnej podłoża. Warunkiem koniecznym jest, aby istniejący <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-faq2-link">jastrych spełniał kryterium wytrzymałościowe minimum C12/15</a>. Pozostała, nienaruszona warstwa dolna betonu w pełni przejmuje i przenosi statyczne oraz dynamiczne obciążenia użytkowe zgodnie z normami budowlanymi.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <rect x="10" y="50" width="80" height="20" fill="#94a3b8" rx="2"/>
                                    <path class="anim-groove" d="M 10 50 L 50 50 L 50 70" fill="none" stroke="#f8fafc" stroke-width="8"/>
                                    <g class="anim-blade">
                                        <circle cx="50" cy="30" r="15" fill="none" stroke="#059669" stroke-width="4" stroke-dasharray="10 4"/>
                                        <circle cx="50" cy="30" r="4" fill="#059669"/>
                                    </g>
                                    <line x1="50" y1="30" x2="50" y2="45" stroke="#059669" stroke-width="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 2: Bariera EVOH -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>2. Czy w kanałach frezowanych można układać zwykłe rury bez barier?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Absolutnie nie. Bezwykopowe układanie rur wymaga <strong>bezwzględnego stosowania przewodów wyposażonych w pięciowarstwową <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-faq2-link">barierę antydyfuzyjną EVOH</a></strong> zgodną z normą DIN 4726. Zastosowanie rur jednowarstwowych bez powłoki antytlenowej doprowadzi do szybkiej korozji elementów stalowych w kotłowni i trwałego uszkodzenia pompy.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <circle cx="50" cy="50" r="25" fill="none" stroke="#059669" stroke-width="6"/>
                                    <circle cx="50" cy="50" r="21" fill="none" stroke="#3b82f6" stroke-width="2"/>
                                    <circle class="anim-oxygen" cx="20" cy="20" r="5"/>
                                    <circle class="anim-oxygen" cx="80" cy="20" r="5" style="animation-delay: 0.5s;"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 3: Masa naprawcza -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>3. Jaka masa jest najlepsza do zalewania wyfrezowanych rowków?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Do wypełniania bruzd stosuje się <strong>wyłącznie modyfikowane polimerami masy naprawcze klasy C2TE</strong>. Ich kluczowym parametrem dla systemu cieplnego jest wysoka przewodność (λ ≥ 1,4 W/(m·K)). Zwykła <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/" class="rk-faq2-link">zaprawa murarska popęka pod wpływem rozszerzalności rur</a>, tworząc puste przestrzenie izolujące ciepło.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path d="M 10 60 L 90 60 L 90 80 L 10 80 Z" fill="#e2e8f0"/>
                                    <path d="M 30 60 L 70 60 L 60 80 L 40 80 Z" fill="#ffffff"/>
                                    <rect class="anim-mass-fill" x="40" y="60" width="20" height="20" fill="#f59e0b"/>
                                    <path class="anim-trowel" d="M 35 45 L 65 45 L 75 55 L 25 55 Z" fill="#94a3b8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 4: Zawór mieszający -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>4. Czy przy frezowaniu podłogówki trzeba montować układ mieszający z zaworem?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Jeśli system współpracuje bezpośrednio z niskotemperaturową pompą ciepła generującą parametr 35°C, <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-faq2-link">układ mieszający jest całkowicie zbędny</a>, a pętle podłącza się wprost do rozdzielacza. Montaż zaworu trójdrogowego jest konieczny <strong>tylko w układach hybrydowych</strong> (jednoczesne zasilanie grzejników na 60°C i podłogówki).
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path d="M 50 10 L 50 70 M 20 40 L 80 40" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>
                                    <circle cx="50" cy="40" r="14" fill="#0f172a"/>
                                    <polygon points="50,26 64,40 50,54" fill="#059669"/>
                                    <line class="anim-flow-hot" x1="20" y1="40" x2="40" y2="40" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-flow-cold" x1="50" y1="65" x2="50" y2="45" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 5: Woda demineralizowana -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>5. Czy instalację można napełnić zwykłą wodą z kranu?</span>
                    <div class="rk-faq2-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Zdecydowanie odradza się takie praktyki. Instalacja frezowana posiada cienkie rurki (najczęściej 14 mm), co potęguje ryzyko zarastania przekroju. Układ <strong>musi być napełniony <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-faq2-link">wodą demineralizowaną</a> (przewodność < 100 µS/cm) z inhibitorem korozji</strong>. Zwykła kranówka grozi szybkim odkładaniem się kamienia kotłowego.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-faq2-svg" viewBox="0 0 100 80">
                                    <path class="anim-drop" d="M 50 15 C 50 15 25 45 25 60 C 25 73.8 36.2 85 50 85 C 63.8 85 75 73.8 75 60 C 75 45 50 15 50 15 Z" fill="#38bdf8"/>
                                    <path d="M 40 55 Q 50 45 60 55" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round" opacity="0.6"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<!-- ==========================================
     LOGIKA ZABEZPIECZEŃ (DOMAIN LOCK) I JS
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie na poziomie domeny
    var host = window.location.hostname;
    var allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowed.indexOf(host) === -1) {
        var app = document.getElementById('rk-frez-faq-app');
        if (app) {
            app.innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: TEN MODUŁ STANOWI WŁASNOŚĆ INTELEKTUALNĄ SERWISU PROJEKT-OGRZEWANIA.PL</div>';
        }
        return;
    }

    // 2. Logika otwierania Akordeonu
    var items = document.querySelectorAll('.rk-faq2-item');
    items.forEach(function(item) {
        var btn = item.querySelector('.rk-faq2-question');
        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne zakładki
            items.forEach(function(el) { 
                el.classList.remove('active'); 
            });
            
            // Otwórz tylko klikniętą, o ile nie była wcześniej otwarta
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszą zakładkę domyślnie
    if(items.length > 0) {
        items[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-mill-dark: #1e293b;
    --rk-mill-blue: #0284c7;
    --rk-mill-blue-hover: #0369a1;
    --rk-mill-orange: #f97316;
    --rk-mill-orange-light: #ffedd5;
    --rk-mill-red: #ef4444;
    --rk-mill-red-light: #fef2f2;
    --rk-mill-green: #10b981;
    --rk-mill-bg: #ffffff;
    --rk-mill-gray: #f8fafc;
    --rk-mill-text: #334155;
    --rk-mill-border: #e2e8f0;
}

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

/* Sekcja Główna */
.rk-mill-header {
    padding: 40px 50px 30px;
    background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-mill-border);
}

.rk-mill-title {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-mill-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-mill-title svg {
    color: var(--rk-mill-orange);
    flex-shrink: 0;
}

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

/* Interaktywny Moduł */
.rk-mill-interactive {
    padding: 40px 50px;
    background: var(--rk-mill-bg);
}

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

/* Toggle Switch (Styl iOS/Android) */
.rk-toggle-container {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-toggle-bg {
    display: flex;
    background: #e2e8f0;
    border-radius: 99px;
    padding: 4px;
    position: relative;
    width: 100%;
    max-width: 500px;
    cursor: pointer;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 700;
    color: #64748b;
    z-index: 2;
    transition: color 0.3s ease;
    user-select: none;
}

.rk-toggle-btn.active {
    color: var(--rk-mill-dark);
}

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    width: calc(50% - 4px);
    height: calc(100% - 8px);
    background: #ffffff;
    border-radius: 99px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    z-index: 1;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

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

/* Dynamiczny Kontent */
.rk-dynamic-view {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-dynamic-card {
    padding: 30px;
    border-radius: 20px;
    border: 2px solid transparent;
    background: var(--rk-mill-gray);
    transition: all 0.4s ease;
    opacity: 0;
    display: none;
    transform: translateY(10px);
}

.rk-dynamic-card.active {
    display: flex;
    flex-direction: column;
    opacity: 1;
    transform: translateY(0);
}

.rk-card-pro { border-color: var(--rk-mill-orange-light); background: #fffcf8; }
.rk-card-amateur { border-color: var(--rk-mill-red-light); background: #fffcfc; }

.rk-card-icon {
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
}

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

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

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

/* Animacje SVG */
.anim-flow { stroke-dasharray: 10; animation: dashFlow 1s linear infinite; }
.anim-pulse { transform-origin: center; animation: scalePulse 2s infinite ease-in-out; }
.anim-block { animation: shakeBlock 0.5s infinite alternate; }

@keyframes dashFlow { to { stroke-dashoffset: -20; } }
@keyframes scalePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); fill: var(--rk-mill-orange); } }
@keyframes shakeBlock { from { transform: translateX(-1px); } to { transform: translateX(1px); } }

/* Grid Informacyjny (Kafelki zamiast ściany tekstu) */
.rk-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 0 50px 40px;
}

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

.rk-info-box h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-mill-dark);
    margin: 0 0 10px 0;
}

.rk-info-box p {
    font-size: 13px;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-mill-header, .rk-mill-interactive { padding: 30px 20px; }
    .rk-info-grid { grid-template-columns: 1fr; padding: 0 20px 30px; }
    .rk-dynamic-view { grid-template-columns: 1fr; }
    .rk-mill-title { font-size: 22px; }
    .rk-toggle-bg { width: 100%; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Podsumowanie: Modernizacja bez skuwania i drastyczny spadek bezwładności",
    "description": "Frezowanie podłogówki pozwala na pełne przejście na zasilanie niskotemperaturowe. Gwarantuje czas nagrzewania poniżej 45 minut przy zachowaniu normy DIN 4726 i rzetelnych obliczeń OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-frezowanie",
    "name": "Parametry hydrauliczne i termiczne układu frezowanego",
    "description": "Zestawienie porównawcze działania instalacji ogrzewania frezowanego z wykonanym profesjonalnym projektem OZC w stosunku do instalacji montowanych intuicyjnie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "frezowanie ogrzewania podłogowego",
      "bezwładność termiczna podłogówki",
      "projektowe obciążenie cieplne ozc",
      "bariera antydyfuzyjna evoh din 4726",
      "opory hydrauliczne pompy ciepła"
    ],
    "measurementTechnique": "Obliczenia na bazie normy DIN 4726, PN-EN 12831 (OZC) oraz symulacji dynamiki przepływów hydraulicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność cieplna: Stabilizacja temperatury powietrza w czasie krótszym niż 45 minut.",
        "Zabezpieczenie: Rury z powłoką antydyfuzyjną EVOH chronią układ przed zapowietrzeniem i korozją."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#webapp-symulator",
    "name": "Symulator Przepływów i OZC przy Frezowaniu",
    "description": "Interaktywny panel ilustrujący bezpośrednie skutki zaniechania obliczeń cieplnych (OZC) oraz zastosowania niewłaściwych materiałów w układach cienkowarstwowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-mill-wrapper" id="rk-frez-summary-app">
    
    <!-- Nagłówek -->
    <div class="rk-mill-header">
        <h2 class="rk-mill-title">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
            Podsumowanie: Modernizacja bez skuwania wylewki
        </h2>
        <p class="rk-mill-intro">
            Zastosowanie technologii frezowania to sprawdzona inżyniersko metoda na błyskawiczne przejście z układów wysokotemperaturowych na wydajne, niskotemperaturowe źródła ciepła (pompy ciepła). <strong>Kluczową zaletą tego systemu jest drastyczny spadek bezwładności termicznej</strong> – cienka warstwa masy polimerowo-cementowej sprawia, że temperatura w pomieszczeniach stabilizuje się w czasie <strong>poniżej 45 minut</strong>.
        </p>
    </div>

    <!-- Interaktywny Symulator Decyzji -->
    <div class="rk-mill-interactive">
        <h3 class="rk-mill-subtitle">Jak błędy projektowe niszczą sprawność instalacji?</h3>
        
        <div class="rk-toggle-container">
            <div class="rk-toggle-bg" id="rkSimToggle" data-state="pro">
                <div class="rk-toggle-slider"></div>
                <div class="rk-toggle-btn active" data-target="pro" onclick="switchState('pro')">Projekt Inżynierski (OZC)</div>
                <div class="rk-toggle-btn" data-target="amateur" onclick="switchState('amateur')">Instalacja "Na oko"</div>
            </div>
        </div>

        <div class="rk-dynamic-view">
            <!-- WIDOK: PROJEKT INŻYNIERSKI -->
            <div class="rk-dynamic-card rk-card-pro active" id="view-pro">
                <svg class="rk-card-icon" viewBox="0 0 64 64" fill="none">
                    <circle cx="32" cy="32" r="30" stroke="var(--rk-mill-orange)" stroke-width="4" stroke-dasharray="4 4" class="anim-flow"/>
                    <path d="M22 32l7 7 15-15" stroke="var(--rk-mill-orange)" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
                    <circle cx="32" cy="32" r="15" fill="var(--rk-mill-orange-light)" class="anim-pulse" opacity="0.5"/>
                </svg>
                <h4 class="rk-card-title">Precyzyjne rury i płynny obieg</h4>
                <p class="rk-card-text">
                    Zastosowanie rur z <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">barierą antydyfuzyjną EVOH</a> (zgodną z rygorystyczną normą DIN 4726) blokuje przenikanie tlenu. Pompa ciepła działa z optymalnym parametrem, a opory hydrauliczne są pod pełną kontrolą.
                </p>
            </div>

            <!-- WIDOK: BRAK PROJEKTU -->
            <div class="rk-dynamic-card rk-card-amateur" id="view-amateur">
                <svg class="rk-card-icon" viewBox="0 0 64 64" fill="none">
                    <circle cx="32" cy="32" r="30" stroke="var(--rk-mill-red)" stroke-width="4"/>
                    <path d="M20 20l24 24M44 20L20 44" stroke="var(--rk-mill-red)" stroke-width="5" stroke-linecap="round" class="anim-block"/>
                    <rect x="25" y="25" width="14" height="14" fill="var(--rk-mill-red)" rx="2"/>
                </svg>
                <h4 class="rk-card-title" style="color: var(--rk-mill-red);">Blokada przepływów i straty</h4>
                <p class="rk-card-text">
                    Brak rzetelnych <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczeń strat ciepła</a> skutkuje drastycznym wzrostem oporów w rurkach 14 mm. Taktowanie pompy ciepła pożera budżet, a woda omija najdłuższe, źle dobrane pętle grzewcze.
                </p>
            </div>
            
            <!-- OPIS WSPÓLNY - ZMIENIA SIĘ ZALEŻNIE OD STANU -->
            <div class="rk-dynamic-card active" style="background: transparent; border: none; padding: 10px 0;">
                <div id="desc-pro">
                    <h4 class="rk-card-title">OZC ratuje Twój portfel</h4>
                    <p class="rk-card-text">
                        Każda modernizacja frezowana bezwzględnie wymaga obliczenia <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>. Dzięki temu unika się przewymiarowania źródła ciepła, a odpowiednie zgruntowanie wyfrezowanych bruzd gwarantuje doskonałe przewodzenie energii bez ryzyka odparzenia okładzin.
                    </p>
                </div>
                <div id="desc-amateur" style="display: none;">
                    <h4 class="rk-card-title" style="color: var(--rk-mill-red);">Pozorna oszczędność</h4>
                    <p class="rk-card-text">
                        Projektowanie "z pamięci" lub sugerowanie się układami tradycyjnymi kończy się katastrofą przy małych przekrojach rur frezowanych. Pył pozostawiony w bruzdach izoluje rurę, sztucznie zwiększając <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a> układu.
                    </p>
                </div>
            </div>
        </div>
    </div>

    <!-- Procedury (Kafelki pod spodem) -->
    <div class="rk-info-grid">
        <div class="rk-info-box">
            <h4>1. Odpylenie i Grunt</h4>
            <p>Pył betonowy to izolator. Dokładne odkurzenie bruzd klasy M przed aplikacją mas wyrównujących zapobiega odparzeniu warstwy nośnej.</p>
        </div>
        <div class="rk-info-box">
            <h4>2. Normatywne Masy</h4>
            <p>Zalewanie układu wymaga dedykowanych mas polimerowo-cementowych o bardzo dobrym współczynniku przewodzenia energii cieplnej.</p>
        </div>
        <div class="rk-info-box">
            <h4>3. Obliczenia Hydrauliczne</h4>
            <p>Z uwagi na cieńszą rurę (zazwyczaj 14x2), zaniechanie kalibracji przepływów prowadzi do trwałego upośledzenia efektywności pompy.</p>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
// Zabezpieczenie Domenowe - blokada bez użycia tagów nagłówkowych
document.addEventListener('DOMContentLoaded', function() {
    var d = window.location.hostname;
    var a = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (a.indexOf(d) === -1) {
        var c = document.getElementById('rk-frez-summary-app');
        if (c) {
            c.innerHTML = '<div style="padding: 40px; text-align: center; background: #1e293b; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;"><div style="font-size: 40px; margin-bottom: 15px;">⚠️</div><div style="font-size: 18px; font-weight: bold; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji</div><div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">Moduł analityczny i kod JSON-LD stanowią własność Projekt-Ogrzewania.pl. Wykryto nieautoryzowane użycie skryptu.</div></div>';
        }
    }
});

// Logika Symulatora (Przełącznik)
function switchState(state) {
    const bg = document.getElementById('rkSimToggle');
    const btns = bg.querySelectorAll('.rk-toggle-btn');
    
    // UI toggle
    bg.setAttribute('data-state', state);
    btns.forEach(b => b.classList.remove('active'));
    bg.querySelector(`[data-target="${state}"]`).classList.add('active');

    // Dynamic Content
    if (state === 'pro') {
        document.getElementById('view-pro').style.display = 'flex';
        document.getElementById('desc-pro').style.display = 'block';
        
        // Timeout to allow display:flex to apply before animating opacity/transform
        setTimeout(() => {
            document.getElementById('view-pro').classList.add('active');
            document.getElementById('view-amateur').classList.remove('active');
            setTimeout(() => document.getElementById('view-amateur').style.display = 'none', 400);
        }, 10);
        document.getElementById('desc-amateur').style.display = 'none';

    } else {
        document.getElementById('view-amateur').style.display = 'flex';
        document.getElementById('desc-amateur').style.display = 'block';
        
        setTimeout(() => {
            document.getElementById('view-amateur').classList.add('active');
            document.getElementById('view-pro').classList.remove('active');
            setTimeout(() => document.getElementById('view-pro').style.display = 'none', 400);
        }, 10);
        document.getElementById('desc-pro').style.display = 'none';
    }
}
</script>



<style>
:root {
    --rk-dl2-dark: #0f172a; /* Głęboki granat */
    --rk-dl2-brand: #10b981; /* Techniczny szmaragd */
    --rk-dl2-brand-dark: #047857;
    --rk-dl2-accent: #0ea5e9; /* Morski cyjan */
    --rk-dl2-bg: #f8fafc;
    --rk-dl2-border: #e2e8f0;
    --rk-dl2-text: #334155;
    --rk-dl2-white: #ffffff;
}

.rk-dl2-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl2-white);
    border-radius: 24px;
    border: 1px solid rgba(16, 185, 129, 0.3);
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.rk-dl2-header {
    background: linear-gradient(135deg, var(--rk-dl2-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: var(--rk-dl2-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--rk-dl2-brand);
}

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

.rk-dl2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.3);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 18px;
}

.rk-dl2-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    letter-spacing: -0.5px;
    line-height: 1.3;
}

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

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

.rk-dl2-icon-svg {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: rkFloat 3.5s infinite ease-in-out alternate;
}

@keyframes rkFloat {
    0% { transform: translateY(0) rotate(0deg); }
    100% { transform: translateY(-12px) rotate(3deg); }
}

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

.rk-dl2-preview {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--rk-dl2-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-dl2-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.15);
}

.rk-dl2-img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
}

.rk-dl2-zoom-tag {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-dl2-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl2-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.rk-dl2-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--rk-dl2-text);
    line-height: 1.5;
}

.rk-dl2-check {
    width: 22px;
    height: 22px;
    color: var(--rk-dl2-brand);
    flex-shrink: 0;
    margin-top: 2px;
}

/* PRZYCISK POBIERANIA */
.rk-dl2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl2-brand);
    color: var(--rk-dl2-white);
    text-decoration: none !important;
    padding: 18px 30px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    border: 2px solid transparent;
}

.rk-dl2-btn:hover {
    background: var(--rk-dl2-brand-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(16, 185, 129, 0.5);
    border-color: #6ee7b7;
}

.rk-dl2-btn svg { transition: transform 0.3s; }
.rk-dl2-btn:hover svg { transform: translateY(3px); }

/* STOPKA MODUŁU */
.rk-dl2-footer {
    padding: 20px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-dl2-border);
    font-size: 13px;
    color: #64748b;
    text-align: center;
}

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

@media (max-width: 800px) {
    .rk-dl2-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-dl2-header-content { max-width: 100%; margin-bottom: 30px; }
    .rk-dl2-workspace { flex-direction: column; padding: 30px 25px; gap: 30px; }
    .rk-dl2-preview { margin-bottom: 10px; }
    .rk-dl2-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#infografika-pdf",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/"
    },
    "headline": "Frezowanie podłogówki – Kompendium Wiedzy (Infografika PDF)",
    "description": "Pobierz inżynierskie zestawienie technologii frezowania ogrzewania podłogowego. Schematy, koszty, grubości jastrychu i najczęstsze błędy w jednym pliku PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-17",
    "dateModified": "2026-05-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#dataset-infografika",
    "name": "Matryca decyzyjna: Frezowanie vs Tradycyjne Kucie",
    "description": "Zbiór danych określający wady, zalety oraz techniczne wymagania brzegowe (nośność, grubość) dla wylewek poddawanych nacinaniu diamentowemu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika frezowanie podłogówki",
      "porównanie kucie a frezowanie pdf",
      "schemat układania rur w bruzdach",
      "wymagania wylewki pod frezowanie",
      "błędy instalatora ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Zestawienie analityczne kosztów i czasu realizacji opracowane na podstawie normy PN-EN 1264-4.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Technologiczna karta porównawcza instalacji płaszczyznowych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/#download-hub",
    "name": "Centrum Pobierania Wiedzy: Frezowanie",
    "description": "Interaktywny moduł umożliwiający wizualizację HD i pobranie autorskiej dokumentacji technicznej w formacie wektorowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl2-container" id="app-frez-dl">
    
    <div class="rk-dl2-header">
        <div class="rk-dl2-header-content">
            <div class="rk-dl2-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" style="margin-right:4px;"><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>
                Darmowe Materiały PDF
            </div>
            <h2>Pobierz Kompendium Wiedzy</h2>
            <p>Zabierz inżynierską wiedzę na budowę. Kompletne zestawienie technologii frezowania, schematy ułożenia rur i checklisty błędów w jednym pliku.</p>
        </div>
        <div class="rk-dl2-visual">
            <svg class="rk-dl2-icon-svg" viewBox="0 0 100 120" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M20 10 C20 4.477 24.477 0 30 0 L70 0 L100 30 L100 110 C100 115.523 95.523 120 90 120 L30 120 C24.477 120 20 115.523 20 110 Z" fill="#ef4444" stroke="#ffffff" stroke-width="4"/>
                <path d="M70 0 L70 30 L100 30" fill="#b91c1c"/>
                <circle cx="60" cy="65" r="15" fill="none" stroke="#ffffff" stroke-width="4" stroke-dasharray="8 4"/>
                <circle cx="60" cy="65" r="4" fill="#ffffff"/>
                <rect x="0" y="85" width="55" height="25" rx="4" fill="#ffffff" stroke="#ef4444" stroke-width="2"/>
                <text x="8" y="103" fill="#ef4444" font-size="16" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl2-workspace">
        
        <div class="rk-dl2-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.webp" alt="Infografika Frezowanie ogrzewania podłogowego w starym domu" class="rk-dl2-img" loading="lazy">
            <div class="rk-dl2-zoom-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Kliknij, aby powiększyć
            </div>
        </div>

        <div class="rk-dl2-info">
            <h3>Co znajdziesz w infografice?</h3>
            <ul class="rk-dl2-list">
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span><strong>Analiza Porównawcza:</strong> Tradycyjne kucie kontra bezpyłowe frezowanie.</span>
                </li>
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span><strong>Wymagania Techniczne:</strong> Krytyczne grubości i dopuszczalne klasy jastrychu.</span>
                </li>
                <li class="rk-dl2-item">
                    <svg class="rk-dl2-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span><strong>Czerwone Flagi:</strong> Lista najczęstszych, kosztownych błędów instalatorów.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Frezowanie-ogrzewania-podlogowego-w-starym-domu.pdf" class="rk-dl2-btn" target="_blank" download>
                POBIERZ PLIK W WYSOKIEJ JAKOŚCI
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            </a>
            
            <p style="margin-top: 20px; font-size: 13.5px; color: #64748b; line-height: 1.5;">
                Zabezpiecz swoją inwestycję z autorskim <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--rk-dl2-brand-dark); font-weight:800; text-decoration:underline;">Projektem Ogrzewania Podłogowego OZC</a>. Obliczenia na twardych danych uchronią Cię przed awarią.
            </p>
        </div>

    </div>

    <div class="rk-dl2-footer">
        © 2026 Projekt-Ogrzewania.pl | Inżynier HVAC: <strong>Robert Kucharski</strong>. Możesz udostępniać ten plik dalej (z zachowaniem linku).
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Bez tagów nagłówkowych) ---
    const allowedHost = window.location.hostname;
    const whitelisted = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!whitelisted.includes(allowedHost)) {
        const dApp = document.getElementById('app-frez-dl');
        if (dApp) {
            dApp.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #ef4444; margin-bottom: 10px;">Zasoby Chronione Licencją</div>
                    <p style="color: #cbd5e1; font-size: 14px; margin: 0;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Osadzanie na zewnętrznych domenach jest zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">Frezowanie ogrzewania podłogowego w starym domu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 16:16:48 +0000</pubDate>
				<category><![CDATA[Audyt energetyczny]]></category>
		<category><![CDATA[Dofinansowania i dotacje]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Program Czyste Powietrze]]></category>
		<category><![CDATA[Program Moje Ciepło]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[audyt energetyczny]]></category>
		<category><![CDATA[cop pompy ciepła]]></category>
		<category><![CDATA[czyste powietrze 2026]]></category>
		<category><![CDATA[dokumentacja powykonawcza]]></category>
		<category><![CDATA[dotacja na pompę ciepła]]></category>
		<category><![CDATA[dotacje na ogrzewanie]]></category>
		<category><![CDATA[instalacja niskotemperaturowa]]></category>
		<category><![CDATA[moje ciepło 2026]]></category>
		<category><![CDATA[nfośigw]]></category>
		<category><![CDATA[obliczenia strat ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny podłogi]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[wskaźnik ep]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4137</guid>

					<description><![CDATA[<p>Planujesz termomodernizację starszego budynku lub budowę zupełnie nowego, energooszczędnego domu? W dobie rosnących wymagań urzędowych i dążenia do budownictwa bezemisyjnego, samo położenie rurek na styropianie to zdecydowanie za mało, aby otrzymać państwowe dofinansowanie. Kluczowym zagadnieniem, z którym mierzą się dzisiaj świadomi inwestorzy, jest właściwy Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026. Urzędnicy NFOŚiGW skrupulatnie weryfikują dokumentację techniczną pod kątem rygorystycznych wskaźników efektywności, a każdy, nawet najdrobniejszy błąd instalatora pracującego "na oko", może kosztować Cię bezpowrotną utratę dziesiątek tysięcy złotych. W tym poradniku pokażę Ci krok po kroku, jakie twarde wymogi musi spełniać instalacja, jak uniknąć najczęstszych pułapek przy wyborze wykończenia posadzki oraz dlaczego inżynieryjne obliczenia OZC to absolutny fundament bezpiecznego wniosku.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">W obliczu zaostrzających się rygorów energetycznych i dążenia Unii Europejskiej do budownictwa bezemisyjnego, rok 2026 staje się punktem zwrotnym dla polskich inwestorów. <strong>Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026 co musi zawierać</strong>, to dziś jedno z najczęściej zadawanych pytań w biurach projektowych i firmach instalacyjnych. To już nie tylko kwestia komfortu ciepłych stóp, ale przede wszystkim precyzyjny dokument techniczny, bez którego urzędnicy Narodowego Funduszu Ochrony Środowiska i Gospodarki Wodnej (NFOŚiGW) mogą odrzucić wniosek o wypłatę nawet kilkudziesięciu tysięcy złotych.</p>



<p class="wp-block-paragraph">W tym artykule pokażę Ci krok po kroku, jak przygotować dokumentację, która przejdzie weryfikację za pierwszym razem. Przedstawię konkretne wyliczenia, przykłady projektów odrzuconych i zaakceptowanych oraz prawdziwy case study inwestora, który dzięki dobrze przygotowanemu projektowi dostał <strong>28 000 zł dotacji</strong>. Nie będzie tu ogólników tylko techniczna wiedza podana w zrozumiały sposób.</p>



<h2 class="wp-block-heading">Aktualne wymagania dotacyjne 2026 na co urzędnicy patrzą najbardziej?</h2>



<p class="wp-block-paragraph">Oba programy <strong>Czyste Powietrze</strong>&nbsp;i&nbsp;<strong>Moje Ciepło</strong>&nbsp;w 2026 roku mają już mocno zaostrzone kryteria. Jeśli myślisz, że wystarczy kupić rury i wezwać instalatora, jesteś w błędzie. Dziś liczy się każdy szczegół: od temperatury zasilania po opór cieplny wylewki.</p>



<h3 class="wp-block-heading">Czym różnią się podejścia obu programów?</h3>



<ul class="wp-block-list">
<li><strong>Czyste Powietrze</strong>&nbsp;(dla istniejących domów): wymaga&nbsp;<strong>obowiązkowego audytu energetycznego</strong>&nbsp;przed rozpoczęciem prac. Projekt podłogówki musi być z nim zgodny co do joty. Program finansuje instalację jako część większej termomodernizacji – rzadko zdarza się dotacja na samą podłogówkę bez wymiany źródła ciepła.</li>



<li><strong>Moje Ciepło</strong>&nbsp;(dla nowych domów): stawia warunek&nbsp;<strong>wskaźnika energii pierwotnej EP ≤ 55 kWh/(m²·rok)</strong>. Ogrzewanie podłogowe jest tu praktycznie obowiązkowe, bo tylko niskotemperaturowy system pozwala osiągnąć takie wartości przy pompie ciepła.</li>
</ul>



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

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

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

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

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

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 30%;
}

.compare-table th.col-noguide {
    color: var(--primary);
    width: 35%;
}

.compare-table th.col-project {
    color: var(--accent);
    width: 35%;
    border-bottom-color: var(--accent);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

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

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.val-pill.warning {
    background: #ffedd5;
    color: var(--warning);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-project {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.card-project h4 {
    color: var(--accent);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Czyste Powietrze 2026:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Moje Ciepło 2026:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--accent);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app">
    <div class="compare-header">
        <h3>Co urzędnik NFOŚiGW weryfikuje w 2026 r.?</h3>
        <p>Zobacz, jak zaostrzyły się wymagania w zależności od tego, czy modernizujesz stary dom, czy budujesz nowy. W obu przypadkach brak solidnej dokumentacji oznacza odrzucenie wniosku. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Element weryfikacji</th>
                    <th class="col-noguide">Czyste Powietrze 2026</th>
                    <th class="col-project">Moje Ciepło 2026</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Max. temp. zasilania</td>
                    <td><span class="val-pill">≤ 35°C</span></td>
                    <td><span class="val-pill accent">≤ 35°C (zalecane 30°C)</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧮</span> Obliczenia OZC</td>
                    <td>Dla każdego pomieszczenia, <strong>zgodne z audytem</strong></td>
                    <td>Dla każdego pomieszczenia, <strong>zgodne z projektem budowlanym</strong></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🎛️</span> Sterowanie strefowe</td>
                    <td>Obowiązkowe (termostaty w pomieszczeniach)</td>
                    <td>Obowiązkowe (termostaty + siłowniki)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧱</span> Opór cieplny podłogi</td>
                    <td><span class="val-pill">R ≤ 0,15 (m²·K)/W</span></td>
                    <td><span class="val-pill warning">R ≤ 0,10 (m²·K)/W</span><br><span style="font-size: 11px; color: var(--warning); display: block; margin-top: 4px;">(uwaga przy grubych wykładzinach!)</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📄</span> Dokumentacja</td>
                    <td>Protokół odbioru + zdjęcia + faktury</td>
                    <td>Projekt powykonawczy + certyfikat EP budynku</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card">
            <h4>Czyste Powietrze (Modernizacja)</h4>
            <p>Program skupia się na audycie energetycznym. Opór cieplny wylewki ma tu nieco większy bufor (0,15), jednak bez pełnego OZC pokrywającego się z audytem, wypłata środków zostanie wstrzymana.</p>
        </div>
        
        <div class="summary-card card-project">
            <h4>Moje Ciepło (Nowy dom)</h4>
            <p>Bezwzględny wymóg utrzymania wskaźnika EP budynku. Oznacza to m.in. bardzo restrykcyjny opór podłogi (0,10). Położenie grubej deski bez zoptymalizowanego projektu rur to pewność utraty dotacji.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Zwróć uwagę na opór cieplny!</em>&nbsp;W programie Moje Ciepło 2026, jeśli położysz parkiet o grubości 15 mm (opór ~0,12), a pod nim dodatkowo cienką wylewkę, możesz przekroczyć dopuszczalną granicę. Urząd zażąda wtedy wymiany wykładziny lub odrzuci wniosek.</p>
</blockquote>



<h3 class="wp-block-heading">Dlaczego temperatura zasilania 35°C to granica, której nie wolno przekroczyć?</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> osiąga najwyższą efektywność (COP – <em>Coefficient of Performance</em>) przy niskich temperaturach wody w instalacji. Każde 1°C poniżej 35°C to wzrost COP o około 2,5-3%. Dla projektu ogrzewania podłogowego oznacza to, że im gęściej ułożysz rury, tym niższa może być temperatura i tym więcej zaoszczędzisz.</p>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy dla domu 150 m²:</strong></p>



<ul class="wp-block-list">
<li>Zapotrzebowanie na ciepło: 6 kW</li>



<li>Wariant A (zła podłogówka): rozstaw rur 20 cm, wymagana temperatura 45°C → COP pompy = 3,2</li>



<li>Wariant B (dobra podłogówka): rozstaw rur 10 cm, wymagana temperatura 32°C → COP pompy = 4,6</li>
</ul>



<p class="wp-block-paragraph">Roczne zużycie prądu:</p>



<ul class="wp-block-list">
<li>Wariant A: 6000 W / 3,2 = 1875 W średniej mocy elektrycznej → ~16 400 kWh/rok</li>



<li>Wariant B: 6000 W / 4,6 = 1304 W średniej mocy elektrycznej → ~11 400 kWh/rok</li>
</ul>



<p class="wp-block-paragraph"><strong>Różnica: 5000 kWh rocznie</strong>. Przy cenie 1 zł/kWh daje to&nbsp;<strong>5000 zł oszczędności każdego roku</strong>. A do tego dotacja – bo projekt B spełnia warunki programów, a A nie.</p>



<h2 class="wp-block-heading">Które elementy projektu ogrzewania podłogowego są obowiązkowe dla urzędu?</h2>



<p class="wp-block-paragraph">Urzędnik NFOŚiGW nie jest instalatorem, ale ma listę kontrolną. Jeśli brakuje któregokolwiek z poniższych punktów, wniosek ląduje w koszu. Oto&nbsp;<strong>obowiązkowe minimum</strong>&nbsp;dokumentacji technicznej w 2026 roku.</p>



<h3 class="wp-block-heading">1. Obliczenia obciążenia cieplnego pomieszczeń (OZC)</h3>



<p class="wp-block-paragraph">To absolutna podstawa. Projektant musi wyliczyć straty ciepła dla każdego pokoju zgodnie z <strong><a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a></strong>. Nie wystarczy średnia dla całego domu.</p>



<p class="wp-block-paragraph"><strong>Przykład</strong>:<br>Salon 30 m², ściana zewnętrzna, okno 6 m², temperatura wewnątrz 22°C, zewnętrzna -20°C.</p>



<ul class="wp-block-list">
<li>Przenikanie przez ścianę (U=0,15 W/m²K): (30 m² &#8211; 6 m²) × 0,15 × 42 = 151 W</li>



<li>Przenikanie przez okno (U=0,9): 6 × 0,9 × 42 = 227 W</li>



<li>Wentylacja (0,5 wymiany/h): 30 × 2,5 m wys. × 0,34 × 42 = 1071 W</li>



<li><strong>Razem zapotrzebowanie salonu: ~1450 W</strong></li>
</ul>



<p class="wp-block-paragraph">Na tej podstawie projektant dobiera <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> dla 1450 W w 30 m² daje to gęstość około <strong>48 W/m²</strong>, co przy zasilaniu 35°C wymaga rozstawu co <strong>12-15 cm</strong>.</p>



<h3 class="wp-block-heading">2. Rzuty instalacji z ponumerowanymi pętlami</h3>



<p class="wp-block-paragraph">Każda pętla musi mieć swój numer, długość i przypisanie do konkretnego pomieszczenia. Urzędnik sprawdza, czy długości pętli nie przekraczają&nbsp;<strong>100 m dla rury 16&#215;2 mm</strong>&nbsp;– dłuższe powodują zbyt duże opory hydrauliczne i nierównomierne grzanie.</p>



<h3 class="wp-block-heading">3. Tabela nastaw wstępnych na rozdzielaczu</h3>



<p class="wp-block-paragraph">To częsty powód odrzuceń. Projekt musi określać dla każdej pętli:</p>



<ul class="wp-block-list">
<li>przepływ masowy w&nbsp;<strong>kg/h</strong>&nbsp;lub&nbsp;<strong>l/min</strong></li>



<li>stratę ciśnienia w&nbsp;<strong>kPa</strong></li>



<li>nastawę rotametru lub zaworu (np. 2,5; 3,0 itd.)</li>
</ul>



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

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

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

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

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

.nastawy-table-wrapper {
    padding: 0 30px;
    margin-top: 20px;
    margin-bottom: 20px;
    overflow-x: auto;
}

.nastawy-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 800px;
}

.nastawy-table th {
    padding: 16px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
    color: #64748b;
}

.nastawy-table th.col-nastawa {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.nastawy-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
}

.nastawy-table td.col-nr {
    font-weight: 800;
    color: #94a3b8;
}

.nastawy-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.nastawy-table td.param-name span.icon {
    font-size: 16px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
    border: 1px solid #e2e8f0;
}

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

.val-pill {
    display: inline-block;
    padding: 6px 14px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 800;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
    font-size: 15px;
}

.nastawy-footer {
    padding: 25px 40px;
    background: #eff6ff;
    border-top: 1px solid #bfdbfe;
    display: flex;
    gap: 20px;
    align-items: center;
}

.nastawy-footer-icon {
    font-size: 32px;
}

.nastawy-footer-text h4 {
    margin: 0 0 5px 0;
    color: #1e3a8a;
    font-size: 16px;
    font-weight: 800;
}

.nastawy-footer-text p {
    margin: 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.5;
}

/* WERSJA MOBILNA - ZAMIANA W KARTY */
@media (max-width: 900px) {
    .nastawy-header { padding: 25px 20px; }
    .nastawy-table-wrapper { padding: 0 15px; min-width: 100%; }
    .nastawy-footer { flex-direction: column; text-align: center; padding: 20px 15px; }
    
    .nastawy-table {
        min-width: 100%;
        display: block;
    }
    
    .nastawy-table thead {
        display: none;
    }
    
    .nastawy-table tbody, .nastawy-table tr, .nastawy-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .nastawy-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .nastawy-table td {
        text-align: right;
        padding: 12px 20px;
        border-bottom: 1px solid #f1f5f9;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .nastawy-table td:last-child {
        border-bottom: none;
        background: #f8fafc;
    }

    .nastawy-table td.col-nr { display: none; } /* Ukrywamy sam numer pętli na mobile dla czystości */
    
    .nastawy-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
        justify-content: flex-start;
    }
    
    .nastawy-table td:nth-child(3)::before { content: "Długość pętli [m]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(4)::before { content: "Przepływ [l/min]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(5)::before { content: "Strata ciśnienia [kPa]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .nastawy-table td:nth-child(6)::before { content: "Nastawa rotametru:"; font-weight: 800; color: var(--accent); font-size: 13px; text-transform: uppercase; }
}
</style>

<div class="premium-nastawy" id="nastawy-table-app">
    <div class="nastawy-header">
        <h3>Przykład tabeli nastaw (Fragment z projektu)</h3>
        <p>Bez tego dokumentu instalator nie ma możliwości prawidłowo wyregulować przepływów. „Zgadywanie” ustawień na budowie to główna przyczyna przegrzewania krótkich pętli (np. w łazience) i niedogrzewania długich (np. w salonie). <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="nastawy-table-wrapper">
        <table class="nastawy-table">
            <thead>
                <tr>
                    <th style="width: 8%;">Nr pętli</th>
                    <th style="text-align: left; width: 28%;">Pomieszczenie</th>
                    <th style="width: 16%;">Długość [m]</th>
                    <th style="width: 16%;">Przepływ [l/min]</th>
                    <th style="width: 16%;">Strata ciśnienia [kPa]</th>
                    <th class="col-nastawa" style="width: 16%;">Nastawa rotametru</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="col-nr">1</td>
                    <td class="param-name"><span class="icon">🛋️</span> Salon (strefa dzienna)</td>
                    <td>85</td>
                    <td>1,8</td>
                    <td>12</td>
                    <td><span class="val-pill accent">3,2</span></td>
                </tr>
                <tr>
                    <td class="col-nr">2</td>
                    <td class="param-name"><span class="icon">🪟</span> Salon (strefa przy oknie)</td>
                    <td>72</td>
                    <td>1,5</td>
                    <td>9</td>
                    <td><span class="val-pill accent">2,8</span></td>
                </tr>
                <tr>
                    <td class="col-nr">3</td>
                    <td class="param-name"><span class="icon">🛏️</span> Sypialnia</td>
                    <td>58</td>
                    <td>1,2</td>
                    <td>7</td>
                    <td><span class="val-pill accent">2,4</span></td>
                </tr>
                <tr>
                    <td class="col-nr">4</td>
                    <td class="param-name"><span class="icon">🛁</span> Łazienka</td>
                    <td>45</td>
                    <td>1,4</td>
                    <td>8</td>
                    <td><span class="val-pill accent">2,6</span></td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="nastawy-footer">
        <div class="nastawy-footer-icon">🔧</div>
        <div class="nastawy-footer-text">
            <h4>Dlaczego nastawy są tak ważne?</h4>
            <p>Woda zawsze płynie tam, gdzie ma najmniejszy opór (najkrótszą drogę). Bez precyzyjnego przykręcenia zaworów (rotametrów) na krótkich pętlach, woda ominie te najdłuższe. Tylko fizyczne obliczenia OZC pozwalają wyznaczyć dokładne wartości dla każdej strefy.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x6e\x61\x73\x74\x61\x77\x79\x2d\x74\x61\x62\x6c\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<p class="wp-block-paragraph">Bez takiej tabeli instalator nie ma jak wyregulować układu, a urząd nie ma jak zweryfikować, czy system działa zgodnie z projektem.</p>



<h3 class="wp-block-heading">4. Specyfikacja warstw podłogi z oporami cieplnymi</h3>



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

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

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

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

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

.warstwy-table-wrapper {
    padding: 0 30px;
    margin-top: 20px;
    margin-bottom: 20px;
    overflow-x: auto;
}

.warstwy-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    min-width: 700px;
}

.warstwy-table th {
    padding: 16px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
    color: #64748b;
}

.warstwy-table th.col-r {
    color: var(--success);
    border-bottom-color: var(--success);
}

.warstwy-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
}

.warstwy-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.warstwy-table td.param-name span.icon {
    font-size: 16px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
    border: 1px solid #e2e8f0;
}

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

/* Wyróżnienie wiersza sumy */
.row-sum td {
    background: #f0fdf4 !important;
    font-weight: 900;
    font-size: 16px;
    border-bottom: none;
    color: var(--success);
}

.row-sum td:first-child {
    text-align: right;
    text-transform: uppercase;
    color: #166534;
}

.val-pill {
    display: inline-block;
    padding: 6px 14px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 800;
}

.val-pill.success {
    background: #dcfce7;
    color: var(--success);
    font-size: 16px;
}

.warstwy-footer {
    padding: 30px 40px;
    background: #fff;
    border-top: 1px solid var(--border-color);
}

.alert-box {
    background: #fee2e2;
    border: 1px solid #fecaca;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.alert-icon {
    font-size: 32px;
    line-height: 1;
}

.alert-text h4 {
    margin: 0 0 10px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
}

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

.alert-text strong {
    background: #f87171;
    color: white;
    padding: 2px 6px;
    border-radius: 4px;
}

/* WERSJA MOBILNA - ZAMIANA W KARTY */
@media (max-width: 900px) {
    .warstwy-header { padding: 25px 20px; }
    .warstwy-table-wrapper { padding: 0 15px; min-width: 100%; }
    .warstwy-footer { padding: 20px 15px; }
    .alert-box { flex-direction: column; text-align: left; gap: 15px; padding: 20px;}
    
    .warstwy-table {
        min-width: 100%;
        display: block;
    }
    
    .warstwy-table thead {
        display: none;
    }
    
    .warstwy-table tbody, .warstwy-table tr, .warstwy-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .warstwy-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .warstwy-table td {
        text-align: right;
        padding: 12px 20px;
        border-bottom: 1px solid #f1f5f9;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .warstwy-table td:last-child {
        border-bottom: none;
    }
    
    .warstwy-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
        justify-content: flex-start;
    }

    .row-sum td:first-child {
        background: #dcfce7 !important;
        justify-content: center;
    }
    .row-sum td {
        background: #f0fdf4 !important;
    }
    
    .warstwy-table td:nth-child(2)::before { content: "Grubość [cm]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .warstwy-table td:nth-child(3)::before { content: "λ [W/mK]:"; font-weight: 700; color: #64748b; font-size: 12px; text-transform: uppercase; }
    .warstwy-table td:nth-child(4)::before { content: "Opór R [(m²·K)/W]:"; font-weight: 800; color: var(--success); font-size: 13px; text-transform: uppercase; }
    .row-sum td:nth-child(4)::before { content: "ŁĄCZNY OPÓR R:"; font-weight: 900; color: #166534; font-size: 13px; }
}
</style>

<div class="premium-warstwy" id="warstwy-table-app">
    <div class="warstwy-header">
        <h3>Specyfikacja warstw podłogi (Weryfikacja NFOŚiGW)</h3>
        <p>To punkt, który w 2026 roku wywołuje najwięcej problemów w urzędach. Projekt dokumentujący ogrzewanie podłogowe musi zawierać tabelkę z wyszczególnieniem materiałów i oporów cieplnych, warstwa po warstwie. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="warstwy-table-wrapper">
        <table class="warstwy-table">
            <thead>
                <tr>
                    <th style="text-align: left; width: 40%;">Warstwa</th>
                    <th style="width: 20%;">Grubość [cm]</th>
                    <th style="width: 20%;">λ [W/mK]</th>
                    <th class="col-r" style="width: 20%;">Opór R [(m²·K)/W]</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🪨</span> Wylewka anhydrytowa</td>
                    <td>5,0</td>
                    <td>1,4</td>
                    <td>0,036</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧴</span> Klej elastyczny</td>
                    <td>0,5</td>
                    <td>0,8</td>
                    <td>0,006</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🧊</span> Płytki gresowe</td>
                    <td>1,0</td>
                    <td>1,3</td>
                    <td>0,008</td>
                </tr>
                <tr class="row-sum">
                    <td colspan="3">Łączny opór warstw (SUMA)</td>
                    <td><span class="val-pill success">0,050</span></td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="warstwy-footer">
        <div class="alert-box">
            <div class="alert-icon">⚠️</div>
            <div class="alert-text">
                <h4>Uwaga na grube wykończenia!</h4>
                <p>Jeśli suma oporów <strong>przekracza 0,15</strong> (w Czystym Powietrzu) lub <strong>0,10</strong> (w Moim Cieple), urząd nakazuje wymianę materiałów i może zablokować wypłatę.<br><br>
                Przykładowo: Wybierając parkiet dębowy 15 mm (R~0,12) oraz podkład korkowy 3 mm (R~0,05), łączny opór rośnie do <strong>0,17</strong>. Taka konfiguracja gwarantuje, że projekt <strong>zostanie skierowany do poprawki</strong>, a dotacja wstrzymana.</p>
            </div>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x77\x61\x72\x73\x74\x77\x79\x2d\x74\x61\x62\x6c\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Przykłady poprawnych i odrzuconych projektów (anonimowe)</h2>



<p class="wp-block-paragraph">Teorie teorią, ale praktyka pokazuje, gdzie najczęściej leży pies pogrzebany. Oba przypadki są autentyczne (dane zmienione).</p>



<h3 class="wp-block-heading">❌ Projekt odrzucony – co poszło nie tak?</h3>



<p class="wp-block-paragraph"><strong>Inwestor</strong>: Pan Marek, dom z lat 90. w woj. małopolskim.<br><strong>Wniosek</strong>: Czyste Powietrze, dotacja na pompę ciepła + wymianę grzejników na podłogówkę.<br><strong>Co złożył</strong>: fakturę za rury, odręczny szkic na kartce, zdjęcia z telefonu.</p>



<p class="wp-block-paragraph"><strong>Powód odrzucenia</strong>:</p>



<ul class="wp-block-list">
<li>Brak obliczeń OZC – urząd nie mógł potwierdzić, że podłogówka pokryje zapotrzebowanie przy 35°C.</li>



<li>Brak tabeli nastaw – instalator &#8222;wyregulował na oko&#8221;, co doprowadziło do nierównomiernego grzania.</li>



<li>Brak specyfikacji warstw – wylewka 7 cm bez izolacji pod rury spowodowała straty w dół.</li>
</ul>



<p class="wp-block-paragraph"><strong>Skutek</strong>: Wstrzymanie wypłaty&nbsp;<strong>14 000 zł</strong>&nbsp;do czasu przedłożenia pełnego projektu powykonawczego od uprawnionego projektanta. Pan Marek zapłacił dodatkowe 2200 zł za dokumentację i czekał kolejne 3 miesiące.</p>



<h3 class="wp-block-heading">✅ Projekt zaakceptowany – wzór do naśladowania</h3>



<p class="wp-block-paragraph"><strong>Inwestorka</strong>: Pani Anna, nowy <a href="https://projekt-ogrzewania.pl/category/domy-szkieletowe/" type="link" id="https://projekt-ogrzewania.pl/category/domy-szkieletowe/">dom szkieletowy</a> w Wielkopolsce.<br><strong>Wniosek</strong>: Moje Ciepło, dotacja na pompę ciepła (9 kW) i ogrzewanie podłogowe.<br><strong>Co złożyła</strong>:</p>



<ul class="wp-block-list">
<li>Pełny projekt wykonany w programie InstalSystem.</li>



<li>OZC dla każdego z 8 pomieszczeń.</li>



<li>Rzuty z rozstawem rur co 10-12 cm, długości pętli od 45 do 88 m.</li>



<li>Tabela nastaw z przepływami.</li>



<li>Protokół równoważenia hydraulicznego podpisany przez instalatora.</li>



<li>Zdjęcia ułożonych rur z miarką i opisem pomieszczenia.</li>
</ul>



<p class="wp-block-paragraph"><strong>Wynik</strong>: Wypłata&nbsp;<strong>28 000 zł</strong>&nbsp;w ciągu 30 dni od złożenia kompletnych dokumentów. Dodatkowo dom osiągnął EP = 48 kWh/(m²·rok), czyli lepiej niż wymagane 55.</p>



<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

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

.premium-chart-box {
    max-width: 900px;
    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.1);
    border: 1px solid #f1f5f9;
    overflow: hidden;
    color: var(--primary);
}

.chart-header {
    padding: 30px 40px 20px 40px;
    border-bottom: 1px solid #f1f5f9;
}

.chart-header h3 {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
}

.chart-header p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
    line-height: 1.5;
}

.chart-canvas-wrapper {
    padding: 30px 40px;
    position: relative;
    height: 400px;
    width: 100%;
}

.chart-footer {
    padding: 25px 40px;
    background: var(--bg-light);
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.chart-icon {
    font-size: 24px;
    line-height: 1;
}

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

.chart-conclusion strong {
    color: var(--primary);
    font-weight: 800;
}

@media (max-width: 600px) {
    .chart-header, .chart-canvas-wrapper, .chart-footer {
        padding: 20px;
    }
    .chart-canvas-wrapper {
        height: 300px;
    }
}
</style>

<div class="premium-chart-box" id="chart-app-container">
    <div class="chart-header">
        <h3>Wpływ temperatury zasilania na COP i dotację</h3>
        <p>Zobacz, dlaczego urząd NFOŚiGW tak rygorystycznie weryfikuje projekty. <br><a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wykres i analiza przygotowane przez ekspertów Projekt-Ogrzewania.pl</a></p>
    </div>
    
    <div class="chart-canvas-wrapper">
        <canvas id="copSubsidyChart"></canvas>
    </div>
    
    <div class="chart-footer">
        <div class="chart-icon">💡</div>
        <p class="chart-conclusion">
            <strong>Wniosek z wykresu:</strong> Każde 5°C niższej temperatury zasilania to wzrost efektywności COP o około 0,6–0,9. Oznacza to nie tylko setki złotych oszczędności na rachunkach rocznie, ale przede wszystkim <strong>gwarancję spełnienia rygorystycznych wymogów dotacyjnych na 2026 rok</strong> (EP ≤ 55).
        </p>
    </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)) {
        document.getElementById('chart-app-container').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px;">
                <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Wykres chroniony prawem autorskim</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny wykres jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany na tę stronę nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return; 
    }

    // JEŚLI DOMENA SIĘ ZGADZA - RYSUJEMY WYKRES
    const canvasEl = document.getElementById('copSubsidyChart');
    if(!canvasEl) return; 
    
    const ctx = canvasEl.getContext('2d');
    
    const gradientFill = ctx.createLinearGradient(0, 0, 0, 400);
    gradientFill.addColorStop(0, 'rgba(37, 99, 235, 0.15)');
    gradientFill.addColorStop(1, 'rgba(255, 255, 255, 0)');

    const pointBackgroundColors = [];
    const pointBorderColors = [];
    const pointRadii = [];
    
    // Oś X: Temperatury
    const temps = [25, 30, 35, 40, 45, 50, 55];
    // Oś Y: Wartości COP 
    const copValues = [5.8, 5.1, 4.2, 3.7, 3.2, 2.8, 2.5];

    temps.forEach(t => {
        if (t <= 35) {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#16a34a'); // Zielony (sukces/dotacja)
            pointRadii.push(7);
        } else {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#dc2626'); // Czerwony (brak dotacji/ryzyko)
            pointRadii.push(7);
        }
    });

    new Chart(ctx, {
        type: 'line',
        data: {
            labels: temps.map(t => t + '°C'),
            datasets: [{
                label: 'Współczynnik COP',
                data: copValues,
                borderColor: '#94a3b8', 
                borderWidth: 3,
                backgroundColor: gradientFill,
                fill: true,
                tension: 0.4,
                pointBackgroundColor: pointBackgroundColors,
                pointBorderColor: pointBorderColors,
                pointBorderWidth: 3,
                pointRadius: pointRadii,
                pointHoverRadius: 9
            }]
        },
        options: {
            responsive: true,
            maintainAspectRatio: false,
            plugins: {
                legend: {
                    display: false
                },
                tooltip: {
                    backgroundColor: '#0f172a',
                    titleFont: { family: 'Inter', size: 14, weight: 'bold' },
                    bodyFont: { family: 'Inter', size: 13 },
                    padding: 14,
                    displayColors: false,
                    callbacks: {
                        title: function(context) {
                            return 'Temperatura zasilania: ' + context[0].label;
                        },
                        label: function(context) {
                            let temp = temps[context.dataIndex];
                            let cop = context.parsed.y;
                            let lines = [`Współczynnik COP: ${cop}`];
                            
                            if(temp === 30) {
                                lines.push('👉 Gwarancja dotacji (Optymalna podłogówka)');
                                lines.push('👉 Niskie rachunki');
                            } else if(temp === 35) {
                                lines.push('👉 Dotacja możliwa (Standard)');
                                lines.push('👉 EP budynku na granicy');
                            } else if(temp === 45) {
                                lines.push('❌ Brak dotacji w Moim Cieple!');
                                lines.push('❌ Ryzyko w Czystym Powietrzu (Rzadka podłogówka)');
                            } else if(temp >= 55) {
                                lines.push('❌ BRAK DOTACJI (Zasilanie na grzejniki)');
                                lines.push('❌ Ogromne rachunki za prąd');
                            } else if(temp === 25) {
                                lines.push('👉 Wynik idealny (Bardzo gęsta podłogówka)');
                            } else {
                                lines.push('❌ Spadek efektywności');
                            }
                            return lines;
                        }
                    }
                }
            },
            scales: {
                x: {
                    grid: { display: false },
                    ticks: {
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#64748b'
                    },
                    title: {
                        display: true,
                        text: 'Temperatura zasilania podłogówki [°C]',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {top: 10}
                    }
                },
                y: {
                    min: 2.0,
                    max: 6.0,
                    grid: {
                        color: '#f1f5f9',
                        drawBorder: false
                    },
                    ticks: {
                        stepSize: 0.5,
                        font: { family: 'Inter', size: 13, weight: '600' },
                        color: '#64748b'
                    },
                    title: {
                        display: true,
                        text: 'Współczynnik COP pompy ciepła',
                        font: { family: 'Inter', size: 14, weight: 'bold' },
                        color: '#0f172a',
                        padding: {bottom: 10}
                    }
                }
            }
        }
    });
});
</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Wniosek</strong>: Każde 5°C niższej temperatury to wzrost COP o ok. 0,6-0,7. Dla domu 150 m² różnica między 35°C a 30°C to około&nbsp;<strong>1500 zł oszczędności rocznie</strong>.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



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

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

.roadmap-header {
    padding: 40px;
    text-align: center;
    background: var(--primary);
    color: white;
}

.roadmap-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

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

.timeline-container {
    padding: 40px;
    background: var(--bg-light);
    position: relative;
}

/* Oś pionowa */
.timeline-container::before {
    content: '';
    position: absolute;
    top: 40px;
    bottom: 40px;
    left: 64px; /* 40px padding + 24px połowa ikony */
    width: 4px;
    background: #cbd5e1;
    border-radius: 4px;
}

.step-row {
    position: relative;
    display: flex;
    gap: 30px;
    margin-bottom: 35px;
}

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

.step-number {
    width: 48px;
    height: 48px;
    background: var(--accent);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    flex-shrink: 0;
    z-index: 2;
    box-shadow: 0 0 0 6px var(--bg-light);
}

.step-content {
    background: white;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--border-color);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    flex-grow: 1;
    position: relative;
}

.step-content::before {
    content: '';
    position: absolute;
    top: 20px;
    left: -8px;
    width: 16px;
    height: 16px;
    background: white;
    border-left: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    transform: rotate(45deg);
}

.step-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.step-content p:last-child {
    margin-bottom: 0;
}

/* Wyróżnienie kroku ze zdjęciami */
.step-warning {
    border-color: #fecaca;
    background: #fff5f5;
}
.step-warning::before {
    background: #fff5f5;
    border-color: #fecaca;
}
.step-warning h4 {
    color: var(--danger);
}
.warning-badge {
    display: inline-block;
    background: var(--danger);
    color: white;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

/* Listy zadań (Checklists) */
.task-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.task-list li {
    font-size: 13px;
    font-weight: 600;
    color: #334155;
    background: #f1f5f9;
    padding: 10px 15px;
    border-radius: 8px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.task-list li::before {
    content: '✅';
    font-size: 14px;
    flex-shrink: 0;
}

.code-style {
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-size: 12px;
    color: #0f172a;
}

/* Krok końcowy (sukces) */
.step-final .step-number {
    background: var(--success);
}

@media (max-width: 600px) {
    .roadmap-header { padding: 30px 20px; }
    .timeline-container { padding: 30px 15px; }
    .timeline-container::before { left: 35px; }
    
    .step-row { gap: 15px; margin-bottom: 25px; }
    .step-number { width: 40px; height: 40px; font-size: 16px; }
    
    .step-content { padding: 20px; }
    .step-content::before { top: 16px; }
    
    .task-list li { font-size: 12px; padding: 8px 12px; }
}
</style>

<div class="premium-roadmap" id="roadmap-app-container">
    <div class="roadmap-header">
        <h3>Jak przygotować dokumentację, żeby wniosek przeszedł za pierwszym razem?</h3>
        <p>Masz już świadomość, że projekt to nie tylko rysunek. Oto <strong>konkretna ścieżka postępowania</strong>, która minimalizuje ryzyko odrzucenia przez urzędników NFOŚiGW.</p>
    </div>

    <div class="timeline-container">
        
        <div class="step-row">
            <div class="step-number">1</div>
            <div class="step-content">
                <h4>📋 Audyt lub Wskaźnik EP</h4>
                <p>Bez tego nie ruszysz. Fundamentem każdej dotacji jest udokumentowanie stanu energetycznego budynku.</p>
                <ul class="task-list">
                    <li><strong>Czyste Powietrze:</strong> Zleć obowiązkowy audyt energetyczny.</li>
                    <li><strong>Moje Ciepło:</strong> Przygotuj świadectwo charakterystyki z EP.</li>
                </ul>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">2</div>
            <div class="step-content">
                <h4>👨‍🎓 Wybierz projektanta z uprawnieniami</h4>
                <p>Nie zlecaj tego &#8222;koledze po fachu&#8221;. NFOŚiGW wymaga twardych dokumentów. Projektant musi posiadać aktualne <strong>uprawnienia budowlane</strong> do instalacji sanitarnych lub uprawnienia certyfikowanego producenta systemu (np. Uponor, Rehau, KAN).</p>
                <p style="color: var(--accent); font-weight: 700;">👉 Zawsze proś o numer uprawnień i pieczątkę na projekcie!</p>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">3</div>
            <div class="step-content">
                <h4>📚 Żądaj kompletnego kosztorysu i projektu</h4>
                <p>Poprawna dokumentacja projektowa musi zawierać zestaw niezbędnych elementów, które będą później weryfikowane z fakturami:</p>
                <ul class="task-list">
                    <li>Stronę tytułową (dane inwestora, adres, data)</li>
                    <li>Opis techniczny (minimum 2 strony)</li>
                    <li>Obliczenia strat ciepła OZC (jako załącznik)</li>
                    <li>Rzuty kondygnacji w skali (1:50 lub 1:100)</li>
                    <li>Schemat rozdzielaczy z <strong>tabelą nastaw</strong></li>
                    <li>Precyzyjną specyfikację materiałową (rury, izolacja, siłowniki)</li>
                </ul>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number">4</div>
            <div class="step-content">
                <h4>🔧 Nadzoruj instalatora (Protokół)</h4>
                <p>Ułożenie rur to nie koniec pracy instalatora. Zanim zalejesz podłogówkę jastrychem, wykonawca musi przygotować układ do pracy.</p>
                <ul class="task-list">
                    <li>Przepłukać i odpowietrzyć instalację</li>
                    <li>Ustawić przepływy zgodnie z tabelą nastaw z Projektu</li>
                    <li>Spisać <strong style="color:var(--accent)">protokół równoważenia</strong> i podbić go podpisem</li>
                </ul>
                <p style="margin-top: 10px; font-size: 13px; font-weight: 600;">Bez protokołu urząd nie uzna instalacji za wykonaną prawidłowo!</p>
            </div>
        </div>

        <div class="step-row">
            <div class="step-number" style="background: var(--danger);">5</div>
            <div class="step-content step-warning">
                <span class="warning-badge">Uwaga: Krytyczny błąd</span>
                <h4>📸 Zrób zdjęcia z miarką</h4>
                <p>Brzmi banalnie, ale setki wniosków są odrzucane właśnie przez brak dokumentacji fotograficznej z etapu budowy!</p>
                <p>Zrób zdjęcie każdego pomieszczenia z ułożonymi rurami. <strong>Przyłóż do rur miarkę</strong>, aby urzędnik mógł odczytać i zweryfikować ich rozstaw. Dbaj o czytelne nazwy plików, np.: <br>
                <span class="code-style">salon_rozstaw_10cm.jpg</span> lub <span class="code-style">sypialnia_petla_nr2.jpg</span>.</p>
            </div>
        </div>

        <div class="step-row step-final">
            <div class="step-number">6</div>
            <div class="step-content">
                <h4>✅ Złóż wniosek z kompletem załączników</h4>
                <p>Masz już wszystko, by bezpiecznie ubiegać się o zwrot kosztów. Do głównego wniosku NFOŚiGW dołączasz:</p>
                <ul class="task-list" style="grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));">
                    <li>Projekt powykonawczy (PDF)</li>
                    <li>Protokół równoważenia (PDF)</li>
                    <li>Spakowane zdjęcia (max 10 MB)</li>
                    <li>Faktury zgodne ze specyfikacją z projektu</li>
                    <li>Audyt energetyczny (Czyste Powietrze) LUB Świadectwo EP (Moje Ciepło)</li>
                </ul>
            </div>
        </div>

    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x72\x6f\x61\x64\x6d\x61\x70\x2d\x61\x70\x70\x2d\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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

.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: 15px; display: block; margin-top: 5px; }

.type-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 25px; }
.type-selector.three-cols { grid-template-columns: repeat(3, 1fr); }
.type-btn { padding: 14px 8px; border: 2px solid #cbd5e1; border-radius: 12px; cursor: pointer; text-align: center; font-weight: 700; font-size: 12px; 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; display: flex; flex-direction: column; justify-content: center; }
.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: 15px; border-bottom: 6px solid var(--success); transition: 0.3s; }
.main-score-box.danger { border-bottom-color: var(--danger); }
.main-score-box.warning { border-bottom-color: var(--warning); }

.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--success); transition: color 0.3s; }
.main-score-box.danger .score-num { color: #94a3b8; text-decoration: line-through; }
.main-score-box.warning .score-num { color: var(--warning); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg { margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: block; background: #dcfce7; color: var(--success); border: 1px solid #bbf7d0; line-height: 1.4; text-align: center; }
.main-score-box.danger #risk-msg { background: #fee2e2; color: var(--danger); border-color: #fecaca; }
.main-score-box.warning #risk-msg { background: #ffedd5; color: var(--warning); border-color: #fed7aa; }

.law-info-box { background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 12px; padding: 15px; margin-bottom: 25px; font-size: 12px; color: #0369a1; line-height: 1.5; }
.law-info-box strong { color: #075985; display: block; margin-bottom: 5px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; }

.tech-grid { background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 16px; }
.tech-item { display: flex; justify-content: space-between; padding-bottom: 16px; 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; line-height: 1.4; padding-right: 15px; }
.tech-item strong { font-size: 16px; text-align: right; white-space: nowrap; }
.tech-item strong.err { color: #f87171; }
.tech-item strong.warn { 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(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector.three-cols { grid-template-columns: repeat(3, 1fr); gap: 6px; }
    .type-selector.three-cols .type-btn { padding: 10px 2px; font-size: 10px; }
    .type-selector.three-cols .type-btn span { font-size: 9px !important; }
}
</style>

<div class="calc-intro">
    <h2>Weryfikator Dotacji Czyste Powietrze 2026</h2>
    <p>Sprawdź, jak parametry Twojego budynku i wykończenie posadzki wpływają na efektywność systemu i wypłatę dotacji. Autorskie narzędzie inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Poziom dofinansowania</span>
            <div class="type-selector three-cols">
                <div class="type-btn active" data-group="level" data-val="66">PODSTAWOWY<span style="font-size:10px; font-weight:400">do 66 000 zł</span></div>
                <div class="type-btn" data-group="level" data-val="99">PODWYŻSZONY<span style="font-size:10px; font-weight:400">do 99 000 zł</span></div>
                <div class="type-btn" data-group="level" data-val="135">NAJWYŻSZY<span style="font-size:10px; font-weight:400">do 135 000 zł</span></div>
            </div>

            <span class="section-title">2. Parametry budynku</span>
            <div class="input-wrap" style="margin-bottom: 35px;">
                <div class="input-label-row"><label>Szacowane obciążenie cieplne</label><span class="val-badge"><span id="v-demand">50</span> W/m²</span></div>
                <input type="range" id="demand" min="30" max="110" step="5" value="50">
            </div>

            <span class="section-title">3. Docelowe wykończenie podłogi</span>
            <div class="type-selector three-cols" style="margin-bottom:0;">
                <div class="type-btn active" data-group="floor" data-val="tiles">PŁYTKI / GRES<span style="font-size:10px; font-weight:400">R ≈ 0,02</span></div>
                <div class="type-btn" data-group="floor" data-val="vinyl">WINYL / CIENKIE<span style="font-size:10px; font-weight:400">R ≈ 0,08</span></div>
                <div class="type-btn" data-group="floor" data-val="wood">GRUBA DESKA<span style="font-size:10px; font-weight:400">R ≈ 0,12</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Pula dotacji do zdobycia:</span>
                <span class="score-num"><span id="resMoney">&#8212;</span></span>
                <div id="risk-msg">Wniosek bezpieczny. Parametry gwarantują przejście audytu w NFOŚiGW.</div>
            </div>

            <div id="lawBox" class="law-info-box">
                <strong>Wymogi efektywności (Czyste Powietrze)</strong>
                Wymagany <b>Audyt Energetyczny</b> narzuca, aby zapotrzebowanie po modernizacji wynosiło <b>EU ≤ 80 kWh/(m²·rok)</b>. Projekt musi być zoptymalizowany pod parametry niskotemperaturowe.
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Szacowana temp. zasilania:</span><strong id="resTemp">&#8212;</strong></div>
                <div class="tech-item"><span>Wpływ na efektywność (COP):</span><strong id="resCop">&#8212;</strong></div>
                <div class="tech-item"><span>Opór cieplny warstw R:</span><strong id="resOpor">&#8212;</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Brak limitów nie wybacza błędów</h3>
            <p style="margin:0; font-size:14px; color:#475569">Urząd nie zakazuje wyższych temperatur, ale egzekwuje wydajność audytem (EU ≤ 80). Instalacja &#8222;na oko&#8221; drastycznie obniża COP pompy, co skutkuje odrzuceniem wniosku. Zabezpiecz inwestycję twardymi obliczeniami OZC.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="javascript:void(0)" id="btn-email" class="cta-btn" style="background:#1e293b">
                WYŚLIJ WYNIKI NA E-MAIL
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT DO DOTACJI →
            </a>
        </div>
    </div>
</div>

<script>
window.addEventListener("DOMContentLoaded", function() {
    // === BLOKADA DOMENY ===
    const currentDomain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(currentDomain)) {
        document.getElementById('screed-calc-app').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fee2e2; border-radius: 24px; color: #dc2626; font-family: sans-serif;">
                <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione</h3>
                <p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>
                <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>
            </div>`;
        return;
    }
    // ========================

    let state = { level: '66', floor: 'tiles' };

    document.querySelectorAll('.type-btn').forEach(btn => {
        btn.addEventListener('click', function() {
            const group = this.getAttribute('data-group');
            if(!group) return;

            document.querySelectorAll(`.type-btn[data-group="${group}"]`).forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            state[group] = this.getAttribute('data-val');
            
            calculate();
        });
    });

    document.getElementById('demand').addEventListener('input', function() {
        document.getElementById('v-demand').innerText = this.value;
        calculate();
    });

    function calculate() {
        const demand = parseFloat(document.getElementById('demand').value);
        
        let moneyText = `do ${state.level} 000 zł`;
        document.getElementById('resMoney').innerText = moneyText;

        let tempSurface = 22 + (demand / 11);
        let opor = 0.02;
        if (state.floor === 'vinyl') opor = 0.08;
        if (state.floor === 'wood') opor = 0.12;
        
        // Zoptymalizowany wzór zakłądający standardowy rozstaw rur u profesjonalisty
        let tempWater = tempSurface + (demand * opor) + 2.5; 
        let cop = 5.2 - ((tempWater - 28) * 0.12);
        cop = Math.max(1.5, cop).toFixed(2);

        // Limity i ryzyka
        let maxOpor = 0.15;
        let isOporValid = opor <= maxOpor;
        let isTempCritical = tempWater > 55;
        
        // KLUCZOWA POPRAWKA: Jeśli demand > 80, wniosek zostaje odrzucony
        let isDemandTooHigh = demand > 80; 
        let isNormRisk = (tempWater > 45) && !isDemandTooHigh; // Pokaż ostrzeżenie, chyba że już i tak wywalamy błąd całkowity

        // Aktualizacja DOM
        document.getElementById('resTemp').innerText = `${tempWater.toFixed(1)}°C`;
        document.getElementById('resCop').innerText = cop;
        document.getElementById('resOpor').innerText = `${opor.toFixed(2)} (m²·K)/W`;

        const mainBox = document.getElementById('mainBox');
        const riskMsg = document.getElementById('risk-msg');
        
        // Resetowanie klas
        mainBox.classList.remove('danger', 'warning');
        document.getElementById('resTemp').classList.remove('err', 'warn');
        document.getElementById('resOpor').classList.remove('err');
        document.getElementById('resCop').classList.remove('err', 'warn');

        if(isTempCritical) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `BŁĄD PROJEKTOWY! Temperatura zasilania ${tempWater.toFixed(1)}°C zniszczy posadzkę. Instalacja zdyskwalifikowana.`;
            document.getElementById('resTemp').classList.add('err');
        } else if (isDemandTooHigh) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `ODRZUCENIE WNIOSKU! Zapotrzebowanie przekracza 80 W/m². Nie spełnisz wymogu audytu EU ≤ 80 kWh/(m²·rok). Wymagane dodatkowe ocieplenie domu.`;
            // Kolorujemy COP na czerwono, bo drastycznie spada przez braki w izolacji
            document.getElementById('resCop').classList.add('err');
        } else if (!isOporValid) {
            mainBox.classList.add('danger');
            riskMsg.innerText = `ODRZUCENIE WNIOSKU! Opór cieplny (R=${opor.toFixed(2)}) łamie bezpośrednie zalecenia programu (limit 0.15).`;
            document.getElementById('resOpor').classList.add('err');
        } else if (isNormRisk) {
            mainBox.classList.add('warning');
            riskMsg.innerText = `RYZYKO ODRZUCENIA WNIOSKU! Zasilanie ${tempWater.toFixed(1)}°C mocno obniża COP pompy ciepła, co ryzykuje odrzucenie audytu (EU ≤ 80)!`;
            document.getElementById('resTemp').classList.add('warn');
            document.getElementById('resCop').classList.add('warn');
        } else {
            riskMsg.innerText = "Wniosek bezpieczny. Parametry gwarantują bezproblemowe przejście audytu w NFOŚiGW.";
        }
    }

    // --- WYSYŁKA MAILA ---
    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var moneyText = document.getElementById('resMoney').innerText;
            var demand = document.getElementById('v-demand').innerText;

            var floorName = 'Płytki / Gres';
            if(state.floor === 'vinyl') floorName = 'Winyl / Cienkie panele';
            if(state.floor === 'wood') floorName = 'Gruba deska';

            var temp = document.getElementById('resTemp').innerText;
            var cop = document.getElementById('resCop').innerText;
            var opor = document.getElementById('resOpor').innerText;
            var verdict = document.getElementById('risk-msg').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Weryfikacja Dotacji Czyste Powietrze');
            
            var bodyText = 'Dzień dobry,\n\nZrobiłem kalkulację w Weryfikatorze Dotacji na Państwa stronie. Oto moje parametry:\n\n' +
                           '• Szacowana dotacja: ' + moneyText + '\n' +
                           '• Zapotrzebowanie na ciepło: ' + demand + ' W/m²\n' +
                           '• Wykończenie podłogi: ' + floorName + '\n\n' +
                           '-- WYNIKI ALGORYTMU --\n' +
                           '• Szacowana temp. zasilania: ' + temp + '\n' +
                           '• Szacowany COP pompy: ' + cop + '\n' +
                           '• Opór cieplny: ' + opor + '\n' +
                           '• Status wniosku: ' + verdict + '\n\n' +
                           'Proszę o wycenę profesjonalnego projektu ogrzewania, który zabezpieczy moje dofinansowanie.';
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(bodyText);
        });
    }

    calculate();
});
</script>



<h2 class="wp-block-heading">Case study: Klient dostał 28 tys. zł dotacji dzięki naszemu projektowi</h2>



<p class="wp-block-paragraph">Opowiem Ci historię, która wydarzyła się w 2025 roku, ale jej wnioski są w 100% aktualne na 2026. Inwestor (nazwijmy go Panem Tomaszem) budował dom pod Poznaniem. Powierzchnia użytkowa 165 m², ściana trójwarstwowa z 20 cm styropianu, okna trzyszybowe. Planował pompę ciepła 10 kW i <a href="https://projekt-ogrzewania.pl" type="link" id="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a>.</p>



<p class="wp-block-paragraph"><strong>Co zrobił początkowo</strong>&nbsp;(błędnie):</p>



<ul class="wp-block-list">
<li>Sam naszkicował rozstaw rur &#8222;na oko&#8221; – co 20 cm.</li>



<li>Zamówił rury i rozdzielacz bez projektu.</li>



<li>Instalator ułożył pętle, zalał jastrych.</li>
</ul>



<p class="wp-block-paragraph"><strong>Efekt</strong>: Przy próbie rozruchu okazało się, że w salonie (35 m²) temperatura nie przekracza 19°C, a w łazience jest 24°C. Instalacja była niezrównoważona, przepływy chaotyczne. Pan Tomasz chciał złożyć wniosek o dotację w Moim Cieple, ale nie miał żadnej dokumentacji.</p>



<p class="wp-block-paragraph"><strong>Nasze działanie</strong>:</p>



<ol start="1" class="wp-block-list">
<li>Wykonaliśmy&nbsp;<strong>inwentaryzację powykonawczą</strong>&nbsp;– zmierzyliśmy rzeczywiste długości pętli (najdłuższa 117 m – dramat!).</li>



<li>Przeliczyliśmy OZC – okazało się, że przy rozstawie 20 cm potrzebna temperatura 42°C, co dałoby COP na poziomie 3,3 i EP ≈ 68 →&nbsp;<strong>poza normą</strong>.</li>



<li>Zaproponowaliśmy&nbsp;<strong>ratunek</strong>&nbsp;– demontaż płyty w salonie i dołożenie dodatkowych pętli (zmniejszenie rozstawu do 12 cm). Koszt: 4500 zł.</li>



<li>Przygotowaliśmy pełny projekt powykonawczy z tabelą nastaw i obliczeniami.</li>



<li>Instalator wyregulował układ, potwierdził protokołem.</li>
</ol>



<p class="wp-block-paragraph"><strong>Efekt końcowy</strong>:</p>



<ul class="wp-block-list">
<li>Temperatura zasilania spadła z projektowanych 42°C do rzeczywistych 31°C.</li>



<li>COP pompy wzrósł do 4,8.</li>



<li>EP budynku = 51 → spełnienie normy.</li>



<li>Pan Tomasz złożył wniosek z naszą dokumentacją i dostał&nbsp;<strong>28 000 zł dotacji</strong>&nbsp;(pompa + podłogówka).</li>
</ul>



<p class="wp-block-paragraph"><strong>Koszt naprawy (4500 zł) zwrócił się po pierwszym roku dzięki niższym rachunkom za prąd. A dotacja została wypłacona w całości.</strong></p>



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

.premium-checklist-box {
    max-width: 900px;
    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.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

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

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

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

/* PASEK POSTĘPU */
.progress-wrapper {
    padding: 0 40px;
    margin: -15px 0 25px 0;
    position: relative;
    z-index: 2;
}

.progress-container {
    background: white;
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
}

.progress-text {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
}

.progress-text span.status {
    color: var(--accent);
}

.progress-bar-bg {
    width: 100%;
    height: 10px;
    background: #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    border-radius: 10px;
    transition: width 0.4s ease, background-color 0.4s ease;
}

/* LISTA ZADAŃ */
.checklist-items {
    padding: 0 40px 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.check-item:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.check-item.checked {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.check-item input[type="checkbox"] {
    display: none;
}

.custom-checkbox {
    width: 28px;
    height: 28px;
    border: 2px solid #94a3b8;
    border-radius: 8px;
    margin-right: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.2s;
    background: white;
}

.check-item.checked .custom-checkbox {
    background: var(--success);
    border-color: var(--success);
}

.custom-checkbox::after {
    content: '✓';
    color: white;
    font-size: 16px;
    font-weight: bold;
    display: none;
}

.check-item.checked .custom-checkbox::after {
    display: block;
}

.check-text {
    font-size: 14px;
    color: #334155;
    line-height: 1.5;
    user-select: none;
}

.check-text strong {
    color: var(--primary);
    font-weight: 700;
}

.check-item.checked .check-text {
    color: #166534;
}

/* PODSUMOWANIE / RADA PRAKTYKA */
.checklist-footer {
    padding: 35px 40px;
    background: #eff6ff;
    border-top: 1px solid #bfdbfe;
}

.advice-box {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.advice-icon {
    font-size: 40px;
    line-height: 1;
}

.advice-content h4 {
    margin: 0 0 10px 0;
    color: #1e3a8a;
    font-size: 18px;
    font-weight: 900;
}

.advice-content p {
    margin: 0 0 15px 0;
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
}

.advice-content p:last-child {
    margin-bottom: 0;
}

.cta-button {
    display: inline-block;
    background: var(--accent);
    color: white;
    padding: 14px 28px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 14px;
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s;
    border: none;
    cursor: pointer;
}

.cta-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -10px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .checklist-header { padding: 30px 20px 20px 20px; }
    .progress-wrapper { padding: 0 20px; }
    .checklist-items { padding: 0 20px 20px 20px; }
    .checklist-footer { padding: 25px 20px; }
    .advice-box { flex-direction: column; gap: 15px; text-align: center; align-items: center;}
    .check-item { padding: 12px 15px; }
}
</style>

<div class="premium-checklist-box" id="checklist-app-container">
    <div class="checklist-header">
        <h3>Lista Kontrolna NFOŚiGW 2026</h3>
        <p>W 2026 roku liczy się każdy szczegół: od temperatury zasilania po opór cieplny podłogi. Zanim złożysz wniosek o dotację i narazisz się na wielomiesięczną walkę z urzędem, upewnij się, że spełniasz wszystkie poniższe warunki.</p>
    </div>

    <div class="progress-wrapper">
        <div class="progress-container">
            <div class="progress-text">
                <span>Gotowość Twojego wniosku:</span>
                <span class="status" id="progress-status">0 z 9 spełnionych</span>
            </div>
            <div class="progress-bar-bg">
                <div class="progress-bar-fill" id="progress-fill"></div>
            </div>
        </div>
    </div>

    <div class="checklist-items">
        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Temperatura projektowa zasilania wynosi <strong>≤ 35°C</strong> (dla Moje Ciepło zalecane wręcz 30°C).</div>
        </label>
        
        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Dołączono fizyczne <strong>obliczenia strat ciepła (OZC)</strong> dla każdego pomieszczenia zgodne z PN-EN 12831.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projekt zawiera dokładne <strong>rzuty kondygnacji</strong> z ponumerowanymi pętlami i ich długościami.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Określono rodzaj i grubość <strong>izolacji pod rurami</strong> (minimum 5 cm EPS lub 3 cm PIR).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Uwzględniono <strong>opór cieplny R</strong> wszystkich warstw podłogi (≤ 0,15 Czyste Powietrze / ≤ 0,10 Moje Ciepło).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projekt bezwzględnie przewiduje <strong>sterowanie strefowe</strong> (termostaty w pomieszczeniach + siłowniki na rozdzielaczu).</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Dołączono <strong>tabelę nastaw wstępnych</strong> określającą przepływy [l/min] i straty ciśnienia.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text"><strong>Metraż rur</strong> w instalacji zgadza się fizycznie z opłaconymi fakturami oraz audytem/świadectwem EP.</div>
        </label>

        <label class="check-item">
            <input type="checkbox" class="req-checkbox">
            <div class="custom-checkbox"></div>
            <div class="check-text">Projektant posiada <strong>aktualne uprawnienia</strong> i czytelnie podbił dokumentację imienną pieczątką.</div>
        </label>
    </div>

    <div class="checklist-footer">
        <div class="advice-box">
            <div class="advice-icon">💡</div>
            <div class="advice-content">
                <h4>Ostatnia rada od praktyka</h4>
                <p>Nie traktuj profesjonalnego projektu jako zbędnego kosztu. Dobrze zaprojektowane ogrzewanie podłogowe to <strong>inwestycja, która zwraca się wielokrotnie</strong> – w przyznanej dotacji, minimalnych rachunkach za prąd i spokoju ducha na lata. W 2026 roku, przy rekordowo wysokich cenach energii, każdy procent efektywności ma znaczenie. Zrób to raz, a porządnie.</p>
                <p>Jeśli masz wątpliwości co do swojej dokumentacji lub nie potrafisz zaznaczyć wszystkich powyższych punktów – nie ryzykuj odrzucenia wniosku.</p>
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-button" style="margin-top: 10px;">ZLEĆ BEZPIECZNY PROJEKT DO DOTACJI →</a>
            </div>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x68\x65\x63\x6b\x6c\x69\x73\x74\x2d\x61\x70\x70\x2d\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();

document.addEventListener('DOMContentLoaded', function() {
    const checkboxes = document.querySelectorAll('.req-checkbox');
    const fillBar = document.getElementById('progress-fill');
    const statusText = document.getElementById('progress-status');
    const total = checkboxes.length;

    checkboxes.forEach(box => {
        box.addEventListener('change', function() {
            // Stylizacja zaznaczonego elementu
            if(this.checked) {
                this.parentElement.classList.add('checked');
            } else {
                this.parentElement.classList.remove('checked');
            }

            // Obliczenie postępu
            const checkedCount = document.querySelectorAll('.req-checkbox:checked').length;
            const percentage = (checkedCount / total) * 100;
            
            fillBar.style.width = percentage + '%';
            
            if(checkedCount === total) {
                statusText.innerText = "Wniosek gotowy do wysłania! (9/9)";
                statusText.style.color = "var(--success)";
                fillBar.style.backgroundColor = "var(--success)";
            } else {
                statusText.innerText = checkedCount + " z 9 warunków spełnionych";
                statusText.style.color = "var(--accent)";
                fillBar.style.backgroundColor = "var(--accent)";
            }
        });
    });
});
</script>



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

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

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

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
    line-height: 1.4;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

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

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-app-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Czy mogę złożyć wniosek o dotację na podłogówkę bez pełnego projektu OZC?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Oba programy (Czyste Powietrze i Moje Ciepło) wymagają twardych dowodów inżynieryjnych. W Czystym Powietrzu OZC musi pokrywać się z obowiązkowym audytem, a w Moim Cieple instalacja musi zapewnić rygorystyczny wskaźnik EP ≤ 55. Bez obliczeń wniosek zostanie odrzucony."
        }
      }, {
        "@type": "Question",
        "name": "Jakie wykończenie podłogi wybrać, żeby nie stracić dotacji?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najbezpieczniejsze są płytki (gres) lub cienki winyl. W Moim Cieple 2026 łączny opór cieplny (R) nie może przekroczyć 0,10 (m²·K)/W. Gruba deska z podkładem bardzo często ten limit łamie, co dyskwalifikuje inwestycję w urzędzie."
        }
      }, {
        "@type": "Question",
        "name": "Czy instalator może dobrać rozstaw rur 'z własnego doświadczenia' bez projektu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie. Urzędy kontrolują, czy układ pozwala na pracę niskotemperaturową (max 35°C). Zbyt rzadki rozstaw 'na oko' zrujnuje współczynnik COP pompy ciepła, co automatycznie wyrzuci Twój wniosek ze względu na brak wymaganej efektywności."
        }
      }, {
        "@type": "Question",
        "name": "Czy do dotacji wymagane są termostaty w każdym pomieszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak. Zgodnie z wytycznymi, system musi posiadać sterowanie strefowe. Oznacza to fizyczny termostat w każdym pokoju oraz współpracujące z nimi siłowniki na belkach rozdzielacza."
        }
      }, {
        "@type": "Question",
        "name": "Jakie dokumenty od instalatora muszę dostarczyć do NFOŚiGW?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sama faktura to za mało. Niezbędny jest projekt powykonawczy (OZC + rysunki z długościami pętli), podpisany protokół równoważenia hydraulicznego (nastawy rotametrów) oraz zdjęcia ułożonych rur z przyłożoną miarką."
        }
      }]
    }
    </script>

    <div class="qa-header">
        <h2>🧐 5 pytań, które uratują Twoją dotację</h2>
        <p>Gdy szukasz ekipy do instalacji, musisz wiedzieć, kto zabezpieczy Twoje pieniądze z NFOŚiGW, a kto narazi Cię na odrzucenie wniosku. Oto test, który błyskawicznie &#8222;oddzieli ziarno od plew&#8221;. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Opracowanie: Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Czy złoży Pan instalację na podstawie samych szkiców, bez obliczeń OZC?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Pewnie, faktury wystarczą do dotacji, urząd i tak tego nie sprawdza tak dokładnie. Szkoda kasy na projekt.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Nie mogę. Programy wymagają twardych dowodów. OZC musi się zgadzać z audytem (Czyste Powietrze) lub wytycznymi dla EP ≤ 55 (Moje Ciepło). Bez OZC zablokują Panu wypłatę.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Chcę położyć grubą deskę. Jak to wpływa na dofinansowanie?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Kładź Pan co chcesz. Podłogówka i tak to przebije, najwyżej damy 45 stopni na piecu i będzie grzać.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Z deską musimy uważać. W Moim Cieple opór cieplny nie może przekroczyć 0,10. Gruba deska często łamie ten limit. Skonsultujmy to najpierw z projektantem.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jaki rozstaw rur Pan zastosuje?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Standardowo. Pod oknem co 10 cm, a na środku salonu co 15 cm. Zawsze tak robię i nikt nie narzeka.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Rozstaw musi wynikać bezpośrednio z zapotrzebowania pomieszczeń przy zasilaniu z pompy ciepła na max. 35°C. Zrobimy dokładnie tak, jak wyliczy inżynier na rzutach.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „Czy musimy montować termostaty w każdym pokoju?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Po co przepłacać? Damy jeden główny sterownik w korytarzu, on ogarnie całą pompę ciepła.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Tak. Zgodnie z wytycznymi obu programów na 2026 rok, system musi zapewniać sterowanie strefowe (termostaty i siłowniki). Bez tego nie ma dotacji.”</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Co dokładnie dostanę od Pana po zakończeniu prac?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Wystawię Panu fakturę na robociznę i materiały. To w zupełności wystarczy do urzędu.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zostawię podpisaną tabelę z protokołem równoważenia instalacji. Zrobię też zdjęcia ułożonych rur z przyłożoną miarką, bo NFOŚiGW regularnie tego żąda.”</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li><strong>„Zrobimy temperaturę na 45-50 stopni, pompa ciepła da radę.”</strong><br>Ostrzeżenie: To niszczy COP pompy ciepła, zawyża rachunki za prąd i dyskwalifikuje inwestycję przy restrykcyjnym wymogu EP ≤ 55.</li>
            <li><strong>„Audyt energetyczny to tylko papierologia, zrobimy po swojemu.”</strong><br>Ostrzeżenie: Niezgodność instalacji z założeniami audytu to najczęstszy powód zablokowania wypłaty w Czystym Powietrzu.</li>
            <li><strong>„Położymy rury i od razu zalewamy wylewkę. Szkoda czasu na zdjęcia z miarką.”</strong><br>Ostrzeżenie: Bez udokumentowanego rozstawu rur przed zalaniem jastrychu, urząd ma prawo zakwestionować instalację podłogową.</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x61\x70\x70\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/">Projekt ogrzewania podłogowego a dotacje Czyste Powietrze i Moje Ciepło 2026.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy ogrzewanie podłogowe można podłączyć do grzejników?</title>
		<link>https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 06:13:10 +0000</pubDate>
				<category><![CDATA[Błędy instalacyjne]]></category>
		<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Modernizacja budynków]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[błędy instalatorów]]></category>
		<category><![CDATA[grupa pompowa]]></category>
		<category><![CDATA[instalacja mieszana]]></category>
		<category><![CDATA[modernizacja ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny]]></category>
		<category><![CDATA[podłogówka i grzejniki]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz podłogówki]]></category>
		<category><![CDATA[sprzęgło hydrauliczne]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[zapotrzebowanie na ciepło]]></category>
		<category><![CDATA[zawór mieszający]]></category>
		<category><![CDATA[zawór trójdrogowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4089</guid>

					<description><![CDATA[<p>Wielu inwestorów planujących modernizację starego domu lub budowę nowego, w którym część pomieszczeń ma być ogrzewana tradycyjnie, zastanawia się, czy ogrzewanie podłogowe można podłączyć do grzejników. Rozwiązanie to jest jak najbardziej wykonalne, jednak wymaga ogromnej precyzji, odpowiedniego projektu oraz zastosowania układów mieszających. Bezpośrednie wpięcie podłogówki w obieg grzejnikowy to najszybsza droga do zniszczenia posadzki i przegrzania pomieszczeń. Dowiedz się, jak krok po kroku zaprojektować bezpieczną i wydajną instalację mieszaną, unikając najdroższych błędów montażowych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">Czy ogrzewanie podłogowe można podłączyć do grzejników?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Czy ogrzewanie podłogowe można podłączyć do grzejników?</strong> To pytanie zadaje sobie coraz więcej inwestorów modernizujących stare instalacje lub projektujących domy z myślą o komforcie i oszczędności energii. Odpowiedź brzmi: <strong>tak, ale wyłącznie pod ścisłymi warunkami i przy zastosowaniu specjalistycznych komponentów</strong>. Bezpośrednie połączenie tych dwóch systemów, bez odpowiednich urządzeń pośredniczących, prowadzi do przegrzewania podłóg, uszkodzenia wylewki, a nawet awarii kotła. W tym artykule przeprowadzę Cię przez wszystkie zasady, wymagania i obliczenia niezbędne do zaprojektowania sprawnej instalacji mieszanej od różnic temperaturowych, przez dobór zaworów mieszających, po praktyczne wzory i przykłady liczbowe.</p>



<h2 class="wp-block-heading">Dlaczego bezpośrednie podłączenie ogrzewania podłogowego do grzejników jest niemożliwe?</h2>



<p class="wp-block-paragraph">Aby zrozumieć problem, musisz spojrzeć na podstawowe parametry pracy obu systemów. <strong>Grzejniki</strong> (standardowe płytowe lub członowe) zaprojektowano do pracy z wysoką temperaturą zasilania najczęściej <strong>75°C / 65°C / 20°C</strong> (zasilanie / powrót / pomieszczenie) lub w nowszych instalacjach niskotemperaturowych <strong>55/45/20</strong>. Z kolei <strong><a href="https://projekt-ogrzewania.pl" type="link" id="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a></strong> wymaga wody o temperaturze <strong>35-45°C</strong> na zasilaniu i nie więcej niż <strong>30-35°C</strong> na powrocie, aby temperatura powierzchni podłogi nie przekroczyła 27-29°C (dla pomieszczeń mieszkalnych).</p>



<p class="wp-block-paragraph">Jeśli puścisz wodę o temperaturze 60°C przez pętle podłogówki, efekt będzie natychmiastowy: podłoga nagrzeje się do ponad 40°C, co nie tylko dyskwalifikuje komfort użytkowania, ale również powoduje:</p>



<ul class="wp-block-list">
<li><strong>Spękanie jastrychu</strong>&nbsp;(różnice rozszerzalności termicznej)</li>



<li><strong>Uszkodzenie wykładzin</strong>&nbsp;(panele, deski – odkształcenia, kleje tracą właściwości)</li>



<li><strong>Nadmierne straty ciepła w dół</strong>&nbsp;(jeśli izolacja nie jest idealna)</li>



<li><strong>Przegrzewanie pomieszczeń</strong>&nbsp;– wysoka bezwładność podłogówki sprawia, że nawet po zamknięciu zaworu temperatura rośnie jeszcze przez kilka godzin</li>
</ul>



<p class="wp-block-paragraph">Z drugiej strony, jeśli obniżysz temperaturę całej instalacji do 40°C, aby zasilić podłogówkę, <strong>grzejniki przestaną efektywnie grzać</strong> ich moc spadnie nawet o 70-80%. Przykładowo, grzejnik o mocy 2000 W przy parametrach 75/65/20, po obniżeniu zasilania do 45°C, osiągnie zaledwie około 500-600 W. Dom będzie zimny.</p>



<p class="wp-block-paragraph">Stąd jedyne rozsądne rozwiązanie to <strong>instalacja mieszana</strong>, w której <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" type="link" id="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł</a> (lub <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>) wytwarza wodę o wysokiej temperaturze dla grzejników, a dla ogrzewania podłogowego montuje się <strong>układ mieszający</strong>, który obniża temperaturę i stabilizuje przepływ.</p>



<h2 class="wp-block-heading">Kluczowe elementy instalacji mieszanej – co musi znaleźć się w projekcie?</h2>



<p class="wp-block-paragraph">Zanim przejdziemy do obliczeń, omówmy fizyczne komponenty, bez których&nbsp;<strong>instalacja mieszana</strong>&nbsp;nie ma prawa działać poprawnie. Każdy z nich pełni określoną funkcję – pominięcie jednego to proszenie się o awarię.</p>



<h3 class="wp-block-heading"><a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">Zawór mieszający</a> trójdrogowy i czterodrogowy – różnice i zastosowanie</h3>



<p class="wp-block-paragraph">To serce układu. Zawór miesza gorącą wodę z powrotu z podłogówki (schłodzoną) tak, aby uzyskać zadaną, niską temperaturę zasilania pętli.</p>



<ul class="wp-block-list">
<li><strong>Zawór trójdrogowy</strong>&nbsp;(popularniejszy w domowych instalacjach) ma jeden dopływ gorącej wody z kotła, drugi dopływ schłodzonej wody z powrotu podłogówki i jeden wylot na zasilanie pętli. Siłownik (termostatyczny lub elektryczny) reguluje proporcje mieszania.<br><em>Przykład</em>: Głowica termostatyczna ustawiona na 40°C. Gdy temperatura na zasilaniu podłogówki wzrośnie powyżej 40°C, zawór ogranicza dopływ gorącej wody z kotła, a zwiększa dopływ chłodniejszej z powrotu.</li>



<li><strong>Zawór czterodrogowy</strong>&nbsp;– bardziej skomplikowany, ale daje większą stabilność. Posiada dwa wejścia (gorąca z kotła, chłodna z powrotu) i dwa wyjścia (na zasilanie pętli i na powrót do kotła). Umożliwia również recyrkulację części wody wewnątrz obiegu podłogowego, co jest korzystne przy dużych powierzchniach.</li>
</ul>



<p class="wp-block-paragraph"><strong>Ważne</strong>: Zawór musi być dobrany przepływowo. Jego&nbsp;<strong>współczynnik Kv</strong>&nbsp;(przepływ w m³/h przy spadku ciśnienia 1 bara) powinien być o 10-20% wyższy niż maksymalny przepływ w obiegu podłogowym. Dla typowego domu o powierzchni 100 m², gdzie przepływ wynosi około 1,2-1,8 m³/h, dobierz zawór o Kv = 2,0-2,5.</p>



<h3 class="wp-block-heading">Pompa obiegowa i rozdział hydrauliczny</h3>



<p class="wp-block-paragraph">W instalacji mieszanej potrzebujesz&nbsp;<strong>dwóch pomp</strong>&nbsp;(chyba że kocioł ma własną, a układ podłogowy wyposażysz w dodatkową):</p>



<ul class="wp-block-list">
<li><strong>Pompa kotłowa</strong>&nbsp;– zapewnia cyrkulację przez grzejniki i dostarcza gorącą wodę do zaworu mieszającego.</li>



<li><strong>Pompa obiegowa podłogówki</strong>&nbsp;– zamontowana za zaworem mieszającym, tłoczy wodę o obniżonej temperaturze przez rozdzielacz i pętle.</li>
</ul>



<p class="wp-block-paragraph"><strong>Kluczowe parametry pompy podłogówki</strong>: Wydajność (Q) i wysokość podnoszenia (H). Wylicza się je z oporów przepływu w najdłuższej pętli. Przykład: dla pętli z rury 16&#215;2 mm o długości 90 m, przy różnicy temperatur 10°C (zasilanie 40°C, powrót 30°C) i mocy pętli 1200 W, przepływ wynosi:</p>



<style>
/* Kontener zapobiegający rozjeżdżaniu się strony na małych ekranach */
.math-eq-container {
    overflow-x: auto;
    padding: 20px 0;
    margin: 20px 0;
    text-align: center;
    background: #f8fafc; /* Delikatne tło, żeby wzór się wyróżniał (opcjonalne) */
    border-radius: 12px;
}

/* Główne style dla równania */
.math-eq {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: "Times New Roman", Times, serif; /* Klasyczna czcionka matematyczna */
    font-size: 20px;
    color: #0f172a;
    white-space: nowrap;
}

/* Zmienne (litery) w matematyce zawsze zapisujemy kursywą */
.math-eq i {
    font-style: italic;
}

/* Style dla ułamków */
.math-eq .frac {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin: 0 6px;
    vertical-align: middle;
}

/* Licznik ułamka (kreska na dole) */
.math-eq .num {
    border-bottom: 1px solid #0f172a;
    padding: 0 4px;
    line-height: 1.2;
}

/* Mianownik ułamka */
.math-eq .den {
    padding: 0 4px;
    line-height: 1.2;
}

/* Znaki równości, przybliżenia i mnożenia */
.math-eq .sign {
    margin: 0 6px;
}
</style>

<div class="math-eq-container">
    <div class="math-eq">
        <i>V&#7746;</i> 
        
        <span class="sign">=</span>
        
        <div class="frac">
            <div class="num"><i>P</i></div>
            <div class="den"><i>c<sub>p</sub></i> &middot; &Delta;<i>T</i> &middot; <i>&rho;</i></div>
        </div>
        
        <span class="sign">=</span>
        
        <div class="frac">
            <div class="num">1200</div>
            <div class="den">4186 &middot; 10 &middot; 1000</div>
        </div>
        
        <span class="sign">&approx;</span>
        <span>0,000287 m<sup>3</sup>/s</span>
        
        <span class="sign">=</span>
        <span>0,287 l/s</span>
        
        <span class="sign">&approx;</span>
        <span>1,03 m<sup>3</sup>/h</span>
    </div>
</div>



<p class="wp-block-paragraph">Do tego dodaj opory liniowe (dla rury PE-RT 16 mm ok. 150 Pa/m) i miejscowe (rozdzielacz, zawory). Łącznie strata ciśnienia wyniesie około 25-35 kPa (2,5-3,5 m słupa wody). Dobierasz pompę np.&nbsp;<strong> 25-40</strong>&nbsp;(dla małych domów) lub&nbsp;<strong>25-60</strong>&nbsp;(dla większych instalacji).</p>



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

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

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

.scenarios-title h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: var(--primary);
}

.scenarios-title p {
    color: #64748b;
    margin: 0 auto 5px auto;
    font-size: 16px;
    line-height: 1.6;
    max-width: 800px;
}

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

.scenario-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #f1f5f9;
    padding: 30px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.scenario-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.12);
}

.card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #e2e8f0;
}

.icon-box {
    width: 48px;
    height: 48px;
    background: #eff6ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    flex-shrink: 0;
}

.header-text h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
}

.header-text span {
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.param-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
    flex-grow: 0; /* Zmienione na 0, aby to box z wynikiem wypelnial miejsce */
}

.param-list li {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    margin-bottom: 10px;
    color: #475569;
}

.param-list li strong {
    color: var(--primary);
    text-align: right;
    max-width: 60%;
}

.result-box {
    background: var(--bg-light);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    margin-bottom: 20px;
    border-top: 4px solid var(--accent);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-grow: 1; /* Kluczowa zmiana wymuszajaca równy rozmiar */
}

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

.r-thick {
    display: block;
    font-size: 18px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 8px;
    line-height: 1.2;
}

.r-value {
    display: inline-block;
    background: #ffffff;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.result-box.success .r-value { color: var(--success); }
.result-box.warning .r-value { color: var(--warning); }

.justification {
    font-size: 12px;
    line-height: 1.6;
    color: #64748b;
    margin: 0;
    background: #f8fafc;
    padding: 15px;
    border-radius: 12px;
    border-left: 3px solid #cbd5e1;
    margin-top: auto; /* Dopycha ten element w dół na równo */
}

@media (max-width: 900px) {
    .scenario-grid {
        grid-template-columns: 1fr;
    }
}
</style>

<div class="premium-scenarios" id="scenarios-app">
    <div class="scenarios-title">
        <h2>Przykłady i wyliczenia w praktyce.</h2>
        <p>Zobacz 3 typowe scenariusze dla instalacji mieszanej krok po kroku.</p>
        <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; font-size: 16px; text-decoration: none;">Przykłady opracowane przez ekspertów Projekt-Ogrzewania.pl.</a>
    </div>

    <div class="scenario-grid">
        <div class="scenario-card">
            <div class="card-header">
                <div class="icon-box">📊</div>
                <div class="header-text">
                    <span>Krok 1</span>
                    <h4>Zapotrzebowanie i przepływ</h4>
                </div>
            </div>
            
            <ul class="param-list">
                <li>Straty ciepła: <strong>65 W/m²</strong></li>
                <li>Pow. podłogówki: <strong>80 m²</strong></li>
                <li>Zasilanie/Powrót: <strong>40°C / 30°C (ΔT=10°C)</strong></li>
                <li>Rozstaw rur: <strong>15 cm (standard)</strong></li>
            </ul>

            <div class="result-box success">
                <span class="r-thick">Moc: 5200 W</span>
                <span style="font-size: 11px; color:#64748b; display:block; margin-bottom: 8px;">(Przepływ całego rozdzielacza)</span>
                <div class="r-value">V = 446 l/h (0,446 m³/h)</div>
            </div>

            <p class="justification"><strong>Uzasadnienie:</strong> Dzieląc ten wynik na 5 pętli (po ok. 16 m² na pętlę), każda z nich będzie miała moc około 1040 W oraz wymagała przepływu rzędu 90 l/h (0,025 l/s).</p>
        </div>

        <div class="scenario-card">
            <div class="card-header">
                <div class="icon-box">🎛️</div>
                <div class="header-text">
                    <span>Krok 2</span>
                    <h4>Bilans zaworu trójdrogowego</h4>
                </div>
            </div>
            
            <ul class="param-list">
                <li>Woda z kotła (gorąca): <strong>70°C</strong></li>
                <li>Woda z powrotu (chłodna): <strong>30°C</strong></li>
                <li>Zasilanie pętli (cel): <strong>40°C</strong></li>
                <li>Równanie: <strong>x&middot;70 + (1-x)&middot;30 = 40</strong></li>
            </ul>

            <div class="result-box success">
                <span class="r-thick">Otwarcie zaworu</span>
                <span style="font-size: 11px; color:#64748b; display:block; margin-bottom: 8px;">(Udział wody kotłowej)</span>
                <div class="r-value">25% (x = 0,25)</div>
            </div>

            <p class="justification"><strong>Uzasadnienie:</strong> Zawór miesza zaledwie 25% gorącej wody z kotła z 75% schłodzonej wody z powrotu podłogówki. Dzięki temu system pracuje stabilnie i w komfortowym zakresie regulacji.</p>
        </div>

        <div class="scenario-card">
            <div class="card-header">
                <div class="icon-box">♨️</div>
                <div class="header-text">
                    <span>Krok 3</span>
                    <h4>Moc grzejników (piętro)</h4>
                </div>
            </div>
            
            <ul class="param-list">
                <li>Pow. grzejników: <strong>70 m²</strong></li>
                <li>Straty ciepła: <strong>55 W/m² (wymaga 3850 W)</strong></li>
                <li>Temp. instalacji: <strong>70/50°C</strong></li>
                <li>Moc nominalna grzejników: <strong>7000 W</strong></li>
            </ul>

            <div class="result-box warning">
                <span class="r-thick">Rzeczywista moc</span>
                <span style="font-size: 11px; color:#64748b; display:block; margin-bottom: 8px;">(Spadek o 20% przy 70/50°C)</span>
                <div class="r-value">Moc: ~ 5600 W</div>
            </div>

            <p class="justification"><strong>Uzasadnienie:</strong> Stare grzejniki były dobierane pod parametry 75/65°C. Po obniżeniu zasilania na kotle do 70°C ich moc spada, ale 5600 W wciąż z zapasem pokrywa zapotrzebowanie piętra (3850 W).</p>
        </div>
    </div>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock) - Wersja bezpieczna dla WordPressa
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('scenarios-app');
        if (appContainer) {
            var warningHtml = [
                '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 20px;">',
                '<span style="font-size: 48px; margin-bottom: 20px;">🔒</span>',
                '<h3 style="margin-top:0; font-size: 24px;">Treść chroniona prawem autorskim</h3>',
                '<p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Te przykłady obliczeniowe są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostały wklejone na tę stronę bez zgody autora.</p>',
                '<a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>',
                '</div>'
            ];
            appContainer.innerHTML = warningHtml.join('');
        }
    }
});
</script>



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

.article-product-banner {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(37, 99, 235, 0.15);
    border: 1px solid var(--border-color);
    border-top: 5px solid var(--accent);
    display: flex;
    overflow: hidden;
    color: var(--primary);
    transition: transform 0.3s ease;
}

.article-product-banner:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.2);
}

.apb-image-col {
    flex: 0 0 40%;
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
    position: relative;
}

.apb-image-col img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    mix-blend-mode: multiply; /* Usuwa białe tło ze zdjęcia, jeśli jest */
}

.apb-content-col {
    flex: 1;
    padding: 35px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.apb-badge {
    display: inline-block;
    align-self: flex-start;
    background: #eff6ff;
    color: var(--accent);
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

.apb-title {
    margin: 0 0 12px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.apb-desc {
    margin: 0 0 20px 0;
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
}

.apb-features {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.apb-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    font-size: 14px;
    color: #334155;
    font-weight: 600;
}

.apb-features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--success);
    font-size: 16px;
    font-weight: 900;
}

.apb-btn-wrapper {
    margin-top: auto;
}

.apb-btn {
    display: inline-block;
    background: var(--accent);
    color: #ffffff;
    text-decoration: none;
    padding: 14px 28px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 15px;
    transition: 0.3s;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
}

.apb-btn:hover {
    background: #1d4ed8;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 6px 15px rgba(37, 99, 235, 0.3);
}

@media (max-width: 768px) {
    .article-product-banner {
        flex-direction: column;
    }
    .apb-image-col {
        padding: 20px;
        border-bottom: 1px solid var(--border-color);
    }
    .apb-content-col {
        padding: 25px 20px;
    }
    .apb-title {
        font-size: 20px;
    }
    .apb-btn {
        display: block;
        text-align: center;
    }
}
</style>

<div class="article-product-banner">
    <div class="apb-image-col">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Uklad-mieszajacy-KISAN®-z-pompa-elektroniczna-WILO.webp" alt="Układ mieszający KISAN z pompą WILO" loading="lazy">
    </div>
    <div class="apb-content-col">
        <div class="apb-badge">Idealne do instalacji mieszanej</div>
        <h3 class="apb-title">Układ mieszający KISAN® z pompą WILO</h3>
        <div class="apb-desc">Zabezpiecz swoją podłogówkę przed zbyt wysoką temperaturą z kotła. Gotowy do montażu moduł, który płynnie obniża i stabilizuje temperaturę.</div>
        
        <ul class="apb-features">
            <li>Termostatyczny zawór trójdrogowy w zestawie</li>
            <li>Energooszczędna pompa elektroniczna WILO</li>
            <li>Szybki montaż dzięki półśrubunkom G 1&#8243;</li>
        </ul>
        
        <div class="apb-btn-wrapper">
            <a href="https://projekt-ogrzewania.pl/produkt/uklad-mieszajacy-kisan-z-pompa-elektroniczna-wilo/" class="apb-btn" target="_blank">Sprawdź cenę w sklepie →</a>
        </div>
    </div>
</div>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego w systemie mieszanym – na co zwrócić uwagę?</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt ogrzewania podłogowego</a> w instalacji mieszanej to coś więcej niż tylko rozrysowanie pętli. Musisz uwzględnić współpracę dwóch obiegów o różnych parametrach. Oto kluczowe zasady:</p>



<ol start="1" class="wp-block-list">
<li><strong>Oddzielenie hydrauliczne</strong>&nbsp;– jeśli kocioł ma małą pojemność wodną (np. nowe kotły gazowe z dużym oporem wymiennika), warto zastosować&nbsp;<strong>sprzęgło hydrauliczne</strong>&nbsp;lub&nbsp;<strong>bufor</strong>. Bez tego pompa podłogówki może “zabierać” przepływ grzejnikom, powodując ich niedogrzanie. Sprzęgło wyrównuje ciśnienia.</li>



<li><strong>Sterowanie pogodowe</strong>&nbsp;– dla instalacji mieszanej idealnym rozwiązaniem jest regulator z dwoma czujnikami temperatury zewnętrznej i dwoma krzywymi grzania: jedną dla grzejników (wyższe nachylenie), drugą dla podłogówki (płaska, niska). Dzięki temu przy mrozach -20°C grzejniki dostaną 75°C, a podłogówka tylko 45°C.</li>



<li><strong>Zabezpieczenie przed przegrzaniem</strong>&nbsp;– każdy rozdzielacz podłogówki musi mieć&nbsp;<strong>zawór termostatyczny</strong>&nbsp;lub siłownik elektryczny z czujnikiem zasilania. Jeśli temperatura wzrośnie powyżej zadanej, zawór odcina dopływ z kotła. To obowiązek wynikający z normy PN-EN 1264.</li>



<li><strong>Dokumentacja techniczna</strong>&nbsp;– projekt instalacji mieszanej powinien zawierać:
<ul class="wp-block-list">
<li>Obliczenia strat ciepła dla każdego pomieszczenia osobno (dla podłogówki i dla grzejników).</li>



<li>Dobór rozstawu rur dla podłogówki (co 10-15-20 cm w zależności od zapotrzebowania).</li>



<li>Schemat ideowy układu mieszającego z zaznaczeniem średnic rur, zaworów i pomp.</li>



<li>Charakterystyki przepływowo-oporowe dla każdej pętli – konieczne do późniejszej regulacji.</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph">Pamiętaj:&nbsp;<strong>projekt ogrzewania podłogowego w systemie mieszanym</strong>&nbsp;wykonywany przez niedoświadczonego instalatora to ryzyko, że grzejniki będą grzały, a podłoga pozostanie zimna (lub odwrotnie). Zleć to specjaliście lub sam dokładnie przelicz, korzystając z podanych wzorów.</p>



<h2 class="wp-block-heading">Wykres charakterystyki pracy zaworu mieszającego – interpretacja</h2>



<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

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

.premium-chart-box {
    max-width: 900px;
    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.1);
    border: 1px solid #f1f5f9;
    overflow: hidden;
    color: var(--primary);
}

.chart-header {
    padding: 30px 40px 20px 40px;
    border-bottom: 1px solid #f1f5f9;
}

.chart-header h3 {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--primary);
}

.chart-header-sub {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    font-weight: 500;
}

.chart-canvas-wrapper {
    padding: 30px 40px;
    position: relative;
    height: 400px;
    width: 100%;
}

.chart-footer {
    padding: 25px 40px;
    background: var(--bg-light);
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.chart-icon {
    font-size: 24px;
    line-height: 1;
}

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

.chart-conclusion strong {
    color: var(--danger);
}

@media (max-width: 600px) {
    .chart-header, .chart-canvas-wrapper, .chart-footer {
        padding: 20px;
    }
    .chart-canvas-wrapper {
        height: 300px;
    }
}
</style>

<div class="premium-chart-box" id="chart-app-container">
    <div class="chart-header">
        <h3>Charakterystyka pracy zaworu mieszającego</h3>
        <div class="chart-header-sub">Zależność temperatury zasilania podłogówki od stopnia otwarcia zaworu (kocioł 70°C, powrót 30°C) <br><a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wykres opracowany przez Projekt-Ogrzewania.pl</a></div>
    </div>
    <div class="chart-canvas-wrapper">
        <canvas id="valveChart"></canvas>
    </div>
    <div class="chart-footer">
        <div class="chart-icon">⚠️</div>
        <div class="chart-conclusion"><strong>Praktyczna konsekwencja:</strong> Krzywa nie jest liniowa! <strong>Nie ustawiaj zaworu w połowie skali (50%)</strong>, bo tam jest najbardziej wrażliwy na wahania temperatur. Najlepiej i najstabilniej układ pracuje w przedziale otwarcia 20-40%.</div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var container = document.getElementById('chart-app-container');
        if (container) {
            container.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px;"><span style="font-size: 48px; margin-bottom: 20px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight:bold;">Wykres chroniony prawem autorskim</div><div style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-top: 15px;">Ten interaktywny wykres jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany na tę stronę nielegalnie.</div><a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a></div>';
        }
        return; 
    }

    var canvasEl = document.getElementById('valveChart');
    if(!canvasEl) return; 
    
    var ctx = canvasEl.getContext('2d');
    
    var gradientFill = ctx.createLinearGradient(0, 0, 0, 400);
    gradientFill.addColorStop(0, 'rgba(37, 99, 235, 0.2)');
    gradientFill.addColorStop(1, 'rgba(255, 255, 255, 0)');

    var pointBackgroundColors = [];
    var pointBorderColors = [];
    var pointRadii = [];
    
    var valveOpenings = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
    var temperatures = [30, 31, 32, 35, 39, 44, 48, 50, 55, 62, 70];

    for (var i = 0; i < valveOpenings.length; i++) {
        var temp = temperatures[i];
        if (temp <= 42) {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#2563eb'); 
            pointRadii.push(6);
        } else {
            pointBackgroundColors.push('#ffffff');
            pointBorderColors.push('#ea580c'); 
            pointRadii.push(8);
        }
    }

    new Chart(ctx, {
        type: 'line',
        data: {
            labels: ['0%', '10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%'],
            datasets: [{
                label: 'Temperatura zasilania podłogówki (°C)',
                data: temperatures,
                borderColor: '#2563eb', 
                borderWidth: 3,
                backgroundColor: gradientFill,
                fill: true,
                tension: 0.4, 
                pointBackgroundColor: pointBackgroundColors,
                pointBorderColor: pointBorderColors,
                pointBorderWidth: 3,
                pointRadius: pointRadii,
                pointHoverRadius: 9
            }]
        },
        options: {
            responsive: true,
            maintainAspectRatio: false,
            plugins: {
                legend: { display: false },
                tooltip: {
                    backgroundColor: '#0f172a',
                    titleFont: { family: 'Inter', size: 14, weight: 'bold' },
                    bodyFont: { family: 'Inter', size: 14 },
                    padding: 12,
                    displayColors: false,
                    callbacks: {
                        title: function(context) { return 'Otwarcie zaworu: ' + context[0].label; },
                        label: function(context) { return 'Temperatura: ' + context.parsed.y + ' °C'; }
                    }
                }
            },
            scales: {
                x: {
                    grid: { display: false },
                    ticks: { font: { family: 'Inter', size: 13, weight: '600' }, color: '#64748b' },
                    title: {
                        display: true, text: 'Stopień otwarcia zaworu (%)', font: { family: 'Inter', size: 14, weight: 'bold' }, color: '#0f172a', padding: {top: 10}
                    }
                },
                y: {
                    beginAtZero: false, min: 25, max: 75,
                    grid: { color: '#f1f5f9', drawBorder: false },
                    ticks: {
                        stepSize: 5, font: { family: 'Inter', size: 13 }, color: '#64748b',
                        callback: function(value) { return value + ' °C'; }
                    },
                    title: {
                        display: true, text: 'Temperatura (°C)', font: { family: 'Inter', size: 14, weight: 'bold' }, color: '#0f172a', padding: {bottom: 10}
                    }
                }
            }
        }
    });
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

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

.material-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fff; }

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

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

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

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

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
    .type-selector { grid-template-columns: 1fr; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator instalacji mieszanej (Podłogówka + Grzejniki)</h2>
    <p>Sprawdź parametry pracy zaworu mieszającego dla instalacji łączącej ogrzewanie podłogowe z grzejnikami. Autorskie narzędzie inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Narzędzie obliczy m.in. wymagany przepływ i wskaże odpowiednią wielkość zaworu (Kv).</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Zapotrzebowanie budynku na ciepło</span>
            <div class="type-selector">
                <div class="type-btn" id="btn-old">DOM STARY<span>Słabo ocieplony (100 W/m²)</span></div>
                <div class="type-btn active" id="btn-mod">MODERNIZOWANY<span>Średnie ocieplenie (65 W/m²)</span></div>
                <div class="type-btn" id="btn-new">NOWY / PASYWNY<span>Dobra izolacja (40 W/m²)</span></div>
            </div>

            <span class="section-title">2. Parametry podłogówki</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia ogrzewania podłogowego</label><span class="val-badge"><span id="v-area">80</span> m²</span></div>
                <input type="range" id="area" min="10" max="250" value="80">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Docelowa temp. zasilania podłogówki</label><span class="val-badge"><span id="v-tFloor">40</span> °C</span></div>
                <input type="range" id="tFloor" min="30" max="45" step="1" value="40">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Zalecana 35-40°C. Standardowy spadek temp. pętli (ΔT) wynosi 10°C.</div>
            </div>

            <span class="section-title">3. Parametry grzejników (Kotła)</span>
            <div class="input-wrap" style="margin-bottom:0">
                <div class="input-label-row"><label>Temperatura zasilania z kotła</label><span class="val-badge"><span id="v-tBoiler">70</span> °C</span></div>
                <input type="range" id="tBoiler" min="45" max="85" step="1" value="70">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Gorąca woda, która będzie redukowana przez zawór mieszający.</div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Udział gorącej wody z kotła na zaworze</span>
                <span class="score-num" id="resRatio">--</span>
                <span class="score-label" style="text-transform: none;">Resztę stanowi chłodna woda z powrotu podłogówki</span>
                <div id="risk-msg">⚠️ Uwaga!</div>
                
                <div style="height:14px; display:flex; border-radius:7px; overflow:hidden; margin-top:15px; background:#e2e8f0; box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);">
                    <div id="bar-boiler" style="background:#dc2626; width:25%; transition: 0.3s;" title="Woda z kotła"></div>
                    <div id="bar-return" style="background:#3b82f6; width:75%; transition: 0.3s;" title="Powrót z podłogówki"></div>
                </div>
                <div style="display: flex; justify-content: space-between; font-size: 10px; color: #64748b; margin-top: 5px; font-weight: 700;">
                    <span style="color:#dc2626">Z KOTŁA (Gorąca)</span>
                    <span style="color:#3b82f6">Z POWROTU (Chłodniejsza)</span>
                </div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Moc cieplna podłogówki:</span><strong id="resPower">--</strong></div>
                <div class="tech-item"><span>Całkowity przepływ (podłogówka):</span><strong id="resFlowFloor">--</strong></div>
                <div class="tech-item"><span>Wymagany przepływ z kotła:</span><strong id="resFlowBoiler">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span title="Zalecany współczynnik przepływu dla zaworu mieszającego">Zalecane min. Kv zaworu:</span><strong id="resKv" style="color:#fbbf24">--</strong></div>
                    <div class="mini-card"><span>Szacowana liczba pętli:</span><strong id="resLoops">--</strong></div>
                </div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Błędy w mieszaniu kosztują najwięcej!</h3>
            <p style="margin:0; font-size:14px; color:#475569">Złe dobranie zaworu 3-drogowego lub brak sprzęgła skutkuje zimną podłogą i przepałami na kotle. Zleć nam profesjonalny projekt, by zyskać pewność, że układ zadziała idealnie.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="javascript:void(0)" id="btn-email" class="cta-btn" style="background:#1e293b">
                WYŚLIJ WYNIKI NA E-MAIL
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
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('screed-calc-app');
        if (appContainer) {
            var warningHtml = [
                '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">',
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>',
                '<h3 style="margin-top:0; font-size: 24px; color: #dc2626;">Narzędzie chronione</h3>',
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>',
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>',
                '</div>'
            ];
            appContainer.innerHTML = warningHtml.join('');
        }
        return; 
    }

    var heatDemand = 65;
    var demandName = 'Modernizowany (65 W/m²)';
    var DELTA_T = 10;
    var SPECIFIC_HEAT = 4186;

    function updateCalc() {
        var areaEl = document.getElementById('area');
        var tFloorEl = document.getElementById('tFloor');
        var tBoilerEl = document.getElementById('tBoiler');
        
        if (!areaEl) return;
        if (!tFloorEl) return;
        if (!tBoilerEl) return;

        var area = parseFloat(areaEl.value);
        var tFloor = parseFloat(tFloorEl.value);
        var tBoiler = parseFloat(tBoilerEl.value);
        var tReturn = tFloor - DELTA_T;

        document.getElementById('v-area').innerText = area;
        document.getElementById('v-tFloor').innerText = tFloor;
        document.getElementById('v-tBoiler').innerText = tBoiler;

        var powerW = area * heatDemand;
        var flowFloorLps = powerW / (SPECIFIC_HEAT * DELTA_T);
        var flowFloorM3h = flowFloorLps * 3.6;
        
        var x = 0;
        var rMsg = document.getElementById('risk-msg');
        var mBox = document.getElementById('mainBox');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (tBoiler <= tFloor) {
            x = 1;
            warnings.push('❌ Temp. kotła musi być wyższa niż temp. zasilania podłogówki!');
            boxColor = 'var(--danger)';
        } else {
            x = (tFloor - tReturn) / (tBoiler - tReturn);
            if (x < 0) { x = 0; }
            if (x > 1) { x = 1; }
        }

        var ratioPercent = (x * 100).toFixed(1);
        var flowBoilerM3h = x * flowFloorM3h;
        
        if (x > 0) {
            if (x < 0.2) {
                if (tBoiler > tFloor) {
                    warnings.push('⚠️ Zawór będzie otwarty tylko w ' + ratioPercent + '%. Ryzyko niestabilnej pracy i skoków temperatury (rozważ mniejszy zawór Kv lub obniżenie temp. kotła).');
                    boxColor = 'var(--warning)';
                }
            }
        }
        
        if (tBoiler > 75) {
            warnings.push('ℹ️ Bardzo wysoka temp. z kotła. Zaleca się montaż czujnika przylgowego odcinającego pompę przy awarii zaworu mieszającego.');
            if (boxColor === 'var(--success)') {
                boxColor = 'var(--warning)';
            }
        }

        var estimatedKv = (flowFloorM3h * 1.2).toFixed(2);
        var loops = Math.ceil(area / 16);

        document.getElementById('resRatio').innerText = ratioPercent + '%';
        document.getElementById('resPower').innerText = (powerW / 1000).toFixed(1) + ' kW';
        document.getElementById('resFlowFloor').innerText = flowFloorM3h.toFixed(2) + ' m³/h';
        document.getElementById('resFlowBoiler').innerText = flowBoilerM3h.toFixed(3) + ' m³/h';
        document.getElementById('resKv').innerText = '≥ ' + estimatedKv;
        document.getElementById('resLoops').innerText = loops + ' szt.';

        document.getElementById('bar-boiler').style.width = ratioPercent + '%';
        document.getElementById('bar-return').style.width = (100 - ratioPercent) + '%';

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
        } else {
            rMsg.style.display = 'none';
        }
        mBox.style.borderColor = boxColor;
        
        if (boxColor === 'var(--warning)') {
            document.getElementById('resRatio').style.color = 'var(--warning)';
        } else if (boxColor === 'var(--danger)') {
            document.getElementById('resRatio').style.color = 'var(--danger)';
        } else {
            document.getElementById('resRatio').style.color = 'var(--accent)';
        }
    }

    var demands = {
        'btn-old': { val: 100, name: 'Stary dom (100 W/m²)' },
        'btn-mod': { val: 65, name: 'Modernizowany (65 W/m²)' },
        'btn-new': { val: 40, name: 'Nowy energooszczędny (40 W/m²)' }
    };

    var btnKeys = Object.keys(demands);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    heatDemand = demands[btnId].val;
                    demandName = demands[btnId].name;
                    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 inputs = ['area', 'tFloor', 'tBoiler'];
    for (var k = 0; k < inputs.length; k++) {
        var inputEl = document.getElementById(inputs[k]);
        if (inputEl) {
            inputEl.addEventListener('input', updateCalc);
        }
    }

    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var area = document.getElementById('v-area').innerText;
            var tF = document.getElementById('v-tFloor').innerText;
            var tB = document.getElementById('v-tBoiler').innerText;
            var ratio = document.getElementById('resRatio').innerText;
            var power = document.getElementById('resPower').innerText;
            var kv = document.getElementById('resKv').innerText;
            var loops = document.getElementById('resLoops').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Instalacja Mieszana (Podłogówka + Grzejniki)');
            
            var emailLines = [
                "Dzień dobry,",
                "",
                "Przesyłam wstępne wyliczenia z kalkulatora układu mieszającego na Państwa stronie:",
                "",
                "• Powierzchnia podłogówki: " + area + " m²",
                "• Budynek: " + demandName,
                "• Temp. kotła (grzejników): " + tB + " °C",
                "• Żądana temp. podłogówki: " + tF + " °C",
                "------------------------------------",
                "• Wymagana moc pętli: " + power,
                "• Proporcja otwarcia zaworu: " + ratio + " (woda gorąca)",
                "• Wymagany zawór: Kv " + kv,
                "• Szacunkowa liczba pętli: " + loops,
                "",
                "Proszę o wycenę profesjonalnego projektu ogrzewania z uwzględnieniem tych parametrów."
            ];
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(emailLines.join('\n'));
        });
    }

    updateCalc();
});
</script>



<h2 class="wp-block-heading">Najczęstsze błędy przy łączeniu systemów – jak ich uniknąć</h2>



<p class="wp-block-paragraph">Na podstawie audytów kilkudziesięciu instalacji mieszanych, zebrałem listę powtarzających się pomyłek. Unikniesz ich, jeśli zastosujesz się do powyższych wyliczeń i zasad.</p>



<ol start="1" class="wp-block-list">
<li><strong>Brak zaworu różnicowego</strong>&nbsp;– gdy pompa podłogówki pracuje, a część pętli jest zamknięta (np. przez termostaty pokojowe), wzrasta ciśnienie. Może to uszkodzić rozdzielacz. Zawsze montuj&nbsp;<strong>zawór bypass</strong>&nbsp;(przelewowy) ustawiony na 0,3-0,5 bara powyżej nominalnej różnicy ciśnień.</li>



<li><strong>Zbyt długie pętle</strong>&nbsp;– dla rury 16 mm maksymalna długość pętli to 100-120 m (przy ΔT=10°C). Dłuższe powodują zbyt duży spadek ciśnienia i niedogrzanie końca pętli. Lepiej podzielić na dwie krótsze.</li>



<li><strong>Pompa podłogówki bez regulacji</strong> – stała prędkość pompy generuje niepotrzebny hałas i zużycie prądu. Zastosuj <strong>pompę z modulacją</strong> lub zamontuj zawór równoważący na rozdzielaczu.</li>



<li><strong>Brak izolacji między pętlami a grzejnikami w jednym pomieszczeniu</strong>&nbsp;– jeśli w salonie masz i podłogówkę, i grzejnik (np. przy ścianie zewnętrznej), to grzejnik będzie zaburzał pracę termostatu podłogowego. Unikaj takich rozwiązań. Jeśli już musisz, to daj osobne regulatory.</li>



<li><strong>Kocioł bez możliwości obniżenia temperatury minimalnej</strong>&nbsp;– niektóre stare kotły węglowe lub gazowe nie mogą pracować z temperaturą powrotu poniżej 50°C (grozi korozja). Dla instalacji mieszanej z podłogówką potrzebujesz kotła przystosowanego do niskich powrotów (kotły kondensacyjne, pompy ciepła).</li>
</ol>



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

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

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

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

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

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-app-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Czy mogę podłączyć podłogówkę bezpośrednio do powrotu z grzejnika?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie nie! Woda wracająca z grzejnika może mieć 50-60°C. To zniszczy jastrych, panele i spowoduje ogromny dyskomfort. Potrzebny jest zawór mieszający z własną pompą (tzw. grupa pompowa)."
        }
      }, {
        "@type": "Question",
        "name": "Co się stanie, jeśli obniżę temperaturę na kotle do 40°C dla obu systemów?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ogrzewanie podłogowe zadziała świetnie, ale grzejniki stracą nawet 80% swojej mocy. Pomieszczenia z grzejnikami pozostaną niedogrzane. Musisz mieć układ mieszający, by rozdzielić te dwie strefy temperaturowe."
        }
      }, {
        "@type": "Question",
        "name": "Czy do instalacji mieszanej wystarczy zawór bez pompy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie. Zawór mieszający wytwarza tak duże opory, a układ podłogowy wymaga tak stabilnego przepływu, że pompa za zaworem jest całkowicie niezbędna."
        }
      }, {
        "@type": "Question",
        "name": "Dlaczego kocioł gazowy gaśnie po dołożeniu podłogówki (taktuje)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "To efekt braku sprzęgła hydraulicznego. Pompy (od kotła i od podłogówki) „walczą” o przepływ, a kocioł gubi się w odczytach temperatur. Sprzęgło stabilizuje układ i pozwala pompom pracować niezależnie."
        }
      }, {
        "@type": "Question",
        "name": "Na ile otworzyć zawór trójdrogowy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zależy to od temperatury na kotle i oczekiwanej na podłogówce. Ustawienie go ręcznie na „pół” (50%) to błąd, bo krzywa mieszania nie jest liniowa. Najlepiej użyć siłownika elektrycznego z czujnikiem."
        }
      }]
    }
    </script>
    <div class="qa-header">
        <h2>🏗️ 5 pytań, które „oddzielą ziarno od plew”</h2>
        <p>Instalacja mieszana to nie miejsce na prowizorkę. Oto pytania, które pomogą Ci ocenić, czy Twój instalator wie, jak połączyć te dwa światy. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Weryfikacja przygotowana przez inżynierów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Wepniemy tę małą podłogówkę prosto w powrót z grzejnika, co Pan na to?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Pewnie, damy zawór RTL (tzw. ogranicznik temperatury powrotu) na końcu i będzie działać pięknie i tanio”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Absolutnie nie! Woda uderzy w pętlę ze zbyt wysoką temperaturą, co grozi pęknięciem wylewki. Montujemy układ pompowo-mieszający rozdzielający parametry”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Jak rozwiąże Pan problem współpracy dwóch obiegów z jednym kotłem?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Zepniemy trójnikami. Pompa w kotle jest mocna, przepcha i grzejniki, i podłogówkę, szkoda kasy na dodatkowe sprzęty”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Musimy zastosować sprzęgło hydrauliczne. Rozdzieli ono zład wody kotłowej od wody instalacyjnej, dzięki czemu pompy obiegowe nie będą na siebie negatywnie oddziaływać”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jak dobierze Pan zawór mieszający do naszej podłogówki?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Bierze się standardowy zawór trójdrogowy 1-calowy, pasuje do każdej rury, nie ma co tu liczyć”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zawór dobieram na podstawie współczynnika Kv i wymaganego przepływu. Zbyt mały Kv to szum i opory, a zbyt duży to skoki temperatur i problem z precyzyjną regulacją”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „Co zrobić, gdy wyjadę na urlop i zmieni się pogoda na zewnątrz?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„A to musi Pan ręcznie pokręcić zaworem na rozdzielaczu, żeby wpuścić więcej gorącej wody na podłogi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Ustawimy automatykę pogodową. System sam podniesie temperaturę na grzejniki, a siłownik na zaworze mieszającym dobierze bezpieczną, chłodniejszą wodę na podłogi”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Czy kocioł węglowy/peletowy sprawdzi się przy tej instalacji?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Tak, po prostu skręcimy go na 40 stopni i będzie idealnie do podłogi, bez żadnych mieszaczy”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Tak, ale takie kotły wymagają wysokiej temperatury powrotu dla ochrony przed korozją (tzw. ochrona powrotu). Wymaga to bufora ciepła lub zaworu czterodrogowego i zaawansowanego sterownika”.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li>„Zawór trójdrogowy? Panie, zepniemy to RTL-em z powrotu od kaloryfera, po co przepłacać.”</li>
            <li>„Sprzęgło hydrauliczne to tylko naciąganie na koszty. Mam pompę 25/60, to uciągnie cały dom.”</li>
            <li>„Podłogówka i tak grzeje długo, to nie trzeba jej regulować, tylko otworzyć rozdzielacz na maksa.” (Uwaga: to gwarancja przegrzanych płytek i spękanej posadzki!)</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x61\x70\x70\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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



<p class="wp-block-paragraph">Odpowiadając na pytanie postawione w tytule:&nbsp;<strong>czy ogrzewanie podłogowe można podłączyć do grzejników</strong>&nbsp;– tak, ale wymaga to precyzyjnego projektu, zaworu mieszającego, dodatkowej pompy i obliczeń termohydraulicznych. Instalacja mieszana to nie jest zadanie dla amatora, ale przy zachowaniu powyższych zasad (różnica temperatur, dobór Kv, bilans mocy, zabezpieczenie przed przegrzaniem) możesz cieszyć się komfortem podłogówki i szybkim dogrzewaniem grzejników w jednym systemie.</p>



<p class="wp-block-paragraph">Zanim przystąpisz do montażu, wykonaj symulację własnego przypadku – skorzystaj z podanego kalkulatora i tabeli. Jeśli po przeliczeniach okaże się, że różnica między wymaganą temperaturą zasilania podłogówki a grzejników jest większa niż 25°C, rozważ oddzielne źródła ciepła (np. kocioł + pompa ciepła tylko do podłogówki) albo zastosowanie&nbsp;<strong>wymiennika płytowego</strong>&nbsp;z własnym obiegiem pierwotnym. W przeciwnym razie straty na mieszaniu będą zbyt wysokie.</p>



<p class="wp-block-paragraph">Masz już wiedzę na poziomie pozwalającym na świadomą rozmowę z projektantem. A jeśli chcesz jeszcze głębiej wejść w temat – polecam normę <strong><a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" type="link" id="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a> .</strong></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">Czy ogrzewanie podłogowe można podłączyć do grzejników?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 10:11:32 +0000</pubDate>
				<category><![CDATA[Błędy budowlane]]></category>
		<category><![CDATA[Błędy instalacyjne]]></category>
		<category><![CDATA[Domy drewniane]]></category>
		<category><![CDATA[Domy szkieletowe]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty budowy domu]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy zabudowy suchej]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[błędy instalacyjne]]></category>
		<category><![CDATA[dom drewniany]]></category>
		<category><![CDATA[dom szkieletowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[lamele aluminiowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4030</guid>

					<description><![CDATA[<p>Planowanie instalacji grzewczej w budynku o lekkiej konstrukcji drewnianej wymaga zupełnie innego podejścia niż w tradycyjnym budownictwie murowanym. Niska bezwładność cieplna, brak ciężkich ścian akumulujących energię oraz ryzyko przeciążenia stropów sprawiają, że standardowe schematy instalatorów często tutaj zawodzą. W tym artykule bierzemy pod lupę temat, jakim jest ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki, na które najczęściej wpadają inwestorzy. Dowiesz się, dlaczego system suchy deklasuje ciężką wylewkę, jak uniknąć kosztownego przewymiarowania rur, dlaczego optymalizacja temperatury zasilania jest kluczowa dla żywotności pompy ciepła, oraz o co dokładnie zapytać wykonawcę przed podpisaniem umowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-gold: #eab308;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-red: #ef4444;
}

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

/* Górna część - Hook i Szybka odpowiedź */
.rk-intro-header {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
}

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

.rk-intro-hook {
    font-size: 18px;
    font-weight: 600;
    color: #cbd5e1;
    margin: 0 0 30px 0;
    line-height: 1.6;
    border-left: 4px solid var(--rk-intro-gold);
    padding-left: 20px;
}

/* Moduł "Szybka Odpowiedź" */
.rk-quick-answer {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 25px 30px;
}

.rk-qa-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-intro-gold);
    margin: 0 0 15px 0;
    letter-spacing: 1px;
}

.rk-quick-answer p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #f8fafc;
}

.rk-quick-answer strong {
    color: #38bdf8;
    font-weight: 800;
}

/* Dolna część - Mapa Artykułu (Interaktywna) */
.rk-intro-nav-wrapper {
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-intro-border);
}

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

.rk-intro-nav {
    display: flex;
    padding: 20px 50px;
    gap: 15px;
}

.rk-intro-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 800;
    font-size: 15px;
    color: #64748b;
    text-align: left;
    /* BRAK ANIMACJI - natychmiastowa zmiana stanu */
}

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

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

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

/* Obszar paneli informacyjnych */
.rk-intro-content {
    padding: 35px 50px;
    background: #ffffff;
}

.rk-intro-panel {
    display: none;
    /* BRAK ANIMACJI */
}

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

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

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

.rk-intro-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-feature-card {
    background: #f8fafc;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 12px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.rk-feature-icon {
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.rk-feature-text h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-feature-text p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-nav-title, .rk-intro-nav, .rk-intro-content { padding: 25px 20px; }
    .rk-intro-nav { flex-direction: column; gap: 10px; }
    .rk-intro-btn { width: 100%; padding: 15px 20px; }
    .rk-intro-features { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki",
    "description": "Kompendium wiedzy: dlaczego lekki szkielet drewniany wymaga zasilania 28-32°C oraz systemów suchych. Sprawdź, jak unikać błędów niszczących COP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wstep",
    "name": "Kluczowe Parametry Ogrzewania Podłogowego w Lekkim Szkielecie",
    "description": "Zestawienie wytycznych brzegowych dotyczących temperatur, mocy jednostkowej oraz zaleceń statycznych dla drewnianych konstrukcji domów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w domu szkieletowym",
      "niska bezwładność cieplna budynku",
      "temperatura zasilania podłogówki 30 stopni",
      "spadek efektywności cop pompy ciepła",
      "system suchy ogrzewania podłogowego wady i zalety"
    ],
    "measurementTechnique": "Określenie brzegowych parametrów wydajnościowych (zakres 28-32 C) i obciążeniowych (40-60 W/m2) na bazie fizyki cieplnej konstrukcji lekkich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagana temperatura zasilania czynnika grzewczego: 28 do 32 stopni Celsjusza.",
        "Maksymalne bezpieczne obciążenie jednostkowe posadzki: od 40 do 60 W/m2.",
        "Współczynnik przenikania ciepła ścian U w szkielecie: poniżej 0,12 W/m2K.",
        "Brak zrównoważenia OZC skutkuje drastycznym spadkiem sprawności (COP) pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora HVAC",
    "description": "Narzędzie wprowadzające inwestora w tematykę artykułu, agregujące dostęp do kalkulatorów obciążeń, symulatorów hydrauliki i diagramów strat ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-article-intro">
    
    <!-- Hook i Szybka Odpowiedź -->
    <div class="rk-intro-header">
        <h2>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki</h2>
        
        <div class="rk-intro-hook">
            Większość wykonawców przenosi nawyki z budownictwa murowanego na lekkie konstrukcje drewniane. To najszybsza droga do pękania posadzek, przegrzewania wnętrz i uszkodzenia pompy ciepła. Poznaj inną fizykę budowli.
        </div>
        
        <div class="rk-quick-answer">
            <div class="rk-qa-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                Szybka odpowiedź eksperta
            </div>
            <p>Ogrzewanie podłogowe w domu szkieletowym to ultra-niskotemperaturowy system płaszczyznowy. Wymaga on drastycznej redukcji temperatury zasilania do zakresu <strong>28–32°C</strong> oraz precyzyjnego ograniczenia obciążenia jednostkowego do <strong>40–60 W/m²</strong>. Kluczem do sukcesu jest rezygnacja z ciężkich betonowych wylewek na rzecz systemów suchych oraz projektowanie przepływów na twardych liczbach, a nie na tzw. &#8222;oku&#8221; instalatora.</p>
        </div>
    </div>

    <!-- Mapa Artykułu / Teaser Narzędzi -->
    <div class="rk-intro-nav-wrapper">
        <h3 class="rk-intro-nav-title">Co znajdziesz w tym kompendium? Wybierz sekcję:</h3>
        <div class="rk-intro-nav">
            <button class="rk-intro-btn active" onclick="switchIntroPanel('introTheory', this)">
                <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="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                Fizyka Szkieletu
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introTools', this)">
                <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>
                Kalkulatory i Symulatory
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introErrors', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Diagnoza Błędów
            </button>
        </div>
    </div>

    <!-- Panele informacyjne -->
    <div class="rk-intro-content">
        
        <!-- Panel 1: Fizyka -->
        <div class="rk-intro-panel" id="introTheory" style="display: block;">
            <h3>Lekki szkielet to inna gra</h3>
            <p>W przeciwieństwie do tradycyjnego budownictwa murowanego, lekki szkielet drewniany charakteryzuje się niemal zerową bezwładnością cieplną oraz skrajnie niskim oporem cieplnym przegród (współczynnik przenikania U wynosi często poniżej 0,12 W/m²·K). Zrozumienie, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>, pozwoli Ci uniknąć zjawiska uciążliwego &#8222;przegrzewania&#8221; domu przy pierwszych promieniach słonecznych.</p>
        </div>

        <!-- Panel 2: Narzędzia -->
        <div class="rk-intro-panel" id="introTools">
            <h3>Sprawdź parametry swojego domu na żywo</h3>
            <p>Ten artykuł to nie tylko sucha teoria. Przewijając w dół, uzyskasz dostęp do wbudowanych interaktywnych narzędzi, dzięki którym samodzielnie wykonasz podstawowy audyt planowanej inwestycji.</p>
            <div class="rk-intro-features">
                <div class="rk-feature-card">
                    <div class="rk-feature-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                    </div>
                    <div class="rk-feature-text">
                        <h4>Symulator OZC</h4>
                        <p>Dowiedz się dokładnie, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a> i przelicz moc dla swojego metrażu.</p>
                    </div>
                </div>
                <div class="rk-feature-card">
                    <div class="rk-feature-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-feature-text">
                        <h4>Kalkulator Parametrów</h4>
                        <p>Zoptymalizuj rozstaw rur, aby <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania pompy ciepła (do 35 stopni)</a> stała się faktem.</p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel 3: Błędy -->
        <div class="rk-intro-panel" id="introErrors">
            <h3>Wyeliminuj patologie wykonawcze</h3>
            <p>Zastosowanie klasycznych, ciężkich jastrychów cementowych bez uprzedniej analizy statycznej belek, oraz brak hydraulicznego zrównoważenia pętli, to najczęstsze błędy &#8222;fachowców&#8221;. Prowadzą one bezpośrednio do pękania wykończenia posadzek, braku sterowalności oraz drastycznego spadku efektywności (COP) pompy ciepła. W tym materiale obalamy mity i pokazujemy rozwiązania ratujące portfel.</p>
        </div>

    </div>
</div>

<script>
function switchIntroPanel(panelId, btnElement) {
    // 1. Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-intro-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // 3. Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-intro-content');
    var allPanels = contentArea.getElementsByClassName('rk-intro-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie celu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-wgt-dark: #0f172a;
    --rk-wgt-blue: #0284c7;
    --rk-wgt-blue-light: #f0f9ff;
    --rk-wgt-gold: #eab308;
    --rk-wgt-bg: #ffffff;
    --rk-wgt-border: #e2e8f0;
    --rk-wgt-text: #475569;
    --rk-wgt-red: #ef4444;
    --rk-wgt-red-bg: #fef2f2;
    --rk-wgt-green: #10b981;
    --rk-wgt-green-bg: #f0fdf4;
}

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

/* Header */
.rk-wgt-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-wgt-border);
}

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

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

/* Interaktywny Panel Wyboru (Poziomo na desktop, pionowo na mobile) */
.rk-wgt-nav {
    display: flex;
    flex-direction: row;
    background: #f8fafc;
    padding: 25px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-wgt-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 20px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-wgt-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-tech-btn:hover {
    background: var(--rk-wgt-blue-light);
    border-color: #cbd5e1;
}

.rk-tech-btn.active {
    border-color: var(--rk-wgt-blue);
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    transform: translateY(-3px);
}

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

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

.rk-tech-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

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

/* Wizualizator Metryk (Kafelki) */
.rk-wgt-dashboard {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

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

.rk-metric-card {
    padding: 25px 20px;
    border-radius: 16px;
    border: 2px solid;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.4s ease;
}

.rk-metric-card svg {
    margin-bottom: 12px;
}

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

.rk-metric-val {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
}

/* Dynamiczne stany kafelków */
.state-good {
    background: var(--rk-wgt-green-bg);
    border-color: rgba(16, 185, 129, 0.3);
}
.state-good svg { color: var(--rk-wgt-green); }
.state-good .rk-metric-val { color: var(--rk-wgt-green); }

.state-warn {
    background: #fef9c3;
    border-color: rgba(234, 179, 8, 0.4);
}
.state-warn svg { color: var(--rk-wgt-gold); }
.state-warn .rk-metric-val { color: #ca8a04; }

.state-bad {
    background: var(--rk-wgt-red-bg);
    border-color: rgba(239, 68, 68, 0.3);
}
.state-bad svg { color: var(--rk-wgt-red); }
.state-bad .rk-metric-val { color: var(--rk-wgt-red); }

/* Treść inżynieryjna - Układ jednokolumnowy */
.rk-wgt-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-wgt-section {
    margin-bottom: 40px;
}

.rk-wgt-section:last-child {
    margin-bottom: 0;
}

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

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

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

.rk-wgt-section ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
    color: var(--rk-wgt-text);
}

.rk-wgt-section li {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 10px;
}

.rk-wgt-section li strong {
    color: var(--rk-wgt-dark);
}

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

.rk-wgt-alert {
    background: var(--rk-wgt-red-bg);
    border-left: 4px solid var(--rk-wgt-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

.rk-wgt-alert p {
    margin: 0;
    color: #991b1b;
}

.rk-wgt-info {
    background: #f8fafc;
    border-left: 4px solid var(--rk-wgt-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-wgt-header, .rk-wgt-nav, .rk-wgt-dashboard, .rk-wgt-content { padding: 25px 20px; }
    
    /* Na mobile nawigacja układa się w pionie (jeden pod drugim) */
    .rk-wgt-nav { flex-direction: column; gap: 12px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-title { font-size: 16px; }
    
    /* Na mobile kafelki również jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-metric-card { flex-direction: row; justify-content: flex-start; gap: 15px; padding: 15px 20px; text-align: left; }
    .rk-metric-card svg { margin-bottom: 0; width: 32px; height: 32px; }
    .rk-metric-label { margin-bottom: 0; }
    
    .rk-wgt-section h3 { font-size: 20px; align-items: flex-start; }
    .rk-wgt-section h3 svg { flex-shrink: 0; margin-top: 3px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wylewka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?",
    "description": "Zestawienie obciążeń stropowych i wilgoci technologicznej. Sprawdź, dlaczego wylewka cementowa to zagrożenie dla drewna C24, a system suchy to konieczność.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wylewki",
    "name": "Obciążenia Statyczne i Wilgotnościowe Stropów Drewnianych",
    "description": "Baza danych parametrów granicznych dla drewnianych konstrukcji stropowych w odniesieniu do wylewek i suchych systemów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe w domu szkieletowym",
      "system suchy ogrzewania podłogowego waga",
      "ile waży jastrych cementowy",
      "wilgoć technologiczna w drewnie C24",
      "ogrzewanie na drewnianym stropie"
    ],
    "measurementTechnique": "Porównanie parametrów obciążeniowych (kg/m2) i objętości wody technologicznej w oparciu o normy PN-EN 1995-1-1 oraz PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Waga ~30 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych Anhydrytowy (40 mm): Waga ~100 kg/m2, Wilgoć ok. 1000 litrów, Reakcja 2-3 godz.",
        "Jastrych Cementowy (65 mm): Waga ~150 kg/m2, Wilgoć 1000-2500 litrów, Reakcja 4-6 godz."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wylewki",
    "name": "Wizualizator Obciążeń i Wilgoci Stropu Drewnianego",
    "description": "Interaktywne narzędzie prezentujące w czasie rzeczywistym ryzyka statyczne oraz poziomy wilgoci wprowadzanej do budynku zależnie od dobranej wylewki.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wgt-container" id="rk-floor-analyzer">
    
    <div class="rk-wgt-header">
        <h2>Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?</h2>
        <p>Bezpośrednia odpowiedź: <strong>Nie, dom szkieletowy nie wymaga klasycznej, ciężkiej wylewki cementowej.</strong> Najbardziej rekomendowaną technologią jest ultra-lekki system suchy zgodny z normą PN-EN 1264-4, który całkowicie eliminuje nadmierne obciążenie drewnianego stropu.</p>
    </div>

    <!-- Interaktywny Selektor -->
    <div class="rk-wgt-nav">
        <button class="rk-tech-btn active" onclick="updateFloorData('dry', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <span class="rk-tech-title">System Suchy<br>(Lamele Aluminiowe)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('anh', this)">
            <div class="rk-tech-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></svg>
            </div>
            <span class="rk-tech-title">Jastrych Anhydryt.<br>(Płynny, 40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            </div>
            <span class="rk-tech-title">Jastrych Cement.<br>(Tradycyjny, 65 mm)</span>
        </button>
    </div>

    <!-- Dashboard Parametrów -->
    <div class="rk-wgt-dashboard">
        <div class="rk-dash-grid">
            <div class="rk-metric-card state-good" id="cardWeight">
                <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="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                <div class="rk-metric-label">Masa / Obciążenie</div>
                <div class="rk-metric-val" id="txtWeight">~30 kg/m²</div>
            </div>
            <div class="rk-metric-card state-good" id="cardMoist">
                <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="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                <div class="rk-metric-label">Wilgoć do budynku</div>
                <div class="rk-metric-val" id="txtMoist">0 litrów</div>
            </div>
            <div class="rk-metric-card state-good" id="cardReact">
                <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>
                <div class="rk-metric-label">Czas reakcji</div>
                <div class="rk-metric-val" id="txtReact">30 - 60 min</div>
            </div>
        </div>
    </div>

    <!-- Treść Inżynieryjna -->
    <div class="rk-wgt-content">
        
        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
                Charakterystyka techniczna systemu suchego
            </h3>
            <p>W systemie suchym (np. KISAN Comfort Floor Dry) rury grzewcze układane są w profilowanych płytach styropianowych (EPS 200–300 o wytrzymałości na ściskanie przy 10% odkształceniu równym 200–300 kPa). Ciepło z rury przekazywane jest do aluminiowych lameli transmisyjnych, które pokrywają do 80-90% powierzchni. Dzięki temu rozkład temperatury na posadzce jest równomierny, mimo całkowitego braku betonowej warstwy akumulacyjnej. Jeśli zastanawiasz się, <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy w wodnym ogrzewaniu podłogowym</a>, to wiedz, że to obecnie najbezpieczniejsza metoda dla drewna.</p>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Dlaczego jastrych cementowy to zagrożenie?
            </h3>
            
            <div class="rk-wgt-alert">
                <p><strong>Woda technologiczna (wilgoć budowlana):</strong> Wykonanie mokrej wylewki wiąże się z wprowadzeniem do wnętrza domu szkieletowego od 1000 do nawet 2500 litrów wody!</p>
            </div>
            
            <ul>
                <li>Elementem nośnym jest tu certyfikowane drewno C24 o wilgotności maksymalnej 16-18% (zgodnie z normą PN-EN 1995-1-1).</li>
                <li>Tak gwałtowny wzrost wilgotności powietrza grozi potężnym pęcznieniem drewna i utratą parametrów wełny mineralnej w ścianach. Przeczytaj dokładnie, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wpływa na wilgotność powietrza w domu</a>.</li>
                <li><strong>Przeciążenie statyczne:</strong> Drewniane belki są projektowane na obciążenia 1,5 do 2,0 kN/m². Dodanie 150 kg/m² wylewki cementowej o grubości 65 mm konsumuje niemal cały zapas nośności stropu! Poznaj zasady, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>.</li>
            </ul>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 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>
                Alternatywa: Cienka wylewka anhydrytowa
            </h3>
            <div class="rk-wgt-info">
                <p>Jeśli inwestor mimo wszystko decyduje się na wylewkę płynną, dopuszczalny jest wyłącznie jastrych anhydrytowy (samopoziomujący) o bardzo wysokim współczynniku przewodzenia ciepła lambda powyżej 1,6 W/(mK).</p>
            </div>
            <p>Dzięki wysokiej wytrzymałości na zginanie (klasa F5/F7 według PN-EN 13813), minimalna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki betonowej na ogrzewanie podłogowe</a> nad samą rurką grzewczą może wynosić zaledwie 30 mm. Zmniejsza to masę metra kwadratowego posadzki do około 100 kg/m² i znacząco skraca czas schnięcia w porównaniu do cementu.</p>
        </div>

    </div>
</div>

<script>
function updateFloorData(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Elementy DOM
    var cardWeight = document.getElementById('cardWeight');
    var cardMoist = document.getElementById('cardMoist');
    var cardReact = document.getElementById('cardReact');
    
    var txtWeight = document.getElementById('txtWeight');
    var txtMoist = document.getElementById('txtMoist');
    var txtReact = document.getElementById('txtReact');

    // 3. Logika zmiany danych (bez ampersandów)
    if (techId === 'dry') {
        txtWeight.textContent = '~30 kg/m²';
        cardWeight.className = 'rk-metric-card state-good';
        
        txtMoist.textContent = '0 litrów';
        cardMoist.className = 'rk-metric-card state-good';
        
        txtReact.textContent = '30 - 60 min';
        cardReact.className = 'rk-metric-card state-good';
    }
    
    if (techId === 'anh') {
        txtWeight.textContent = '~100 kg/m²';
        cardWeight.className = 'rk-metric-card state-warn';
        
        txtMoist.textContent = '~1000 litrów';
        cardMoist.className = 'rk-metric-card state-warn';
        
        txtReact.textContent = '2 - 3 godz.';
        cardReact.className = 'rk-metric-card state-warn';
    }
    
    if (techId === 'cem') {
        txtWeight.textContent = '>150 kg/m²';
        cardWeight.className = 'rk-metric-card state-bad';
        
        txtMoist.textContent = 'Nawet 2500 L';
        cardMoist.className = 'rk-metric-card state-bad';
        
        txtReact.textContent = '4 - 6 godz.';
        cardReact.className = 'rk-metric-card state-bad';
    }
}
</script>



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

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

/* Header */
.rk-ins-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-ins-border);
}

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

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

.rk-ins-header strong {
    color: var(--rk-ins-dark);
}

/* Panel Suwaków - Symulator */
.rk-ins-simulator {
    background: var(--rk-ins-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-ins-gold);
}

.rk-sim-title {
    font-size: 18px;
    font-weight: 800;
    color: #f8fafc;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-sim-title svg { color: #38bdf8; }

.rk-sim-control {
    background: rgba(255,255,255,0.05);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 15px;
}

.rk-slider-val-badge {
    background: #38bdf8;
    color: var(--rk-ins-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 18px;
}

/* Suwak stylizowany */
.rk-ins-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-ins-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-ins-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-ins-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Dashboard Wyników na żywo */
.rk-ins-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-ins-red);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Treść inżynieryjna (Rozwinięcie) */
.rk-ins-content {
    padding: 40px 50px;
    background: #ffffff;
}

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

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

.rk-ins-math-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-ins-blue);
    padding: 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
}

.rk-ins-math-line {
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-ins-dark);
    margin: 0 0 10px 0;
    background: #e2e8f0;
    padding: 5px 10px;
    display: inline-block;
    border-radius: 6px;
}

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

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

.rk-ins-consequences {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
}

.rk-cons-box {
    padding: 25px;
    border-radius: 16px;
    background: #fef2f2;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.rk-cons-box h4 {
    color: var(--rk-ins-red);
    font-size: 17px;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-cons-box p {
    font-size: 15px;
    margin: 0;
    color: var(--rk-ins-text);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-ins-header, .rk-ins-simulator, .rk-ins-content { padding: 30px 20px; }
    .rk-ins-dashboard { grid-template-columns: 1fr; gap: 10px; }
    .rk-ins-consequences { grid-template-columns: 1fr; }
    .rk-dash-val { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?",
    "description": "Kalkulator izolacji podłoża. Sprawdź, dlaczego 18-20 cm styropianu to absolutne minimum, aby uniknąć 25% strat ciepła do gruntu i obniżenia COP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-izolacja",
    "name": "Parametry Izolacyjności Termicznej EPS pod Ogrzewanie Podłogowe",
    "description": "Baza parametrów fizycznych określających opór cieplny (R) i spadek efektywności cieplnej w zależności od grubości styropianu aplikowanego na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość styropianu pod podłogówkę",
      "opór cieplny izolacji fundamentu",
      "straty ciepła do gruntu",
      "współczynnik przewodzenia ciepła styropianu",
      "ogrzewanie podłogowe na gruncie"
    ],
    "measurementTechnique": "Modelowanie utraty ciepła z wykorzystaniem wzoru na opór cieplny R = d/lambda w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany opór cieplny R podłogi na gruncie przy pompie ciepła: powyżej 4,5 (m2*K)/W.",
        "Straty ciepła do gruntu przy grubości izolacji 10 cm osiągają poziom od 18% do 25%.",
        "Zalecana grubość EPS 100 lambda 0,031: 18 cm do 20 cm.",
        "Zastosowanie cieńszej izolacji wymusza podbicie temperatury zasilania do 40°C, co obniża współczynnik SCOP pompy o około 15%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-izolacja",
    "name": "Symulator Strat Ciepła do Gruntu",
    "description": "Interaktywny kalkulator szacujący ucieczkę energii grzewczej do fundamentu w zależności od dobranej grubości izolacji styropianowej EPS.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ins-container" id="rk-insulation-sim">
    <div class="rk-ins-header">
        <h2>Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?</h2>
        <p>Bezpośrednia odpowiedź: Na płycie fundamentowej lub stropie nad gruntem należy zastosować izolację termiczną o łącznym oporze cieplnym <strong>R rzędu 4,5 (m²·K)/W</strong> lub więcej. W praktyce oznacza to montaż minimum <strong>18–20 cm twardego styropianu</strong> klasy EPS 100-035 lub EPS 100-031 (grafitowego), co gwarantuje ograniczenie strat ciepła do gruntu do bezpiecznego poziomu 5–8% mocy instalacji.</p>
    </div>

    <!-- Symulator Na Żywo -->
    <div class="rk-ins-simulator">
        <h3 class="rk-sim-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Symulator ucieczki ciepła do gruntu
        </h3>
        
        <div class="rk-sim-control">
            <div class="rk-slider-label">
                <span>Wybierz grubość układanego styropianu (EPS grafit λ=0,031):</span>
                <span class="rk-slider-val-badge" id="insVal">20 cm</span>
            </div>
            <input type="range" class="rk-ins-range" id="insSlider" min="5" max="25" step="1" value="20" oninput="runInsSim()">
        </div>

        <div class="rk-ins-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Opór Cieplny (R)</div>
                <div class="rk-dash-val" id="resR" style="color: #38bdf8;">6.45</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Straty w dół (%)</div>
                <div class="rk-dash-val" id="resLoss" style="color: #10b981;">~6%</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wydajność pompy (COP)</div>
                <div class="rk-dash-val" id="resCop" style="color: #10b981;">Optymalna</div>
            </div>
            <div class="rk-dash-alert" id="insAlert">
                ⚠️ KRYTYCZNY BŁĄD IZOLACJI: Ucieczka energii do fundamentu jest gigantyczna. Płacisz za ogrzewanie ziemi pod budynkiem, a nie pokoju!
            </div>
        </div>
    </div>

    <!-- Wyjaśnienie inżynierskie i linki SEO -->
    <div class="rk-ins-content">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Wyliczenie strat ciepła z fizyki budowli
        </h3>
        
        <p>Zgodnie z normą PN-EN 1264-4, dla stropów graniczących z gruntem lub przestrzenią nieogrzewaną, minimalny opór cieplny izolacji wynosi R = 2,25 (m²·K)/W. Jednak przy dzisiejszych standardach i pompach ciepła dążymy do maksymalizacji efektywności, co stawia to wymaganie o wiele wyżej.</p>
        
        <div class="rk-ins-math-box">
            <div class="rk-ins-math-line">Wzór: R = Grubość (d) / Lambda (λ)</div>
            <div class="rk-ins-math-line">R = 0,18 m / 0,031 W/(m·K) = 5,80 (m²·K)/W</div>
            <p style="margin: 15px 0 0 0; font-size: 14px;">Dodając opory przejmowania ciepła posadzki, osiągamy znakomity współczynnik przenikania ciepła podłogi na gruncie U = 0,15 W/(m²·K).</p>
        </div>

        <p>Chcesz mieć pewność, że wykonawca nie zaniża norm? Dokładnie ten sam mechanizm fizyki stosuje się przy bardzo popularnych rozwiązaniach wylewanych wprost na ziemi – poznaj detale sprawdzając <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">ogrzewanie podłogowe w płycie fundamentowej</a>.</p>

        <div class="rk-ins-consequences">
            <div class="rk-cons-box">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="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>
                    Wzrost strat w grunt o 18–25%
                </h4>
                <p>Ciepło generowane przez rury migruje zawsze w kierunku o najmniejszym oporze termicznym. Zamiast iść w górę do pokoju, przy zbyt cienkim materiale izolacyjnym ogrzewasz beton pod budynkiem. Koniecznie sprawdź pełen zbiór zasad dotyczących tego, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> rekomendują inżynierowie.</p>
            </div>
            <div class="rk-cons-box">
                <h4>
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Zapaść efektywności (SCOP)
                </h4>
                <p>Aby nadrobić ucieczkę energii w dół i zachować 20°C w pokoju, instalator podniesie Ci temperaturę zasilania z 30°C do np. 38°C. Pamiętaj, że ostateczny <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R (m²K)/W to klucz do efektywności</a>, a jego obniżenie powoduje roczny spadek sprawności pompy (COP) nawet o 15–20%.</p>
            </div>
        </div>
        
        <p style="margin-top: 25px;">Chcesz zobaczyć, jak decyzje o dociepleniu i precyzyjnych rozstawach wpływają bezpośrednio na Twoje portfele przez kolejne dekady? Przeanalizujmy <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rzeczywiste oszczędności na kosztach ogrzewania w skali roku</a> na przykładzie prawdziwego domu.</p>

    </div>
</div>

<script>
function runInsSim() {
    // 1. Pobranie danych wejściowych
    var thicknessCm = parseFloat(document.getElementById('insSlider').value);
    
    // 2. Aktualizacja labela nad suwakiem
    document.getElementById('insVal').textContent = thicknessCm + ' cm';
    
    // 3. Model matematyczny
    var thicknessM = thicknessCm / 100;
    var lambda = 0.031; // EPS 100 Grafit
    var resistance = thicknessM / lambda;
    
    // Uproszczony model strat ciepła w dół do celów demonstracyjnych
    // Założenie: 5 cm to ~35% strat, 10 cm to ~22%, 18 cm to ~7%, 25 cm to ~4%.
    var lossPercent = 0;
    var copStatus = "";
    var alertDisplay = "none";
    var lossColor = "";
    var copColor = "";

    // Logika warunkowa bez podwójnych ampersandów
    if (thicknessCm < 10) {
        lossPercent = 35 - (thicknessCm - 5) * 2; 
        copStatus = "Spadek -25%";
        alertDisplay = "block";
        lossColor = "#ef4444"; // Czerwony
        copColor = "#ef4444";
    } else {
        if (thicknessCm < 15) {
            lossPercent = 25 - (thicknessCm - 10) * 1.5;
            copStatus = "Spadek -15%";
            alertDisplay = "block";
            lossColor = "#eab308"; // Zółty/Gold
            copColor = "#eab308";
        } else {
            if (thicknessCm < 18) {
                lossPercent = 17 - (thicknessCm - 15) * 1.5;
                copStatus = "Dopuszczalna";
                alertDisplay = "none";
                lossColor = "#eab308"; 
                copColor = "#10b981"; // Zielony
            } else {
                lossPercent = 12 - (thicknessCm - 18) * 1;
                copStatus = "Optymalna";
                alertDisplay = "none";
                lossColor = "#10b981"; 
                copColor = "#10b981";
            }
        }
    }
    
    // Zabezpieczenie minimalnej wartości utraty (zawsze jakieś straty są)
    if (lossPercent < 4) {
        lossPercent = 4;
    }

    // 4. Aktualizacja Dashboardu
    document.getElementById('resR').textContent = resistance.toFixed(2);
    
    var elLoss = document.getElementById('resLoss');
    elLoss.textContent = '~' + Math.round(lossPercent) + '%';
    elLoss.style.color = lossColor;
    
    var elCop = document.getElementById('resCop');
    elCop.textContent = copStatus;
    elCop.style.color = copColor;
    
    document.getElementById('insAlert').style.display = alertDisplay;
}

// Inicjalizacja przy ładowaniu strony (ustawia domyślne 20 cm)
runInsSim();
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #f0f9ff;
    --rk-flow-gold: #eab308;
    --rk-flow-bg: #ffffff;
    --rk-flow-border: #e2e8f0;
    --rk-flow-text: #475569;
    --rk-flow-accent: #38bdf8;
    --rk-flow-green: #10b981;
}

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

/* Header Section */
.rk-flow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-flow-border);
}

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

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

.rk-flow-header .rk-highlight {
    display: inline-block;
    background: rgba(2, 132, 199, 0.1);
    color: var(--rk-flow-blue);
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 800;
    margin-top: 10px;
    font-size: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

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

/* Interaktywny Kalkulator - Panel Sterowania */
.rk-flow-calc-box {
    display: flex;
    flex-direction: column;
    background: var(--rk-flow-dark);
}

.rk-flow-controls {
    padding: 35px 50px;
    border-bottom: 2px dashed rgba(255,255,255,0.15);
}

.rk-flow-controls h3 {
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-flow-controls h3 svg { color: var(--rk-flow-accent); }

.rk-slider-stack {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #94a3b8;
    font-size: 15px;
    font-weight: 700;
}

.rk-slider-val {
    background: var(--rk-flow-accent);
    color: var(--rk-flow-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Custom Sliders */
.rk-flow-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-flow-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-flow-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 12px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-flow-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Wyniki (Dashboard hydrauliczny) */
.rk-flow-results {
    padding: 35px 50px;
    background: #1e293b;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-result-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-result-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-result-value span {
    font-size: 16px;
    color: var(--rk-flow-accent);
    margin-left: 5px;
}

.rk-result-highlight { color: var(--rk-flow-green); }
.rk-result-warn { color: var(--rk-flow-gold); }

/* Tłumaczenie inżynierskie */
.rk-flow-explanation {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-flow-step {
    background: #f8fafc;
    border-left: 4px solid var(--rk-flow-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 20px;
}

.rk-flow-step h4 {
    margin: 0 0 10px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-flow-dark);
}

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

.rk-flow-math {
    display: inline-block;
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-weight: 700;
    color: #0f172a;
}

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

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-controls, .rk-flow-results, .rk-flow-explanation { padding: 30px 20px; }
    .rk-flow-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-slider-stack { gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?",
    "description": "Zasady doboru rozstawu rur (10-15 cm) pod zasilanie 30/25°C. Obliczenia przepływów masowych, oporów i długości pętli PEX dla pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-hydraulika",
    "name": "Parametry Hydrauliczne Pętli Grzewczych PEX 16x2",
    "description": "Modele obliczeniowe dla przepływów masowych wody oraz długości pętli ogrzewania podłogowego przy zadanym spadku temperatury dT 5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli dla rury 16x2",
      "zakres pracy rotametrów rozdzielacza",
      "spadek temperatury zasilania a powrotu",
      "na ile pętli podzielić salon",
      "przepływ masowy wody wzór"
    ],
    "measurementTechnique": "Przeliczanie mocy cieplnej (W) na przepływ (l/min) przy użyciu ciepła właściwego wody 4186 J/(kgK) oraz algorytmu dzielenia długości rur pow. 100mb.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ masowy m = Q / (1,163 * dT).",
        "Zapotrzebowanie na rurę: 6,67 mb/m2 dla rozstawu 15 cm.",
        "Maksymalna długość pojedynczej pętli: 100-120 mb dla zachowania oporów < 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-hydraulika",
    "name": "Symulator Przepływów i Długości Pętli PEX",
    "description": "Kalkulator interaktywny wyliczający w czasie rzeczywistym wymaganą długość rur, ilość pętli oraz nastawy rotametrów na rozdzielaczu dla danego pomieszczenia.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-hydraulic-simulator">
    
    <div class="rk-flow-header">
        <h2>Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?</h2>
        <p>W lekkiej konstrukcji szkieletowej o jednostkowym zapotrzebowaniu rzędu <strong>25–40 W/m²</strong>, optymalny rozstaw rur to <strong>15 cm w pokojach</strong> oraz <strong>10 cm w łazienkach</strong>. Taki dobór gwarantuje możliwość pracy pompy ciepła na niskich parametrach zasilania 30/25°C, co jest kluczem do energooszczędności.</p>
        <p>Im mniejszy rozstaw rur (gęstsze ułożenie), tym większa powierzchnia wymiany i niższa wymagana temperatura wody. A musisz wiedzieć, że <strong>każde obniżenie temperatury zasilania o 1°C to wzrost sprawności COP pompy ciepła o 2,5–3%.</strong></p>
    </div>

    <!-- Symulator na żywo -->
    <div class="rk-flow-calc-box">
        
        <div class="rk-flow-controls">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                Symulator Przepływów i Długości Pętli (dT = 5K)
            </h3>
            <div class="rk-slider-stack">
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Powierzchnia salonu (A)</span>
                        <span class="rk-slider-val" id="fValArea">25 m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlArea" min="10" max="50" step="1" value="25" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Zapotrzebowanie (q)</span>
                        <span class="rk-slider-val" id="fValQ">35 W/m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlQ" min="20" max="60" step="1" value="35" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Rozstaw rur (W)</span>
                        <span class="rk-slider-val" id="fValSpacing">15 cm</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlSpacing" min="10" max="25" step="5" value="15" oninput="runFlowSim()">
                </div>
            </div>
        </div>

        <div class="rk-flow-results">
            <div class="rk-result-card">
                <div class="rk-result-title">Moc do dostarczenia</div>
                <div class="rk-result-value" id="resTotalQ">875<span>W</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Całkowity metraż rury</div>
                <div class="rk-result-value" id="resLength">167<span>mb</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Ilość niezależnych pętli</div>
                <div class="rk-result-value rk-result-warn" id="resLoops">2<span>pętle</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Nastawa rotametru (na pętlę)</div>
                <div class="rk-result-value rk-result-highlight" id="resFlow">1.25<span>l/min</span></div>
            </div>
        </div>

    </div>

    <!-- Tłumaczenie inżynierskie z linkami SEO -->
    <div class="rk-flow-explanation">
        <h3>Skąd wzięły się te wyniki? Przykład obliczeniowy</h3>
        
        <div class="rk-flow-step">
            <h4>1. Obliczenie przepływu masowego wody</h4>
            <p>Zapotrzebowanie salonu wynosi <span class="rk-flow-math" id="txtTotalQ">875 W</span>. Zakładamy rurę PEX 16x2 oraz <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury zasilania a powrotu</a> (tzw. delta T) na poziomie 5K. Dzielimy moc przez ciepło właściwe wody (1,163 Wh/kgK) i deltę T. Otrzymujemy całkowity przepływ rzędu <span class="rk-flow-math" id="txtTotalFlow">2.5 l/min</span>.</p>
        </div>

        <div class="rk-flow-step">
            <h4>2. Długość rury i dławienie hydrauliczne</h4>
            <p>Przy wybranym rozstawie całkowita rura wynosi <span class="rk-flow-math" id="txtLength">167 mb</span>. Ponieważ <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli dla rury 16x2</a> nie powinna przekraczać 100–120 mb (aby opory nie przekroczyły 20 kPa), musimy zaplanować, <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">na ile pętli podzielić salon</a>. Dzielimy pokój na <span class="rk-flow-math" id="txtLoops">2</span> równe obwody.</p>
        </div>

        <div class="rk-flow-step">
            <h4>3. Nastawa na rozdzielaczu</h4>
            <p>Dzieląc całkowity przepływ przez ilość pętli, otrzymujemy wymaganą nastawę wynoszącą <span class="rk-flow-math" id="txtLoopFlow">1.25 l/min</span>. Taka wartość idealnie trafia w optymalny <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zakres pracy rotametrów rozdzielacza</a> (które zazwyczaj precyzyjnie operują w widełkach 1,0 do 2,5 l/min).</p>
        </div>
    </div>

</div>

<script>
function runFlowSim() {
    // 1. Pobranie danych wejściowych
    var area = parseFloat(document.getElementById('fSlArea').value);
    var qUnit = parseFloat(document.getElementById('fSlQ').value);
    var spacingCm = parseFloat(document.getElementById('fSlSpacing').value);

    // 2. Aktualizacja labeli
    document.getElementById('fValArea').textContent = area + ' m²';
    document.getElementById('fValQ').textContent = qUnit + ' W/m²';
    document.getElementById('fValSpacing').textContent = spacingCm + ' cm';

    // 3. Obliczenia hydrauliczne
    var totalQ = Math.round(area * qUnit);
    
    // Przepływ = Q / (1.163 * dT). Zakładamy dT = 5K.
    // Wynik to kg/h. Dzielimy przez 60 by otrzymać l/min.
    var massFlowKgH = totalQ / (1.163 * 5);
    var totalFlowLMin = massFlowKgH / 60;
    
    // Długość rury: dla 10cm to 10 mb/m2, dla 15cm to ~6.67 mb/m2, dla 20cm to 5 mb/m2, dla 25cm to 4 mb/m2.
    var multiplier = 100 / spacingCm;
    var totalLength = Math.round(area * multiplier);
    
    // Ustalanie ilości pętli (nie przekraczamy ~100m na pętlę bezwzględnie)
    var loops = 1;
    if (totalLength > 100) {
        if (totalLength <= 200) {
            loops = 2;
        } else {
            if (totalLength <= 300) {
                loops = 3;
            } else {
                if (totalLength <= 400) {
                    loops = 4;
                } else {
                    loops = 5;
                }
            }
        }
    }
    
    // Przepływ na rotametr
    var flowPerLoop = totalFlowLMin / loops;

    // 4. Aktualizacja Dashboardu
    document.getElementById('resTotalQ').innerHTML = totalQ + '<span>W</span>';
    document.getElementById('resLength').innerHTML = totalLength + '<span>mb</span>';
    
    var elLoops = document.getElementById('resLoops');
    elLoops.innerHTML = loops + '<span>' + (loops === 1 ? 'pętla' : 'pętle') + '</span>';
    if(loops > 1) {
        elLoops.className = 'rk-result-value rk-result-warn';
    } else {
        elLoops.className = 'rk-result-value';
    }
    
    document.getElementById('resFlow').innerHTML = flowPerLoop.toFixed(2) + '<span>l/min</span>';

    // 5. Aktualizacja wartości w tekście (Dowód Inżynierski)
    document.getElementById('txtTotalQ').textContent = totalQ + ' W';
    document.getElementById('txtTotalFlow').textContent = totalFlowLMin.toFixed(2) + ' l/min';
    document.getElementById('txtLength').textContent = totalLength + ' mb';
    document.getElementById('txtLoops').textContent = loops;
    document.getElementById('txtLoopFlow').textContent = flowPerLoop.toFixed(2) + ' l/min';
}

// Uruchomienie na start (25 m2, 35 W/m2, 15 cm daje równe 875W, 167m rury, 2 pętle, 1.25 l/min)
runFlowSim();
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-light: #f0f9ff;
    --rk-comp-gold: #eab308;
    --rk-comp-bg: #ffffff;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #475569;
    --rk-comp-green: #10b981;
    --rk-comp-red: #ef4444;
}

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

/* Sekcja nagłówkowa */
.rk-comp-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

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

/* Interaktywny selektor technologii */
.rk-comp-selector {
    display: flex;
    flex-direction: row;
    background: #f1f5f9;
    padding: 20px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-comp-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 15px 10px;
    background: #ffffff;
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-tech-btn:hover {
    background: var(--rk-comp-blue-light);
}

.rk-tech-btn.active {
    border-color: var(--rk-comp-blue);
    background: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
    transform: translateY(-2px);
}

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

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

.rk-tech-name {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

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

/* Dashboard wyników (Kafelki) */
.rk-comp-dashboard {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    animation: fadeInDash 0.3s ease-in-out;
}

@keyframes fadeInDash {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

.rk-param-card {
    background: #f8fafc;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all 0.3s;
}

.rk-param-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-param-label svg {
    color: var(--rk-comp-blue);
}

.rk-param-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin: 0;
    line-height: 1.2;
}

/* Modyfikatory kolorystyczne dla wartości */
.val-good { color: var(--rk-comp-green); }
.val-warn { color: var(--rk-comp-gold); }
.val-bad { color: var(--rk-comp-red); }

/* Dolna sekcja opisowa */
.rk-comp-footer {
    padding: 0 50px 40px 50px;
    background: #ffffff;
}

.rk-comp-footer p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-comp-text);
    margin: 0;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-comp-border);
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-dashboard, .rk-comp-footer { padding: 30px 20px; }
    
    /* Układ PIONOWY przycisków na mobile (żadnego scrolowania bocznego) */
    .rk-comp-selector { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-name { font-size: 15px; }
    
    /* Kafelki na mobile - jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-param-card { flex-direction: row; align-items: center; padding: 15px 20px; }
    .rk-param-label { margin-bottom: 0; }
    .rk-param-val { font-size: 18px; text-align: right; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów technicznych i kosztów",
    "description": "Zestawienie technologii posadzkowych pod kątem nośności stropu, czasu schnięcia, wilgoci technologicznej i kosztów robocizny.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-komparator",
    "name": "Porównanie Technologii Posadzkowych Ogrzewania Podłogowego",
    "description": "Baza danych parametrów fizycznych i kosztowych systemów grzewczych stosowanych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym",
      "czym jest system mokry w wodnym ogrzewaniu podłogowym",
      "wylewka betonowa na ogrzewanie podłogowe",
      "ile trwa montaż ogrzewania podłogowego",
      "podłogówka cena za m2 robocizny"
    ],
    "measurementTechnique": "Zestawienie inżynieryjne parametrów fizyko-chemicznych materiałów budowlanych oraz uśrednionych rynkowych kosztów wykonawstwa na 2026 rok.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System suchy EPS: Masa 25-35 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych anhydrytowy: Masa 95-110 kg/m2, Wilgoć ok. 10 litrów, Reakcja 120-180 min.",
        "Jastrych cementowy: Masa 145-165 kg/m2, Wilgoć ok. 22 litrów, Reakcja 240-360 min.",
        "System suchy maty Alu: Masa 12-15 kg/m2, Wilgoć 0 litrów, Reakcja 15-30 min."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-komparator",
    "name": "Interaktywny Komparator Technologii Podłogówki",
    "description": "Aplikacja webowa pozwalająca błyskawicznie przełączać i porównywać obciążenia stropów, koszty oraz bezwładność cieplną poszczególnych systemów posadzkowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-tech-comparator">
    <div class="rk-comp-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów</h2>
        <p>Wybór systemu rzutuje bezpośrednio na nośność konstrukcji stropu oraz dynamikę grzewczą. Przetestuj interaktywny komparator, aby zrozumieć wady i zalety tradycyjnych wylewek w zestawieniu z ultralekkimi zabudowami suchymi.</p>
    </div>

    <!-- Nawigacja / Przyciski wyboru -->
    <div class="rk-comp-selector">
        <button class="rk-tech-btn active" onclick="updateDashboard('eps', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <span class="rk-tech-name">System Suchy (Płyta EPS + Al)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('anh', this)">
            <div class="rk-tech-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></svg>
            </div>
            <span class="rk-tech-name">Jastrych Anhydrytowy (40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            </div>
            <span class="rk-tech-name">Jastrych Cementowy (65 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('mat', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            </div>
            <span class="rk-tech-name">System Suchy (Maty Alu)</span>
        </button>
    </div>

    <!-- Dashboard (Kafelki z wynikami) -->
    <div class="rk-comp-dashboard" id="dashContainer">
        <div class="rk-dash-grid">
            
            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="1" ry="1"></rect><path d="M12 8v8"></path></svg>
                    Grubość const.
                </div>
                <div class="rk-param-val" id="valThick">25–30 mm</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                    Obciążenie stropu
                </div>
                <div class="rk-param-val val-good" id="valWeight">25–35 kg/m²</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Przewodność cieplna
                </div>
                <div class="rk-param-val" id="valLambda">Bezpośrednia (Al)</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" 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>
                    Czas reakcji
                </div>
                <div class="rk-param-val val-good" id="valReact">30–60 min</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                    Wilgoć technolog.
                </div>
                <div class="rk-param-val val-good" id="valMoist">0 litrów</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                    Czas schnięcia
                </div>
                <div class="rk-param-val val-good" id="valDry">0 dni</div>
            </div>

        </div>
    </div>

    <!-- Stopka informacyjna SEO z max 4 naturalnymi linkami -->
    <div class="rk-comp-footer">
        <p>Analizując powyższe dane inżynieryjne, odwieczny dylemat <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy w wodnym ogrzewaniu podłogowym</a> w przypadku domu z drewna rozwiązuje się sam. Decydując się na tradycyjną <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a>, musimy zaakceptować drastyczny spadek sterowalności temperaturą. Dodatkowo, przy planowaniu budżetu inwestycji, należy zawsze uwzględniać bieżącą <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">cenę robocizny za m²</a> instalacji oraz fizyczny fakt, <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">ile trwa montaż ogrzewania podłogowego</a>, aby uniknąć kilkutygodniowych przestojów związanych ze schnięciem betonowego jastrychu.</p>
    </div>
</div>

<script>
function updateDashboard(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Pobranie referencji do elementów DOM
    var valThick = document.getElementById('valThick');
    var valWeight = document.getElementById('valWeight');
    var valLambda = document.getElementById('valLambda');
    var valReact = document.getElementById('valReact');
    var valMoist = document.getElementById('valMoist');
    var valDry = document.getElementById('valDry');
    
    // Animacja przeładowania (restart animacji CSS)
    var grid = document.querySelector('.rk-dash-grid');
    grid.style.animation = 'none';
    grid.offsetHeight; // wyzwolenie reflow
    grid.style.animation = null;

    // 3. Logika przypisywania wartości (bez znaków ampersand/or)
    if (techId === 'eps') {
        valThick.textContent = '25–30 mm';
        
        valWeight.textContent = '25–35 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '30–60 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
    
    if (techId === 'anh') {
        valThick.textContent = '45–50 mm';
        
        valWeight.textContent = '95–110 kg/m²';
        valWeight.className = 'rk-param-val val-warn';
        
        valLambda.textContent = '1,6–1,8 W/(mK)';
        
        valReact.textContent = '120–180 min';
        valReact.className = 'rk-param-val val-warn';
        
        valMoist.textContent = 'Ok. 10 litrów/m²';
        valMoist.className = 'rk-param-val val-warn';
        
        valDry.textContent = '7–14 dni';
        valDry.className = 'rk-param-val val-warn';
    }
    
    if (techId === 'cem') {
        valThick.textContent = '65–75 mm';
        
        valWeight.textContent = '145–165 kg/m²';
        valWeight.className = 'rk-param-val val-bad';
        
        valLambda.textContent = '1,1–1,3 W/(mK)';
        
        valReact.textContent = '240–360 min';
        valReact.className = 'rk-param-val val-bad';
        
        valMoist.textContent = 'Ok. 22 litrów/m²';
        valMoist.className = 'rk-param-val val-bad';
        
        valDry.textContent = '28–42 dni';
        valDry.className = 'rk-param-val val-bad';
    }
    
    if (techId === 'mat') {
        valThick.textContent = '15–18 mm';
        
        valWeight.textContent = '12–15 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '15–30 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
}
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #f0f9ff;
    --rk-calc-gold: #eab308;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-code: #1e293b;
    --rk-calc-accent: #38bdf8;
    --rk-calc-alert: #ef4444;
}

.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 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

/* Header */
.rk-calc-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-calc-border);
    text-align: center;
}

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

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

/* Interaktywny Panel Główny (Ciemny) */
.rk-live-panel {
    background: var(--rk-calc-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-gold);
}

.rk-live-title {
    font-size: 18px;
    font-weight: 800;
    color: #e2e8f0;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

/* Suwaki - Układ Pionowy */
.rk-sliders-wrapper {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-slider-val-badge {
    background: var(--rk-calc-accent);
    color: var(--rk-calc-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Suwaki stylizowane */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
    margin-top: 5px;
}
.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(234, 179, 8, 0.6);
    transition: transform 0.1s;
}
.rk-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* DASHBOARD WYNIKÓW NA ŻYWO (Nowość) */
.rk-dashboard {
    margin-top: 35px;
    padding-top: 30px;
    border-top: 1px dashed rgba(255, 255, 255, 0.15);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    transition: all 0.3s ease;
}

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

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-accent);
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-calc-alert);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Nawigacja kroków - układ pionowy */
.rk-calc-nav {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    padding: 30px 50px;
    gap: 12px;
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-nav-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin: 0 0 5px 0;
}

.rk-step-btn {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 20px;
    padding: 16px 25px;
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    text-align: left;
}

.rk-step-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.rk-step-btn.active { border-color: var(--rk-calc-blue); background: var(--rk-calc-blue-light); box-shadow: 0 4px 12px rgba(2, 132, 199, 0.15); }

.rk-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 15px;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num { background: var(--rk-calc-blue); }
.rk-step-label { font-size: 16px; font-weight: 800; color: #64748b; transition: color 0.3s; }
.rk-step-btn.active .rk-step-label { color: var(--rk-calc-dark); }

/* Obszar zawartości (Wzory) */
.rk-calc-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-algo-panel {
    display: none;
    animation: fadeInStep 0.4s ease-out;
}

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

.rk-algo-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-panel h3 svg { color: var(--rk-calc-blue); }

.rk-math-box {
    background: var(--rk-calc-code);
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 25px;
    border-left: 4px solid var(--rk-calc-gold);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}

.rk-math-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 17px;
    color: #38bdf8;
    font-weight: 700;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.rk-math-live-result {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    color: #10b981;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid rgba(16, 185, 129, 0.3);
    font-size: 18px;
    margin-top: 10px;
}

.rk-math-desc {
    font-size: 14px;
    color: #94a3b8;
    margin: 0;
    font-style: italic;
}

.rk-algo-panel p { font-size: 16px; line-height: 1.7; color: var(--rk-calc-text); }
.rk-algo-panel a { color: var(--rk-calc-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Potężne CTA */
.rk-calc-cta {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid #334155;
}
.rk-calc-cta h3 { color: #ffffff; font-size: 26px; font-weight: 900; margin: 0 0 15px 0; }
.rk-calc-cta p { color: #94a3b8; font-size: 16px; line-height: 1.6; margin: 0 auto 30px auto; max-width: 650px; }

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #eab308;
    color: #0f172a;
    font-size: 15px;
    font-weight: 900;
    padding: 20px 30px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(234, 179, 8, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-massive:hover {
    transform: translateY(-4px);
    background: #fde047;
    box-shadow: 0 15px 30px -5px rgba(234, 179, 8, 0.4);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-live-panel, .rk-calc-content, .rk-calc-cta { padding: 25px 20px; }
    .rk-dashboard { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .rk-dash-val { font-size: 20px; }
    .rk-calc-nav { padding: 20px; gap: 10px; }
    .rk-step-btn { padding: 15px 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-math-formula { font-size: 14px; }
    .rk-btn-massive { width: 100%; text-align: center; flex-direction: column; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-symulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Algorytm obliczeniowy do projektowania ogrzewania w domu szkieletowym na żywo",
    "description": "Interaktywny kalkulator inżynierski OZC. Przesuwaj wskaźniki powierzchni i izolacji, aby na żywo śledzić zmiany parametrów rur, temperatury posadzki i mocy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-kalkulator",
    "name": "Wzory Fizyki Budowli – Dynamiczna Termodynamika Ogrzewania",
    "description": "Zbiór inżynieryjnych wzorów obliczeniowych, z dynamicznym przeliczaniem gęstości strumienia cieplnego, temperatury powierzchni oraz rozstawu rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła budynku na żywo",
      "obliczenie rozstawu rur podłogówki m2",
      "wzór na temperaturę posadzki",
      "koszt ogrzewania domu szkieletowego",
      "obliczenia OZC norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczne obliczenia JavaScript na bazie norm PN-EN 1264 i PN-EN 12831 (symulacja parametrów wejściowych inwestora).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Obliczenie OZC w oparciu o suwak metrażu (A_pos) i izolacji budynku.",
        "Krok 2: Korekta na zyski solarne dla domów drewnianych (współczynnik 0,95).",
        "Krok 3: Wyznaczenie q (W/m2).",
        "Krok 4: Ustalenie fizjologicznej temperatury posadzki (max 29 stopni).",
        "Krok 5: Obliczenie potrzebnego metrażu rur PEX/PERT zależnie od suwaka rozstawu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-kalkulator",
    "name": "Live Symulator OZC i Hydrauliki Podłogowej",
    "description": "Interaktywna aplikacja webowa z suwakami czasu rzeczywistego, wizualizująca wpływ wielkości pomieszczenia i izolacji na parametry pracy pompy ciepła.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-interactive-wizard">
    <div class="rk-calc-header">
        <h2>Algorytm obliczeniowy OZC (Live Symulator)</h2>
        <p>Nie czytaj suchych wzorów – przelicz swój dom w czasie rzeczywistym. Zmień parametry suwakami poniżej i natychmiast zobacz wyniki na tablicy wskaźników. Poznaj fizykę swojego budynku.</p>
    </div>

    <!-- Panel Sterowania Na Żywo z Wbudowanym Dashboardem -->
    <div class="rk-live-panel">
        <h3 class="rk-live-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
            Krok 1: Wprowadź parametry pokoju
        </h3>
        
        <div class="rk-sliders-wrapper">
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Powierzchnia posadzki netto</span>
                    <span class="rk-slider-val-badge" id="valArea">20 m²</span>
                </div>
                <input type="range" class="rk-range" id="slArea" min="10" max="50" step="1" value="20" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Projektowe zapotrzebowanie (izolacja)</span>
                    <span class="rk-slider-val-badge" id="valQ">40 W/m²</span>
                </div>
                <input type="range" class="rk-range" id="slQ" min="20" max="80" step="5" value="40" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Rozstaw rur PEX/PERT</span>
                    <span class="rk-slider-val-badge" id="valSpacing">15 cm</span>
                </div>
                <input type="range" class="rk-range" id="slSpacing" min="10" max="25" step="5" value="15" oninput="runSim()">
            </div>
        </div>

        <!-- Nowość: DASHBOARD NA ŻYWO -->
        <div class="rk-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Moc całkowita</div>
                <div class="rk-dash-val" id="dashTotalQ">800 W</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wymagany Strumień</div>
                <div class="rk-dash-val" id="dashStrumien">38 W/m²</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Temp. Posadzki</div>
                <div class="rk-dash-val" id="dashTemp">23.5 °C</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Potrzebna Rura</div>
                <div class="rk-dash-val" id="dashRury">133 mb</div>
            </div>
            <div class="rk-dash-alert" id="dashAlert">
                ⚠️ BŁĄD PROJEKTOWY: Temperatura podłogi przekracza normatywne 29°C. Pomieszczenie będzie niekomfortowo gorące. Popraw izolację (Zapotrzebowanie)!
            </div>
        </div>
    </div>

    <!-- Nawigacja kroków (Jak to policzyliśmy?) -->
    <div class="rk-calc-nav">
        <p class="rk-calc-nav-title">Krok 2: Poznaj Inżynieryjne Obliczenia (Kliknij)</p>
        <button class="rk-step-btn active" onclick="showLiveStep('stOZC', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-label">Wyznaczenie straty ciepła pomieszczenia (Q_obl)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stKorekta', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-label">Korekta o zyski i bezwładność w szkielecie</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stStrumien', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-label">Obliczenie gęstości strumienia cieplnego (q)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stTemp', this)">
            <span class="rk-step-num">4</span>
            <span class="rk-step-label">Sprawdzenie granicznej temperatury posadzki</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stRury', this)">
            <span class="rk-step-num">5</span>
            <span class="rk-step-label">Zapotrzebowanie na rurę grzewczą (L_rury)</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-calc-content">
        
        <!-- Krok 1: OZC -->
        <div class="rk-algo-panel" id="stOZC" style="display: block;">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                Wyznaczenie straty ciepła pomieszczenia (Q_obl)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_obl = <span id="dynArea1">20</span> m² * <span id="dynQ1">40</span> W/m²</div>
                <div class="rk-math-live-result">= <span id="dynTotalQ">800</span> W</div>
                <p class="rk-math-desc" style="margin-top: 15px;">Uproszczony model przenikania (Norma PN-EN 12831).</p>
            </div>
            <p>To absolutny fundament. Im lepiej ocieplony jest Twój dom szkieletowy (wyższa jakość wełny), tym niższe zapotrzebowanie. Sprawdź, jak <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> w duecie obniżają ten parametr poprzez eliminację start wentylacyjnych.</p>
        </div>

        <!-- Krok 2: Korekta -->
        <div class="rk-algo-panel" id="stKorekta">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Korekta o zyski i bezwładność
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_proj = <span id="dynTotalQ2">800</span> W * 0.95 (współcz. f_reg)</div>
                <div class="rk-math-live-result">= <span id="dynQproj">760</span> W</div>
            </div>
            <p>W domu szkieletowym ze względu na niską akumulacyjność ścian nie stosuje się "mocy na zapas". Taki zoptymalizowany <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania domu</a> na etapie projektu pozwala dobrać znacznie tańszą pompę ciepła o niższej mocy nominalnej.</p>
        </div>

        <!-- Krok 3: Strumień -->
        <div class="rk-algo-panel" id="stStrumien">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="2" x2="12" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Gęstość strumienia cieplnego (q)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">q = <span id="dynQproj2">760</span> W / <span id="dynArea2">20</span> m²</div>
                <div class="rk-math-live-result">= <span id="dynStrumien">38</span> W/m²</div>
            </div>
            <p>To wartość mocy, jaką faktycznie musimy wycisnąć z każdego metra kwadratowego podłogi. Jeśli wartość przekroczy 80 W/m², oznacza to, że sam system podłogowy może nie podołać w największe mrozy.</p>
        </div>

        <!-- Krok 4: Temp Posadzki -->
        <div class="rk-algo-panel" id="stTemp">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                Graniczna temperatura posadzki
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">t_f = 20°C (wnętrze) + ( <span id="dynStrumien2">38</span> / 10.8 alpha )</div>
                <div class="rk-math-live-result">= <span id="dynTemp">23.5</span> °C</div>
            </div>
            <p>Zgodnie z fizyką (norma PN-EN 1264), fizjologiczna granica komfortu wynosi 29°C.</p>
        </div>

        <!-- Krok 5: Rury -->
        <div class="rk-algo-panel" id="stRury">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Zapotrzebowanie na rurę grzewczą (L_rury)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">L_rury = <span id="dynArea3">20</span> m² / <span id="dynSpacingM">0.15</span> m (rozstaw)</div>
                <div class="rk-math-live-result">= <span id="dynRura">133</span> mb rury</div>
            </div>
            <p>Znając dokładną długość pętli, unikniesz dławienia przepływów. Jeśli wynik przekracza 100 metrów bieżących, pokój bezwzględnie wymaga podziału na dwie niezależne pętle. Zobacz jak to wpływa na <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a> w całej kotłowni.</p>
        </div>
    </div>

    <!-- Mocne CTA pod długi ogon na koniec -->
    <div class="rk-calc-cta">
        <h3>Nie ryzykuj własnych pieniędzy przez instalatorów "zgadywaczy"</h3>
        <p>Inwestycja w lekki dom szkieletowy wymaga żelaznych obliczeń inżynierskich. Wyeliminuj błędy, taktowanie pompy i duszne sypialnie opierając się na normatywnych wyliczeniach OZC i pełnej dokumentacji technicznej zawartej w profesjonalnym projekcie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            <span>ZAMÓW INŻYNIERSKI PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC ORAZ HYDRAULIKĄ</span>
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
function showLiveStep(panelId, btnElement) {
    // Bezpieczne odwołanie do kontenera przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');
    
    // Obsługa paneli
    var contentArea = document.querySelector('.rk-calc-content');
    var allPanels = contentArea.getElementsByClassName('rk-algo-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function runSim() {
    // 1. Pobranie wartości z suwaków
    var area = parseFloat(document.getElementById('slArea').value);
    var qUnit = parseFloat(document.getElementById('slQ').value);
    var spacing = parseFloat(document.getElementById('slSpacing').value);
    
    // 2. Aktualizacja labeli nad suwakami
    document.getElementById('valArea').textContent = area + ' m²';
    document.getElementById('valQ').textContent = qUnit + ' W/m²';
    document.getElementById('valSpacing').textContent = spacing + ' cm';
    
    // 3. Obliczenia fizyki
    var qObl = area * qUnit;
    var qProj = Math.round(qObl * 0.95);
    var strumien = Math.round(qProj / area);
    var temp = (20 + (strumien / 10.8)).toFixed(1);
    var spacingM = spacing / 100;
    var rury = Math.round(area / spacingM);
    
    // 4. Aktualizacja Głównego Dashboardu
    document.getElementById('dashTotalQ').textContent = qObl + ' W';
    document.getElementById('dashStrumien').textContent = strumien + ' W/m²';
    
    var dashTempEl = document.getElementById('dashTemp');
    var dashAlert = document.getElementById('dashAlert');
    dashTempEl.textContent = temp + ' °C';
    
    if (parseFloat(temp) > 29) {
        dashTempEl.style.color = '#ef4444'; // Red alert
        dashAlert.style.display = 'block';
    } else {
        dashTempEl.style.color = '#38bdf8'; // Accent blue
        dashAlert.style.display = 'none';
    }
    
    document.getElementById('dashRury').textContent = rury + ' mb';

    // 5. Aktualizacja wzorów w zakładkach (Inżynieryjny dowód)
    document.getElementById('dynArea1').textContent = area;
    document.getElementById('dynQ1').textContent = qUnit;
    document.getElementById('dynTotalQ').textContent = qObl;
    
    document.getElementById('dynTotalQ2').textContent = qObl;
    document.getElementById('dynQproj').textContent = qProj;
    
    document.getElementById('dynQproj2').textContent = qProj;
    document.getElementById('dynArea2').textContent = area;
    document.getElementById('dynStrumien').textContent = strumien;
    
    document.getElementById('dynStrumien2').textContent = strumien;
    document.getElementById('dynTemp').textContent = temp;
    
    var spanTempEl = document.getElementById('dynTemp');
    if (parseFloat(temp) > 29) {
        spanTempEl.className = 'rk-dyn-warn';
    } else {
        spanTempEl.className = 'rk-dyn-text';
    }
    
    document.getElementById('dynArea3').textContent = area;
    document.getElementById('dynSpacingM').textContent = spacingM.toFixed(2);
    document.getElementById('dynRura').textContent = rury;
}

// Inicjalizacja przy ładowaniu
runSim();
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-red: #ef4444;
    --rk-diag-red-bg: #fef2f2;
    --rk-diag-green: #10b981;
    --rk-diag-green-bg: #f0fdf4;
    --rk-diag-bg: #ffffff;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
}

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

.rk-diag-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-diag-border);
    text-align: center;
}

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

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

/* Zakładki (Jedna kolumna, układ poziomy) */
.rk-diag-tabs {
    display: flex;
    flex-direction: row;
    padding: 20px 50px;
    gap: 15px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-diag-border);
    justify-content: space-between;
}

.rk-tab-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 10px;
    background: var(--rk-diag-bg);
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    text-align: center;
}

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

.rk-tab-btn.active {
    border-color: var(--rk-diag-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-tab-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2e8f0;
    color: #64748b;
    font-weight: 900;
    font-size: 14px;
    transition: all 0.3s;
}

.rk-tab-btn.active .rk-tab-num {
    background: var(--rk-diag-red);
    color: #ffffff;
}

.rk-tab-title {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
    transition: color 0.3s;
}

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

/* Panele z treścią (Układ 1-kolumnowy) */
.rk-diag-content-area {
    padding: 40px 50px;
}

.rk-diag-panel {
    display: none;
    animation: slideDown 0.4s ease-out;
}

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

.rk-diag-panel h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Karty jedna pod drugą */
.rk-info-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-info-card {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid;
    position: relative;
}

.rk-card-bad {
    background: var(--rk-diag-red-bg);
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-card-good {
    background: var(--rk-diag-green-bg);
    border-color: rgba(16, 185, 129, 0.2);
}

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

.rk-card-header svg {
    width: 28px;
    height: 28px;
}

.rk-card-bad .rk-card-header svg { color: var(--rk-diag-red); }
.rk-card-good .rk-card-header svg { color: var(--rk-diag-green); }

.rk-card-header h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-card-bad h4 { color: var(--rk-diag-red); }
.rk-card-good h4 { color: var(--rk-diag-green); }

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-content-area { padding: 30px 20px; }
    .rk-diag-tabs { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tab-btn { flex-direction: row; justify-content: flex-start; padding: 15px; }
    .rk-tab-title { font-size: 15px; }
    .rk-diag-panel h3 { font-size: 20px; }
    .rk-info-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?",
    "description": "Interaktywne zestawienie najgroźniejszych błędów przy montażu ogrzewania w technologii szkieletowej: taktowanie pompy ciepła, brak strefowania i uszkodzenia paroizolacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-diagnoza",
    "name": "Katalog Błędów Instalacyjnych w Konstrukcji Szkieletowej",
    "description": "Baza danych inżynieryjnych zestawiająca błędy montażowe z normatywnymi rozwiązaniami technicznymi dedykowanymi dla budownictwa drewnianego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przewymiarowanie instalacji",
      "taktowanie pompy ciepła",
      "uszkodzenie paroizolacji",
      "brak strefowania",
      "najczęstsze błędy instalatora podłogówki"
    ],
    "measurementTechnique": "Analiza defektów montażowych w oparciu o fizykę cieplną budynków drewnianych i wytyczne układów pompowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Brak strefowania prowadzący do przegrzewania wnętrz od południa. Rozwiązanie: Termostaty z algorytmem TPI.",
        "Problem: Przewymiarowanie i zbyt gęsty rozstaw rur powodujące taktowanie sprężarki. Rozwiązanie: Zwiększenie rozstawu do 20 cm przy niskim OZC.",
        "Problem: Przebijanie folii paroizolacyjnej spinkami Tacker. Rozwiązanie: Klejenie systemowe i rezygnacja z mechanicznych uszkodzeń folii PE."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-diagnoza",
    "name": "Jednokolumnowy Interaktywny Diagnozer Błędów",
    "description": "Aplikacja pozwalająca inwestorowi na identyfikację patologii montażowych na budowie oraz poznanie poprawnej, inżynierskiej alternatywy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-error-viewer">
    <div class="rk-diag-header">
        <h2>Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?</h2>
        <p>Lata praktyki weryfikują radosną twórczość instalatorów. W domach o lekkiej konstrukcji szkieletowej konsekwencje powielania nawyków z murowanych budów są natychmiastowe i bardzo kosztowne. Zdiagnozuj i wyeliminuj problem przed wylaniem posadzki.</p>
    </div>

    <!-- Zakładki górne (Jedna kolumna na treści poniżej) -->
    <div class="rk-diag-tabs">
        <button class="rk-tab-btn active" onclick="showDiagPanel('diag1', this)">
            <span class="rk-tab-num">1</span>
            <span class="rk-tab-title">Brak strefowania</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag2', this)">
            <span class="rk-tab-num">2</span>
            <span class="rk-tab-title">Taktowanie pompy</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag3', this)">
            <span class="rk-tab-num">3</span>
            <span class="rk-tab-title">Dziurawienie folii</span>
        </button>
    </div>

    <!-- Obszar treści (Struktura stosu: Problem -> Rozwiązanie) -->
    <div class="rk-diag-content-area">
        
        <!-- Panel 1 -->
        <div class="rk-diag-panel" id="diag1" style="display: block;">
            <h3>Brak strefowania i sterowania pomieszczeniami</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Domy szkieletowe z dużymi przeszkleniami od południa nagrzewają się od słońca w ciągu 30–45 minut o kilka stopni. Jeśli pętle grzewcze salonu i sypialni północnej są połączone lub pracują bez termostatów pokojowych, w salonie temperatura szybko wzrośnie do dusznych 25°C, podczas gdy zacieniona sypialnia pozostanie niekomfortowo niedogrzana.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Bezwzględne stosowanie zaworów na każdej pętli rozdzielacza. Kluczem jest <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> z wykorzystaniem <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">inteligentnych termostatów TPI</a>. Automatyka analizuje bezwładność systemu i ucina zasilanie na ułamek sekundy przed tym, zanim nastąpi przegrzanie wywołane zyskami solarnymi.</p>
                </div>
            </div>
        </div>

        <!-- Panel 2 -->
        <div class="rk-diag-panel" id="diag2">
            <h3>Przewymiarowanie instalacji (Złoty standard: "co 10 cm")</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Zagęszczenie rur (rozstaw co 10 cm w całym domu) przy niskim zapotrzebowaniu na ciepło skutkuje brakiem możliwości zrzutu mocy. Sprężarka włącza się i wyłącza co 5 minut (taktowanie). Zjawisko to potrafi skrócić żywotność drogiej pompy ciepła o 50–70% oraz radykalnie obniżyć współczynnik COP.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Dobór oparty ściśle na obliczeniach strat ciepła (OZC). W strefach o zapotrzebowaniu poniżej 30 W/m² instalator powinien zastosować <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym równy 20 cm</a>, co gwarantuje długą, płynną i ekonomiczną pracę inwerterowej pompy ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Panel 3 -->
        <div class="rk-diag-panel" id="diag3">
            <h3>Uszkodzenie paroizolacji podczas montażu</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg 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>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Montaż rur na stropie drewnianym przy użyciu spinek wbijanych przez taker bezpośrednio w poszycie. Spinki dziurawią folią paroizolacyjną. Przez setki otworów wilgoć z pomieszczeń wnika w głąb stropu, co wywołuje zjawisko kondensacji – w efekcie izolacja z wełny przestaje działać, a drewno zaczyna gnić.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Na stropach lekkich należy stosować maty z wypustkami bez mocowania mechanicznego do podłoża lub kleić płyty EPS specjalistycznymi pianoklejami o niskiej prężności. Przeczytaj koniecznie, jakie są pozostałe <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>, aby ochronić dom.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function showDiagPanel(panelId, btnElement) {
    // 1. Zabezpieczony reset zakładek (Tabs)
    var tabContainer = document.querySelector('.rk-diag-tabs');
    var allTabs = tabContainer.getElementsByClassName('rk-tab-btn');
    var i = 0;
    while (i < allTabs.length) {
        allTabs[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętej zakładki
    btnElement.classList.add('active');
    
    // 3. Zabezpieczony reset wszystkich paneli
    var contentArea = document.querySelector('.rk-diag-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-diag-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Płynne wyświetlenie docelowego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-step-dark: #0f172a;
    --rk-step-blue: #0284c7;
    --rk-step-blue-light: #e0f2fe;
    --rk-step-green: #10b981;
    --rk-step-bg: #ffffff;
    --rk-step-border: #e2e8f0;
    --rk-step-text: #334155;
    --rk-step-inactive: #f1f5f9;
}

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

.rk-pipeline-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-step-border);
}

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

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

/* Interaktywny Stepper Nawigacyjny */
.rk-stepper-nav {
    display: flex;
    flex-direction: row;
    background: var(--rk-step-inactive);
    padding: 10px;
    gap: 10px;
    border-bottom: 1px solid var(--rk-step-border);
}

.rk-step-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
}

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

.rk-step-btn.active {
    background: var(--rk-step-bg);
    border-color: var(--rk-step-blue);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-step-num {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 16px;
    border-radius: 50%;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-step-blue);
    box-shadow: 0 0 15px rgba(2, 132, 199, 0.4);
}

.rk-step-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
}

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

/* Panele Treści (1-kolumnowe) */
.rk-step-content-area {
    padding: 40px 50px;
    background: var(--rk-step-bg);
}

.rk-step-panel {
    display: none;
    animation: fadeInPanel 0.4s ease-out forwards;
}

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

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

.rk-panel-top {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-panel-icon {
    width: 60px;
    height: 60px;
    background: var(--rk-step-blue-light);
    color: var(--rk-step-blue);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-panel-top h3 {
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-step-dark);
    margin: 0;
}

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

.rk-panel-body ul {
    margin: 0;
    padding: 0 0 0 20px;
    color: var(--rk-step-text);
}

.rk-panel-body li {
    margin-bottom: 10px;
    line-height: 1.6;
}

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

/* Mocne CTA */
.rk-cta-wrapper {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-step-dark) 0%, #1e293b 100%);
    text-align: center;
    border-top: 1px solid #334155;
}

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

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

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

.rk-cta-btn:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-pipeline-header, .rk-step-content-area, .rk-cta-wrapper { padding: 30px 20px; }
    .rk-stepper-nav { flex-direction: column; }
    .rk-panel-top { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-cta-btn { width: 100%; font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-projekt-szkielet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?",
    "description": "Poznaj 3-stopniowy schemat inżynierski: od obliczeń OZC, przez hydraulikę PN-EN 1264, aż po integrację z pompą ciepła w domach szkieletowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-procedura",
    "name": "Procedura Projektowa Instalacji Płaszczyznowych w Szkielecie",
    "description": "Dokumentacja inżynierska obejmująca trzy filary projektu: OZC, hydraulikę i maszynownię (źródło ciepła).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "obliczenia OZC dla domu szkieletowego",
      "rozstaw rur w systemie suchym",
      "przepływy w rozdzielaczu l/min",
      "bufor ciepła w lekkiej podłogówce"
    ],
    "measurementTechnique": "Algorytmy normatywne PN-EN 12831 oraz PN-EN 1264 dla konstrukcji drewnianych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1: Obliczenie OZC dla każdego pomieszczenia z uwzględnieniem szczelności wiatrowej.",
        "Etap 2: Dobór hydrauliczny - długość pętli, opory i kryzowanie na rotametrach.",
        "Etap 3: Zabezpieczenie minimalnego przepływu dla defrostu pompy ciepła (bufor szeregowy)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-pipeline",
    "name": "Interaktywny Schemat Projektowy HVAC",
    "description": "Narzędzie edukacyjne ilustrujące chronologię prac projektowych dla instalacji grzewczych w lekkich konstrukcjach szkieletowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipeline-container" id="rk-project-pipeline">
    <div class="rk-pipeline-header">
        <h2>Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?</h2>
        <p>Każdy profesjonalny projekt w technologii szkieletowej musi bezwzględnie bazować na trójstopniowej strukturze, całkowicie odrębnej od schematów powielanych w domach murowanych. Odkryj kolejne etapy inżynierskiego procesu.</p>
    </div>

    <!-- Stepper Navigation -->
    <div class="rk-stepper-nav">
        <button class="rk-step-btn active" onclick="showStep('step1', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-title">Obliczenia OZC</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step2', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-title">Hydraulika systemu</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step3', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-title">Maszynownia</span>
        </button>
    </div>

    <!-- Content Area (Single Column) -->
    <div class="rk-step-content-area">
        
        <!-- Etap 1: OZC -->
        <div class="rk-step-panel active" id="step1">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                <h3>Obliczenie Zapotrzebowania na Ciepło (OZC)</h3>
            </div>
            <div class="rk-panel-body">
                <p>To absolutny fundament. Projektant musi wyznaczyć straty ciepła dla każdego pokoju osobno, co wprost odnosi się do <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normy PN-EN 12831</a>. Ze względu na wysoką szczelność domów szkieletowych (często wyposażonych w rekuperację), straty wentylacyjne są tu minimalne.</p>
                <ul>
                    <li>Dokładne modelowanie strat przez przegrody i wentylację mechaniczną.</li>
                    <li>Określenie szczytowej mocy dla każdego pomieszczenia wyrażonej w Watach.</li>
                    <li>Projekt wykonany bez profesjonalnego OZC to gwarancja źle działającej, przewymiarowanej instalacji.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 2: Hydraulika -->
        <div class="rk-step-panel" id="step2">
            <div class="rk-panel-top">
                <div class="rk-panel-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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <h3>Projekt Hydrauliczny (PN-EN 1264)</h3>
            </div>
            <div class="rk-panel-body">
                <p>Na podstawie OZC następuje indywidualny dobór rozstawu rur. Projekt określa dokładną długość każdej pętli oraz nastawy wstępne na <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">rozdzielaczach</a> (przepływy w l/min), co stanowi kluczowy element wymogów <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy EN 1264</a>.</p>
                <ul>
                    <li>Wybór technologii (np. system suchy o niskiej masie strukturalnej).</li>
                    <li>Odrzucenie zasady "co 10 cm wszędzie" na rzecz analitycznego doboru rozstawów.</li>
                    <li>Równoważenie ciśnień zapobiegające sytuacji, w której najdłuższa pętla jest niedogrzana z powodu oporów hydraulicznych.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 3: Źródło -->
        <div class="rk-step-panel" id="step3">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Integracja ze Źródłem Ciepła</h3>
            </div>
            <div class="rk-panel-body">
                <p>Ponieważ lekka podłogówka posiada niewielką pojemność wodną, kluczowym wyzwaniem jest zapewnienie minimalnego przepływu wymaganego przez producenta pompy ciepła do przeprowadzenia procedury odszraniania parownika (defrost).</p>
                <ul>
                    <li>Brak konieczności instalowania stratnych układów z zaworami mieszającymi.</li>
                    <li>W systemach suchych stosuje się często dedykowany <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła wpięty szeregowo</a> (pojemność zaledwie 40–60 litrów).</li>
                    <li>Pozwala to na zachowanie bezpośredniego zasilania rozdzielaczy i maksymalnego współczynnika SCOP pompy ciepła.</li>
                </ul>
            </div>
        </div>

    </div>

    <!-- CTA do Projektów -->
    <div class="rk-cta-wrapper">
        <h3>Nie zgaduj z pompą ciepła i rurkami</h3>
        <p>Szkielet drewniany wymaga inżynierskiej precyzji, nie wykonawstwa "na oko". Zabezpiecz swój komfort i portfel już na etapie planowania, oddając obliczenia w ręce specjalistów.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
            ZAMÓW INDYWIDUALNY PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
function showStep(stepId, btnElement) {
    // 1. Zabezpieczone resetowanie przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętego przycisku
    btnElement.classList.add('active');
    
    // 3. Ukrywanie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-step-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-step-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].classList.remove('active');
        j++;
    }
    
    // 4. Wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(stepId);
    if (targetPanel !== null) {
        targetPanel.classList.add('active');
    }
}
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gold: #eab308;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-red: #ef4444;
    --rk-case-green: #10b981;
}

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

/* Nagłówek i Profil Inwestora */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-persona-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-persona-avatar {
    width: 60px;
    height: 60px;
    background: var(--rk-case-gold);
    color: var(--rk-case-dark);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 24px;
    flex-shrink: 0;
}

.rk-persona-info h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.rk-persona-info p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Interaktywna Nawigacja (Oś czasu) */
.rk-case-timeline {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
    padding: 20px 50px;
    gap: 15px;
}

.rk-timeline-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

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

.rk-timeline-btn.active {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-blue-light);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

.rk-step-indicator {
    width: 30px;
    height: 30px;
    background: #cbd5e1;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-timeline-btn.active .rk-step-indicator {
    background: var(--rk-case-blue);
}

.rk-timeline-text {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
}

.rk-timeline-btn.active .rk-timeline-text {
    color: var(--rk-case-dark);
}

/* Obszar Treści */
.rk-case-content {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-panel-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-panel-header svg {
    width: 32px;
    height: 32px;
}

.rk-panel-header h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0;
}

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

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

/* Kafelki z danymi (Zestawienia) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

.rk-data-card {
    padding: 20px;
    border-radius: 16px;
    border: 1px solid;
    background: #f8fafc;
}

.rk-data-card.bad {
    background: #fef2f2;
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-data-card.good {
    background: #f0fdf4;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
}

.rk-data-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.bad .rk-data-val { color: var(--rk-case-red); }
.good .rk-data-val { color: var(--rk-case-green); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-timeline, .rk-case-content { padding: 30px 20px; }
    .rk-case-timeline { flex-direction: column; gap: 10px; }
    .rk-timeline-btn { width: 100%; padding: 15px; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-persona-card { flex-direction: column; text-align: center; }
    .rk-persona-info p { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku",
    "description": "Analiza rzeczywistego przypadku inwestora z Tarnowskich Gór. Zobacz, jak zmiana amatorskiego planu na inżynierski projekt OZC uratowała nośność stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-casestudy",
    "name": "Zestawienie Zwrotu z Inwestycji (ROI) dla Projektu Ogrzewania",
    "description": "Dane analityczne pochodzące z rzeczywistego wdrożenia systemu suchego w domu szkieletowym 130m2 w Tarnowskich Górach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompy ciepła",
      "kompleksowa wycena ogrzewania podłogowego wodnego na co przygotować budżet",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "projekt ogrzewania podłogowego z głowy vs projekt z obliczeniami",
      "taktowanie pompy ciepła w domu szkieletowym"
    ],
    "measurementTechnique": "Analiza porównawcza parametrów statycznych (obciążenie kN/m2) oraz symulacja kosztów eksploatacyjnych po wdrożeniu audytu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Inwestora: Wylewka 7 cm (obciążenie ok. 165 kg/m2), rury co 10 cm, brak OZC.",
        "Plan Inżynierski: System suchy (obciążenie 30 kg/m2), rozstaw rur 15-20 cm z OZC.",
        "Wynik wdrożenia: Uratowanie nośności stropu, płynna praca pompy ciepła (brak taktowania), optymalny zwrot z inwestycji po 6 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-casestudy",
    "name": "Interaktywny Dziennik Inwestycji",
    "description": "Aplikacja edukacyjna pozwalająca prześledzić etapy audytu i optymalizacji projektu instalacji grzewczej dla konkretnego przypadku budowlanego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-real-case">
    
    <!-- Nagłówek i Persona -->
    <div class="rk-case-header">
        <h2 class="rk-case-title">Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku</h2>
        
        <div class="rk-persona-card">
            <div class="rk-persona-avatar">T</div>
            <div class="rk-persona-info">
                <h3>Tomasz, 42 lata</h3>
                <p>
                    <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="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                    Tarnowskie Góry (woj. śląskie) | Dom szkieletowy 130 m²
                </p>
            </div>
        </div>
    </div>

    <!-- Nawigacja (Oś czasu) -->
    <div class="rk-case-timeline">
        <button class="rk-timeline-btn active" onclick="switchCaseStep('caseStep1', this)">
            <div class="rk-step-indicator">1</div>
            <span class="rk-timeline-text">Pierwotny pomysł Tomka</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep2', this)">
            <div class="rk-step-indicator">2</div>
            <span class="rk-timeline-text">Nasza Diagnoza i Projekt</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep3', this)">
            <div class="rk-step-indicator">3</div>
            <span class="rk-timeline-text">Faktyczny Efekt Inwestycji</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-case-content">
        
        <!-- Etap 1 -->
        <div class="rk-case-panel" id="caseStep1" style="display: block;">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-red);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                <h3>Problem: Wykonawstwo "na oko"</h3>
            </div>
            <p>Tomasz zgłosił się do nas w momencie, gdy lokalny hydraulik przygotowywał się do układania instalacji. Plan wykonawcy zakładał ułożenie rur co 10 cm w całym domu szkieletowym, aby "było ciepło", oraz wylanie na drewniany strop 7 cm betonu z miksokreta. Ponadto, wybrano urządzenie bez weryfikacji. Tomek szukał w sieci informacji, sprawdzając zawiłą <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksową wycenę ogrzewania podłogowego wodnego i na co przygotować budżet</a>, i intuicyjnie czuł, że ten plan zrujnuje mu portfel.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Planowane obciążenie stropu</div>
                    <div class="rk-data-val">165 kg / m²</div>
                </div>
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Ryzyko dla pompy ciepła</div>
                    <div class="rk-data-val">Taktowanie (Krótkie cykle)</div>
                </div>
            </div>
        </div>

        <!-- Etap 2 -->
        <div class="rk-case-panel" id="caseStep2">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-blue);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                <h3>Diagnoza: Ratunek statyki i hydrauliki</h3>
            </div>
            <p>Wstrzymaliśmy prace. Przedstawiliśmy Tomkowi zestawienie: <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt ogrzewania podłogowego z głowy vs projekt z obliczeniami</a>. Przeprowadziliśmy pełne OZC dla jego domu. Okazało się, że zapotrzebowanie jest tak niskie, że rozstaw co 10 cm "udusiłby" układ.</p>
            <p><strong>Decyzja inżynieryjna:</strong> Zrezygnowaliśmy z ciężkiego betonu na rzecz ultralekkiego systemu suchego na cienkich płytach EPS. Zmieniliśmy ułożenie z 10 cm na precyzyjnie wyliczone 15 cm i 20 cm, stawiając na prawidłowy <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>, który od razu przewidział zastosowanie 50-litrowego bufora dla wymuszenia defrostu.</p>
        </div>

        <!-- Etap 3 -->
        <div class="rk-case-panel" id="caseStep3">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-green);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                <h3>Faktyczny Efekt Inwestycji</h3>
            </div>
            <p>Instalacja działa bez zarzutu. Rezygnacja z betonu na rzecz systemu suchego obniżyła obciążenie drewnianych belek na piętrze pięciokrotnie. Dom szkieletowy oddaje ciepło natychmiast, a co najważniejsze – inteligentne strefowanie odcina podłogówkę, gdy duże okna wpuszczają słońce.</p>
            <p>Tomek przekonał się, że <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji w ogrzewanie podłogowe (realne wyliczenia na 2026 rok)</a> jest możliwy tylko wtedy, gdy początkowy droższy zakup odpowiednich materiałów i projektu OZC przekłada się na lata bezawaryjnej pracy sprzętu i niskie rachunki.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card good">
                    <div class="rk-data-label">Ostateczne obciążenie stropu</div>
                    <div class="rk-data-val">30 kg / m²</div>
                </div>
                <div class="rk-data-card good">
                    <div class="rk-data-label">Praca systemu grzewczego</div>
                    <div class="rk-data-val">Stabilna, niski pobór prądu</div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function switchCaseStep(panelId, btnElement) {
    // 1. Zabezpieczony reset przycisków na osi czasu
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-timeline-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja wybranego etapu
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-case-content');
    var allPanels = contentArea.getElementsByClassName('rk-case-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie właściwego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-light: #f0f9ff;
    --rk-auth-gold: #eab308;
    --rk-auth-bg: #ffffff;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-quote: #1e293b;
}

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

/* Lewa Kolumna - Zdjęcie i Sociale */
.rk-auth-sidebar {
    width: 320px;
    background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-right: 1px solid var(--rk-auth-border);
    text-align: center;
}

.rk-auth-avatar {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    object-fit: cover;
    border: 6px solid #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

.rk-auth-role {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-auth-blue);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

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

.rk-auth-socials {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.rk-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: #ffffff;
    color: var(--rk-auth-dark);
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid var(--rk-auth-border);
    /* Brak animacji zgodnie z wytycznymi */
}

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

/* Prawa Kolumna - Treść Interaktywna */
.rk-auth-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-auth-nav {
    display: flex;
    background: #ffffff;
    border-bottom: 2px solid var(--rk-auth-border);
}

.rk-auth-tab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 20px 15px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 4px solid transparent;
    /* Brak animacji */
}

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

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

.rk-auth-content-area {
    padding: 35px 40px;
    background: #ffffff;
    flex: 1;
}

.rk-auth-panel {
    display: none;
    /* Brak animacji fadeIn */
}

/* Typografia Paneli */
.rk-auth-panel h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

/* Cytat */
.rk-quote-block {
    position: relative;
    padding: 25px 30px;
    background: var(--rk-auth-quote);
    color: #ffffff;
    border-radius: 16px;
    border-left: 6px solid var(--rk-auth-gold);
}

.rk-quote-mark {
    font-size: 60px;
    font-family: serif;
    color: rgba(255,255,255,0.1);
    line-height: 1;
    position: absolute;
    top: 10px;
    left: 20px;
}

.rk-quote-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.7;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Lista Zasad */
.rk-rules-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-rules-list li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-auth-border);
}

.rk-rules-list li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-rule-icon {
    flex-shrink: 0;
    color: var(--rk-auth-blue);
    background: var(--rk-auth-blue-light);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

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

.rk-rule-text strong {
    color: var(--rk-auth-dark);
    display: block;
    margin-bottom: 4px;
}

/* Opis Eksperta */
.rk-bio-text p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-auth-text);
    margin: 0 0 15px 0;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-auth-container { flex-direction: column; }
    .rk-auth-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-nav { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; text-align: left; padding: 15px 25px; border-top: 1px solid var(--rk-auth-border); }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-content-area { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Zdaniem Roberta Kucharskiego - Podsumowanie inżynieryjne instalacji w domu szkieletowym",
    "description": "Stanowisko eksperckie, zestawienie żelaznych zasad projektowych oraz manifest budowlany dotyczący lekkich konstrukcji podłogowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/" 
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-zasady",
    "name": "Zbiór Zasad Inżynieryjnych Roberta Kucharskiego",
    "description": "Baza wiedzy zdefiniowana przez eksperta branżowego, obejmująca procedury postępowania przy inwestycjach w ogrzewanie płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z obliczeniami",
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "budowa bez ściemy",
      "największy bloger budowlany",
      "ekspert instalacji grzewczych"
    ],
    "measurementTechnique": "Weryfikacja dobrych praktyk instalacyjnych na podstawie wytycznych autorskich Projekt-Ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Bezwzględny wymóg dokumentacji OZC przed ułożeniem pierwszego metra rury.",
        "Zasada 2: Dopasowanie bezwładności posadzki do technologii wznoszenia budynku.",
        "Zasada 3: Weryfikacja oporów hydraulicznych i podział pętli powyżej 100 mb."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-ekspert",
    "name": "Interaktywny Profil Eksperta HVAC",
    "description": "Cyfrowa wizytówka pozwalająca na przełączanie się pomiędzy podsumowaniem merytorycznym artykułu a zbiorem żelaznych zasad projektowych autora.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-expert-profile">
    
    <!-- Kolumna Autora -->
    <div class="rk-auth-sidebar">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-auth-avatar">
        <div class="rk-auth-role">CEO & Główny Projektant</div>
        <div class="rk-auth-name-tag">Robert Kucharski</div>
        
        <div class="rk-auth-socials">
            <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
            </a>
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
            </a>
        </div>
    </div>

    <!-- Kolumna Treści Interaktywnej -->
    <div class="rk-auth-main">
        <div class="rk-auth-nav">
            <button class="rk-auth-tab active" onclick="switchAuthTab('tabCytat', this)">Podsumowanie</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabZasady', this)">Żelazne Zasady</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabBio', this)">O Autorze</button>
        </div>

        <div class="rk-auth-content-area">
            
            <!-- Tab 1: Cytat (H2 zgodne z wytycznymi) -->
            <div class="rk-auth-panel" id="tabCytat" style="display: block;">
                <h2>Zdaniem Roberta Kucharskiego...</h2>
                <div class="rk-quote-block">
                    <div class="rk-quote-mark">"</div>
                    <p class="rk-quote-text">Budując dom o lekkiej konstrukcji szkieletowej, musisz całkowicie wymazać z pamięci nawyki stosowane w ciężkim budownictwie murowanym. Twoim największym wrogiem nie są wcale straty ciepła, lecz bezwładność betonu i brak precyzyjnego strefowania. Wybierając technologię suchą, nie inwestujesz wyłącznie w rury, lecz w bezpieczeństwo statyczne drewnianych stropów oraz sprawność Twojej pompy ciepła na lata.</p>
                </div>
            </div>

            <!-- Tab 2: Zasady -->
            <div class="rk-auth-panel" id="tabZasady">
                <h3>Inżynieryjny dekalog inwestora</h3>
                <ul class="rk-rules-list">
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Fundament Obliczeniowy</strong>
                            <p>Zanim pozwolisz ekipie rozwinąć pierwszy zwój rury, upewnij się <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>. Odpowiedź brzmi: bez OZC i doboru hydraulicznego niszczysz budżet.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Bezpieczeństwo Drewna (C24)</strong>
                            <p>Wilgoć technologiczna z mokrych jastrychów rzędu tysięcy litrów jest zabójcza dla konstrukcji szkieletu. Zawsze kieruj się w stronę zabudowy suchej.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Szybka Reakcja</strong>
                            <p>Dom z drewna wychładza się i nagrzewa błyskawicznie. Wymusza to stosowanie cienkich posadzek o szybkiej reakcji na inteligentne termostaty pokojowe.</p>
                        </div>
                    </li>
                </ul>
            </div>

            <!-- Tab 3: Bio -->
            <div class="rk-auth-panel" id="tabBio">
                <h3>Budowa bez ściemy</h3>
                <div class="rk-bio-text">
                    <p>Jestem największym blogerem branży budowlanej i wykończeniowej w Polsce oraz głównym projektantem systemów płaszczyznowych. Na co dzień zarządzam portalem Projekt-Ogrzewania.pl, gdzie dzielę się bezkompromisową, techniczną wiedzą z inwestorami.</p>
                    <p>Założyłem inicjatywę <strong>"Robert Kucharski – Budowa bez ściemy"</strong> oraz grupę <strong>"NIEZATAPIALNI"</strong>, aby chronić budujących przed patologiami wykonawczymi powielanymi z pokolenia na pokolenie. <a href="https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/">Historia ogrzewania podłogowego</a> dowodzi, że ewolucja technologii wymaga otwartego umysłu, a nie ślepego podążania za hasłem "zawsze tak robiliśmy".</p>
                </div>
            </div>

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

<script>
function switchAuthTab(tabId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-auth-tab');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja przycisku (bez animacji)
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie paneli (bez animacji)
    var contentArea = document.querySelector('.rk-auth-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-auth-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



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

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    margin-bottom: 30px;
    padding-left: 15px;
    border-left: 5px solid var(--rk-faq-blue);
}

.rk-faq-container h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0 0 10px 0;
    line-height: 1.2;
}

.rk-faq-subtitle {
    font-size: 16px;
    color: #64748b;
    margin: 0;
}

.rk-faq-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    transition: all 0.3s ease;
}

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

.rk-faq-trigger {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 24px 30px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background-color 0.2s;
}

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

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

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

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

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

.rk-faq-item.is-open .rk-faq-content {
    opacity: 1;
}

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

.rk-faq-body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    padding-top: 20px;
    border-top: 1px dashed #cbd5e1;
}

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

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

@media (max-width: 768px) {
    .rk-faq-trigger { padding: 20px; }
    .rk-faq-trigger h3 { font-size: 16px; }
    .rk-faq-body { padding: 0 20px 20px 20px; }
    .rk-faq-body p { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o podłogówkę w domu szkieletowym",
    "description": "Błyskawiczne inżynierskie odpowiedzi na pytania dotyczące głośności pracy, doboru podłogi, bezwładności i zużycia prądu przez pompę ciepła w systemach suchych.",
    "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-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub panele laminowane/winylowe z oznaczeniem producenta o przydatności do wodnego ogrzewania podłogowego (opór cieplny R poniżej 0,15 m2K/W)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana podłogówka o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach i dostosowanie jej do profilu dobowego użytkowników bez konieczności dublowania systemów grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się sucha podłogówka w szkielecie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Od momentu uruchomienia pompy ciepła i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach, podczas gdy klasyczny beton potrzebuje na to od 4 do 6 godzin."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, zużycie energii będzie na tym samym lub niższym poziomie, ponieważ niska bezwładność systemu suchego umożliwia precyzyjne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z przegrzewaniem mas betonowych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-faq",
    "name": "Baza Wiedzy Interaktywnej - FAQ Systemy Suche",
    "description": "Interaktywny panel zapytań umożliwiający szybką nawigację po najczęstszych problemach instalacyjnych w budownictwie drewnianym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p class="rk-faq-subtitle">Inżynierskie fakty i mity o ogrzewaniu w konstrukcjach lekkich.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur. Zobacz również, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">jakie zasady obowiązują przy montażu instalacji na nośnym stropie drewnianym</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na specjalnych płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub dedykowane materiały laminowane. Szukaj oznaczenia producenta o przydatności do wodnego ogrzewania (opór cieplny R poniżej 0,15 m²K/W). Przeczytaj więcej o dylemacie: <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana instalacja płaszczyznowa o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach. Umożliwia precyzyjne dostosowanie krzywej grzewczej do profilu dobowego użytkowników bez konieczności dublowania kosztownych systemów. Sprawdź szczegółową <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">analizę podłogówki jako jedynego źródła ciepła</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Ile czasu nagrzewa się sucha podłogówka w szkielecie?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Od momentu uruchomienia pompy i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach. Dla porównania klasyczny zład betonowy potrzebuje na to od 4 do 6 godzin. Wynika to bezpośrednio z fizyki, co dokładnie wyjaśniam w materiale o tym <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, zużycie energii elektrycznej będzie na tym samym lub niższym poziomie. Niska bezwładność systemu suchego umożliwia bardzo precyzyjne, inteligentne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z niekontrolowanym przegrzewaniem (i późniejszym wychładzaniem) dużych mas betonowych. Dowiedz się więcej, czy <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompa ciepła efektywnie współpracuje z samą podłogówką</a>.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function toggleFaq(btn) {
    const parent = btn.parentElement;
    const content = parent.querySelector('.rk-faq-content');
    
    // Sprawdzamy, czy aktualny element jest otwarty
    const isOpen = parent.classList.contains('is-open');
    
    // Zamykamy wszystkie inne panele
    const allItems = document.querySelectorAll('.rk-faq-item');
    for (let i = 0; i < allItems.length; i++) {
        let item = allItems[i];
        item.classList.remove('is-open');
        let itemContent = item.querySelector('.rk-faq-content');
        if (itemContent !== null) {
            itemContent.style.maxHeight = null;
        }
    }
    
    // Jeśli kliknięty element nie był otwarty, to go otwieramy
    if (isOpen === false) {
        parent.classList.add('is-open');
        // Bezpieczne przypisanie max-height dynamicznie
        content.style.maxHeight = content.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-gold: #eab308;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --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-radius: 20px;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

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

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-dl-header h2 svg {
    color: var(--rk-dl-gold);
    flex-shrink: 0;
}

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

/* Główny obszar dwukolumnowy (Desktop) */
.rk-dl-body {
    display: flex;
    flex-direction: row;
    background: #ffffff;
}

/* Lewa Kolumna - Podgląd Infografiki */
.rk-dl-preview-col {
    width: 400px;
    padding: 35px;
    background: var(--rk-dl-gray);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumb-box {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

.rk-dl-thumbnail {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}

.rk-dl-enlarge-btn {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: none;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    justify-content: center;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

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

/* Prawa Kolumna - Treść i Przyciski */
.rk-dl-content-col {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Nawigacja w prawej kolumnie */
.rk-dl-tabs {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid var(--rk-dl-border);
    background: var(--rk-dl-gray);
}

.rk-dl-tab-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 18px 20px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    /* Celowy brak transition wg wytycznych */
}

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

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

/* Obszar treści zakładek */
.rk-dl-panels {
    padding: 30px 35px;
    flex: 1;
}

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

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

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

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

.rk-dl-license-box {
    background: #fef9c3;
    border-left: 4px solid var(--rk-dl-gold);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-bottom: 20px;
}

.rk-dl-license-box p {
    margin: 0;
    color: #854d0e;
    font-size: 14px;
    font-weight: 600;
}

/* Przyciski Pobierania */
.rk-dl-actions {
    padding: 25px 35px;
    background: var(--rk-dl-gray);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 15px;
}

.rk-dl-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

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

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

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

.rk-dl-btn-img:hover {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

/* Stopka Prawna */
.rk-dl-footer {
    padding: 15px 35px;
    background: var(--rk-dl-dark);
    color: #94a3b8;
    font-size: 13px;
    text-align: center;
    border-top: 1px solid #1e293b;
}

/* Interaktywna Nakładka na pełne zdjęcie */
.rk-img-modal {
    display: none;
    width: 100%;
    padding: 20px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-img-modal img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
}

.rk-close-modal {
    margin-top: 15px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 25px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    text-transform: uppercase;
}

.rk-close-modal:hover {
    background: #1e293b;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-body { flex-direction: column; }
    .rk-dl-preview-col { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 25px; }
    .rk-dl-tabs { flex-direction: column; }
    .rk-dl-tab-btn { text-align: left; border-bottom: none; border-left: 4px solid transparent; }
    .rk-dl-tab-btn.active { border-bottom-color: transparent; border-left-color: var(--rk-dl-blue); }
    .rk-dl-actions { flex-direction: column; padding: 25px; }
    .rk-dl-btn { width: 100%; }
    .rk-dl-panels { padding: 25px; }
    .rk-dl-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Kompendium w pigułce – Pobierz darmową infografikę instalacyjną",
    "description": "Profesjonalna infografika podsumowująca różnice i najczęstsze błędy w instalacjach ogrzewania podłogowego dla konstrukcji szkieletowych. Plik PDF gotowy na budowę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-infografika",
    "name": "Zestawienie Wizualne: Błędy Instalacyjne i Dobór Posadzek",
    "description": "Graficzna reprezentacja parametrów krytycznych (OZC, wilgoć, statyka) niezbędnych podczas audytów instalacji płaszczyznowych w technologii drewnianej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego czy warto robić to samemu",
      "jakie błędy najczęściej popełniają instalatorzy ogrzewania podłogowego",
      "wodne ogrzewanie podłogowe a meble jak połączyć komfort i aranżacje",
      "jak często trzeba serwisować ogrzewanie podłogowe",
      "schemat montażu instalacji szkielet"
    ],
    "measurementTechnique": "Agregacja inżynieryjnych danych liczbowych do postaci wizualnych diagramów porównawczych formatu A4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wektorowa ilustracja obciążeń konstrukcyjnych generowanych przez jastrych betonowy.",
        "Schemat przepływów hydraulicznych i taktowania pompy ciepła.",
        "Kompendium wiedzy do wykorzystania mobilnego (Smartfon/Tablet)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-infografika",
    "name": "Interaktywne Centrum Pobierania Infografik HVAC",
    "description": "Aplikacja webowa ułatwiająca przegląd, akceptację warunków licencji oraz błyskawiczne pobieranie wektorowych materiałów szkoleniowych w formacie PDF i WEBP.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub">
    
    <!-- Nagłówek -->
    <div class="rk-dl-header">
        <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>
            Kompendium w pigułce – Pobierz darmową infografikę
        </h2>
        <p>Nie masz czasu czytać całego artykułu na budowie? Przygotowałem dla Ciebie czytelne, wizualne podsumowanie najważniejszych zagrożeń i parametrów.</p>
    </div>

    <!-- Moduł rozszerzonego obrazu (domyślnie ukryty) -->
    <div class="rk-img-modal" id="rkFullImage">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Pełny podgląd infografiki ogrzewania podłogowego" loading="lazy">
        <br>
        <button class="rk-close-modal" onclick="closeImage()">Zamknij Podgląd</button>
    </div>

    <!-- Główny podział na kolumny -->
    <div class="rk-dl-body" id="rkDlBody">
        
        <!-- Kolumna Lewa: Miniatura -->
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-box">
                <img decoding="async" class="rk-dl-thumbnail" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Miniatura: Ogrzewanie w szkielecie" loading="lazy">
            </div>
            <button class="rk-dl-enlarge-btn" onclick="openImage()">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="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>
                Podgląd Pełnego Zdjęcia
            </button>
        </div>

        <!-- Kolumna Prawa: Informacje i Akcje -->
        <div class="rk-dl-content-col">
            
            <!-- Nawigacja zakładek -->
            <div class="rk-dl-tabs">
                <button class="rk-dl-tab-btn active" onclick="switchInfoTab('infoDesc', this)">O Materiale</button>
                <button class="rk-dl-tab-btn" onclick="switchInfoTab('infoLicense', this)">Zasady Prawne</button>
            </div>

            <!-- Treść zakładek -->
            <div class="rk-dl-panels">
                
                <div class="rk-dl-panel" id="infoDesc" style="display: block;">
                    <h3>Co zawiera plik?</h3>
                    <p>Infografika w formacie wysokiej rozdzielczości to narzędzie stworzone dla wykonawców i inwestorów. Pokazuje wprost, dlaczego należy się zastanowić, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">czy instalację ogrzewania podłogowego warto robić samemu</a>.</p>
                    <p>Omawiam na niej zjawisko punktu rosy, nośność stropu drewnianego oraz to, <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">jakie błędy najczęściej popełniają instalatorzy</a> bazując na mitach z budownictwa murowanego.</p>
                </div>

                <div class="rk-dl-panel" id="infoLicense">
                    <h3>Zasady Udostępniania</h3>
                    <div class="rk-dl-license-box">
                        <p>Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem oryginalnego logotypu portalu i bez żadnej modyfikacji pliku bazowego.</p>
                    </div>
                    <p>Zależy mi na edukacji rynku. Możesz wydrukować ten materiał na budowę, użyć go podczas konsultacji z klientem czy rozwiązywania dylematów, np. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">jak połączyć komfort wodnej podłogówki z aranżacją mebli</a>, a także w kwestii tego, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często trzeba serwisować cały układ</a>.</p>
                </div>

            </div>

            <!-- Przyciski akcji (Zawsze widoczne w prawej kolumnie) -->
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-pdf">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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 PDF
                </a>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-img">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                    Otwórz ZDJĘCIE
                </a>
            </div>

        </div>
    </div>

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

</div>

<script>
function switchInfoTab(tabId, btnElement) {
    // Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-dl-tab-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-dl-panels');
    var allPanels = contentArea.getElementsByClassName('rk-dl-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // Wyświetlenie panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function openImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'block';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'none';
    }
}

function closeImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'none';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'flex';
    }
}
</script>



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

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

/* Nagłówki */
.rk-tech-container h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-tech-container h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-sum-blue);
    margin: 0 0 20px 0;
}

.rk-tech-container h4 {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-sum-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 10px 0;
}

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

.rk-tech-desc {
    font-size: 16px;
    color: #334155;
    line-height: 1.6;
    margin-bottom: 0;
}

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

/* Interaktywny Switcher */
.rk-interactive-module {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-toggle {
    display: flex;
    background: #f1f5f9;
    border-radius: 99px;
    padding: 6px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 30px;
    border-radius: 99px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-sum-blue);
    border-radius: 99px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    z-index: 1;
}

/* Panel Wyników (Grid / Flex) */
.rk-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-stat-card {
    background: #f8fafc;
    border: 1px solid var(--rk-sum-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-stat-icon {
    width: 50px;
    height: 50px;
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    flex-shrink: 0;
    color: var(--rk-sum-blue);
}

.rk-stat-info h4 {
    margin-bottom: 5px;
    color: #94a3b8;
    font-size: 13px;
}

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0;
    line-height: 1.2;
}

.rk-stat-sub {
    font-size: 13px;
    color: #64748b;
    margin-top: 5px;
}

.val-green { color: var(--rk-sum-green); }
.val-red { color: var(--rk-sum-red); }

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

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

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

/* CTA */
.rk-tech-cta {
    padding: 40px 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    border-top: 1px solid #1e293b;
}

.rk-tech-cta h3 {
    color: #ffffff;
    margin-bottom: 15px;
}

.rk-tech-cta p {
    color: #94a3b8;
    margin-bottom: 25px;
    font-size: 16px;
}

.rk-btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-sum-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-tech:hover {
    background: #059669;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-tech-header, .rk-interactive-module, .rk-tags-cloud, .rk-tech-cta { padding: 25px 20px; }
    .rk-tech-container h2 { font-size: 24px; }
    .rk-toggle { flex-direction: column; background: transparent; box-shadow: none; gap: 10px; padding: 0; }
    .rk-toggle-btn { background: #f1f5f9; color: #64748b; border: 1px solid var(--rk-sum-border); }
    .rk-toggle-btn.active { background: var(--rk-sum-blue); color: #ffffff; border-color: var(--rk-sum-blue); }
    .rk-toggle-bg { display: none; /* Ukrywamy animowane tło na mobile na rzecz prostych przycisków typu akordeon/stack */ }
    .rk-stats-grid { grid-template-columns: 1fr; }
    .rk-stat-card { padding: 20px; }
    .rk-btn-tech { width: 100%; font-size: 16px; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-suchy-vs-mokry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym",
    "description": "Techniczne porównanie parametrów: obciążenie stropu, czas reakcji oraz wilgoć technologiczna. Sprawdź, dlaczego wylewka betonowa w domu szkieletowym to błąd inżynieryjny.",
    "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-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-porownanie",
    "name": "Parametry Fizyczne Systemów Ogrzewania Podłogowego (Suchy vs Beton)",
    "description": "Zestawienie inżynierskie obciążeń statycznych, czasów wiązania oraz pojemności cieplnej dla posadzek grzewczych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obciążenie stropu drewnianego ogrzewaniem podłogowym",
      "czas schnięcia wylewki betonowej",
      "system suchy ogrzewania podłogowego parametry",
      "wylewka na ogrzewanie podłogowe waga",
      "wilgoć technologiczna w konstrukcji szkieletowej"
    ],
    "measurementTechnique": "Analiza numeryczna zgodnie z normą PN-EN 1264 i PN-EN 1995-1-1.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Masa 30 kg/m2, Wilgoć 0 litrów, Czas schnięcia 0 dni.",
        "System Mokry (Jastrych): Masa 150 kg/m2, Wilgoć 20 litrów/m2, Czas schnięcia do 42 dni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-symulator",
    "name": "Symulator Obciążeń i Wilgoci Podłogówki w Szkielecie",
    "description": "Interaktywny symulator pozwalający przełączać się między systemem suchym a mokrym w celu weryfikacji zagrożeń dla drewnianego stropu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-container" id="rk-system-comparator">
    <div class="rk-tech-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym</h2>
        <p class="rk-tech-desc">
            Decyzja o wylaniu ton betonu na drewniany strop to punkt krytyczny inwestycji. Wybór technologii określa nie tylko bezwładność cieplną budynku, ale przede wszystkim bezpieczeństwo nośności drewna C24. Dowiedz się dokładnie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy</a> i zestaw to z ryzykiem, jakie niesie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">klasyczna wylewka betonowa</a>.
        </p>
    </div>

    <div class="rk-interactive-module">
        <h3>Symulator wpływu technologii na konstrukcję</h3>
        
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle">
                <div class="rk-toggle-bg" id="rkToggleBg"></div>
                <button class="rk-toggle-btn active" onclick="switchTech('suchy')" id="btnSuchy">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="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>
                    System Suchy (Lekki)
                </button>
                <button class="rk-toggle-btn" onclick="switchTech('mokry')" id="btnMokry">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    Wylewka Cementowa
                </button>
            </div>
        </div>

        <div class="rk-stats-grid">
            <!-- Karta 1 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>OBCIĄŻENIE STROPU / M2</h4>
                    <p class="rk-stat-val val-green" id="valWeight">~30 kg</p>
                    <p class="rk-stat-sub" id="subWeight">Całkowicie bezpieczne dla belek stropowych.</p>
                </div>
            </div>
            
            <!-- Karta 2 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <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><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>CZAS REAKCJI GRZEWCZEJ</h4>
                    <p class="rk-stat-val val-green" id="valTime">30 - 60 min</p>
                    <p class="rk-stat-sub" id="subTime">Błyskawiczne dopasowanie do zysków solarnych.</p>
                </div>
            </div>

            <!-- Karta 3 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>WILGOĆ TECHNOLOGICZNA</h4>
                    <p class="rk-stat-val val-green" id="valMoisture">0 litrów</p>
                    <p class="rk-stat-sub" id="subMoisture">Brak ryzyka pęcznienia drewna konstrukcyjnego.</p>
                </div>
            </div>

            <!-- Karta 4 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>GOTOWOŚĆ DO UKŁADANIA PANAELI</h4>
                    <p class="rk-stat-val val-green" id="valDrying">Natychmiast</p>
                    <p class="rk-stat-sub" id="subDrying">Oszczędzasz min. miesiąc postoju budowy.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-tags-cloud">
        <span class="rk-mat-tag"># ogrzewanie podłogowe w domu szkieletowym</span>
        <span class="rk-mat-tag"># system suchy ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># wylewka na ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># lekka podłogówka bez wylewki</span>
        <span class="rk-mat-tag"># obciążenie stropu drewnianego</span>
        <span class="rk-mat-tag"># czas schnięcia wylewki</span>
        <span class="rk-mat-tag"># frezowanie ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># cena za m2 robocizny podłogówki</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe wodne bez wylewki</span>
        <span class="rk-mat-tag"># wilgoć technologiczna w domu drewnianym</span>
    </div>

    <div class="rk-tech-cta">
        <h3>Zabezpiecz budżet i uniknij błędów</h3>
        <p>Zobacz pełne analizy, wyliczenia i inżynierskie przewodniki. Przejdź do największej w Polsce bazy wiedzy o płaszczyznowych systemach grzewczych.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-tech">
            BAZA WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
function switchTech(type) {
    const btnSuchy = document.getElementById('btnSuchy');
    const btnMokry = document.getElementById('btnMokry');
    const bg = document.getElementById('rkToggleBg');
    
    // Zmienne DOM dla wyników
    const valWeight = document.getElementById('valWeight');
    const subWeight = document.getElementById('subWeight');
    const valTime = document.getElementById('valTime');
    const subTime = document.getElementById('subTime');
    const valMoisture = document.getElementById('valMoisture');
    const subMoisture = document.getElementById('subMoisture');
    const valDrying = document.getElementById('valDrying');
    const subDrying = document.getElementById('subDrying');

    if (type === 'suchy') {
        btnSuchy.classList.add('active');
        btnMokry.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(0)';
        }

        valWeight.textContent = '~30 kg';
        valWeight.className = 'rk-stat-val val-green';
        subWeight.textContent = 'Całkowicie bezpieczne dla belek stropowych.';
        
        valTime.textContent = '30 - 60 min';
        valTime.className = 'rk-stat-val val-green';
        subTime.textContent = 'Błyskawiczne dopasowanie do zysków solarnych.';

        valMoisture.textContent = '0 litrów';
        valMoisture.className = 'rk-stat-val val-green';
        subMoisture.textContent = 'Brak ryzyka pęcznienia drewna konstrukcyjnego.';

        valDrying.textContent = 'Natychmiast';
        valDrying.className = 'rk-stat-val val-green';
        subDrying.textContent = 'Oszczędzasz min. miesiąc postoju budowy.';

    } else {
        btnMokry.classList.add('active');
        btnSuchy.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(100%)';
        }

        valWeight.textContent = '~150 kg';
        valWeight.className = 'rk-stat-val val-red';
        subWeight.textContent = 'Ryzyko przekroczenia nośności statycznej stropu.';
        
        valTime.textContent = '4 - 6 godzin';
        valTime.className = 'rk-stat-val val-red';
        subTime.textContent = 'Wysoka bezwładność, przegrzewanie pomieszczeń.';

        valMoisture.textContent = 'Setki litrów';
        valMoisture.className = 'rk-stat-val val-red';
        subMoisture.textContent = 'Zagrożenie pleśnią i pękaniem drewna budowlanego.';

        valDrying.textContent = '4 - 6 tygodni';
        valDrying.className = 'rk-stat-val val-red';
        subDrying.textContent = 'Blokada prac wykończeniowych na budowie.';
    }
}
</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": [
        "ogrzewanie podłogowe w domu szkieletowym",
        "lekka podłogówka system suchy",
        "wylewka na drewnianym stropie",
        "projekt instalacji ogrzewania podłogowego",
        "taktowanie pompy ciepła w szkielecie"
      ],
      "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/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 10:15:36 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[hydraulika grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3923</guid>

					<description><![CDATA[<p>Czy można bezpiecznie wykonać podłogówkę bez projektu, kierując się jedynie doświadczeniem instalatora? W praktyce okazuje się, że projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach to nie teoretyczny dylemat, lecz realne ryzyko wysokich kosztów i problemów z komfortem cieplnym. Artykuł pokazuje konkretne konsekwencje złych decyzji: od przewymiarowanych materiałów, przez nierównomierne grzanie, aż po drastycznie wyższe rachunki w przypadku pomp ciepła. Jeśli budujesz dom i chcesz uniknąć kosztownych pomyłek, te informacje mogą oszczędzić Ci dziesiątki tysięcy złotych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Decyzja o wyborze ogrzewania podłogowego zapada zwykle na etapie stanu surowego lub tuż przed wylewaniem wylewki. Wtedy pojawia się kuszące pytanie:&nbsp;<em>czy naprawdę potrzebuję projektu?</em>&nbsp;Wiele osób, kierując się presją czasu lub chęcią oszczędności, decyduje się na układanie rur „z głowy” – według własnego uznania lub intuicji instalatora. Efektem jest często sytuacja, w której&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to nie tylko chwytliwy tytuł artykułu, ale realne pytanie o Twoje rachunki przez najbliższe 20–30 lat.</p>



<p class="wp-block-paragraph">W tym artykule rozpakuję tę różnicę na konkretnych przykładach, pokazując, że to, co na początku wygląda jak „oszczędność”, w praktyce okazuje się jednym z najdroższych kompromisów w budowie domu.</p>



<h2 class="wp-block-heading">Pułapka „Gęściej znaczy lepiej” – najdroższy mit instalacji podłogowej.</h2>



<p class="wp-block-paragraph">Najczęstszym błędem przy projektowaniu bez obliczeń jest <strong>przewymiarowanie</strong>. Instalatorzy, chcąc mieć „święty spokój” i uniknąć reklamacji typu „zimna podłoga”, często zagęszczają <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> – układają je co 10 cm we wszystkich pomieszczeniach. Zakładają, że nadmiar ciepła nie zaszkodzi.</p>



<p class="wp-block-paragraph">Nic bardziej mylnego.</p>



<h3 class="wp-block-heading">Dlaczego gęstszy rozstaw nie znaczy lepszy?</h3>



<p class="wp-block-paragraph">Rozstaw rur to nie tylko kwestia ilości ciepła, ale przede wszystkim dopasowania do rzeczywistego zapotrzebowania pomieszczenia. W projekcie „z głowy” kupujesz&nbsp;<strong>o 30–50% więcej rury</strong>, niż faktycznie potrzebujesz. Płacisz za materiał, więcej obejm, większą liczbę obwodów na rozdzielaczu i robociznę, która jest po prostu zbędna.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom 150 m². Instalator układa rury co 10 cm wszędzie, zamiast optymalnie: co 10 cm w łazience, co 15 cm w salonie i co 20 cm w sypialni. Różnica w zużyciu rury to nawet&nbsp;<strong>300–400 metrów</strong>. Przy cenie 5 zł/m to&nbsp;<strong>1 500–2 000 zł</strong>&nbsp;wyrzucone w błoto już na etapie zakupów. Do tego dochodzą dodatkowe obejmy, płyty zbrojeniowe, a często też większa liczba obwodów, co wymaga droższego rozdzielacza.</p>



<h3 class="wp-block-heading">Skutki przewymiarowania wykraczają poza koszty materiałów.</h3>



<h4 class="wp-block-heading">Gęstszy rozstaw to nie tylko wyższe koszty inwestycyjne. To także problemy eksploatacyjne:</h4>



<ul class="wp-block-list">
<li><strong>Przegrzewanie pomieszczeń</strong>&nbsp;– przy jednakowo gęstym rozstawie w pomieszczeniach o małym zapotrzebowaniu (np. wewnętrzna sypialnia) podłoga oddaje za dużo ciepła.</li>



<li><strong>Praca skokowa źródła ciepła</strong>&nbsp;– kocioł lub pompa ciepła włączają się i wyłączają krótkimi cyklami, tracąc na efektywności.</li>



<li><strong>Wyższa temperatura zasilania</strong>&nbsp;– aby zrekompensować brak równowagi między pomieszczeniami, często podnosi się temperaturę całego systemu, co bije po kieszeni.</li>
</ul>



<p class="wp-block-paragraph">W projekcie z obliczeniami projektant wylicza <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" type="link" id="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC (Obliczeniowe Zapotrzebowanie na Ciepło</a>)</strong> dla każdego pomieszczenia osobno. Na tej podstawie dobiera rozstaw: w sypialni rury mogą być co 20 cm, w salonie co 15 cm, a w łazience co 10 cm. Każde pomieszczenie dostaje tyle mocy, ile faktycznie potrzebuje – ani grama więcej.</p>



<p class="wp-block-paragraph"><strong>Strata przy podejściu „gęściej znaczy lepiej” to nawet kilka tysięcy złotych wyrzucone w błoto już na etapie zakupów, a potem dodatkowe tysiące w rachunkach przez lata.</strong></p>



<h2 class="wp-block-heading">Hydraulika – dlaczego jeden pokój jest zimny, a drugi przegrzany?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe to nie tylko rurki ułożone w podłodze. To&nbsp;<strong>system naczyń połączonych</strong>&nbsp;– instalacja hydrauliczna o określonych oporach przepływu. Bez obliczeń te opory pozostają nieznane, a konsekwencje odczuwasz codziennie.</p>



<h3 class="wp-block-heading">Problem zbyt długich pętli.</h3>



<p class="wp-block-paragraph">W instalacjach „z głowy” często zdarza się, że pętle mają skrajnie różne długości. Jedna pętla (np. w łazience) ma 50 m, a druga (w dużym salonie) – 130 m.</p>



<p class="wp-block-paragraph"><strong>Dlaczego to problem?</strong> Dłuższa pętla stawia znacznie większy opór hydrauliczny. <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa</a>, która jest sercem systemu, ma ograniczoną wydajność. Gdy przekroczysz długość krytyczną (dla rury 16×2 mm to zazwyczaj <strong>100–120 m</strong>), pompa nie jest w stanie przepchnąć przez nią odpowiedniej ilości wody.</p>



<p class="wp-block-paragraph"><em>Efekt w praktyce:</em>&nbsp;Salon (krótka pętla) grzeje, a w sypialni na końcu korytarza (długa pętla) jest lodowato. Instalator kręci przepływomierzami, ale to walka z fizyką – przy zbyt dużych różnicach długości nie da się tego wyrównać bez zmiany projektu.</p>



<h3 class="wp-block-heading">Rozwiązanie projektowe – równoważenie hydrauliczne.</h3>



<p class="wp-block-paragraph">Profesjonalny projekt precyzyjnie określa <strong>długość każdej pętli</strong> tak, aby różnice między nimi nie przekraczały 10–15%. Dzięki temu wszystkie obwody mają zbliżone opory przepływu. Dodatkowo projekt zawiera <strong>nastawy na rozdzielaczu</strong> – wstępne ustawienia <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">przepływomierzy</a>, które wyrównują nawet niewielkie różnice.</p>



<p class="wp-block-paragraph"><em>Rezultat:</em>&nbsp;Ciepło rozchodzi się równomiernie po całym domu. Nie ma „zimnych plam”, nie ma przegrzewania. Pompa obiegowa pracuje na optymalnych obrotach (często 1 bieg zamiast 3), co przekłada się na niższe zużycie prądu i dłuższą żywotność urządzenia.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a współpraca z pompą ciepła – klucz do niskich rachunków.</h2>



<p class="wp-block-paragraph">Jeśli planujesz <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompę ciepła</a> (powietrzną lub gruntową), <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a> przestaje być opcją  staje się krytycznym wymogiem</strong>. Pompy ciepła osiągają najwyższą efektywność (współczynnik COP) przy jak najniższej temperaturze zasilania, optymalnie w zakresie <strong>30–35°C</strong>.</p>



<h3 class="wp-block-heading">Błąd „na oko” a temperatura zasilania.</h3>



<p class="wp-block-paragraph">Gdy instalacja podłogowa jest wykonana bez projektu, często zdarza się, że:</p>



<ul class="wp-block-list">
<li>rozstaw rur jest zbyt rzadki w pomieszczeniach o dużych stratach ciepła,</li>



<li>pętle są niezrównoważone hydraulicznie.</li>
</ul>



<p class="wp-block-paragraph">Aby to skompensować i dogrzać zimne pomieszczenia, instalator (lub automatyk) podnosi&nbsp;<strong>temperaturę zasilania</strong>&nbsp;– zamiast 35°C ustawia 45°C, a czasem nawet 50°C.</p>



<p class="wp-block-paragraph"><strong>Konsekwencja:</strong>&nbsp;Pompa ciepła traci swoją największą zaletę – niskie koszty eksploatacji.</p>



<h3 class="wp-block-heading">Wyliczenie – każdy stopień ma swoją cenę.</h3>



<p class="wp-block-paragraph">Dla pompy ciepła powietrznej&nbsp;<strong>każdy stopień Celsjusza podwyższenia temperatury zasilania to spadek COP o około 2–3%</strong>. Podniesienie z 35°C na 45°C oznacza więc spadek efektywności o&nbsp;<strong>20–30%</strong>.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom ogrzewany pompą ciepła, roczny koszt energii elektrycznej na ogrzewanie wynosi&nbsp;<strong>4 500 zł</strong>&nbsp;przy optymalnej pracy (35°C). Po podniesieniu temperatury zasilania do 45°C, koszt wzrasta o ok.&nbsp;<strong>1 000–1 300 zł rocznie</strong>.</p>



<p class="wp-block-paragraph">W perspektywie 15 lat (średni okres między wymianami źródła ciepła) to&nbsp;<strong>15 000–20 000 zł dodatkowych kosztów</strong>&nbsp;– tylko z powodu źle zaprojektowanej podłogówki. A przecież pompa ciepła ma służyć 20–25 lat.</p>



<h3 class="wp-block-heading">Gwarancja producenta a projekt.</h3>



<p class="wp-block-paragraph">Coraz więcej producentów <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">pomp ciepła</a> (np. Daikin, Panasonic, Mitsubishi Electric, Viessmann, Nibe, Bosch, Vaillant, LG, Samsung, Stiebel Eltron, Hitachi, Toshiba, Fujitsu, Alpha Innotec, De Dietrich, Gree, Midea, Thermia, Haier, Galmet.) <strong>wymaga przedstawienia projektu ogrzewania podłogowego wraz z obliczeniami OZC</strong> do udzielenia gwarancji. To nie jest kaprys  producenci wiedzą, że źle zaprojektowany system dolnego źródła (podłogówka) jest główną przyczyną awarii, krótkich cykli pracy i spadku efektywności. Brak projektu może więc oznaczać <strong>utratę gwarancji na urządzenie warte 20–30 tys. zł</strong>.</p>



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

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

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

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

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

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 25%;
}

.compare-table th.col-noguide {
    color: var(--primary);
    width: 37%;
}

.compare-table th.col-project {
    color: var(--accent);
    width: 38%;
    border-bottom-color: var(--accent);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

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

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-project {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.card-project h4 {
    color: var(--accent);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Projekt „z głowy” / „na oko”:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Projekt z obliczeniami:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--accent);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app">
    <div class="compare-header">
        <h2>Porównanie – co zyskujesz, a co ryzykujesz?</h2>
        <p>Poniższa tabela zestawia najważniejsze różnice między instalacją „z głowy” a systemem zaprojektowanym przez specjalistę. Dane dotyczą typowego domu jednorodzinnego o powierzchni 150 m². <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Cecha</th>
                    <th class="col-noguide">Projekt „z głowy” / „na oko”</th>
                    <th class="col-project">Projekt z obliczeniami</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">📦</span> Ilość materiału</td>
                    <td>Zazwyczaj zawyżona o 30–50% – instalator dodaje „na zapas”</td>
                    <td><strong>Optymalna</strong> – dokładnie tyle, ile wynika z OZC i rozstawu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Komfort termiczny</td>
                    <td>Ryzyko „zimnych plam” w dłuższych pętlach lub przegrzewania przy zbyt gęstym rozstawie</td>
                    <td><strong>Równomierna temperatura</strong> w każdym pomieszczeniu, brak lokalnych dyskomfortów</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Praca pompy obiegowej</td>
                    <td>Często na 3 biegu (60–80 W), aby przeforsować długie pętle</td>
                    <td><span class="val-pill accent">1 bieg (20–30 W)</span>, cicha praca, mniejsze zużycie prądu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Koszt eksploatacji (kocioł)</td>
                    <td>Wyższy o 10–15% przez zbyt wysoką temperaturę zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – system pracuje w optymalnym zakresie 35–40°C</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Koszt eksploatacji (pompa ciepła)</td>
                    <td>Wyższy o 20–30% przez spadek COP przy podniesionej temperaturze zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – pompa pracuje z najwyższą możliwą efektywnością</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📄</span> Dokumentacja powykonawcza</td>
                    <td>Brak – nie wiesz, gdzie biegną rury, co utrudnia wiercenie i ewentualne naprawy</td>
                    <td><strong>Pełna mapa rur</strong>, zestawienie długości pętli, nastawy rozdzielacza</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛡️</span> Gwarancja na pompę ciepła</td>
                    <td>Często niemożliwa – producenci wymagają projektu</td>
                    <td><span class="val-pill accent">Tak</span> – projekt spełnia wymogi formalne</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🎯</span> Gwarancja sukcesu</td>
                    <td>„Jakoś to będzie” – ryzyko błędów wykrytych dopiero po wylaniu wylewki</td>
                    <td><strong>Gwarancja inżynierska</strong> – wszystko jest przewidziane i policzone</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card">
            <h4>Montaż &#8222;na oko&#8221;</h4>
            <p>Brak pewności co do poprawności działania instalacji. Płacisz więcej za przewymiarowany materiał na etapie budowy i ponosisz stale wyższe koszty eksploatacyjne (prąd, spadek COP). Ryzykujesz dyskomfort cieplny i problemy z gwarancją u producentów pomp ciepła.</p>
        </div>
        
        <div class="summary-card card-project">
            <h4>System z obliczeniami OZC</h4>
            <p>Gwarancja optymalnego działania ogrzewania. Oszczędzasz na precyzyjnie wyliczonych materiałach oraz cieszysz się minimalnymi rachunkami za ogrzewanie. Otrzymujesz pełną dokumentację, która ułatwia wykończenie domu i jest podstawą do utrzymania gwarancji producenta.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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

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

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

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

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

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 40%;
}

.compare-table th.col-annual {
    color: var(--primary);
    width: 30%;
}

.compare-table th.col-total {
    color: var(--danger);
    width: 30%;
    border-bottom-color: var(--danger);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

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

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.val-pill.danger {
    background: #fee2e2;
    color: var(--danger);
}

.val-pill.success {
    background: #dcfce7;
    color: var(--success);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.card-danger h4 {
    color: var(--danger);
}

.card-success {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.card-success h4 {
    color: var(--success);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Koszt jednorazowy / roczny:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Skumulowany koszt (15 lat):";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--danger);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app-costs">
    <div class="compare-header">
        <h2>Ile realnie możesz stracić? Wyliczenia w perspektywie czasu</h2>
        <p>Błędy w instalacji podłogowej należą do najtrudniejszych i najdroższych do naprawienia. Gdy jastrych (wylewka) zastygnie, każda zmiana wiąże się z kuciem podłóg, wynoszeniem gruzu i układaniem wszystkiego od nowa. To koszt, który w przypadku domu 150 m² potrafi sięgnąć <strong>15 000–25 000 zł</strong>. Policzmy jednak straty w perspektywie 15 lat, nawet jeśli nie dojdzie do fizycznej przebudowy. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wyliczenia przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Rodzaj straty</th>
                    <th class="col-annual">Koszt jednorazowy / roczny</th>
                    <th class="col-total">Skumulowany koszt (15 lat)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🛒</span> Nadmiar materiału (rura, obejmy, rozdzielacz)</td>
                    <td>2 000 – 3 500 zł</td>
                    <td><span class="val-pill danger">2 000 – 3 500 zł</span> (jednorazowo)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Wyższe rachunki dla pompy ciepła (spadek COP)</td>
                    <td>1 000 – 1 500 zł/rok</td>
                    <td><span class="val-pill danger">15 000 – 22 500 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Wyższe rachunki dla kotła (niższa sprawność)</td>
                    <td>800 – 1 200 zł/rok</td>
                    <td><span class="val-pill danger">12 000 – 18 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Dodatkowy pobór mocy pompy obiegowej</td>
                    <td>100 – 150 zł/rok</td>
                    <td><span class="val-pill danger">1 500 – 2 250 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Brak podziału na strefy – przegrzewanie</td>
                    <td>500 – 1 000 zł/rok</td>
                    <td><span class="val-pill danger">7 500 – 15 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛠️</span> Potencjalny remont wylewki (wykrycie błędu)</td>
                    <td>15 000 – 25 000 zł</td>
                    <td><span class="val-pill danger">15 000 – 25 000 zł</span> (jednorazowo)</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card card-danger">
            <h4>📉 Koszt zaniechania</h4>
            <p>Łączny potencjalny koszt błędów (bez remontu) dla pompy ciepła to <strong>ok. 26 000 – 43 000 zł</strong> w perspektywie 15 lat. Jeśli wada wymusi kucie i wymianę instalacji (z remontem), koszty rosną do drastycznych <strong>40 000 – 65 000 zł</strong>.</p>
        </div>
        
        <div class="summary-card card-success">
            <h4>💡 Inwestycja w pewność</h4>
            <p>Koszt profesjonalnego projektu ogrzewania podłogowego z obliczeniami OZC to zaledwie <strong>1 500 – 2 500 zł</strong>. Projekt ten nie zwraca się w latach – <strong style="color: var(--success);">zwraca się w momencie zakupu materiałów</strong>, zapobiegając ich przewymiarowaniu.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x3e4a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70\x2d\x63\x6f\x73\x74\x73','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x3e4a[12]](_0x3e4a[11],function(){var _0x1a2b=window[_0x3e4a[1]][_0x3e4a[0]];var _0x5c6d=[_0x3e4a[2],_0x3e4a[3],_0x3e4a[4],_0x3e4a[5],_0x3e4a[6]];if(!_0x5c6d[_0x3e4a[7]](_0x1a2b)){document[_0x3e4a[10]](_0x3e4a[8])[_0x3e4a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



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

/* ZAJAWKA SEO I LINK */
.calc-intro { max-width: 1150px; margin: 40px auto 10px auto; text-align: center; padding: 0 20px; }
.calc-intro h2 { font-size: 28px; font-weight: 900; color: var(--primary); margin-bottom: 15px; }
.calc-intro p { font-size: 16px; color: #475569; line-height: 1.6; max-width: 800px; margin: 0 auto; }

/* KONTENER GŁÓWNY */
.screed-calc { max-width: 1150px; margin: 30px auto; font-family: 'Inter', -apple-system, sans-serif; background: #ffffff; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1); overflow: hidden; color: var(--primary); }
.calc-grid { display: grid; grid-template-columns: 1.2fr 1fr; }

/* LEWA STRONA - KONFIGURACJA */
.config-side { padding: 40px; background: #ffffff; }
.section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: #94a3b8; letter-spacing: 1.2px; margin-bottom: 20px; display: block; }

.type-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 30px; }
.type-btn { padding: 14px 8px; border: 2px solid #cbd5e1; border-radius: 12px; cursor: pointer; text-align: center; font-weight: 700; font-size: 12px; color: #475569; background: #fff; transition: all 0.2s; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.type-btn span { margin-top: 4px; }
.type-btn.active { border-color: var(--accent); background: #eff6ff; color: var(--accent); box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1); }

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

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

/* PRAWA STRONA - WYNIKI */
.result-side { padding: 40px; background: var(--bg-light); border-left: 1px solid #f1f5f9; display: flex; flex-direction: column; justify-content: center; }
.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(--danger); transition: 0.3s; }
.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--danger); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg { margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: block; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: center; }

.tech-grid { background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 16px; }
.tech-item { display: flex; justify-content: space-between; padding-bottom: 16px; 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; line-height: 1.4; padding-right: 15px; }
.tech-item strong { font-size: 16px; text-align: right; white-space: nowrap; }

/* STOPKA */
.footer-cta { margin: 0 40px 40px 40px; padding: 30px; background: #eff6ff; border-radius: 20px; border-left: 6px solid var(--accent); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.cta-text-side { max-width: 550px; }
.cta-buttons-stack { display: flex; flex-direction: column; gap: 12px; min-width: 280px; }
.cta-btn { display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer; }
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

/* WERSJA TABLET / MAŁY LAPTOP */
@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%; }
}

/* POPRAWKI DLA WĄSKICH SMARTFONÓW (poniżej 600px) */
@media (max-width: 600px) {
    .config-side, .result-side { 
        padding: 25px 20px; 
    }
    .type-selector { 
        grid-template-columns: 1fr; 
        gap: 10px;
    }
    .score-num { 
        font-size: 36px; 
    }
    .tech-item { 
        flex-direction: column; 
        align-items: flex-start; 
        gap: 6px; 
    }
    .tech-item strong { 
        font-size: 18px; 
        text-align: left; 
    }
    .calc-intro h2 {
        font-size: 24px; 
    }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator Ukrytych Kosztów Podłogówki</h2>
    <p>Sprawdź, czy Twoja podłoga będzie efektywnie oddawać ciepło! Autorskie narzędzie stworzone przez inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz, w jaką pułapkę wpada Twój instalator robiący ogrzewanie &#8222;na oko&#8221;, a algorytm wyliczy straty.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Błąd instalatora (&#8222;na oko&#8221;)</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-dense">WSZĘDZIE GĘSTO<span style="font-size:10px; font-weight:400">Strata materiału + Taktowanie</span></div>
                <div class="type-btn" id="btn-sparse">WSZĘDZIE RZADKO<span style="font-size:10px; font-weight:400">Drastyczny spadek COP</span></div>
            </div>

            <span class="section-title">2. Główne źródło ciepła</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-heatpump">POMPA CIEPŁA<span style="font-size:10px; font-weight:400">Wrażliwa na błędy (COP)</span></div>
                <div class="type-btn" id="btn-gas">KOCIOŁ GAZOWY<span style="font-size:10px; font-weight:400">Kocioł kondensacyjny</span></div>
            </div>

            <span class="section-title">3. Parametry domu</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia ogrzewana</label><span class="val-badge"><span id="v-area">150</span> m²</span></div>
                <input type="range" id="area" min="50" max="300" step="5" value="150">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Cena rury (za 1 metr)</label><span class="val-badge"><span id="v-price">5.00</span> zł</span></div>
                <input type="range" id="price" min="2.0" max="10.0" step="0.5" value="5.0">
            </div>

            <div class="input-wrap" style="margin-bottom: 0;">
                <div class="input-label-row"><label>Czas eksploatacji</label><span class="val-badge"><span id="v-years">15</span> lat</span></div>
                <input type="range" id="years" min="5" max="30" step="1" value="15">
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana strata finansowa (<span id="label-years-main">15</span> lat)</span>
                <span class="score-num"><span id="resTotalLoss">&#8212;</span> zł</span>
                <div id="risk-msg">To koszty, których unikniesz inwestując w projekt!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span id="label-pipe-error">Zbędny materiał:</span><strong id="resExtraPipe">&#8212;</strong></div>
                <div class="tech-item"><span id="label-mini-mat">Straty na zakupie materiałów:</span><strong id="resMaterialLoss" style="color:#fbbf24">&#8212;</strong></div>
                <div class="tech-item"><span id="label-op-error">Wzrost kosztów (rocznie):</span><strong id="resAnnualLoss">&#8212;</strong></div>
                <div class="tech-item"><span>Straty w rachunkach przez <span id="label-years-mini">15</span> lat:</span><strong id="resOpLoss" style="color:#f87171">&#8212;</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Projekt się po prostu opłaca</h3>
            <p style="margin:0; font-size:14px; color:#475569" id="footer-desc">Niezależnie od tego, czy instalator &#8222;przedobrzy&#8221; z ilością rury, czy spróbuje &#8222;przyoszczędzić&#8221; – finalnie to Ty płacisz za to w rachunkach przez lata. Zleć nam obliczenia i śpij spokojnie.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
!function(){document.addEventListener("DOMContentLoaded",function(){var e=window.location.hostname,t=["\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74","\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31",""];if(-1===t.indexOf(e)){var n=document.getElementById("screed-calc-app");return n&&(n.innerHTML=decodeURIComponent("%3Cdiv%20style%3D%22padding%3A%2060px%2020px%3B%20text-align%3A%20center%3B%20background%3A%20%23fee2e2%3B%20color%3A%20%23dc2626%3B%20border-radius%3A%2024px%3B%20font-family%3A%20sans-serif%3B%22%3E%3Cspan%20style%3D%22font-size%3A%2048px%3B%20display%3A%20block%3B%20margin-bottom%3A%2015px%3B%22%3E%F0%9F%94%92%3C%2Fspan%3E%3Ch3%20style%3D%22margin-top%3A0%3B%20font-size%3A%2024px%3B%20color%3A%20%23dc2626%3B%22%3ENarz%C4%99dzie%20chronione%3C%2Fh3%3E%3Cp%20style%3D%22font-size%3A%2016px%3B%20margin-bottom%3A%2025px%3B%22%3ETen%20kalkulator%20jest%20w%C5%82asno%C5%9Bci%C4%85%20serwisu%20%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22color%3A%20%23dc2626%3B%20font-weight%3A%20bold%3B%20text-decoration%3A%20underline%3B%22%3EProjekt-Ogrzewania.pl%3C%2Fa%3E%3C%2Fp%3E%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22display%3A%20inline-block%3B%20padding%3A%2014px%2028px%3B%20background%3A%20%23dc2626%3B%20color%3A%20%23ffffff%3B%20text-decoration%3A%20none%3B%20border-radius%3A%2012px%3B%20font-weight%3A%20800%3B%22%3EPRZEJD%C5%B9%20DO%20ORYGINA%C5%81U%3C%2Fa%3E%3C%2Fdiv%3E")),void 0}var a="heatpump",o="dense";function i(e){return e.toLocaleString("pl-PL")+" z\u0142"}function c(){var e=parseFloat(document.getElementById("area").value),t=parseFloat(document.getElementById("price").value),n=parseInt(document.getElementById("years").value);document.getElementById("v-area").innerText=e,document.getElementById("v-price").innerText=t.toFixed(2),document.getElementById("v-years").innerText=n,document.getElementById("label-years-main").innerText=n,document.getElementById("label-years-mini").innerText=n;var c=0,r=0,d=0,l=30*e,s=40*e;"dense"===o?(document.getElementById("label-pipe-error").innerText="Zb\u0119dny materia\u0142 (rura u\u0142o\u017cona zbyt g\u0119sto):",document.getElementById("label-mini-mat").innerText="Straty na zakupie materia\u0142\u00f3w:",c=2.5*e,r=c*t+1.5*e+(e>100?400:200),"heatpump"===a?(document.getElementById("label-op-error").innerText="Spadek efektywno\u015bci (taktowanie pompy/obieg):",d=.12*l+.8*e):(document.getElementById("label-op-error").innerText="Wy\u017csze zu\u017cycie pr\u0105du (pompa obiegowa 3. bieg):",d=.8*e),document.getElementById("risk-msg").innerText="Wyrzuci\u0142e\u015b pieni\u0105dze na materia\u0142, a system dzia\u0142a ma\u0142o stabilnie!"):(document.getElementById("label-pipe-error").innerText="Brakuj\u0105cy materia\u0142 (ryzyko niedogrzania):",document.getElementById("label-mini-mat").innerText="Zaoszcz\u0119dzono na materiale:",c=0,r=0,"heatpump"===a?(document.getElementById("label-op-error").innerText="Wzrost rachunk\u00f3w (wymagane 40-45\xb0C na zasilaniu):",d=.25*l):(document.getElementById("label-op-error").innerText="Spadek kondensacji (wymagane wy\u017csze temp.):",d=.12*s),document.getElementById("risk-msg").innerText="Zaoszcz\u0119dzi\u0142e\u015b na rurkach, stracisz krocie na rachunkach!");var u=d*n,m=r+u;document.getElementById("resExtraPipe").innerText=("dense"===o?"+":"0 ")+c.toFixed(0)+" m",document.getElementById("resAnnualLoss").innerText=i(Math.round(d))+" / rok","sparse"===o?(document.getElementById("resMaterialLoss").innerText="0 z\u0142",document.getElementById("resMaterialLoss").style.color="#94a3b8"):(document.getElementById("resMaterialLoss").innerText=i(Math.round(r)),document.getElementById("resMaterialLoss").style.color="#fbbf24"),document.getElementById("resOpLoss").innerText=i(Math.round(u)),document.getElementById("resTotalLoss").innerText=Math.round(m).toLocaleString("pl-PL")}var r=document.getElementById("btn-dense"),d=document.getElementById("btn-sparse"),l=document.getElementById("btn-heatpump"),s=document.getElementById("btn-gas");r&&d&&(r.addEventListener("click",function(){o="dense",d.classList.remove("active"),r.classList.add("active"),c()}),d.addEventListener("click",function(){o="sparse",r.classList.remove("active"),d.classList.add("active"),c()})),l&&s&&(l.addEventListener("click",function(){a="heatpump",s.classList.remove("active"),l.classList.add("active"),c()}),s.addEventListener("click",function(){a="gas",l.classList.remove("active"),s.classList.add("active"),c()})),["area","price","years"].forEach(function(e){var t=document.getElementById(e);t&&t.addEventListener("input",c)}),c()})}();
</script>



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

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

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

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

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

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

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

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-app-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz."
        }
      }, {
        "@type": "Question",
        "name": "Jaka będzie maksymalna długość jednej pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna."
        }
      }, {
        "@type": "Question",
        "name": "Jak zamierza Pan wykonać dylatacje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)."
        }
      }, {
        "@type": "Question",
        "name": "W jaki sposób zrównoważy Pan instalację hydraulicznie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo."
        }
      }, {
        "@type": "Question",
        "name": "Czy przeprowadzimy próbę szczelności na mokro czy na sucho?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła."
        }
      }]
    }
    </script>
    <div class="qa-header">
        <h2>🏗️ 5 pytań, które powinien zadać inwestor.</h2>
        <p>Aby uniknąć pułapek opisanych wcześniej, musisz zweryfikować, z kim masz do czynienia. Oto lista pytań, które pomogą ocenić, czy instalator podchodzi do tematu profesjonalnie. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Pytania rekrutacyjne przygotowane przez inżynierów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Panie, u każdego daję co 10 cm i jest git, nikt nie narzekał”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Jaka będzie maksymalna długość jednej pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Ile wyjdzie, tyle wyjdzie, najwyżej mocniejszą pompę się wstawi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jak zamierza Pan wykonać dylatacje?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Wylewka sama zapracuje, nie ma co dzielić podłogi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „W jaki sposób zrównoważy Pan instalację hydraulicznie?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Samo się wyrówna po odpaleniu pompy, najwyżej się pokręci na rozdzielaczu”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Czy przeprowadzimy próbę szczelności na mokro czy na sucho?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Puszczę wodę, jak skończę, i zobaczymy czy kapie”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła”.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li>„OZC? A po co to komu? Ja na oko widzę, że tu trzeba gęsto kłaść.”</li>
            <li>„Projektant tylko bierze kasę, a ja to w rękach miałem setki razy.”</li>
            <li>„Pompę ciepła ustawimy na 45 stopni i na pewno będzie ciepło.” (Uwaga: to zabójstwo dla Twojego portfela!)</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x61\x70\x70\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<h2 class="wp-block-heading">Podsumowanie – projekt to nie koszt, to inwestycja.</h2>



<p class="wp-block-paragraph">Budowa domu to jeden z największych wydatków w życiu. Na etapie wykończenia, gdy kasa się kończy, a termin goni, łatwo ulec pokusie uproszczeń. Jednak&nbsp;<strong>ogrzewanie podłogowe to instalacja, która będzie z Tobą na co najmniej 30 lat</strong>. Błędy popełnione na etapie układania rur będą generować straty każdego miesiąca, przez każdą zimę, przez cały ten okres.</p>



<p class="wp-block-paragraph"><strong>Projekt ogrzewania podłogowego z obliczeniami to nie koszt – to inwestycja, która zwraca się zazwyczaj już w momencie zakupu materiałów u hurtownika</strong>&nbsp;(dzięki optymalizacji ilości rury) i w&nbsp;<strong>pierwszym sezonie grzewczym</strong>&nbsp;(dzięki niższym rachunkom). To także jedyny sposób, aby:</p>



<ul class="wp-block-list">
<li>uniknąć kosztownego kucia wylewki,</li>



<li>zapewnić równomierny komfort cieplny w całym domu,</li>



<li>umożliwić sprawne sterowanie strefowe,</li>



<li>spełnić wymogi gwarancyjne producentów pomp ciepła.</li>
</ul>



<p class="wp-block-paragraph">Odpowiedź na pytanie postawione w tytule jest więc jednoznaczna:&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to różnica rzędu&nbsp;<strong>kilkudziesięciu tysięcy złotych</strong>&nbsp;w perspektywie 15–20 lat, nie wspominając o codziennym komforcie, który przy systemie intuicyjnie ułożonym jest zwykle daleki od ideału.</p>



<p class="wp-block-paragraph">Nie daj się przekonać, że „wystarczy na oko”. Ogrzewanie podłogowe to system inżynieryjny – wymaga obliczeń, wiedzy i precyzji. Profesjonalny projekt to jedyny sposób, aby spać spokojnie, nie martwiąc się o zimne stopy ani o rachunki, które wymykają się spod kontroli.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Grubość wylewki betonowej na ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 14:21:33 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Posadzki i wylewki]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny]]></category>
		<category><![CDATA[plastyfikator do betonu]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[posadzki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3831</guid>

					<description><![CDATA[<p>Decyzja o montażu „podłogówki” to zaledwie początek wyzwań, z jakimi musisz się zmierzyć podczas budowy lub remontu domu. Jednym z kluczowych parametrów, który bezpośrednio wpłynie na sprawność instalacji, wysokość rachunków za energię oraz trwałość samej posadzki, jest odpowiednia grubość wylewki betonowej na ogrzewanie podłogowe. Zbyt cienka warstwa to ogromne ryzyko pęknięć i nierównomiernego rozkładu temperatur (tzw. efekt „zebry”). Z kolei zbyt masywny jastrych drastycznie zwiększy bezwładność cieplną systemu, sprawiając, że dom będzie nagrzewał się wolno, a koszty eksploatacji niepotrzebnie wzrosną. W tym artykule rozkładamy na czynniki pierwsze fizykę przenikania ciepła, tłumaczymy obowiązujące normy i podpowiadamy, jak uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-panel: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #f59e0b; /* Pomarańczowy dla mocnego akcentu */
    --rk-intro-gray: #475569;
    --rk-intro-gray-light: #f1f5f9;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 16px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Hero Header */
.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-intro-icon-main {
    width: 60px;
    height: 60px;
    background: rgba(2, 132, 199, 0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-intro-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.3;
}

/* Interactive Tabs */
.rk-intro-tabs {
    display: flex;
    background: var(--rk-intro-gray-light);
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-intro-tab-icon {
    display: flex;
    align-items: center;
}

/* Content Area */
.rk-intro-content {
    background: #ffffff;
    position: relative;
}

.rk-intro-panel {
    display: none;
    padding: 40px 45px;
}

.rk-intro-panel.is-visible {
    display: block;
}

/* Quick Answer Box */
.rk-qa-box {
    background: var(--rk-intro-blue-light);
    border-left: 6px solid var(--rk-intro-blue);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 25px;
}

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

.rk-qa-text {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    line-height: 1.4;
    margin: 0;
}

/* Typography & Lists */
.rk-intro-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-gray);
    margin: 0 0 15px 0;
}

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

.rk-roadmap-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 25px;
}

.rk-roadmap-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px;
    background: var(--rk-intro-gray-light);
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
}

.rk-roadmap-icon {
    color: var(--rk-intro-accent);
    margin-top: 2px;
}

.rk-roadmap-desc {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    margin: 0;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .rk-intro-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-intro-tabs {
        flex-direction: column;
    }
    .rk-intro-tab-btn {
        padding: 15px;
        border-bottom: none;
        border-left: 3px solid transparent;
        justify-content: flex-start;
    }
    .rk-intro-tab-btn.is-active {
        border-bottom-color: transparent;
        border-left-color: var(--rk-intro-blue);
    }
    .rk-intro-panel {
        padding: 30px 20px;
    }
    .rk-roadmap-grid {
        grid-template-columns: 1fr;
    }
    .rk-qa-text {
        font-size: 18px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Grubość wylewki betonowej na ogrzewanie podłogowe – Kompendium Wiedzy",
    "description": "Zrozum kluczowy parametr decydujący o wydajności podłogówki. Szybka odpowiedź o normatywnej grubości wylewki, oporach cieplnych i narzędziach interaktywnych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wstep",
    "name": "Normatywne wytyczne grubości wylewek betonowych na podłogówkę",
    "description": "Zestawienie optymalnych i bezpiecznych wartości grubości jastrychu nad rurami grzewczymi według PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka na podłogówkę 16mm",
      "otulina betonowa rury grzewczej",
      "minimalna grubość jastrychu ogrzewanie",
      "opór cieplny wylewki kalkulator"
    ],
    "measurementTechnique": "Weryfikacja parametrów termoizolacyjnych i wytrzymałości mechanicznej na podstawie norm PN-EN 1264 oraz PN-EN 13813.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna grubość całkowita: 6–8 cm",
        "Czysta otulina nad rurką 16 mm: od 3,0 do 4,5 cm",
        "Zgodność z normą PN-EN 1264 dla bezwładności cieplnej"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wstep",
    "name": "Nawigator Opracowania Inżynierskiego",
    "description": "Interaktywny moduł wprowadzający umożliwiający błyskawiczne przejście do kluczowej wiedzy oraz informujący o zaawansowanych symulatorach dostępnych w artykule.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper">
    <div class="rk-intro-header">
        <div class="rk-intro-icon-main">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
        </div>
        <h2>Grubość wylewki betonowej na ogrzewanie podłogowe</h2>
    </div>

    <div class="rk-intro-content">
        
        <div class="rk-intro-tabs">
            <button class="rk-intro-tab-btn is-active" id="rkIntroBtn1" onclick="rkSwitchIntro(1)">
                <div class="rk-intro-tab-icon">
                    <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>
                </div>
                Szybka Odpowiedź
            </button>
            <button class="rk-intro-tab-btn" id="rkIntroBtn2" onclick="rkSwitchIntro(2)">
                <div class="rk-intro-tab-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                Normy i Fizyka
            </button>
            <button class="rk-intro-tab-btn" id="rkIntroBtn3" onclick="rkSwitchIntro(3)">
                <div class="rk-intro-tab-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                Narzędzia w Artykule
            </button>
        </div>

        <div class="rk-intro-panel is-visible" id="rkIntroPanel1">
            <div class="rk-qa-box">
                <div class="rk-qa-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                    Wartość optymalna
                </div>
                <p class="rk-qa-text">Optymalna, całkowita grubość wylewki cementowej w systemie mokrym wynosi <strong>6–8 cm</strong>. Przy rurze 16 mm gwarantuje to <strong>od 3,0 do 4,5 cm czystej otuliny</strong> betonowej nad instalacją.</p>
            </div>
            <p class="rk-intro-text">
                Grubość wylewki betonowej na ogrzewanie podłogowe to kluczowy parametr konstrukcyjny i termodynamiczny. Określa on odległość od styropianu do lica surowego jastrychu, decydując bezpośrednio o tym, jak szybko ciepło trafi do pomieszczenia i czy posadzka wytrzyma codzienne obciążenia bez pęknięć.
            </p>
        </div>

        <div class="rk-intro-panel" id="rkIntroPanel2">
            <p class="rk-intro-text">
                Wymiar rzędu 6-8 cm to nie wymysł wykonawców, lecz ścisły kompromis inżynierski. Taka grubość <strong>gwarantuje pełną zgodność z normą europejską PN-EN 1264</strong>, która reguluje dopuszczalny opór cieplny systemów płaszczyznowych.
            </p>
            <p class="rk-intro-text">
                Wybranie optymalnej masy betonu eliminuje ryzyko pękania warstwy wykończeniowej pod wpływem naprężeń termicznych, a jednocześnie minimalizuje <strong>bezwładność cieplną układu</strong>. Zbyt gruby jastrych obciąży pompę ciepła, a zbyt cienki – nie przekaże energii równomiernie (tzw. zebra termiczna).
            </p>
        </div>

        <div class="rk-intro-panel" id="rkIntroPanel3">
            <p class="rk-intro-text"><strong>W dalszej części tego kompendium udostępniam autorskie symulatory online.</strong> Dowiesz się z nich dokładnie, na czym polega fizyka wylewki betonowej. Czekają na Ciebie interaktywne moduły:</p>
            
            <div class="rk-roadmap-grid">
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <p class="rk-roadmap-desc">Kalkulator oporu cieplnego i wagi masy jastrychu.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-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><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <p class="rk-roadmap-desc">Symulator czasu nagrzewania w zależności od rur.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <p class="rk-roadmap-desc">Komparator właściwości anhydrytu i cementu.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    </div>
                    <p class="rk-roadmap-desc">Kalkulator ryzyka pęknięć dla cienkich wylewek.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkSwitchIntro(tabId) {
        // Zabezpieczony selektor, by uniknac konfliktu (bez &&)
        var btns = document.querySelectorAll('.rk-intro-tab-btn');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        var panels = document.querySelectorAll('.rk-intro-panel');
        for (var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        var actBtn = document.getElementById('rkIntroBtn' + tabId);
        var actPnl = document.getElementById('rkIntroPanel' + tabId);
        
        if (actBtn) {
            actBtn.classList.add('is-active');
        }
        if (actPnl) {
            actPnl.classList.add('is-visible');
        }
    }
</script>



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

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

/* Header */
.rk-min-header {
    background: linear-gradient(135deg, var(--rk-min-dark) 0%, var(--rk-min-panel) 100%);
    padding: 35px 45px;
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-min-header::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-min-red);
    filter: blur(80px);
    opacity: 0.2;
}

.rk-min-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
    position: relative;
}

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

/* App Interface */
.rk-min-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-min-border);
}

/* Controls */
.rk-min-controls {
    padding: 35px 45px;
    background: #ffffff;
    border-right: 1px solid var(--rk-min-border);
}

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

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

.rk-min-badge {
    background: var(--rk-min-blue);
    color: #ffffff;
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 800;
    transition: background-color 0.3s;
}

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

.rk-min-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-min-blue);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    transition: transform 0.1s, background-color 0.3s;
    border: 3px solid #ffffff;
}

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

.rk-min-stats {
    background: var(--rk-min-gray);
    color: #ffffff;
    padding: 15px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
}

.rk-min-stats-val {
    font-size: 18px;
    font-weight: 900;
    color: #cbd5e1;
}

/* Results Display */
.rk-min-display {
    padding: 35px 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

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

.rk-min-icon {
    width: 46px;
    height: 46px;
    min-width: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    transition: all 0.3s;
}

.rk-min-card-content {
    flex: 1;
}

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

.rk-min-card-status {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-min-dark);
}

/* Educational Content */
.rk-min-content {
    padding: 35px 45px;
}

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

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

.rk-min-list {
    margin: 0 0 20px 0;
    padding-left: 20px;
    color: #475569;
    font-size: 15px;
    line-height: 1.6;
}

.rk-min-list li {
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-min-alert {
    background: var(--rk-min-red-light);
    border-left: 4px solid var(--rk-min-red);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-min-alert strong {
    color: var(--rk-min-red);
}

@media (max-width: 768px) {
    .rk-min-app { grid-template-columns: 1fr; }
    .rk-min-controls { border-right: none; border-bottom: 1px solid var(--rk-min-border); }
    .rk-min-header, .rk-min-controls, .rk-min-display, .rk-min-content { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-min-grubosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jaka jest minimalna grubość wylewki betonowej na ogrzewanie podłogowe?",
    "description": "Zrozum zagrożenia wynikające ze zbyt cienkiej wylewki. Symulator ryzyka uszkodzeń strukturalnych i zjawiska zebry termicznej według normy PN-EN 13813.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-min-grubosc",
    "name": "Parametry krytyczne minimalnej grubości wylewki",
    "description": "Zestawienie technologicznych minimów grubości jastrychu (otulina) oraz fizycznych i termicznych konsekwencji ich nieprzestrzegania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna grubość wylewki podłogowej",
      "zebra termiczna ogrzewanie podłogowe",
      "pękająca wylewka betonowa",
      "klawiszowanie płyt jastrychu",
      "otulina rury grzewczej 3 cm"
    ],
    "measurementTechnique": "Weryfikacja grubości na podstawie normy PN-EN 13813 (klasa wytrzymałości F4) oraz dystrybucji ciepła w płaszczyźnie poziomej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna całkowita grubość: 6,0 cm",
        "Minimalna otulina nad rurą 16 mm: 3,0 cm",
        "Ryzyka: pęknięcia powierzchniowe, zebra termiczna, klawiszowanie"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-min-grubosc",
    "name": "Symulator Ryzyka Cienkiej Wylewki",
    "description": "Narzędzie interaktywne ilustrujące utratę nośności i stabilności termicznej podłogi wraz ze zmniejszaniem się warstwy otuliny betonowej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-min-wrapper">
    <div class="rk-min-header">
        <h2>Dlaczego 6 cm to technologiczne minimum?</h2>
        <p>Zbyt cienki beton to katastrofa budowlana z opóźnionym zapłonem. Przesuń suwak i sprawdź, jak z każdym uciętym milimetrem beton traci wytrzymałość strukturalną i zdolność do równomiernego grzania.</p>
    </div>

    <div class="rk-min-app">
        <div class="rk-min-controls">
            <div class="rk-min-label-row">
                <div class="rk-min-label">Całkowita grubość jastrychu</div>
                <div class="rk-min-badge" id="rkMinValTotal">7.0 cm</div>
            </div>
            
            <input type="range" class="rk-min-slider" id="rkMinInpTotal" min="4.0" max="8.0" step="0.5" value="7.0" oninput="rkRunMinCalc()">
            
            <div style="display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; color: var(--rk-min-gray); margin-bottom: 20px;">
                <span>4.0 cm (Błąd)</span>
                <span>8.0 cm (Zapas)</span>
            </div>

            <div class="rk-min-stats">
                <span>Rzeczywista otulina nad rurą:</span>
                <span class="rk-min-stats-val" id="rkMinValCover">4.0 cm</span>
            </div>
        </div>

        <div class="rk-min-display">
            
            <div class="rk-min-card" id="rkCardStruct">
                <div class="rk-min-icon" id="rkIconStruct">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <div class="rk-min-card-content">
                    <div class="rk-min-card-title">Wytrzymałość Konstrukcyjna</div>
                    <div class="rk-min-card-status" id="rkStatStruct">Posadzka stabilna</div>
                </div>
            </div>

            <div class="rk-min-card" id="rkCardTherm">
                <div class="rk-min-icon" id="rkIconTherm">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-min-card-content">
                    <div class="rk-min-card-title">Rozkład Temperatur</div>
                    <div class="rk-min-card-status" id="rkStatTherm">Równomierne grzanie</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-min-content">
        <h3>Jaka jest minimalna grubość wylewki?</h3>
        <p>Minimalna całkowita grubość wylewki betonowej na ogrzewanie podłogowe wynosi <strong>6,0 cm</strong>, co przy zastosowaniu rury o średnicy 16 mm daje dokładnie <strong>3,0 cm czystej otuliny betonowej</strong> nad górną krawędzią rury grzewczej. Wymóg ten jest zgodny z normą PN-EN 13813 dla jastrychów cementowych o minimalnej klasie CT-C20-F4.</p>
        
        <p>Poniżej tej granicy wytrzymałość konstrukcyjna podłogi pływającej zostaje drastycznie naruszona. Beton o grubości mniejszej niż 30 mm nad rurą nie posiada odpowiedniej strefy do rozkładu naprężeń punktowych. Wytrzymałość na zginanie na poziomie 4 MPa (klasa F4) jest niewystarczająca, gdy siła uderzeniowa działa na tak cienki rdzeń. Przekroczenie stanów granicznych nośności skutkuje natychmiastowo:</p>
        
        <ul class="rk-min-list">
            <li>Głębokimi spękaniami powierzchniowymi wzdłuż tras rur,</li>
            <li>Odspajaniem się i pękaniem płytek ceramicznych,</li>
            <li>Powstaniem niebezpiecznego efektu klawiszowania płyt na stykach dylatacyjnych.</li>
        </ul>

        <div class="rk-min-alert">
            <strong>Zjawisko „zebry termicznej”</strong><br>
            Zbyt cienka wylewka generuje dodatkowy, bolesny w skutkach problem. Ciepło nie zdąży rozejść się bocznie w cienkiej masie betonu, zanim dotrze do powierzchni. W efekcie inwestor odczuwa na stopach naprzemienne pasy gorąca i zimna, co całkowicie rujnuje komfort i uniemożliwia prawidłową pracę samoregulacji.
        </div>
    </div>
</div>

<script>
    function rkRunMinCalc() {
        var inpTotal = document.getElementById('rkMinInpTotal');
        if(!inpTotal) return;

        var totalCm = parseFloat(inpTotal.value);
        var badgeTotal = document.getElementById('rkMinValTotal');
        
        // Zależność między grubością całkowitą a otuliną
        // (total - 3.0 bazowo)
        var coverCm = totalCm - 3.0;

        badgeTotal.innerText = totalCm.toFixed(1) + " cm";
        document.getElementById('rkMinValCover').innerText = coverCm.toFixed(1) + " cm";

        // Referencje do kart i ikon
        var cStruct = document.getElementById('rkCardStruct');
        var cTherm = document.getElementById('rkCardTherm');
        var iStruct = document.getElementById('rkIconStruct');
        var iTherm = document.getElementById('rkIconTherm');
        var sStruct = document.getElementById('rkStatStruct');
        var sTherm = document.getElementById('rkStatTherm');

        // Logika bez uzycia operatora "&&"
        if (totalCm >= 6.0) {
            // Stan bezpieczny (Normatywny)
            badgeTotal.style.backgroundColor = "var(--rk-min-blue)";
            
            cStruct.style.borderColor = "var(--rk-min-green)";
            cStruct.style.backgroundColor = "#ffffff";
            iStruct.style.backgroundColor = "var(--rk-min-green-light)";
            iStruct.style.color = "var(--rk-min-green)";
            sStruct.innerText = "Posadzka stabilna";
            sStruct.style.color = "var(--rk-min-green)";

            cTherm.style.borderColor = "var(--rk-min-blue)";
            cTherm.style.backgroundColor = "#ffffff";
            iTherm.style.backgroundColor = "var(--rk-min-blue-light)";
            iTherm.style.color = "var(--rk-min-blue)";
            sTherm.innerText = "Równomierne grzanie";
            sTherm.style.color = "var(--rk-min-blue)";
            
        } else {
            if (totalCm > 5.0) {
                // Stan ostrzegawczy
                badgeTotal.style.backgroundColor = "var(--rk-min-orange)";
                
                cStruct.style.borderColor = "var(--rk-min-orange)";
                cStruct.style.backgroundColor = "var(--rk-min-orange-light)";
                iStruct.style.backgroundColor = "#ffffff";
                iStruct.style.color = "var(--rk-min-orange)";
                sStruct.innerText = "Ryzyko mikropęknięć";
                sStruct.style.color = "var(--rk-min-orange)";

                cTherm.style.borderColor = "var(--rk-min-orange)";
                cTherm.style.backgroundColor = "var(--rk-min-orange-light)";
                iTherm.style.backgroundColor = "#ffffff";
                iTherm.style.color = "var(--rk-min-orange)";
                sTherm.innerText = "Zauważalna zebra termiczna";
                sTherm.style.color = "var(--rk-min-orange)";

            } else {
                // Stan krytyczny (Poniżej 5.0 cm całkowitej)
                badgeTotal.style.backgroundColor = "var(--rk-min-red)";
                
                cStruct.style.borderColor = "var(--rk-min-red)";
                cStruct.style.backgroundColor = "var(--rk-min-red-light)";
                iStruct.style.backgroundColor = "#ffffff";
                iStruct.style.color = "var(--rk-min-red)";
                sStruct.innerText = "KRYTYCZNE PĘKNIĘCIA";
                sStruct.style.color = "var(--rk-min-red)";

                cTherm.style.borderColor = "var(--rk-min-red)";
                cTherm.style.backgroundColor = "var(--rk-min-red-light)";
                iTherm.style.backgroundColor = "#ffffff";
                iTherm.style.color = "var(--rk-min-red)";
                sTherm.innerText = "EKSTREMALNA ZEBRA!";
                sTherm.style.color = "var(--rk-min-red)";
            }
        }
    }

    function rkInitMinApp() {
        rkRunMinCalc();
    }

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



<style>
:root {
    --rk-max-dark: #0f172a;
    --rk-max-panel: #1e293b;
    --rk-max-blue: #0284c7;
    --rk-max-blue-light: #e0f2fe;
    --rk-max-red: #dc2626;
    --rk-max-red-light: #fef2f2;
    --rk-max-orange: #ea580c;
    --rk-max-orange-light: #ffedd5;
    --rk-max-green: #16a34a;
    --rk-max-gray: #64748b;
    --rk-max-bg: #ffffff;
    --rk-max-border: #e2e8f0;
}

.rk-max-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-max-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(220, 38, 38, 0.1);
    border: 1px solid var(--rk-max-border);
    overflow: hidden;
}

/* Header */
.rk-max-header {
    background: linear-gradient(135deg, var(--rk-max-dark) 0%, var(--rk-max-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-max-header::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-max-red);
    filter: blur(90px);
    opacity: 0.15;
}

.rk-max-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
}

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

/* App Layout */
.rk-max-app {
    display: grid;
    grid-template-columns: 1fr;
    background: var(--rk-max-bg);
    border-bottom: 1px solid var(--rk-max-border);
}

/* Controls - Slider Area */
.rk-max-controls {
    padding: 35px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-max-border);
}

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

.rk-max-label-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-max-dark);
}

.rk-max-val-badge {
    background: var(--rk-max-blue);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    transition: background-color 0.3s;
}

/* Custom Range Slider */
.rk-max-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 10px;
    background: var(--rk-max-border);
    border-radius: 5px;
    outline: none;
    margin: 10px 0 20px 0;
}

.rk-max-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-max-blue);
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s, background-color 0.3s;
    border: 3px solid #ffffff;
}

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

/* Results Grid */
.rk-max-results {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--rk-max-border);
}

.rk-max-card {
    background: #ffffff;
    padding: 30px 20px;
    text-align: center;
    transition: background-color 0.3s;
}

.rk-max-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 15px auto;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-max-blue-light);
    color: var(--rk-max-blue);
    transition: all 0.3s;
}

.rk-max-card-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-max-gray);
    margin-bottom: 10px;
}

.rk-max-card-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-max-dark);
    line-height: 1.1;
    margin-bottom: 5px;
    transition: color 0.3s;
}

.rk-max-card-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-max-gray);
}

/* Explanation Content */
.rk-max-content {
    padding: 40px 50px;
}

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

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

.rk-max-warning-box {
    background: var(--rk-max-red-light);
    border-left: 4px solid var(--rk-max-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-max-warning-box h4 {
    color: var(--rk-max-red);
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-max-warning-box ul {
    margin: 0;
    padding-left: 20px;
    color: #7f1d1d;
    font-size: 15px;
    line-height: 1.6;
}

.rk-max-warning-box li {
    margin-bottom: 8px;
}
.rk-max-warning-box li:last-child {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .rk-max-header, .rk-max-controls, .rk-max-content { padding: 30px 20px; }
    .rk-max-results { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .rk-max-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-maxgrubosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jaka jest maksymalna grubość jastrychu cementowego przy podłogówce?",
    "description": "Analiza skutków wylania zbyt grubej warstwy betonu. Dowiedz się, dlaczego 10 cm wylewki drastycznie obniża COP pompy ciepła i wydłuża czas nagrzewania.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-maxgrubosc",
    "name": "Wpływ przewymiarowania grubości jastrychu na parametry instalacji",
    "description": "Zbiór danych wykazujący korelację między nadmierną grubością wylewki a spadkiem wydajności pompy ciepła (COP) oraz wzrostem oporu cieplnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna grubość wylewki",
      "spadek COP pompy ciepła",
      "zbyt gruba wylewka na podłogówkę",
      "opór cieplny grubego betonu",
      "czas nagrzewania grubej wylewki"
    ],
    "measurementTechnique": "Analiza oporów termicznych R oraz spadku sprawności pompy ciepła (COP) w funkcji wymuszonego wzrostu temperatury zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny dla 10 cm betonu: R = 0,083 m²K/W",
        "Wydłużenie czasu nagrzewania: do 6-9 godzin",
        "Wzrost wymaganej temperatury zasilania: o 3–5°C",
        "Spadek efektywności (COP): 2,5% na każdy 1°C podbicia zasilania"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-maxgrubosc",
    "name": "Symulator Przewymiarowania Wylewki",
    "description": "Interaktywne narzędzie inżynierskie ukazujące na żywo degradację parametrów instalacji (opór, COP, masa) przy nienormatywnym pogrubianiu jastrychu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-max-wrapper">
    <div class="rk-max-header">
        <h2>Skutki przewymiarowania grubości wylewki</h2>
        <p>Więcej betonu nie oznacza lepiej. Maksymalna technicznie uzasadniona całkowita grubość wylewki cementowej to 8,0 cm. Przesuń suwak i zobacz, jak wylanie "zapasowej" warstwy zabija wydajność Twojej instalacji oraz portfela.</p>
    </div>

    <div class="rk-max-app">
        <div class="rk-max-controls">
            <div class="rk-max-label-row">
                <div class="rk-max-label-title">Projektowana grubość betonu:</div>
                <div class="rk-max-val-badge" id="rkMaxLblThick">7.0 cm</div>
            </div>
            <input type="range" class="rk-max-slider" id="rkMaxInpThick" min="6.5" max="12.0" step="0.5" value="7.0" oninput="rkRunMaxCalc()">
            <div style="display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; color: var(--rk-max-gray); padding: 0 5px;">
                <span>6.5 cm (Norma)</span>
                <span>12.0 cm (Krytyczny Błąd)</span>
            </div>
        </div>

        <div class="rk-max-results">
            
            <div class="rk-max-card" id="rkCardR">
                <div class="rk-max-icon" id="rkIconR">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                </div>
                <div class="rk-max-card-title">Opór (R) samej płyty</div>
                <div class="rk-max-card-val" id="rkValR">0.058</div>
                <div class="rk-max-card-unit">m²K/W</div>
            </div>

            <div class="rk-max-card" id="rkCardTime">
                <div class="rk-max-icon" id="rkIconTime">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-max-card-title">Czas nagrzewania</div>
                <div class="rk-max-card-val" id="rkValTime">4.0</div>
                <div class="rk-max-card-unit">godzin</div>
            </div>

            <div class="rk-max-card" id="rkCardTemp">
                <div class="rk-max-icon" id="rkIconTemp">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                </div>
                <div class="rk-max-card-title">Korekta zasilania</div>
                <div class="rk-max-card-val" id="rkValTemp">+0.0</div>
                <div class="rk-max-card-unit">°C</div>
            </div>

            <div class="rk-max-card" id="rkCardCOP">
                <div class="rk-max-icon" id="rkIconCOP">
                    <svg width="22" height="22" 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>
                </div>
                <div class="rk-max-card-title">Spadek COP Pompy</div>
                <div class="rk-max-card-val" id="rkValCOP">0.0</div>
                <div class="rk-max-card-unit">% (strata)</div>
            </div>

        </div>
    </div>

    <div class="rk-max-content">
        <h3>Jaka jest maksymalna grubość jastrychu?</h3>
        <p>Maksymalna uzasadniona technicznie całkowita grubość wylewki betonowej na ogrzewanie podłogowe wynosi <strong>8,0 cm</strong> (co daje 4,5–5,0 cm otuliny nad rurą), przekraczając wytyczne normy PN-EN 1264-2, która definiuje optymalne parametry oporu cieplnego warstwy akumulacyjnej. Każdy dodatkowy centymetr betonu powyżej tej granicy podnosi masę metra kwadratowego posadzki o 22–24 kg, generując niepotrzebne obciążenie stropu.</p>
        
        <p>Wykonanie wylewki o grubości 10 cm lub 12 cm zamiast projektowych 7 cm to potężny błąd technologiczny, który uderza bezpośrednio w koszty eksploatacji pompy ciepła. Zwiększenie grubości jastrychu z 6,5 cm do 10 cm podnosi opór cieplny samej wylewki z poziomu ok. 0,054 m²K/W do aż 0,083 m²K/W (przy założeniu przewodności betonu na poziomie 1,2 W/(m·K)).</p>

        <div class="rk-max-warning-box">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Konsekwencje technologiczne zbyt grubej warstwy:
            </h4>
            <ul>
                <li><strong>Drastyczne wydłużenie czasu nagrzewania:</strong> Układ potrzebuje od 6 do 9 godzin, aby zareagować na zmianę nastawy, co czyni automatykę pogodową całkowicie bezużyteczną.</li>
                <li><strong>Wymóg podniesienia temperatury zasilania:</strong> Aby przebić się przez grubą warstwę i utrzymać normatywne 26°C na podłodze, należy podnieść temperaturę wody grzewczej o 3–5°C.</li>
                <li><strong>Spadek COP pompy ciepła:</strong> Każdy wzrost temperatury zasilania o 1°C obniża współczynnik efektywności COP o około 2,5%, co bezpośrednio podnosi rachunki za prąd.</li>
            </ul>
        </div>
    </div>
</div>

<script>
    function rkRunMaxCalc() {
        var thickInp = document.getElementById('rkMaxInpThick');
        if(!thickInp) return;

        var thick = parseFloat(thickInp.value);
        var badge = document.getElementById('rkMaxLblThick');
        badge.innerText = thick.toFixed(1) + " cm";

        // Fizyka (baza)
        var lambda = 1.2; 
        var resistance = (thick / 100) / lambda;
        
        // Czas nagrzewania (estymacja: 7cm = ~4h, wykladniczo rosnie)
        var baseTime = 4.0;
        var timeVal = baseTime;
        if (thick > 7.0) {
            timeVal = baseTime + Math.pow((thick - 7.0), 1.3) * 1.5;
        } else {
            timeVal = baseTime - ((7.0 - thick) * 0.5);
        }

        // Konsekwencje dla pompy (Start kary od 7.5cm)
        var tempIncrease = 0.0;
        var copDrop = 0.0;
        
        if (thick > 7.5) {
            // ok 1 stopien wiecej na kazdy 1 cm powyzej 7.5
            tempIncrease = (thick - 7.5) * 1.1; 
            copDrop = tempIncrease * 2.5; 
        }

        // Aktualizacja DOM
        document.getElementById('rkValR').innerText = resistance.toFixed(3);
        document.getElementById('rkValTime').innerText = timeVal.toFixed(1);
        document.getElementById('rkValTemp').innerText = "+" + tempIncrease.toFixed(1);
        document.getElementById('rkValCOP').innerText = "-" + copDrop.toFixed(1);

        // Zmiana stylów w oparciu o stany krytyczne (brak operatora &&)
        var stColor = "var(--rk-max-blue)";
        var stBg = "var(--rk-max-blue-light)";
        
        if (thick <= 8.0) {
            stColor = "var(--rk-max-green)";
            stBg = "#dcfce7";
            badge.style.backgroundColor = "var(--rk-max-green)";
        } else {
            if (thick <= 9.5) {
                stColor = "var(--rk-max-orange)";
                stBg = "var(--rk-max-orange-light)";
                badge.style.backgroundColor = "var(--rk-max-orange)";
            } else {
                stColor = "var(--rk-max-red)";
                stBg = "var(--rk-max-red-light)";
                badge.style.backgroundColor = "var(--rk-max-red)";
            }
        }

        // Aplikowanie stylów do ikon i wartości
        var cards = ['rkCardR', 'rkCardTime', 'rkCardTemp', 'rkCardCOP'];
        var icons = ['rkIconR', 'rkIconTime', 'rkIconTemp', 'rkIconCOP'];
        var vals = ['rkValR', 'rkValTime', 'rkValTemp', 'rkValCOP'];

        for(var i=0; i < cards.length; i++) {
            document.getElementById(icons[i]).style.backgroundColor = stBg;
            document.getElementById(icons[i]).style.color = stColor;
            
            // Kolorujemy tylko krytyczne wartości na czerwono by zwrocic uwage
            if (thick > 8.0) {
                document.getElementById(vals[i]).style.color = stColor;
            } else {
                document.getElementById(vals[i]).style.color = "var(--rk-max-dark)";
            }
        }
    }

    function rkInitMaxApp() {
        rkRunMaxCalc();
    }

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



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

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

/* Header */
.rk-fin-header {
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, var(--rk-fin-panel) 100%);
    padding: 35px 45px;
    color: #ffffff;
    text-align: center;
}

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

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

/* Interactive App */
.rk-fin-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-fin-border);
}

/* Controls */
.rk-fin-controls {
    padding: 35px 45px;
    background: #ffffff;
    border-right: 1px solid var(--rk-fin-border);
}

.rk-fin-group {
    margin-bottom: 25px;
}
.rk-fin-group:last-child {
    margin-bottom: 0;
}

.rk-fin-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-fin-dark);
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-fin-badge {
    background: var(--rk-fin-blue-light);
    color: var(--rk-fin-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
}

/* Buttons */
.rk-fin-btn-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}

.rk-fin-btn {
    padding: 12px 5px;
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.rk-fin-btn span {
    font-size: 11px;
    opacity: 0.7;
    font-weight: 600;
}

.rk-fin-btn:hover {
    border-color: var(--rk-fin-blue);
    color: var(--rk-fin-blue);
}

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

/* Slider */
.rk-fin-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: var(--rk-fin-border);
    border-radius: 4px;
    outline: none;
    margin-top: 10px;
}

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

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

/* Display */
.rk-fin-display {
    padding: 35px 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-fin-gauge-box {
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    transition: border-color 0.3s;
}

.rk-fin-gauge-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-fin-gray);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-fin-total-val {
    font-size: 48px;
    font-weight: 900;
    color: var(--rk-fin-dark);
    line-height: 1;
    margin-bottom: 5px;
    font-variant-numeric: tabular-nums;
}

.rk-fin-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    margin-bottom: 25px;
}

/* Progress Bar */
.rk-fin-bar-container {
    width: 100%;
    height: 16px;
    background: #e2e8f0;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    margin-bottom: 15px;
}

.rk-fin-bar-fill {
    height: 100%;
    width: 0%;
    background: var(--rk-fin-green);
    border-radius: 8px;
    transition: width 0.4s ease, background-color 0.4s ease;
}

.rk-fin-bar-limit {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 75%; /* 0.15 limit out of 0.20 max */
    width: 2px;
    background: var(--rk-fin-red);
    z-index: 2;
}

.rk-fin-limit-label {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-fin-red);
    text-align: right;
    padding-right: 25%; /* align with 75% limit */
}

.rk-fin-status {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 800;
    padding: 8px 15px;
    border-radius: 8px;
    display: inline-block;
}

/* Content */
.rk-fin-content {
    padding: 35px 45px;
}

.rk-fin-content h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-dark);
    margin: 0 0 12px 0;
}

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

.rk-math-box {
    background: var(--rk-fin-blue-light);
    border-left: 4px solid var(--rk-fin-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-family: monospace;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-fin-dark);
    margin: 20px 0;
}

@media (max-width: 768px) {
    .rk-fin-app { grid-template-columns: 1fr; }
    .rk-fin-controls { border-right: none; border-bottom: 1px solid var(--rk-fin-border); }
    .rk-fin-header, .rk-fin-controls, .rk-fin-display, .rk-fin-content { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-wykonczenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak rodzaj wykończenia posadzki modyfikuje grubość wylewki betonowej?",
    "description": "Analiza wpływu oporu cieplnego materiałów wykończeniowych (płytki, panele, drewno) na wymaganą grubość jastrychu w systemach płaszczyznowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wykonczenie",
    "name": "Zestawienie oporów cieplnych dla materiałów wykończeniowych posadzek",
    "description": "Baza danych określająca wartości współczynnika R dla popularnych okładzin (płytki gresowe, panele z podkładem PUM, deski warstwowe).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny paneli podłogowych",
      "ogrzewanie podłogowe a panele laminowane",
      "wylewka betonowa pod płytki",
      "grubość wylewki pod deskę drewnianą",
      "norma PN-EN 1264 opór posadzki"
    ],
    "measurementTechnique": "Algorytm sumujący opory cieplne poszczególnych warstw (Rw + Ro) w celu weryfikacji zgodności z normatywnym limitem 0,15 m²K/W.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: R ≈ 0,01 m²K/W",
        "Panele laminowane z podkładem PUM: R ≈ 0,07 m²K/W",
        "Deska warstwowa/lita: R ≥ 0,10 m²K/W",
        "Limit całkowity (wylewka + okładzina): max 0,15 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wykonczenie",
    "name": "Bilansator Oporu Cieplnego Posadzki",
    "description": "Interaktywny kalkulator weryfikujący poprawność doboru grubości jastrychu w relacji do wybranej okładziny podłogowej, bazujący na prawie Fouriera.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-wrapper">
    <div class="rk-fin-header">
        <h2>Jak rodzaj wykończenia modyfikuje grubość wylewki?</h2>
        <p>Wybór materiału na podłogę to nie tylko kwestia estetyki, ale przede wszystkim fizyki. Sprawdź, czy Twoja warstwa betonu w połączeniu z wymarzonym wykończeniem nie przekroczy krytycznej granicy oporu cieplnego.</p>
    </div>

    <div class="rk-fin-app">
        <div class="rk-fin-controls">
            
            <div class="rk-fin-group">
                <div class="rk-fin-label">
                    <span>Okładzina (Wykończenie)</span>
                </div>
                <div class="rk-fin-btn-grid">
                    <button class="rk-fin-btn" id="rkFinBtn1" onclick="rkFinUpdateR(0.01, this)">
                        Płytki / Gres
                        <span>R ≈ 0,01</span>
                    </button>
                    <button class="rk-fin-btn is-active" id="rkFinBtn2" onclick="rkFinUpdateR(0.07, this)">
                        Panele + PUM
                        <span>R ≈ 0,07</span>
                    </button>
                    <button class="rk-fin-btn" id="rkFinBtn3" onclick="rkFinUpdateR(0.12, this)">
                        Gruba Deska
                        <span>R ≥ 0,12</span>
                    </button>
                </div>
            </div>

            <div class="rk-fin-group">
                <div class="rk-fin-label">
                    <span>Grubość wylewki betonowej</span>
                    <span class="rk-fin-badge" id="rkFinThickLbl">7.0 cm</span>
                </div>
                <input type="range" class="rk-fin-slider" id="rkFinThickInp" min="4.5" max="9.0" step="0.5" value="7.0" oninput="rkFinCalculate()">
            </div>

        </div>

        <div class="rk-fin-display">
            <div class="rk-fin-gauge-box" id="rkFinGaugeBox">
                <div class="rk-fin-gauge-title">Łączny opór cieplny (R całkowity)</div>
                <div class="rk-fin-total-val" id="rkFinTotalVal">0.128</div>
                <div class="rk-fin-unit">m²K/W</div>
                
                <div class="rk-fin-bar-container">
                    <div class="rk-fin-bar-limit"></div>
                    <div class="rk-fin-bar-fill" id="rkFinBarFill"></div>
                </div>
                <div class="rk-fin-limit-label">Norma max: 0,15</div>

                <div class="rk-fin-status" id="rkFinStatus">W normie (Wydajny system)</div>
            </div>
        </div>
    </div>

    <div class="rk-fin-content">
        <h3>Fizyka nie wybacza błędów</h3>
        <p>Wybór materiału wykończeniowego narzuca precyzyjną korektę grubości wylewki. Dla materiałów o wysokim oporze termicznym, jak panele laminowane z podkładem czy deski warstwowe (R ≥ 0,10 m²K/W), grubość jastrychu cementowego należy odchudzić do poziomu 5,5–6,5 cm. Z kolei pod doskonale przewodzące płytki ceramiczne (R ≈ 0,01 m²K/W) można bezpiecznie zastosować grubszy rdzeń (7,0–8,0 cm), co pozwala stworzyć stabilny akumulator ciepła dla taryf G12w.</p>
        
        <p>Całkowity opór cieplny nad rurą grzewczą to prosta suma inżynierska. Zgodnie z normą PN-EN 1264, nie może ona przekraczać wartości 0,15 m²K/W.</p>
        
        <div class="rk-math-box">
            R_całkowity = R_wylewka + R_okładzina
        </div>

        <p>Jeśli planujesz montaż paneli laminowanych (10 mm) na podkładzie poliuretanowo-mineralnym, ich łączny opór wynosi zazwyczaj Ro = 0,07 m²K/W. Jeśli wylejesz do tego standardowy beton o grubości 8 cm (Rw = 0,066 m²K/W), całkowity opór wyniesie 0,136 m²K/W. System zadziała, ale zbliża się do niebezpiecznej granicy efektywności. Dla grubszej deski normy zostaną złamane, wymuszając drastyczne podniesienie temperatury zasilania na pompie ciepła.</p>
    </div>
</div>

<script>
    // Unikalne zmienne (prefix rkFin)
    var rkFinCurrentR = 0.07; // Domyślnie panele

    function rkFinUpdateR(rValue, btnObj) {
        rkFinCurrentR = rValue;
        
        var btns = document.querySelectorAll('#rkFinBtn1, #rkFinBtn2, #rkFinBtn3');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkFinCalculate();
    }

    function rkFinCalculate() {
        var thickInp = document.getElementById('rkFinThickInp');
        if(!thickInp) return;

        var thickCm = parseFloat(thickInp.value);
        document.getElementById('rkFinThickLbl').innerText = thickCm.toFixed(1) + " cm";

        // Obliczenie oporu wylewki (Rw)
        // d / lambda. Zakładamy standardowy beton przewodność ok 1.2
        var thickMeters = thickCm / 100;
        var rWylewki = thickMeters / 1.2; 
        
        // Obliczenie oporu całkowitego
        var rTotal = rWylewki + rkFinCurrentR;
        
        document.getElementById('rkFinTotalVal').innerText = rTotal.toFixed(3);

        // Aktualizacja paska (skala do 0.20 m2K/W)
        var maxScale = 0.20;
        var fillPercent = (rTotal / maxScale) * 100;
        if(fillPercent > 100) { fillPercent = 100; }
        
        var barFill = document.getElementById('rkFinBarFill');
        barFill.style.width = fillPercent + "%";

        // Statusy (bez &&)
        var statusEl = document.getElementById('rkFinStatus');
        var gaugeBox = document.getElementById('rkFinGaugeBox');

        if (rTotal <= 0.10) {
            barFill.style.backgroundColor = "var(--rk-fin-green)";
            gaugeBox.style.borderColor = "var(--rk-fin-green)";
            statusEl.innerText = "System wysoce efektywny";
            statusEl.style.color = "var(--rk-fin-green)";
            statusEl.style.backgroundColor = "#ecfdf5";
        } else {
            if (rTotal <= 0.15) {
                barFill.style.backgroundColor = "var(--rk-fin-blue)";
                gaugeBox.style.borderColor = "var(--rk-fin-blue)";
                statusEl.innerText = "W normie (Wydajny system)";
                statusEl.style.color = "var(--rk-fin-blue)";
                statusEl.style.backgroundColor = "var(--rk-fin-blue-light)";
            } else {
                barFill.style.backgroundColor = "var(--rk-fin-red)";
                gaugeBox.style.borderColor = "var(--rk-fin-red)";
                statusEl.innerText = "BŁĄD! Przekroczenie normy (0.15)";
                statusEl.style.color = "var(--rk-fin-red)";
                statusEl.style.backgroundColor = "var(--rk-fin-red-light)";
            }
        }
    }

    // Bezpieczne inicjowanie omijające async/defer cache
    function rkInitFinApp() {
        rkFinCalculate();
    }

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



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

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

/* Header Section */
.rk-comp-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

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

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

.rk-comp-header a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tab Selector */
.rk-comp-selector {
    display: flex;
    padding: 20px 50px;
    background: var(--rk-comp-gray-light);
    border-bottom: 1px solid var(--rk-comp-border);
    gap: 15px;
    justify-content: center;
}

.rk-mat-btn {
    flex: 1;
    max-width: 250px;
    padding: 18px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 14px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-mat-btn:hover {
    border-color: var(--rk-comp-blue);
    background: var(--rk-comp-blue-light);
}

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

.rk-mat-btn-sub {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Results Grid */
.rk-comp-grid {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    background: #ffffff;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-data-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px -8px rgba(0,0,0,0.08);
    border-color: #cbd5e1;
}

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

.rk-data-content {
    flex: 1;
}

.rk-data-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-comp-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-data-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 5px;
    line-height: 1.3;
}

.rk-data-sub {
    font-size: 14px;
    color: var(--rk-comp-gray);
    line-height: 1.5;
}

/* Full Width Card */
.rk-card-full {
    grid-column: 1 / -1;
    background: var(--rk-comp-gray-light);
}

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-selector, .rk-comp-grid { padding: 30px 20px; }
    .rk-comp-selector { flex-direction: column; gap: 10px; }
    .rk-mat-btn { max-width: 100%; width: 100%; flex-direction: row; justify-content: center; padding: 15px; }
    .rk-mat-btn-sub { display: none; } /* Hide subtitle on mobile to save space */
    .rk-comp-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-card-full { grid-column: 1; }
    .rk-data-value { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-komparator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Parametry techniczne wylewek – jastrych cementowy vs wylewka anhydrytowa",
    "description": "Zestawienie kluczowych parametrów fizycznych i konstrukcyjnych wylewek: przewodność cieplna, wytrzymałość, grubość i czasy schnięcia według PN-EN 13813.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-komparator",
    "name": "Zestawienie parametrów fizycznych jastrychów grzewczych",
    "description": "Baza danych właściwości termodynamicznych i mechanicznych wylewek (cement vs anhydryt) wykorzystywana do projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa parametry",
      "jastrych cementowy przewodność cieplna",
      "wylewka cementowa z plastyfikatorem",
      "gęstość betonu na ogrzewanie podłogowe",
      "czas schnięcia wylewki anhydrytowej"
    ],
    "measurementTechnique": "Porównanie właściwości na podstawie europejskiej normy badawczej PN-EN 13813 (Materiały podkładów podłogowych).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przewodność (Lambda): Beton 1.2 W/(m·K) vs Anhydryt 1.8 W/(m·K)",
        "Grubość minimalna otuliny: od 2.0 cm do 3.5 cm",
        "Masa jednostkowa: od 90 kg/m² do 154 kg/m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-komparator",
    "name": "Interaktywny Komparator Wylewek Grzewczych",
    "description": "Moduł aplikacyjny wyświetlający dynamicznie zmieniające się parametry fizykochemiczne w zależności od wybranego rodzaju podkładu podłogowego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-wrapper">
    <div class="rk-comp-header">
        <h2>Parametry techniczne wylewek</h2>
        <p>Decyzja o wyborze wylewki definiuje pracę całej instalacji. Porównaj kluczowe właściwości fizyczne i konstrukcyjne dla systemów pracujących w oparciu o normę <strong>PN-EN 13813</strong>. Pamiętaj, że wpływa to bezpośrednio na to, <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
    </div>

    <div class="rk-comp-selector">
        <button class="rk-mat-btn" id="btnMat1" onclick="rkUpdateComp(1)">
            <span>Zwykły Beton</span>
            <span class="rk-mat-btn-sub">Standardowy Jastrych</span>
        </button>
        <button class="rk-mat-btn is-active" id="btnMat2" onclick="rkUpdateComp(2)">
            <span>Beton + Chemia</span>
            <span class="rk-mat-btn-sub">Z Plastyfikatorem</span>
        </button>
        <button class="rk-mat-btn" id="btnMat3" onclick="rkUpdateComp(3)">
            <span>Anhydryt</span>
            <span class="rk-mat-btn-sub">Masa Samopoziomująca</span>
        </button>
    </div>

    <div class="rk-comp-grid">
        
        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Przewodność Cieplna (λ)</div>
                <div class="rk-data-value" id="valLambda">1,45 W/(m·K)</div>
                <div class="rk-data-sub" id="descLambda">Bardzo dobre oddawanie energii z rur.</div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Grubość optymalna</div>
                <div class="rk-data-value" id="valThick">6,0 – 7,0 cm</div>
                <div class="rk-data-sub" id="descThick">Minimalna otulina nad rurą: <strong>3,0 cm</strong></div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Wytrzymałość (Ścisk/Zginanie)</div>
                <div class="rk-data-value" id="valStrength">C25 / F5</div>
                <div class="rk-data-sub" id="descStrength">Podwyższona klasa dzięki uplastycznieniu.</div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Masa posadzki (na 1 m²)</div>
                <div class="rk-data-value" id="valMass">138 kg</div>
                <div class="rk-data-sub" id="descMass">Gęstość: 2200 - 2300 kg/m³</div>
            </div>
        </div>

        <div class="rk-data-card rk-card-full">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Technologia i Wiązanie</div>
                <div class="rk-data-value" id="valTech">Dylatacje do 40 m² | Schnięcie 28 dni</div>
                <div class="rk-data-sub" id="descTech">Wymaga regularnych nacięć pośrednich. Podwyższona odporność na wilgoć w systemie mokrym.</div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkUpdateComp(matId) {
        // Zmiana klas przycisków (bezpieczne odświeżanie bez &&)
        var btn1 = document.getElementById('btnMat1');
        var btn2 = document.getElementById('btnMat2');
        var btn3 = document.getElementById('btnMat3');
        
        btn1.classList.remove('is-active');
        btn2.classList.remove('is-active');
        btn3.classList.remove('is-active');

        var vLambda = document.getElementById('valLambda');
        var dLambda = document.getElementById('descLambda');
        var vThick = document.getElementById('valThick');
        var dThick = document.getElementById('descThick');
        var vStr = document.getElementById('valStrength');
        var dStr = document.getElementById('descStrength');
        var vMass = document.getElementById('valMass');
        var dMass = document.getElementById('descMass');
        var vTech = document.getElementById('valTech');
        var dTech = document.getElementById('descTech');

        if (matId === 1) {
            btn1.classList.add('is-active');
            
            vLambda.innerText = "1,20 W/(m·K)";
            dLambda.innerText = "Niska przewodność. Działa jako izolator.";
            
            vThick.innerText = "7,0 – 8,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>3,5 cm</strong>";
            
            vStr.innerText = "C20 / F4";
            dStr.innerText = "Podstawowa klasa wytrzymałości na ściskanie.";
            
            vMass.innerText = "154 kg";
            dMass.innerText = "Gęstość: 2100 - 2200 kg/m³ (przy 7 cm)";
            
            vTech.innerText = "Dylatacje do 36 m² | Schnięcie 28 dni";
            dTech.innerText = "Maksymalne pole bez nacięć to 6x6 m. Tradycyjny proces wiązania cementu.";
        }
        
        if (matId === 2) {
            btn2.classList.add('is-active');
            
            vLambda.innerText = "1,45 W/(m·K)";
            dLambda.innerText = "Bardzo dobre oddawanie energii z rur.";
            
            vThick.innerText = "6,0 – 7,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>3,0 cm</strong>";
            
            vStr.innerText = "C25 / F5";
            dStr.innerText = "Podwyższona klasa dzięki uplastycznieniu.";
            
            vMass.innerText = "138 kg";
            dMass.innerText = "Gęstość: 2200 - 2300 kg/m³ (przy 6 cm)";
            
            vTech.innerText = "Dylatacje do 40 m² | Schnięcie 28 dni";
            dTech.innerHTML = "Wymaga regularnych nacięć pośrednich. Podwyższona odporność na wilgoć w systemie mokrym.";
        }

        if (matId === 3) {
            btn3.classList.add('is-active');
            
            vLambda.innerText = "1,80 W/(m·K)";
            dLambda.innerText = "Doskonała przewodność termiczna układu.";
            
            vThick.innerText = "4,0 – 5,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>2,0 cm</strong>";
            
            vStr.innerText = "C30 / F6";
            dStr.innerText = "Wysoka odporność na obciążenia zginające.";
            
            vMass.innerText = "90 kg";
            dMass.innerText = "Gęstość: 2000 - 2100 kg/m³ (przy 4.5 cm)";
            
            vTech.innerText = "Pola do 300 m² | Schnięcie 7 - 14 dni";
            dTech.innerHTML = "Możliwość wylewania ogromnych powierzchni bez dylatacji pośrednich. Nie zalecane do stref mokrych.";
        }
    }
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #64748b;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-accent: #f59e0b;
}

.rk-calc-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.2);
    overflow: hidden;
}

/* Header */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, var(--rk-calc-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
}

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

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

/* Interactive Dashboard App */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-calc-light);
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-calc-border);
}

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

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

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

.rk-calc-val-badge {
    background: var(--rk-calc-blue);
    color: #ffffff;
    padding: 2px 10px;
    border-radius: 6px;
    font-size: 14px;
}

/* Sliders */
.rk-calc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    margin-bottom: 10px;
}

.rk-calc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(14, 165, 233, 0.4);
    transition: transform 0.1s;
}

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

/* Toggle Buttons */
.rk-calc-btn-row {
    display: flex;
    gap: 10px;
}

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

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

.rk-calc-btn.is-active {
    background: var(--rk-calc-blue);
    border-color: var(--rk-calc-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.3);
}

/* Results Display */
.rk-calc-results {
    background: #ffffff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.rk-result-box {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed var(--rk-calc-border);
}

.rk-result-box:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-calc-gray);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

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

.rk-status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    margin-top: 10px;
}

.status-ok { background: var(--rk-calc-green); color: #ffffff; }
.status-bad { background: var(--rk-calc-red); color: #ffffff; }

/* Explanatory Content */
.rk-calc-content {
    padding: 40px 50px;
}

.rk-calc-content h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
    padding-left: 15px;
    border-left: 4px solid var(--rk-calc-blue);
}

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

.rk-math-block {
    background: var(--rk-calc-light);
    border: 1px solid var(--rk-calc-border);
    padding: 20px;
    border-radius: 12px;
    font-family: monospace;
    font-size: 16px;
    color: var(--rk-calc-dark);
    margin-bottom: 25px;
    text-align: center;
    font-weight: 700;
}

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

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

/* Tags */
.rk-calc-tags {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
}

/* CTA */
.rk-calc-cta {
    padding: 45px 50px;
    background: var(--rk-calc-dark);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-calc-cta::before {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    background: var(--rk-calc-blue);
    filter: blur(100px);
    opacity: 0.3;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
}

.rk-calc-cta h4 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
}

.rk-calc-cta p {
    font-size: 16px;
    color: #94a3b8;
    max-width: 650px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
    position: relative;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-calc-accent);
    color: var(--rk-calc-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(245, 158, 11, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-btn-cta:hover {
    transform: translateY(-5px);
    background: #fbbf24;
    box-shadow: 0 15px 35px rgba(245, 158, 11, 0.5);
}

@media (max-width: 768px) {
    .rk-calc-app { grid-template-columns: 1fr; }
    .rk-calc-header, .rk-calc-controls, .rk-calc-results, .rk-calc-content, .rk-calc-tags, .rk-calc-cta { padding: 30px 20px; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-calc-btn-row { flex-direction: column; }
    .rk-calc-btn { width: 100%; }
    .rk-result-value { font-size: 30px; }
    .rk-btn-cta { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak obliczyć opór cieplny i masę wylewki? Algorytm kalkulatora krok po kroku",
    "description": "Interaktywny algorytm oparty na prawie Fouriera. Oblicz na żywo opór cieplny jastrychu, wpływ paneli i całkowitą masę betonu na stropie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-algorytm",
    "name": "Wzory i Parametry Termodynamiczne Posadzek Grzewczych",
    "description": "Zestawienie współczynników Lambda, gęstości betonu oraz dopuszczalnych oporów cieplnych okładzin podłogowych według norm budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć opór cieplny wylewki",
      "łączny opór cieplny ogrzewania podłogowego",
      "kalkulator wagi wylewki betonowej",
      "norma PN-EN 1264 opór cieplny",
      "przewodność cieplna betonu z plastyfikatorem"
    ],
    "measurementTechnique": "Obliczenia oparte na prawie przewodzenia ciepła Fouriera (R = d / lambda) oraz badaniu nośności stropów (M = V * rho).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gęstość objętościowa betonu: 2250 kg/m³",
        "Dopuszczalny całkowity opór posadzki: max 0,15 m²K/W",
        "Opór cieplny paneli z podkładem: ~0,06 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-algorytm",
    "name": "Kalkulator Oporu Cieplnego i Masy Jastrychu (Live)",
    "description": "Narzędzie inżynierskie online służące do szybkiej weryfikacji warunków brzegowych instalacji płaszczyznowej (opór R oraz masa M).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper">
    <div class="rk-calc-header">
        <h2>Jak obliczyć opór cieplny i masę wylewki?</h2>
        <p>Prawo Fouriera nie przyjmuje wymówek. Zanim wylejesz posadzkę, przetestuj w naszym symulatorze, jak każdy centymetr betonu i rodzaj wykończenia wpływają na wydajność Twojego ogrzewania oraz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" style="color:var(--rk-calc-blue);">parametry całej instalacji</a>.</p>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Grubość wylewki (d)</span>
                    <span class="rk-calc-val-badge" id="lblThick">6.5 cm</span>
                </div>
                <input type="range" class="rk-calc-slider" id="inpThick" min="4" max="10" step="0.5" value="6.5" oninput="rkRunCalc()">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Powierzchnia salonu (A)</span>
                    <span class="rk-calc-val-badge" id="lblArea">50 m²</span>
                </div>
                <input type="range" class="rk-calc-slider" id="inpArea" min="10" max="150" step="5" value="50" oninput="rkRunCalc()">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label"><span>Rodzaj Mieszanki (λ)</span></div>
                <div class="rk-calc-btn-row">
                    <button class="rk-calc-btn" id="btnMat1" onclick="rkSetMat(1.2, this)">Beton Zwykły</button>
                    <button class="rk-calc-btn is-active" id="btnMat2" onclick="rkSetMat(1.45, this)">Z plastyfikatorem</button>
                    <button class="rk-calc-btn" id="btnMat3" onclick="rkSetMat(1.8, this)">Anhydryt</button>
                </div>
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label"><span>Wykończenie Podłogi (R_okł)</span></div>
                <div class="rk-calc-btn-row">
                    <button class="rk-calc-btn" id="btnFin1" onclick="rkSetFin(0.01, this)">Płytki</button>
                    <button class="rk-calc-btn is-active" id="btnFin2" onclick="rkSetFin(0.06, this)">Panele</button>
                    <button class="rk-calc-btn" id="btnFin3" onclick="rkSetFin(0.12, this)">Gruba Deska</button>
                </div>
            </div>
            
        </div>

        <div class="rk-calc-results">
            
            <div class="rk-result-box">
                <div class="rk-result-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 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Łączny Opór Cieplny
                </div>
                <div class="rk-result-value" id="resTotalR">0.105</div>
                <div class="rk-result-unit">m²K/W</div>
                <div class="rk-status-indicator status-ok" id="resStatus">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Zgodne z PN-EN 1264
                </div>
            </div>

            <div class="rk-result-box">
                <div class="rk-result-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                    Całkowita Masa Jastrychu
                </div>
                <div class="rk-result-value" id="resMass">7.31</div>
                <div class="rk-result-unit">Ton uwięzionych w betonie</div>
            </div>

        </div>
    </div>

    <div class="rk-calc-content">
        <h3>Krok 1: Obliczenie oporu cieplnego samej wylewki (Rw)</h3>
        <p>Dzielimy grubość warstwy (w metrach) przez współczynnik przewodzenia ciepła wybranej mieszanki. Jest to podstawowy inżynierski parametr decydujący o <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">efektywności podłogówki</a>.</p>
        <div class="rk-math-block">
            Rw = d / lambda
        </div>

        <h3>Krok 2: Weryfikacja normy dla wykończenia (Rcałk)</h3>
        <p>Dodajemy opór wylewki do oporu wybranej okładziny. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Wpływ wykończenia posadzki</a> jest drastyczny – gruba deska potrafi zablokować emisję ciepła. Według normy PN-EN 1264 wynik łączny nie może przekraczać 0,15 m²K/W.</p>
        <div class="rk-math-block">
            Rcałkowity = Rw + Rokładzina ≤ 0.15 m²K/W
        </div>

        <h3>Krok 3: Obliczenie dociążenia stropu (M)</h3>
        <p>Mnożymy powierzchnię przez grubość i średnią gęstość betonu grzewczego (ok. 2250 kg/m³). To pozwala ocenić ogromną bezwładność termiczną układu, którą musi pokonać kocioł lub pompa ciepła.</p>
    </div>

    <div class="rk-calc-tags">
        <span class="rk-mat-tag"># jak obliczyć opór cieplny wylewki</span>
        <span class="rk-mat-tag"># łączny opór cieplny ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># kalkulator wagi wylewki betonowej</span>
        <span class="rk-mat-tag"># norma PN-EN 1264 opór cieplny</span>
        <span class="rk-mat-tag"># przewodność cieplna betonu z plastyfikatorem</span>
        <span class="rk-mat-tag"># opór cieplny paneli podłogowych</span>
        <span class="rk-mat-tag"># dociążenie stropu wylewką</span>
    </div>

    <div class="rk-calc-cta">
        <h4>Nie ryzykuj, że Twoja podłoga nie odda ciepła</h4>
        <p>Zabawa suwakami to teoria. W praktyce krzyżują się rury, zyski słoneczne i przepływy hydrauliczne. Jeśli chcesz mieć absolutną gwarancję, że rachunki będą niskie, a salon ciepły, powierz to specjalistom ze stajni Projekt-Ogrzewania.pl.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT HYDRAULICZNY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
    // Zmienne globalne stanu
    var currentLambda = 1.45;
    var currentFinR = 0.06;
    var density = 2250; // kg/m3

    function rkSetMat(lambdaVal, btnObj) {
        currentLambda = lambdaVal;
        
        // Aktualizacja UI przycisków (bezpieczna pętla)
        var btns = document.querySelectorAll('#btnMat1, #btnMat2, #btnMat3');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunCalc();
    }

    function rkSetFin(finVal, btnObj) {
        currentFinR = finVal;
        
        // Aktualizacja UI przycisków
        var btns = document.querySelectorAll('#btnFin1, #btnFin2, #btnFin3');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunCalc();
    }

    function rkRunCalc() {
        var thickCm = parseFloat(document.getElementById('inpThick').value);
        var areaM = parseFloat(document.getElementById('inpArea').value);
        
        // Update Labels
        document.getElementById('lblThick').innerText = thickCm.toFixed(1) + " cm";
        document.getElementById('lblArea').innerText = areaM + " m²";

        // Matematyka
        var thickM = thickCm / 100;
        var rWylewki = thickM / currentLambda;
        var rTotal = rWylewki + currentFinR;
        var massKg = areaM * thickM * density;
        var massTon = massKg / 1000;

        // Aktualizacja wyników w DOM
        document.getElementById('resTotalR').innerText = rTotal.toFixed(3);
        document.getElementById('resMass').innerText = massTon.toFixed(2);

        // Status Normy bez użycia &#038;&#038;
        var statusEl = document.getElementById('resStatus');
        if (rTotal <= 0.15) {
            statusEl.className = 'rk-status-indicator status-ok';
            statusEl.innerHTML = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Zgodne z PN-EN 1264';
        } else {
            statusEl.className = 'rk-status-indicator status-bad';
            statusEl.innerHTML = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> Przekroczenie normy!';
        }
    }

    // Inicjalne uruchomienie
    document.addEventListener("DOMContentLoaded", function() {
        rkRunCalc();
    });
</script>



<style>
:root {
    --rk-chem-dark: #0f172a;
    --rk-chem-blue: #0284c7;
    --rk-chem-blue-light: #e0f2fe;
    --rk-chem-green: #10b981;
    --rk-chem-green-light: #dcfce7;
    --rk-chem-red: #ef4444;
    --rk-chem-red-light: #fee2e2;
    --rk-chem-gray: #64748b;
    --rk-chem-border: #cbd5e1;
    --rk-chem-bg: #ffffff;
    --rk-chem-accent: #f59e0b;
}

.rk-chem-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-chem-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid var(--rk-chem-border);
    overflow: hidden;
}

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

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

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

/* Interactive Dashboard */
.rk-chem-dashboard {
    background: #f8fafc;
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-chem-border);
}

.rk-chem-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-chem-toggle-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    background: #ffffff;
    border: 2px solid var(--rk-chem-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

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

.rk-chem-toggle-btn.is-active {
    border-color: var(--rk-chem-green);
    background: var(--rk-chem-green-light);
}

.rk-chem-toggle-info h4 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-chem-dark);
}

.rk-chem-toggle-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-chem-gray);
}

/* Toggle Switch UI */
.rk-switch {
    width: 50px;
    height: 28px;
    background: #cbd5e1;
    border-radius: 14px;
    position: relative;
    transition: background 0.3s;
}

.rk-chem-toggle-btn.is-active .rk-switch { background: var(--rk-chem-green); }

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

.rk-chem-toggle-btn.is-active .rk-switch-knob { transform: translateX(22px); }

/* Visualization Screen */
.rk-chem-screen {
    background: #ffffff;
    border: 1px solid var(--rk-chem-border);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
}

.rk-screen-metrics {
    display: flex;
    justify-content: space-around;
    margin-bottom: 20px;
}

.rk-metric-box {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-metric-label { font-size: 12px; font-weight: 700; color: var(--rk-chem-gray); text-transform: uppercase; }
.rk-metric-value { font-size: 24px; font-weight: 900; color: var(--rk-chem-dark); transition: color 0.3s; }

.rk-visual-slab {
    height: 60px;
    background: #cbd5e1;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    transition: all 0.5s ease;
    border: 3px solid transparent;
}

.rk-slab-crack {
    position: absolute;
    top: 0; bottom: 0; left: 50%;
    width: 4px;
    background: var(--rk-chem-red);
    transform: translateX(-50%) rotate(15deg);
    opacity: 1;
    transition: opacity 0.3s;
}

.rk-slab-bubbles {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(#94a3b8 15%, transparent 16%), radial-gradient(#94a3b8 15%, transparent 16%);
    background-size: 15px 15px;
    background-position: 0 0, 7.5px 7.5px;
    opacity: 1;
    transition: opacity 0.5s;
}

/* Content Breakdown */
.rk-chem-content {
    padding: 40px 50px;
}

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

.rk-chem-content p, .rk-chem-content li {
    font-size: 16px;
    color: var(--rk-chem-gray);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-chem-content ul {
    margin: 0 0 25px 0;
    padding-left: 20px;
}

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

/* Tags */
.rk-chem-tags {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
}

/* CTA */
.rk-chem-cta {
    background: var(--rk-chem-dark);
    padding: 45px 50px;
    text-align: center;
    position: relative;
}

.rk-chem-cta::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, var(--rk-chem-blue), var(--rk-chem-accent));
}

.rk-chem-cta h4 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
}

.rk-chem-cta p {
    color: #94a3b8;
    font-size: 16px;
    max-width: 650px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-chem-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.rk-btn-cta:hover {
    transform: translateY(-5px);
    background: var(--rk-chem-blue);
    color: #ffffff;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.4);
}

@media (max-width: 768px) {
    .rk-chem-header, .rk-chem-dashboard, .rk-chem-content, .rk-chem-tags, .rk-chem-cta { padding: 30px 20px; }
    .rk-chem-controls { grid-template-columns: 1fr; gap: 15px; }
    .rk-screen-metrics { flex-direction: column; gap: 15px; }
    .rk-metric-box { border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; }
    .rk-btn-cta { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-chemia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Dlaczego dylatacje i plastyfikator determinują finalną grubość betonu?",
    "description": "Zrozum mechanikę wylewki. Poznaj fizyczne konsekwencje braku taśm brzegowych i plastyfikatora, które prowadzą do spękań i wysokich oporów cieplnych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-chemia",
    "name": "Parametry fizykochemiczne jastrychu grzewczego",
    "description": "Zestawienie wpływu chemii budowlanej i przerw dylatacyjnych na nośność, rozszerzalność liniową i przewodność cieplną wylewek betonowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dylatacje obwodowe w ogrzewaniu podłogowym",
      "plastyfikator do ogrzewania podłogowego",
      "opór cieplny wylewki betonowej",
      "pęknięcia wylewki na podłogówce",
      "taśma brzegowa do wylewek"
    ],
    "measurementTechnique": "Analiza współczynnika przewodzenia ciepła (lambda) oraz rozszerzalności termicznej betonu na podstawie norm technologicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik rozszerzalności liniowej betonu: 0,01 mm/(m·K)",
        "Lambda betonu bez plastyfikatora: 1,2 W/(m·K)",
        "Wymiary krytyczne pół dylatacyjnych: powyżej 36 m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-chemia",
    "name": "Symulator Wpływu Chemii i Dylatacji na Wylewkę",
    "description": "Interaktywne narzędzie pozwalające symulować zachowanie posadzki w zależności od zastosowanego plastyfikatora i taśm brzegowych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chem-wrapper">
    <div class="rk-chem-header">
        <h2>Dlaczego dylatacje i plastyfikator determinują finalną grubość betonu?</h2>
        <p>Beton podłogowy to nie statyczny fundament, lecz intensywnie pracująca warstwa termodynamiczna. Zobacz, jak brak podstawowej wiedzy o fizyce materiałów prowadzi do nieodwracalnych uszkodzeń jastrychu.</p>
    </div>

    <div class="rk-chem-dashboard">
        <div class="rk-chem-controls">
            <div class="rk-chem-toggle-btn" id="btnPlasticizer" onclick="rkToggleChem('plasticizer')">
                <div class="rk-chem-toggle-info">
                    <h4>Dodatek Plastyfikatora</h4>
                    <p>Zagęszcza strukturę, wypiera powietrze.</p>
                </div>
                <div class="rk-switch"><div class="rk-switch-knob"></div></div>
            </div>

            <div class="rk-chem-toggle-btn" id="btnJoints" onclick="rkToggleChem('joints')">
                <div class="rk-chem-toggle-info">
                    <h4>Taśmy i Dylatacje</h4>
                    <p>Izolacja brzegowa i nacięcia płyty.</p>
                </div>
                <div class="rk-switch"><div class="rk-switch-knob"></div></div>
            </div>
        </div>

        <div class="rk-chem-screen">
            <div class="rk-screen-metrics">
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Min. Grubość</span>
                    <span class="rk-metric-value" id="valThick">7.0 cm</span>
                </div>
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Przewodność (λ)</span>
                    <span class="rk-metric-value" id="valLambda">1.20 W/(m·K)</span>
                </div>
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Status Konstrukcji</span>
                    <span class="rk-metric-value" id="valStatus" style="color: var(--rk-chem-red);">Ryzyko Pęknięć</span>
                </div>
            </div>
            
            <div class="rk-visual-slab" id="visualSlab">
                <div class="rk-slab-bubbles" id="animBubbles"></div>
                <div class="rk-slab-crack" id="animCrack"></div>
            </div>
        </div>
    </div>

    <div class="rk-chem-content">
        <h3>Dylatacje – bezwzględny wymóg technologiczny</h3>
        <p>Brak wykonania szczelin dylatacyjnych przy grubości <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki cementowej</a> 7 cm powoduje niekontrolowane pęknięcia płyty grzewczej już przy pierwszym uruchomieniu ogrzewania (wygrzewaniu jastrychu). Beton rozszerza się liniowo pod wpływem temperatury o około 0,01 mm/(m·K). Płyta grzewcza musi być całkowicie odcięta od konstrukcji budynku. Wymaga to:</p>
        <ul>
            <li><strong>Dylatacji obwodowych:</strong> Wykonanych z taśmy piankowej o grubości minimum 8 mm, ułożonych wzdłuż wszystkich ścian, słupów i futryn. Gwarantuje to <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">prawidłową izolację brzegową</a>.</li>
            <li><strong>Dylatacji pośrednich:</strong> Niezbędnych, gdy powierzchnia jednego pola przekracza 36 m², długość boku jest większa niż 6 m, lub stosunek boków wynosi więcej niż 1:2.</li>
        </ul>

        <h3>Plastyfikator – eliminacja hamulca termicznego</h3>
        <p>Wylewka betonowa bez plastyfikatora zawiera tysiące mikroskopijnych pęcherzyków powietrza. Powietrze to doskonały izolator (λ = 0,025 W/(m·K)). Taki porowaty jastrych podnosi <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">łączny opór cieplny posadzki</a> i działa jak hamulec termiczny.</p>
        <p>Dodanie dedykowanej chemii (plastyfikatora) eliminuje puste przestrzenie, szczelnie oblewa rury grzewcze i podnosi współczynnik przewodzenia ciepła z 1,2 do 1,45 W/(m·K). Zastosowanie profesjonalnego plastyfikatora pozwala inżynierowi bezpiecznie zmniejszyć całkowitą grubość wylewki do 6,0 cm bez utraty jej nośności, dzięki drastycznemu upłynnieniu mieszanki.</p>
    </div>
</div>

<script>
    var isPlasticizerOn = false;
    var isJointsOn = false;

    function rkToggleChem(type) {
        if (type === 'plasticizer') {
            var btnPlast = document.getElementById('btnPlasticizer');
            if (isPlasticizerOn === false) {
                btnPlast.classList.add('is-active');
                isPlasticizerOn = true;
            } else {
                btnPlast.classList.remove('is-active');
                isPlasticizerOn = false;
            }
        }

        if (type === 'joints') {
            var btnJoints = document.getElementById('btnJoints');
            if (isJointsOn === false) {
                btnJoints.classList.add('is-active');
                isJointsOn = true;
            } else {
                btnJoints.classList.remove('is-active');
                isJointsOn = false;
            }
        }

        rkProcessPhysics();
    }

    function rkProcessPhysics() {
        var vThick = document.getElementById('valThick');
        var vLambda = document.getElementById('valLambda');
        var vStatus = document.getElementById('valStatus');
        
        var vSlab = document.getElementById('visualSlab');
        var vBubbles = document.getElementById('animBubbles');
        var vCrack = document.getElementById('animCrack');

        // Bezpieczna logika bez &&
        if (isPlasticizerOn === false) {
            if (isJointsOn === false) {
                // Stan początkowy: Brak chemii, brak dylatacji
                vThick.innerText = "7.0 cm";
                vLambda.innerText = "1.20 W/(m·K)";
                vStatus.innerText = "Ryzyko Pęknięć";
                vStatus.style.color = "var(--rk-chem-red)";
                
                vSlab.style.background = "#cbd5e1";
                vBubbles.style.opacity = "1";
                vCrack.style.opacity = "1";
            } else {
                // Tylko dylatacje
                vThick.innerText = "7.0 cm";
                vLambda.innerText = "1.20 W/(m·K)";
                vStatus.innerText = "Słabe Przewodzenie";
                vStatus.style.color = "var(--rk-chem-accent)";
                
                vSlab.style.background = "#cbd5e1";
                vBubbles.style.opacity = "1";
                vCrack.style.opacity = "0";
            }
        } else {
            if (isJointsOn === false) {
                // Tylko chemia, bez dylatacji
                vThick.innerText = "6.0 cm";
                vLambda.innerText = "1.45 W/(m·K)";
                vStatus.innerText = "Naprężenia Płyty!";
                vStatus.style.color = "var(--rk-chem-red)";
                
                vSlab.style.background = "#94a3b8"; // Ciemniejszy, gładszy beton
                vBubbles.style.opacity = "0";
                vCrack.style.opacity = "1"; // Ciężkie pęknięcia przez brak miejsca na rozszerzanie
            } else {
                // Pełna optymalizacja: chemia + dylatacje
                vThick.innerText = "6.0 cm";
                vLambda.innerText = "1.45 W/(m·K)";
                vStatus.innerText = "Wzorcowa Wylewka";
                vStatus.style.color = "var(--rk-chem-green)";
                
                vSlab.style.background = "#94a3b8";
                vSlab.style.border = "3px solid var(--rk-chem-green)";
                vBubbles.style.opacity = "0";
                vCrack.style.opacity = "0";
            }
        }

        // Reset ramki, jeśli nie jest to stan idealny
        if (isPlasticizerOn === false) {
            vSlab.style.border = "3px solid transparent";
        } else {
            if (isJointsOn === false) {
                vSlab.style.border = "3px solid transparent";
            }
        }
    }
</script>



<style>
:root {
    --rk-heat-dark: #0f172a;
    --rk-heat-panel: #1e293b;
    --rk-heat-blue: #0284c7;
    --rk-heat-blue-light: #e0f2fe;
    --rk-heat-orange: #f97316;
    --rk-heat-orange-light: #ffedd5;
    --rk-heat-red: #ef4444;
    --rk-heat-green: #10b981;
    --rk-heat-gray: #64748b;
    --rk-heat-bg: #ffffff;
    --rk-heat-border: #e2e8f0;
}

.rk-heat-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-heat-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(249, 115, 22, 0.15);
    border: 1px solid var(--rk-heat-border);
    overflow: hidden;
}

/* Header Section */
.rk-heat-header {
    background: linear-gradient(135deg, var(--rk-heat-dark) 0%, var(--rk-heat-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-heat-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-heat-orange);
    filter: blur(80px);
    opacity: 0.2;
}

.rk-heat-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.rk-heat-header p {
    color: #cbd5e1;
    font-size: 16px;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

/* App Interface */
.rk-heat-app {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: #f8fafc;
}

/* Controls */
.rk-heat-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-heat-border);
    background: #ffffff;
}

.rk-heat-group {
    margin-bottom: 30px;
}
.rk-heat-group:last-child {
    margin-bottom: 0;
}

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

.rk-heat-badge {
    background: var(--rk-heat-orange-light);
    color: var(--rk-heat-orange);
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
}

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

.rk-heat-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-heat-orange);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(249, 115, 22, 0.4);
    transition: transform 0.1s;
}

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

/* Buttons */
.rk-heat-btn-grid {
    display: grid;
    gap: 10px;
}

.rk-grid-2 { grid-template-columns: 1fr 1fr; }
.rk-grid-4 { grid-template-columns: repeat(4, 1fr); }

.rk-hbtn {
    padding: 14px 10px;
    background: #ffffff;
    border: 2px solid var(--rk-heat-border);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-heat-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-hbtn:hover {
    border-color: var(--rk-heat-orange);
    color: var(--rk-heat-orange);
}

.rk-hbtn.is-active {
    background: var(--rk-heat-orange);
    border-color: var(--rk-heat-orange);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.3);
}

/* Display / Results */
.rk-heat-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #ffffff;
}

.rk-heat-result-card {
    text-align: center;
    padding: 30px;
    border-radius: 20px;
    background: var(--rk-heat-blue-light);
    border: 2px solid #bae6fd;
    transition: all 0.3s ease;
}

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

.rk-heat-time {
    font-size: 54px;
    font-weight: 900;
    color: var(--rk-heat-dark);
    line-height: 1;
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
}

.rk-heat-unit {
    font-size: 18px;
    color: var(--rk-heat-gray);
    font-weight: 700;
}

.rk-heat-status {
    margin-top: 20px;
    display: inline-block;
    padding: 8px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
}

/* Status Colors */
.status-fast { background: var(--rk-heat-green); color: #ffffff; }
.status-optimal { background: var(--rk-heat-blue); color: #ffffff; }
.status-slow { background: var(--rk-heat-orange); color: #ffffff; }
.status-critical { background: var(--rk-heat-red); color: #ffffff; }

/* Explanation Section */
.rk-heat-info {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-heat-border);
}

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

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

.rk-heat-info a {
    color: var(--rk-heat-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-heat-blue);
}

.rk-heat-info a:hover {
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-heat-app { grid-template-columns: 1fr; }
    .rk-heat-controls { border-right: none; border-bottom: 1px solid var(--rk-heat-border); }
    .rk-heat-header, .rk-heat-controls, .rk-heat-display, .rk-heat-info { padding: 30px 20px; }
    .rk-grid-4 { grid-template-columns: 1fr 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-nagrzewanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czas nagrzewania wylewki podłogowej a rozstaw rur",
    "description": "Zrozum zjawisko bezwładności cieplnej. Interaktywny symulator pozwalający obliczyć czas nagrzewania w zależności od materiału, grubości i rozstawu rur 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://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-nagrzewanie",
    "name": "Korelacja bezwładności cieplnej podłogówki z parametrami jastrychu",
    "description": "Baza danych określająca czas reakcji (nagrzewania) systemu podłogowego w oparciu o zmienne: gęstość ułożenia pętli, rodzaj zaprawy i grubość otuliny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas nagrzewania wylewki betonowej",
      "wpływ rozstawu rur na czas nagrzewania",
      "wylewka anhydrytowa a czas reakcji",
      "bezwładność cieplna podłogówki",
      "grubość jastrychu a nagrzewanie"
    ],
    "measurementTechnique": "Empiryczne algorytmy inżynierskie uwzględniające przenikanie ciepła przez masy akumulacyjne przy stałej temperaturze zasilania z pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ rozstawu rur (5-20 cm) na dynamikę grzania",
        "Krzywa nagrzewania dla betonu vs wylewki anhydrytowej",
        "Identyfikacja stanów krytycznych (np. 9 cm jastrychu przy rozstawie co 20 cm)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-nagrzewanie",
    "name": "Symulator Czasu Nagrzewania Posadzki",
    "description": "Interaktywny widget obliczeniowy dla inwestorów, pozwalający prognozować dynamikę instalacji grzewczej i unikać błędów projektowych wydłużających czas reakcji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-heat-wrapper">
    <div class="rk-heat-header">
        <h2>Czas nagrzewania wylewki podłogowej</h2>
        <p>Bezwładność cieplna to klucz do komfortu. Zbyt szybka reakcja oznacza wychładzanie, zbyt wolna – brak kontroli nad temperaturą i duszne noce. Sprawdź, jak parametry Twojej posadzki wpłyną na czas reakcji systemu (do 26°C).</p>
    </div>

    <div class="rk-heat-app">
        <div class="rk-heat-controls">
            
            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Grubość jastrychu</span>
                    <span class="rk-heat-badge" id="rkHeatLblThick">6.5 cm</span>
                </div>
                <input type="range" class="rk-heat-slider" id="rkHeatInpThick" min="4" max="10" step="0.5" value="6.5" oninput="rkRunHeatCalc()">
            </div>

            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Rodzaj wylewki</span>
                </div>
                <div class="rk-heat-btn-grid rk-grid-2">
                    <button class="rk-hbtn is-active" id="rkHeatBtnMat1" onclick="rkSetHeatMat('beton', this)">Betonowa</button>
                    <button class="rk-hbtn" id="rkHeatBtnMat2" onclick="rkSetHeatMat('anhydryt', this)">Anhydrytowa</button>
                </div>
            </div>

            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Rozstaw rur (gęstość)</span>
                </div>
                <div class="rk-heat-btn-grid rk-grid-4">
                    <button class="rk-hbtn" id="rkHeatBtnSpc1" onclick="rkSetHeatSpc(5, this)">5 cm</button>
                    <button class="rk-hbtn" id="rkHeatBtnSpc2" onclick="rkSetHeatSpc(10, this)">10 cm</button>
                    <button class="rk-hbtn is-active" id="rkHeatBtnSpc3" onclick="rkSetHeatSpc(15, this)">15 cm</button>
                    <button class="rk-hbtn" id="rkHeatBtnSpc4" onclick="rkSetHeatSpc(20, this)">20 cm</button>
                </div>
            </div>

        </div>

        <div class="rk-heat-display">
            <div class="rk-heat-result-card" id="rkHeatResCard">
                <div class="rk-heat-result-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="vertical-align: middle; margin-right: 5px;"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Szacowany Czas Reakcji
                </div>
                <div class="rk-heat-time" id="rkHeatResTime">4.0</div>
                <div class="rk-heat-unit">godziny</div>
                <div class="rk-heat-status status-optimal" id="rkHeatResStatus">Stabilny komfort</div>
            </div>
        </div>
    </div>

    <div class="rk-heat-info">
        <h3>Skąd biorą się te różnice?</h3>
        <p>Instalacja z wylewką to nic innego jak ogromny akumulator cieplny. To, jak szybko odda on energię do pomieszczenia, zależy od gęstości siatki grzewczej i masy, przez którą ta energia musi się przebić.</p>
        <p>Gdy projektant ustala <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur przy pompie ciepła</a>, musi zbilansować opory hydrauliczne z bezwładnością. Rury co 5 cm w łazienkach pozwalają błyskawicznie wygrzać płytki, podczas gdy rozstaw co 15 cm w salonie zapewnia powolne, przyjemne i długotrwałe oddawanie ciepła. Zastosowanie cienkiego anhydrytu skraca ten czas nawet o 30%, co czyni go idealnym do nowoczesnych systemów sterowania strefowego, ale jednocześnie pozbawia dom darmowego magazynu energii w posadzce.</p>
        <p>Decyzja o grubości i zagęszczeniu rur nigdy nie powinna być dziełem przypadku. Wymaga oparcia o rzetelne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia obciążenia cieplnego (OZC)</a>.</p>
    </div>
</div>

<script>
    // Zmienne stanu (z prefiksem, aby unikać globalnych kolizji)
    var rkHeatCurrentMat = 'beton';
    var rkHeatCurrentSpacing = 15;

    function rkSetHeatMat(matType, btnObj) {
        rkHeatCurrentMat = matType;
        
        var btns = document.querySelectorAll('#rkHeatBtnMat1, #rkHeatBtnMat2');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunHeatCalc();
    }

    function rkSetHeatSpc(spcVal, btnObj) {
        rkHeatCurrentSpacing = spcVal;
        
        var btns = document.querySelectorAll('#rkHeatBtnSpc1, #rkHeatBtnSpc2, #rkHeatBtnSpc3, #rkHeatBtnSpc4');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunHeatCalc();
    }

    function rkRunHeatCalc() {
        var thickInput = document.getElementById('rkHeatInpThick');
        if(!thickInput) return; // Zabezpieczenie przed błędem, gdyby elementu nie było

        var thickCm = parseFloat(thickInput.value);
        document.getElementById('rkHeatLblThick').innerText = thickCm.toFixed(1) + " cm";

        // Obliczenia heurystyczne inżynierskie
        var baseTime = 4.0; 
        var thickDiff = thickCm - 7.0;
        var thickMult = 1.0;
        
        if (thickDiff > 0) {
            thickMult = 1.0 + (thickDiff * 0.35);
        } else {
            thickMult = 1.0 + (thickDiff * 0.25);
        }

        var spcMult = 1.0;
        if (rkHeatCurrentSpacing === 5) { spcMult = 0.5; }
        if (rkHeatCurrentSpacing === 10) { spcMult = 0.75; }
        if (rkHeatCurrentSpacing === 15) { spcMult = 1.0; }
        if (rkHeatCurrentSpacing === 20) { spcMult = 1.4; }

        var matMult = 1.0; 
        if (rkHeatCurrentMat === 'anhydryt') {
            matMult = 0.65; 
        }

        var finalTime = baseTime * thickMult * spcMult * matMult;
        
        if (finalTime < 0.5) {
            finalTime = 0.5;
        }
        
        document.getElementById('rkHeatResTime').innerText = finalTime.toFixed(1);

        var resStatus = document.getElementById('rkHeatResStatus');
        var resCard = document.getElementById('rkHeatResCard');

        if (finalTime <= 2.0) {
            resStatus.innerText = "Błyskawiczna reakcja";
            resStatus.className = "rk-heat-status status-fast";
            resCard.style.borderColor = "var(--rk-heat-green)";
            resCard.style.background = "#ecfdf5"; 
        } else {
            if (finalTime <= 5.0) {
                resStatus.innerText = "Stabilny komfort";
                resStatus.className = "rk-heat-status status-optimal";
                resCard.style.borderColor = "#bae6fd";
                resCard.style.background = "var(--rk-heat-blue-light)";
            } else {
                if (finalTime <= 8.0) {
                    resStatus.innerText = "Duża bezwładność";
                    resStatus.className = "rk-heat-status status-slow";
                    resCard.style.borderColor = "#fdba74";
                    resCard.style.background = "var(--rk-heat-orange-light)";
                } else {
                    resStatus.innerText = "System ospały (Krytycznie!)";
                    resStatus.className = "rk-heat-status status-critical";
                    resCard.style.borderColor = "var(--rk-heat-red)";
                    resCard.style.background = "#fef2f2"; 
                }
            }
        }
    }

    // Bezpieczne ładowanie - omijanie opóźnień z wtyczek cache/defer (np. WP Rocket)
    function rkInitHeatApp() {
        rkRunHeatCalc();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', rkInitHeatApp);
    } else {
        // Jeśli DOM jest już załadowany (bo wtyczka cache opóźniła wykonanie JS)
        rkInitHeatApp();
    }
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-green: #10b981;
    --rk-proj-red: #ef4444;
    --rk-proj-gray: #64748b;
    --rk-proj-border: #cbd5e1;
    --rk-proj-bg: #ffffff;
    --rk-proj-accent: #f59e0b;
}

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

/* Sekcja Nagłówkowa */
.rk-proj-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-proj-dark) 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

.rk-proj-subtitle a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interfejs Symulatora */
.rk-proj-simulator {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-proj-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 10px;
    border-radius: 20px;
    border: 1px solid var(--rk-proj-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-proj-btn {
    flex: 1;
    padding: 15px 20px;
    border: 2px solid transparent;
    background: #f1f5f9;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-proj-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
}

.rk-proj-btn:hover {
    background: var(--rk-proj-blue-light);
    color: var(--rk-proj-blue);
}

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

/* Siatka Wyników (Cards) */
.rk-proj-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.rk-proj-card {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: transform 0.3s ease, border-color 0.3s;
}

.rk-proj-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-proj-blue);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-proj-card-icon {
    width: 44px;
    height: 44px;
    background: var(--rk-proj-blue-light);
    color: var(--rk-proj-blue);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-proj-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-blue);
    margin: 0 0 10px 0;
    min-height: 28px;
}

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

.rk-proj-card p a {
    color: var(--rk-proj-blue);
    font-weight: 600;
    text-decoration: none;
}

/* Tagi SEO */
.rk-proj-tags {
    padding: 30px 50px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: #ffffff;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
}

/* Mocne CTA */
.rk-proj-cta {
    padding: 40px 50px;
    background: #ffffff;
    text-align: center;
}

.rk-proj-cta-box {
    background: radial-gradient(circle at center, #0369a1 0%, var(--rk-proj-dark) 100%);
    border-radius: 20px;
    padding: 40px 30px;
    color: #ffffff;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.3);
    position: relative;
    overflow: hidden;
}

.rk-proj-cta-box h4 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: var(--rk-proj-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 14px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-simulator, .rk-proj-tags, .rk-proj-cta { padding: 30px 20px; }
    .rk-proj-controls { flex-direction: column; border-radius: 16px; background: transparent; border: none; box-shadow: none; padding: 0;}
    .rk-proj-btn { width: 100%; margin-bottom: 10px; }
    .rk-proj-grid { grid-template-columns: 1fr; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak grubość wylewki wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Analiza inżynieryjna: Zobacz, jak dobór grubości jastrychu determinuje wyniki obliczeń OZC, parametry pompy obiegowej i gęstość izolacji EPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-projekt",
    "name": "Parametry projektowe OZC i hydrauliki ogrzewania podłogowego",
    "description": "Zestawienie zmiennych projektowych ukazujących korelację między masą wylewki a obciążeniem cieplnym budynku, hydrauliką i wymaganiami nośnymi styropianu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z obliczeniami OZC",
      "dobór pompy obiegowej do podłogówki",
      "jaki styropian pod ogrzewanie podłogowe",
      "maksymalna długość pętli ogrzewania podłogowego",
      "współpraca rekuperacji z podłogówką"
    ],
    "measurementTechnique": "Algorytmy obliczeniowe oparte na normie PN-EN 12831 (OZC) oraz PN-EN 1264 (systemy płaszczyznowe).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zależność rozstawu rur od oporu cieplnego betonu",
        "Kryteria oporów hydraulicznych pompy obiegowej (kPa)",
        "Wymagana wytrzymałość izolacji (EPS 100 vs XPS)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-projekt",
    "name": "Symulator Wpływu Wylewki na Projekt HVAC",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące efekt domina: jak zmiana warstwy jastrychu wymusza przeliczenie hydrauliki, pętli i parametrów termoizolacji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container">
    <div class="rk-proj-header">
        <h2>Jak wylewka wywraca projekt do góry nogami?</h2>
        <p class="rk-proj-subtitle">
            Grubość betonu w profesjonalnym oprogramowaniu (np. Audytor OZC) to zmienna krytyczna. Zobacz, jak modyfikacja warstwy posadzki definiuje <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążenie cieplne budynku (OZC)</a> i zmusza inżyniera do zmiany całego układu hydraulicznego.
        </p>
    </div>

    <div class="rk-proj-simulator">
        <div class="rk-proj-controls">
            <button class="rk-proj-btn" onclick="rkUpdateSim(5)" id="rkBtn5">Cienka (5.5 cm)</button>
            <button class="rk-proj-btn is-active" onclick="rkUpdateSim(7)" id="rkBtn7">Normatywna (7.0 cm)</button>
            <button class="rk-proj-btn" onclick="rkUpdateSim(9)" id="rkBtn9">Przegrubiona (9.0 cm)</button>
        </div>

        <div class="rk-proj-grid">
            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z"></path><path d="M12 16v-8"></path><path d="M8 12h8"></path></svg>
                </div>
                <h3>Obwody i pętle grzewcze</h3>
                <div class="rk-proj-val" id="rkValLoops">Rozstaw co 15 cm</div>
                <p id="rkDescLoops">Optymalna praca układu. Bezpieczna <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długość pętli do 100 m</a>. Ciepło równomiernie przenika przez warstwę akumulacyjną.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
                </div>
                <h3>Hydraulika i Pompa</h3>
                <div class="rk-proj-val" id="rkValPump">Standard (do 20 kPa)</div>
                <p id="rkDescPump"><a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Dobór pompy obiegowej</a> jest prosty. Straty ciśnienia na rozdzielaczu są w normie, urządzenie pracuje energooszczędnie na niskim biegu.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h3>Izolacja i Obciążenie</h3>
                <div class="rk-proj-val" id="rkValEps">Styropian EPS 100</div>
                <p id="rkDescEps">Waga betonu wynosi ok. 150 kg/m². Aby uniknąć osiadania płyty, inżynier projektuje twardy <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropian EPS 100</a>.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="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>Współpraca z Rekuperacją</h3>
                <div class="rk-proj-val" id="rkValRec">Stabilna cyrkulacja</div>
                <p id="rkDescRec"><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja współpracuje z podłogówką</a>. Czas nagrzewania jest zoptymalizowany, co zapobiega przegrzewaniu wentylowanych stref.</p>
            </div>
        </div>
    </div>

    <div class="rk-proj-tags">
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego z obliczeniami OZC</span>
        <span class="rk-mat-tag"># dobór pompy obiegowej do podłogówki</span>
        <span class="rk-mat-tag"># maksymalna długość pętli ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># jaki styropian pod ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># opory hydrauliczne rozdzielacza</span>
        <span class="rk-mat-tag"># współpraca rekuperacji z podłogówką</span>
        <span class="rk-mat-tag"># rozstaw rur ogrzewania podłogowego projekt</span>
        <span class="rk-mat-tag"># audytor ozc instalacje płaszczyznowe</span>
    </div>

    <div class="rk-proj-cta">
        <div class="rk-proj-cta-box">
            <h4>Nie zgaduj na budowie. Zleć inżynierskie obliczenia.</h4>
            <p>Błędy wykonawcze mszczą się przez dekady ukryte pod kafelkami. Profesjonalny projekt instalacji wyliczy każdą pętlę, dobierze pompę co do watta i wyeliminuje strefy niedogrzane. Otrzymasz dokumentację, za którą ręczę swoim nazwiskiem.</p>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
                ZAMÓW KOMPLEKSOWY PROJEKT
                <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="M5 12h14"></path><path d="M12 5l7 7-7 7"></path></svg>
            </a>
        </div>
    </div>
</div>

<script>
    function rkUpdateSim(thickness) {
        // Reset button styles
        document.getElementById('rkBtn5').classList.remove('is-active');
        document.getElementById('rkBtn7').classList.remove('is-active');
        document.getElementById('rkBtn9').classList.remove('is-active');

        // References to DOM
        var valLoops = document.getElementById('rkValLoops');
        var descLoops = document.getElementById('rkDescLoops');
        var valPump = document.getElementById('rkValPump');
        var descPump = document.getElementById('rkDescPump');
        var valEps = document.getElementById('rkValEps');
        var descEps = document.getElementById('rkDescEps');
        var valRec = document.getElementById('rkValRec');
        var descRec = document.getElementById('rkDescRec');

        // Logic without && operator for absolute safety
        if (thickness === 5) {
            document.getElementById('rkBtn5').classList.add('is-active');
            
            valLoops.innerText = "Rozstaw 15-20 cm";
            descLoops.innerHTML = "Mały opór cieplny ułatwia oddawanie energii. Długość pętli bezpiecznie skrócona do 80 m, zmniejszając zużycie rury PEX.";
            
            valPump.innerText = "Niskie opory (<15 kPa)";
            descPump.innerHTML = "Układ stawia minimalny opór. Możliwość zastosowania słabszej, wysoce <a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>energooszczędnej pompy obiegowej</a>.";
            
            valEps.innerText = "Styropian EPS 80/100";
            descEps.innerHTML = "Znacznie niższa masa betonu (ok. 110 kg/m²). Mniejsze obciążenie stropu i mniejsze ryzyko ugięć izolacji.";
            
            valRec.innerText = "Szybka reakcja";
            descRec.innerHTML = "Układ reaguje błyskawicznie. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja</a> bez problemu bilansuje świeże powietrze z zyskami słońca.";
        }

        if (thickness === 7) {
            document.getElementById('rkBtn7').classList.add('is-active');
            
            valLoops.innerText = "Rozstaw co 15 cm";
            descLoops.innerHTML = "Optymalna praca układu. Bezpieczna <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>długość pętli do 100 m</a>. Ciepło równomiernie przenika przez warstwę akumulacyjną.";
            
            valPump.innerText = "Standard (do 20 kPa)";
            descPump.innerHTML = "<a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>Dobór pompy obiegowej</a> jest prosty. Straty ciśnienia na rozdzielaczu są w normie, urządzenie pracuje wydajnie.";
            
            valEps.innerText = "Styropian EPS 100";
            descEps.innerHTML = "Waga betonu wynosi ok. 150 kg/m². Aby uniknąć osiadania płyty, inżynier projektuje twardy <a href='https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/'>styropian EPS 100</a>.";
            
            valRec.innerText = "Stabilna cyrkulacja";
            descRec.innerHTML = "<a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja współpracuje z podłogówką</a>. Czas nagrzewania jest zoptymalizowany, co zapobiega przegrzewaniu stref.";
        }

        if (thickness === 9) {
            document.getElementById('rkBtn9').classList.add('is-active');
            
            valLoops.innerText = "Gęsty rozstaw (10 cm)";
            descLoops.innerHTML = "Gruby beton stawia potężny opór cieplny. Rury muszą być ułożone bardzo gęsto. Ryzyko przekroczenia <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>120 m na pętli</a>.";
            
            valPump.innerText = "Przeciążenie (>30 kPa)";
            descPump.innerHTML = "Wiele długich pętli drastycznie winduje opory. Wymagana jest przewymiarowana <a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>pompa o dużej wysokości podnoszenia</a>.";
            
            valEps.innerText = "Twardy XPS / EPS 150";
            descEps.innerHTML = "Krytyczne obciążenie konstrukcji (ponad 200 kg/m²). Standardowy <a href='https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/'>styropian</a> ulegnie zgnieceniu, niszcząc dylatacje.";
            
            valRec.innerText = "Ospały system";
            descRec.innerHTML = "Zanim ciepło przebije się przez 9 cm, słońce zdąży nagrzać salon. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja</a> nie poradzi sobie z przegrzewaniem.";
        }
    }
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-accent: #059669; /* Emerald for success/solution */
    --rk-case-accent-light: #dcfce7;
    --rk-case-warn: #eab308;
    --rk-case-warn-light: #fef9c3;
    --rk-case-gray: #64748b;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
}

.rk-case-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(5, 150, 105, 0.1);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

/* Header */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, var(--rk-case-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-case-header::after {
    content: '';
    position: absolute;
    right: -20px;
    bottom: -40px;
    width: 150px;
    height: 150px;
    background: var(--rk-case-blue);
    filter: blur(70px);
    opacity: 0.3;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #bae6fd;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-case-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.rk-case-header p {
    color: #94a3b8;
    font-size: 16px;
    line-height: 1.6;
    max-width: 700px;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Interactive App area */
.rk-case-app {
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-timeline {
    display: flex;
    padding: 30px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-case-border);
    gap: 15px;
}

.rk-case-step-btn {
    flex: 1;
    padding: 20px 15px;
    background: var(--rk-case-bg);
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

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

.rk-case-step-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    transition: color 0.3s;
}

.rk-case-step-btn:hover {
    border-color: var(--rk-case-blue);
}

.rk-case-step-btn.is-active {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-blue-light);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

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

.rk-case-step-btn.is-active .rk-case-step-title {
    color: var(--rk-case-blue);
}

/* Display Panels */
.rk-case-panel {
    display: none;
    padding: 40px 50px;
    animation: rkFadeIn 0.4s ease forwards;
}

.rk-case-panel.is-visible {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 40px;
    align-items: center;
}

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

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

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

.rk-case-text-col strong {
    color: var(--rk-case-dark);
}

/* Data Cards in Panels */
.rk-case-data-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-case-data-row {
    display: flex;
    justify-content: space-between;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px dashed var(--rk-case-border);
}

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

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

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

.rk-data-val.status-warn { color: var(--rk-case-warn); }
.rk-data-val.status-ok { color: var(--rk-case-accent); }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-timeline, .rk-case-panel { padding: 30px 20px; }
    .rk-case-timeline { flex-direction: column; gap: 10px; }
    .rk-case-step-btn { flex-direction: row; padding: 15px; text-align: left; }
    .rk-case-panel.is-visible { grid-template-columns: 1fr; gap: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Dobór wylewki dla domu 150 m² w Krakowie",
    "description": "Analiza przypadku inwestora z Krakowa. Zobacz, jak audyt OZC uchronił go przed wylaniem zbyt grubej warstwy betonu i spadkiem efektywności pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Dane projektowe i dobór wylewki - Kraków 2026",
    "description": "Zestawienie parametrów wyjściowych inwestora oraz skorygowanych wartości po wykonaniu profesjonalnego projektu ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego Kraków",
      "błędy przy wylewce podłogowej",
      "optymalizacja wylewki pod pompę ciepła",
      "audyt OZC przed wylewkami",
      "jaka wylewka na podłogówkę case study"
    ],
    "measurementTechnique": "Weryfikacja założeń wykonawcy budowlanego z rzeczywistym zapotrzebowaniem cieplnym budynku i wymaganiami źródła ciepła na podstawie Audytu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan początkowy: Brak projektu, 8 cm zwykłego betonu, panele.",
        "Wykryte ryzyko: Czas reakcji ponad 6 godzin, spadek COP pompy.",
        "Rozwiązanie wdrożone: Projekt OZC, 6 cm betonu z plastyfikatorem, korekta rozstawu rur pod oknami."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Interaktywny Audyt: Projekt Ogrzewania",
    "description": "Aplikacja symulująca proces decyzyjny inżyniera HVAC, pozwalająca użytkownikowi prześledzić etapy od błędnych założeń inwestora do poprawnego projektu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-wrapper">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study: Kraków</div>
        <h2>Dobór wylewki dla domu z pompą ciepła</h2>
        <p>Inwestor z Krakowa (nowy dom 150 m²) zgłosił się do nas w przeddzień wejścia ekipy posadzkarskiej. Brakowało mu oficjalnego projektu podłogówki, a wykonawca zasugerował rozwiązanie, które zrujnowałoby koszty ogrzewania. Prześledź proces naszej optymalizacji.</p>
    </div>

    <div class="rk-case-app">
        
        <div class="rk-case-timeline">
            <button class="rk-case-step-btn is-active" id="rkCaseBtn1" onclick="rkSetCaseStep(1)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-case-step-title">Problem Inwestora</div>
            </button>

            <button class="rk-case-step-btn" id="rkCaseBtn2" onclick="rkSetCaseStep(2)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <div class="rk-case-step-title">Audyt & Obliczenia</div>
            </button>

            <button class="rk-case-step-btn" id="rkCaseBtn3" onclick="rkSetCaseStep(3)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-case-step-title">Wdrożone Rozwiązanie</div>
            </button>
        </div>

        <div class="rk-case-panel is-visible" id="rkCasePanel1">
            <div class="rk-case-text-col">
                <h3>Założenia "na oko" wykonawcy</h3>
                <p>Ekipa budowlana doradziła inwestorowi zalanie rur grubą warstwą <strong>8 cm standardowego betonu z gruszki</strong>, "aby posadzka była solidna i nie pękała". Inwestor planował ułożyć na tym panele podłogowe.</p>
                <p>Źródłem ciepła miała być niskotemperaturowa pompa ciepła powietrze-woda. Brakowało rysunków technicznych i wyliczeń oporów.</p>
            </div>
            <div class="rk-case-data-box">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Planowana Grubość</span>
                    <span class="rk-data-val status-warn">8.0 cm</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Wykończenie</span>
                    <span class="rk-data-val">Panele laminowane</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Rodzaj masy</span>
                    <span class="rk-data-val status-warn">Zwykły beton</span>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="rkCasePanel2">
            <div class="rk-case-text-col">
                <h3>Symulacja awarii termicznej</h3>
                <p>Jako inżynierzy natychmiast przeliczyliśmy ten wariant. Połączyliśmy 8 cm porowatego betonu z izolacyjnością planowanych paneli.</p>
                <p>Wynik? Łączny opór cieplny przebijał normę. Pompa ciepła musiałaby tłoczyć wodę o temperaturze wyższej o 4°C, by dom się dogrzał, co drastycznie obniżyłoby współczynnik COP. Dodatkowo bezwładność tak grubej płyty uniemożliwiłaby inteligentne sterowanie strefowe.</p>
            </div>
            <div class="rk-case-data-box" style="border-color: var(--rk-case-warn); background: var(--rk-case-warn-light);">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Prognoza: Czas Reakcji</span>
                    <span class="rk-data-val status-warn">Ponad 6 godzin</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Prognoza: Łączny Opór</span>
                    <span class="rk-data-val status-warn">> 0,16 m²K/W</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Ryzyko</span>
                    <span class="rk-data-val status-warn">Spadek COP i rachunki w górę</span>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="rkCasePanel3">
            <div class="rk-case-text-col">
                <h3>Projekt i optymalizacja chemiczna</h3>
                <p>Wykonaliśmy błyskawiczny audyt OZC dla budynku w Krakowie. Zmieniliśmy koncepcję posadzki, wprowadzając dedykowany <strong>plastyfikator usuwający pęcherzyki powietrza</strong> z mieszanki.</p>
                <p>To pozwoliło bezpiecznie zredukować grubość betonu do 6,0 cm (zachowując nośność). Ciepło z pompy przenika teraz do pomieszczeń błyskawicznie, mimo ułożenia paneli.</p>
            </div>
            <div class="rk-case-data-box" style="border-color: var(--rk-case-accent); background: var(--rk-case-accent-light);">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Nowa Grubość</span>
                    <span class="rk-data-val status-ok">6.0 cm</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Chemia</span>
                    <span class="rk-data-val status-ok">Plastyfikator grzewczy</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Czas Reakcji</span>
                    <span class="rk-data-val status-ok">Skrócony do ~3.5 h</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkSetCaseStep(stepNum) {
        // Reset buttons (bezpiecznie bez użycia operatora &&)
        var btns = document.querySelectorAll('.rk-case-step-btn');
        for(var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        var activeBtn = document.getElementById('rkCaseBtn' + stepNum);
        if (activeBtn) {
            activeBtn.classList.add('is-active');
        }

        // Hide all panels
        var panels = document.querySelectorAll('.rk-case-panel');
        for(var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        // Show selected panel
        var activePanel = document.getElementById('rkCasePanel' + stepNum);
        if (activePanel) {
            activePanel.classList.add('is-visible');
        }
    }
</script>



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

.rk-exp-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-exp-bg);
    border-radius: 16px;
    box-shadow: 0 15px 35px -5px rgba(15, 23, 42, 0.1);
    border: 2px solid var(--rk-exp-border);
    overflow: hidden;
}

/* Header */
.rk-exp-header {
    background: var(--rk-exp-dark);
    padding: 30px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-exp-blue);
}

.rk-exp-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

/* Main Layout */
.rk-exp-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: var(--rk-exp-bg);
}

/* Sidebar - Author Info */
.rk-exp-sidebar {
    padding: 30px;
    background: var(--rk-exp-light);
    border-right: 1px solid var(--rk-exp-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-exp-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

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

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

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

.rk-exp-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-exp-border);
    border-radius: 8px;
    color: var(--rk-exp-dark);
    text-decoration: none;
}

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

/* Interactive Content Area */
.rk-exp-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

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

.rk-exp-tab-btn {
    padding: 10px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-exp-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-exp-gray);
    cursor: pointer;
}

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

.rk-exp-quote-box {
    position: relative;
    padding: 30px;
    background: #f1f5f9;
    border-radius: 12px;
    border-left: 6px solid var(--rk-exp-accent);
}

.rk-exp-quote-mark {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 60px;
    font-family: Georgia, serif;
    color: #cbd5e1;
    line-height: 1;
}

.rk-exp-text-content {
    position: relative;
    z-index: 1;
    font-size: 18px;
    line-height: 1.6;
    color: var(--rk-exp-dark);
    font-weight: 600;
    margin: 0;
}

/* Tab Panels */
.rk-exp-panel {
    display: none;
}

.rk-exp-panel.is-visible {
    display: block;
}

@media (max-width: 768px) {
    .rk-exp-layout {
        grid-template-columns: 1fr;
    }
    .rk-exp-sidebar {
        border-right: none;
        border-bottom: 1px solid var(--rk-exp-border);
        flex-direction: row;
        text-align: left;
        align-items: center;
        gap: 20px;
        padding: 20px;
    }
    .rk-exp-photo {
        width: 80px;
        height: 80px;
        margin-bottom: 0;
    }
    .rk-exp-socials {
        margin-top: 10px;
    }
    .rk-exp-tabs {
        flex-direction: column;
    }
    .rk-exp-header, .rk-exp-content {
        padding: 25px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o grubości wylewki",
    "description": "Podsumowanie inżynierskie i najważniejsze zasady wykonawcze dla jastrychów grzewczych. Autorski audyt eksperta HVAC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "CEO, Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-ekspert",
    "name": "Złote zasady i błędy wykonawcze wylewek grzewczych",
    "description": "Baza danych dobrych praktyk instalacyjnych weryfikowana na podstawie ponad 1000 zrealizowanych audytów i projektów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert ogrzewanie podłogowe",
      "Robert Kucharski opinie wylewki",
      "najczęstsze błędy wylewka betonowa",
      "złota zasada ogrzewania podłogowego",
      "projektant instalacji HVAC"
    ],
    "measurementTechnique": "Wiedza oparta na wieloletnim doświadczeniu projektowym, audytach OZC oraz analizie uszkodzeń systemów w domach jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak projektu zawsze podnosi koszty eksploatacji.",
        "Optymalna grubość to kompromis między wytrzymałością a dynamiką grzania.",
        "Błąd otuliny jest nienaprawialny po zalaniu betonu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-ekspert",
    "name": "Moduł Wniosków Eksperckich HVAC",
    "description": "Interaktywny panel prezentujący bezpośrednie rekomendacje inżynierskie, pozwalający użytkownikowi na szybką nawigację między konkluzjami, błędami a zasadami wykonawczymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-wrapper">
    <div class="rk-exp-header">
        <h2>Zdaniem eksperta: Robert Kucharski o grubości wylewki</h2>
    </div>

    <div class="rk-exp-layout">
        <div class="rk-exp-sidebar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Ekspert HVAC" class="rk-exp-photo">
            <div>
                <h3 class="rk-exp-name">Robert Kucharski</h3>
                <div class="rk-exp-title">CEO / HVAC</div>
                <div class="rk-exp-socials">
                    <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="Facebook Projekt Ogrzewania">
                        <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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    </a>
                    <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="LinkedIn Robert Kucharski">
                        <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="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    </a>
                </div>
            </div>
        </div>

        <div class="rk-exp-content">
            <div class="rk-exp-tabs">
                <button class="rk-exp-tab-btn is-active" id="rkTabBtn1" onclick="rkSwitchTab(1)">Główny Wniosek</button>
                <button class="rk-exp-tab-btn" id="rkTabBtn2" onclick="rkSwitchTab(2)">Największy Błąd</button>
                <button class="rk-exp-tab-btn" id="rkTabBtn3" onclick="rkSwitchTab(3)">Złota Zasada</button>
            </div>

            <div class="rk-exp-quote-box">
                <div class="rk-exp-quote-mark">"</div>
                
                <div id="rkTab1" class="rk-exp-panel is-visible">
                    <p class="rk-exp-text-content">
                        Grubość wylewki to nie jest parametr, który można ustalić "na oko" w dniu wchodzenia ekipy budowlanej. Każdy centymetr betonu powyżej normy izoluje ciepło i obciąża pompę, a każdy milimetr poniżej granicy bezpieczeństwa grozi pęknięciem posadzki. Precyzja w tym aspekcie decyduje o kosztach ogrzewania przez kolejne dekady.
                    </p>
                </div>

                <div id="rkTab2" class="rk-exp-panel">
                    <p class="rk-exp-text-content" style="color: var(--rk-exp-dark);">
                        Najkosztowniejszym błędem inwestorów jest dobieranie wykończenia podłogi (np. grubej deski dębowej) już po wylaniu 8-centymetrowego betonu. Połączenie masywnego jastrychu i izolującej deski tworzy potężną blokadę termiczną, której nie przebije nawet najbardziej przewymiarowana pompa ciepła w środku zimy.
                    </p>
                </div>

                <div id="rkTab3" class="rk-exp-panel">
                    <p class="rk-exp-text-content" style="color: var(--rk-exp-dark);">
                        Jeżeli decydujesz się na grube panele lub drewno, nakazuję inżynierskie zejście z grubości wylewki do bezpiecznego minimum (6 cm) przy użyciu najwyższej jakości plastyfikatorów. Pamiętaj: system to naczynia połączone. Zanim zamówisz materiały, zleć wykonanie profesjonalnych obliczeń OZC.
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
    function rkSwitchTab(tabId) {
        // Reset button styles (bez uzycia &&)
        var btns = document.querySelectorAll('.rk-exp-tab-btn');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        // Hide all panels
        var panels = document.querySelectorAll('.rk-exp-panel');
        for (var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        // Activate selected
        var activeBtn = document.getElementById('rkTabBtn' + tabId);
        var activePanel = document.getElementById('rkTab' + tabId);
        
        if (activeBtn) {
            activeBtn.classList.add('is-active');
        }
        
        if (activePanel) {
            activePanel.classList.add('is-visible');
        }
    }
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-hover: #0369a1;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.1);
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: transparent;
}

.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    border-radius: 20px 20px 0 0;
    padding: 35px 45px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-faq-header-icon {
    width: 48px;
    height: 48px;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -0.5px;
    color: #f8fafc;
}

.rk-faq-wrapper {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-top: none;
    border-radius: 0 0 20px 20px;
    padding: 20px 45px 45px 45px;
    box-shadow: var(--rk-faq-shadow);
}

.rk-faq-item {
    border-bottom: 1px solid var(--rk-faq-border);
    transition: all 0.3s ease;
}

.rk-faq-item:last-child {
    border-bottom: none;
}

.rk-faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    transition: color 0.3s;
}

.rk-faq-question:hover {
    color: var(--rk-faq-blue);
}

.rk-faq-question h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    padding-right: 20px;
}

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

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

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

.rk-faq-answer-inner {
    padding: 0 0 25px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

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

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

/* Responsywność dla mobile (stackowanie, odpowiednie paddingi) */
@media (max-width: 768px) {
    .rk-faq-header {
        padding: 25px 20px;
        border-radius: 16px 16px 0 0;
    }
    .rk-faq-header h2 {
        font-size: 22px;
    }
    .rk-faq-wrapper {
        padding: 10px 20px 25px 20px;
        border-radius: 0 0 16px 16px;
    }
    .rk-faq-question {
        padding: 20px 0;
    }
    .rk-faq-question h3 {
        font-size: 16px;
    }
    .rk-faq-answer-inner {
        font-size: 14px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o grubość wylewki",
    "description": "Zbiór najważniejszych inżynierskich odpowiedzi dotyczących prawidłowej grubości, zbrojenia i wylewek pod pompy ciepła na instalacjach podłogowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaka jest optymalna grubość wylewki betonowej na ogrzewanie podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalna całkowita grubość wylewki cementowej wynosi od 6,0 do 8,0 cm, co przy standardowej instalacji gwarantuje warstwę czystej otuliny betonowej nad rurą w przedziale 3,0–4,5 cm. Taki wymiar zapewnia idealny kompromis pomiędzy wytrzymałością mechaniczną posadzki a niską bezwładnością cieplną układu."
        }
      },
      {
        "@type": "Question",
        "name": "Czym grozi wylanie zbyt cienkiej warstwy betonu nad rurami grzewczymi?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wylanie warstwy poniżej 3,0 cm nad rurą skutkuje liniowymi pęknięciami jastrychu, odspajaniem płytek oraz drastycznym obniżeniem nośności posadzki na obciążenia punktowe. Dodatkowo wywołuje to zjawisko zebry termicznej, czyli nierównomiernego rozkładu temperatur na powierzchni podłogi."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod pompy ciepła wylewka betonowa powinna być cieńsza?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przy zasilaniu niskotemperaturowym z pompy ciepła (35°C) dąży się do minimalizacji oporu cieplnego, dlatego zaleca się wylewki o grubości 6,0–6,5 cm z obowiązkowym dodatkiem plastyfikatora. Pozwala to na maksymalne skrócenie czasu reakcji układu i podniesienie parametru COP pompy."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest różnica w grubości między wylewką betonową a anhydrytową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tradycyjna wylewka betonowa wymaga grubości całkowitej 6–8 cm (minimum 3 cm nad rurą), natomiast płynny jastrych anhydrytowy może mieć grubość zaledwie 3,5–5,0 cm (w tym jedynie 2 cm otuliny nad rurą). Różnica wynika z wyższej wytrzymałości na zginanie oraz lepszej przewodności cieplnej anhydrytu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można pominąć siatkę zbrojącą przy grubości wylewki wynoszącej 7 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przy całkowitej grubości 7,0 cm i zastosowaniu mikrozbrojenia z włókien polipropylenowych oraz plastyfikatora, klasyczna siatka stalowa nie jest konieczna w pomieszczeniach mieszkalnych. Siatka pozostaje jednak bezwzględnie wymagana w garażach oraz w miejscach, gdzie grubość otuliny nad rurą spada poniżej 3,0 cm."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Baza Wiedzy: Rozwiązywanie Problemów z Wylewkami Grzewczymi",
    "description": "Zestawienie najczęstszych pytań i eksperckich odpowiedzi dotyczących parametrów jastrychu, zbrojenia i doboru instalacji pod pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna grubość wylewki betonowej na ogrzewanie podłogowe",
      "skutki zbyt cienkiej wylewki",
      "wylewka pod pompę ciepła",
      "różnica między wylewką betonową a anhydrytową",
      "zbrojenie wylewki 7 cm"
    ],
    "measurementTechnique": "Analiza zapytań inwestorów i walidacja rozwiązań z normą PN-EN 1264 oraz instrukcjami producentów chemii budowlanej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecenia dotyczące otuliny minimalnej",
        "Zasady rezygnacji ze zbrojenia stalowego",
        "Kompensacja oporów dla pomp ciepła"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy o Wylewkach",
    "description": "Moduł akordeonowy udostępniający błyskawiczne odpowiedzi na kluczowe problemy techniczne związane z realizacją podkładów podłogowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

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

    <div class="rk-faq-wrapper">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Jaka jest optymalna grubość wylewki betonowej na ogrzewanie podłogowe?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" 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>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Optymalna całkowita grubość <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki cementowej</a> wynosi od 6,0 do 8,0 cm, co przy standardowej instalacji gwarantuje warstwę czystej otuliny betonowej nad rurą w przedziale 3,0–4,5 cm. Taki wymiar zapewnia idealny kompromis pomiędzy wytrzymałością mechaniczną posadzki a niską <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładnością cieplną</a> układu.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czym grozi wylanie zbyt cienkiej warstwy betonu nad rurami grzewczymi?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" 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>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Wylanie warstwy poniżej 3,0 cm nad rurą skutkuje liniowymi pęknięciami jastrychu, odspajaniem płytek oraz drastycznym obniżeniem nośności posadzki na obciążenia punktowe. Dodatkowo wywołuje to zjawisko "zebry termicznej", czyli nierównomiernego rozkładu temperatur na powierzchni podłogi.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czy pod pompy ciepła wylewka betonowa powinna być cieńsza?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" 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>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, przy zasilaniu niskotemperaturowym z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> (35°C) dąży się do minimalizacji oporu cieplnego, dlatego zaleca się wylewki o grubości 6,0–6,5 cm z obowiązkowym dodatkiem plastyfikatora. Pozwala to na maksymalne skrócenie czasu reakcji układu i podniesienie parametru COP pompy. Dzięki temu upewnisz się <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">czy ogrzewanie podłogowe jest energooszczędne</a> na najwyższym poziomie.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Jaka jest różnica w grubości między wylewką betonową a anhydrytową?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" 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>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tradycyjna wylewka betonowa wymaga grubości całkowitej 6–8 cm (minimum 3 cm nad rurą), natomiast płynny jastrych anhydrytowy może mieć grubość zaledwie 3,5–5,0 cm (w tym jedynie 2 cm otuliny nad rurą). Różnica wynika z wyższej wytrzymałości na zginanie oraz lepszej przewodności cieplnej anhydrytu.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czy można pominąć siatkę zbrojącą przy grubości wylewki wynoszącej 7 cm?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" 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>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, przy całkowitej grubości 7,0 cm i zastosowaniu mikrozbrojenia z włókien polipropylenowych oraz plastyfikatora, klasyczna siatka stalowa nie jest konieczna w pomieszczeniach mieszkalnych. Siatka pozostaje jednak bezwzględnie wymagana w garażach oraz w miejscach, gdzie grubość otuliny nad rurą spada poniżej 3,0 cm.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkToggleAccordion(button) {
        var item = button.parentElement;
        var answer = item.querySelector('.rk-faq-answer');
        var isCurrentlyOpen = item.classList.contains('is-open');
        
        // Zwijanie wszystkich pozostałych paneli (opcjonalnie dla czystszego UX)
        var allItems = document.querySelectorAll('.rk-faq-item');
        for (var i = 0; i < allItems.length; i++) {
            allItems[i].classList.remove('is-open');
            allItems[i].querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            allItems[i].querySelector('.rk-faq-answer').style.maxHeight = null;
        }

        // Jeżeli kliknięty element nie był otwarty, otwórz go (bezpieczne rozwiązanie bez operatora &#038;&#038;)
        if (isCurrentlyOpen === false) {
            item.classList.add('is-open');
            button.setAttribute('aria-expanded', 'true');
            answer.style.maxHeight = answer.scrollHeight + "px";
        }
    }
</script>



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

.rk-summary-block {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

/* Header Section */
.rk-summary-header {
    padding: 40px 50px;
    background: radial-gradient(circle at top right, #1e293b 0%, var(--rk-sum-dark) 100%);
    color: #fff;
    text-align: center;
}

.rk-summary-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.15);
    color: var(--rk-sum-accent);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-summary-title {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #f8fafc;
}

/* Interactive Health Meter */
.rk-health-dashboard {
    background: #f8fafc;
    padding: 30px 50px;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-health-bar-container {
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 15px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-health-bar-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--rk-sum-red) 0%, var(--rk-sum-gold) 50%, var(--rk-sum-green) 100%);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-health-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    color: var(--rk-sum-dark);
}

.rk-health-score {
    font-size: 24px;
    color: var(--rk-sum-blue);
}

/* Interactive Toggles Grid */
.rk-interactive-rules {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.rk-rule-card {
    background: #ffffff;
    border: 2px solid var(--rk-sum-border);
    border-radius: 16px;
    padding: 25px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-rule-card:hover {
    border-color: var(--rk-sum-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.1);
}

.rk-rule-card.is-active {
    border-color: var(--rk-sum-green);
    background: var(--rk-sum-green-light);
}

.rk-rule-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

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

.rk-toggle-switch {
    width: 48px;
    height: 24px;
    background: #cbd5e1;
    border-radius: 12px;
    position: relative;
    transition: background 0.3s;
}

.rk-rule-card.is-active .rk-toggle-switch {
    background: var(--rk-sum-green);
}

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

.rk-rule-card.is-active .rk-toggle-knob {
    transform: translateX(24px);
}

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

.rk-rule-card.is-active .rk-rule-desc {
    color: #065f46;
}

/* Tags Section */
.rk-tags-section {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

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

.rk-mat-tag:hover {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    border-color: #bae6fd;
}

/* Creative CTA */
.rk-cta-zone {
    padding: 45px 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-cta-zone::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(2,132,199,0.1) 0%, transparent 60%);
    pointer-events: none;
}

.rk-cta-title {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-cta-text {
    font-size: 16px;
    color: #94a3b8;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.7;
    position: relative;
    z-index: 1;
}

.rk-btn-neon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-sum-dark);
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 0 20px rgba(255,255,255,0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
}

.rk-btn-neon:hover {
    transform: translateY(-5px);
    background: var(--rk-sum-blue);
    color: #ffffff;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

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

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

/* Responsive adjustments */
@media (max-width: 768px) {
    .rk-summary-header, .rk-health-dashboard, .rk-interactive-rules, .rk-tags-section, .rk-cta-zone {
        padding: 30px 20px;
    }
    .rk-interactive-rules {
        grid-template-columns: 1fr; /* Stack vertically on mobile */
    }
    .rk-summary-title {
        font-size: 24px;
    }
    .rk-btn-neon {
        width: 100%;
        padding: 18px 20px;
        font-size: 16px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie – Inżynierskie zasady doboru grubości wylewki",
    "description": "Zestawienie optymalnych parametrów grubości jastrychu betonowego dla systemów płaszczyznowych. Interaktywny wskaźnik poprawności montażu wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wylewka",
    "name": "Wytyczne Techniczne: Parametry Wylewki na Ogrzewanie Podłogowe",
    "description": "Zbiór kluczowych wartości liczbowych niezbędnych do prawidłowego wylania jastrychu na systemie ogrzewania podłogowego. Zawiera grubości minimalne i zalecane.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna grubość wylewki betonowej",
      "minimalna grubość jastrychu na ogrzewanie podłogowe",
      "ile centymetrów wylewki na podłogówkę",
      "plastyfikator do wylewek z ogrzewaniem podłogowym",
      "czas nagrzewania wylewki betonowej"
    ],
    "measurementTechnique": "Określenie parametrów na podstawie normy PN-EN 1264 oraz PN-EN 13813 uwzględniających opór cieplny i nośność.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna otulina betonowa nad rurką: 3,0 cm",
        "Zalecana całkowita grubość wylewki: 6-8 cm",
        "Wymóg stosowania plastyfikatorów i dylatacji"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wylewka",
    "name": "Interaktywny Wskaźnik Poprawności Montażu Wylewki",
    "description": "Narzędzie pozwalające inwestorowi zweryfikować kluczowe parametry jastrychu (grubość, otulina, chemia budowlana) i ocenić potencjalne ryzyko awarii posadzki.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-block" id="wylewka-summary-app">
    <div class="rk-summary-header">
        <div class="rk-summary-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Inżynierskie Podsumowanie
        </div>
        <h2 class="rk-summary-title">Zanim wylejesz beton – 4 filary bezpiecznej podłogi</h2>
        <p style="color: #cbd5e1; font-size: 16px; max-width: 700px; margin: 0 auto; line-height: 1.6;">
            Beton nie wybacza błędów. Zbyt cienki pęknie, zbyt gruby wydrenuje Twój portfel i zaburzy pracę pompy ciepła. Uruchom poniższy symulator poprawności i upewnij się, że nie pominąłeś żadnego z kroków wynikających z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color: var(--rk-sum-accent); text-decoration: underline;">inżynierskich standardów</a>.
        </p>
    </div>

    <div class="rk-health-dashboard">
        <div class="rk-health-bar-container">
            <div class="rk-health-bar-fill" id="rkHealthBar"></div>
        </div>
        <div class="rk-health-status">
            <span>Gotowość do zalewania posadzki:</span>
            <span class="rk-health-score" id="rkHealthScore">0%</span>
        </div>
        <p id="rkHealthMessage" style="font-size: 14px; color: var(--rk-sum-red); margin: 10px 0 0 0; font-weight: 600;">
            Krytyczne braki technologiczne. Instalacja zagrożona usterką!
        </p>
    </div>

    <div class="rk-interactive-rules">
        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Otulina min. 3 cm</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Nad najwyższym punktem rury grzewczej zachowano absolutne minimum 30 mm czystego betonu chroniącego przed naciskiem punktowym i tzw. efektem klawiszowania.</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Całkowita grubość 6-8 cm</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Grubość jastrychu dostosowana do oporu cieplnego posadzki. Optymalizuje czas nagrzewania i likwiduje problem "zebry termicznej" oraz przeciążenia stropu.</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Plastyfikator do betonu</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Zastosowano chemię eliminującą bąbelki powietrza. Beton idealnie oblał rury, zwiększając przewodność cieplną λ z 1,2 do nawet 1,45 W/(m·K).</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Kompletne dylatacje</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Wykonano taśmy brzegowe oraz nacięcia pośrednie dla pól powyżej 36 m². Płyta grzewcza może swobodnie "pracować" pod wpływem temperatury.</p>
        </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># optymalna grubość wylewki betonowej</span>
        <span class="rk-mat-tag"># minimalna grubość jastrychu na ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># ile centymetrów wylewki na podłogówkę</span>
        <span class="rk-mat-tag"># wylewka anhydrytowa a cementowa różnice</span>
        <span class="rk-mat-tag"># plastyfikator do wylewek z ogrzewaniem podłogowym</span>
        <span class="rk-mat-tag"># pękanie wylewki na ogrzewaniu podłogowym</span>
        <span class="rk-mat-tag"># profesjonalny projekt instalacji ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># czas nagrzewania wylewki betonowej</span>
    </div>

    <div class="rk-cta-zone">
        <h3 class="rk-cta-title">Budowa Bez Ściemy. Ogrzewanie bez kompromisów.</h3>
        <p class="rk-cta-text">
            Chcesz mieć pewność, że parametry Twojej wylewki są perfekcyjnie dopasowane do mocy pompy ciepła i rozstawu rur? Wszystko zaczyna się na papierze. Nie zgaduj na budowie – powierz <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color: var(--rk-sum-accent);">wykonanie OZC i układu hydraulicznego</a> profesjonalistom.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-neon">
            ZDOBĄDŹ WIEDZĘ EKSPERCKĄ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
    let rkCurrentScore = 0;

    function toggleRule(element) {
        const value = parseInt(element.getAttribute('data-val'));
        
        if (element.classList.contains('is-active')) {
            element.classList.remove('is-active');
            rkCurrentScore = rkCurrentScore - value;
        } else {
            element.classList.add('is-active');
            rkCurrentScore = rkCurrentScore + value;
        }

        updateDashboard();
    }

    function updateDashboard() {
        const barFill = document.getElementById('rkHealthBar');
        const scoreText = document.getElementById('rkHealthScore');
        const msgText = document.getElementById('rkHealthMessage');

        barFill.style.width = rkCurrentScore + '%';
        scoreText.innerText = rkCurrentScore + '%';

        if (rkCurrentScore === 0) {
            msgText.innerText = 'Krytyczne braki technologiczne. Instalacja zagrożona usterką!';
            msgText.style.color = 'var(--rk-sum-red)';
            scoreText.style.color = 'var(--rk-sum-red)';
        } else if (rkCurrentScore > 0) {
            if (rkCurrentScore < 100) {
                msgText.innerText = 'Część wymogów spełniona, ale system nadal narażony na pęknięcia i straty ciepła.';
                msgText.style.color = 'var(--rk-sum-gold)';
                scoreText.style.color = 'var(--rk-sum-gold)';
            } else {
                if (rkCurrentScore === 100) {
                    msgText.innerText = 'Wzorowy standard inżynierski! Twoja posadzka jest gotowa do bezpiecznego wylania betonu.';
                    msgText.style.color = 'var(--rk-sum-green)';
                    scoreText.style.color = 'var(--rk-sum-green)';
                }
            }
        }
    }
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-accent: #f59e0b;
    --rk-dl-gray: #475569;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
}

.rk-dl-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 16px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
}

/* Header */
.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

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

/* Layout */
.rk-dl-layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-dl-bg);
}

/* Preview Column */
.rk-dl-preview-col {
    padding: 40px;
    background: var(--rk-dl-blue-light);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumbnail-box {
    width: 100%;
    background: #ffffff;
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.2);
    border: 1px solid var(--rk-dl-border);
    position: relative;
    cursor: pointer;
}

.rk-dl-thumbnail-box::after {
    content: '🔍 POWIĘKSZ';
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-dl-dark);
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumbnail-box:hover::after {
    opacity: 1;
}

.rk-dl-thumbnail {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
}

.rk-dl-preview-desc {
    margin-top: 20px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-dl-blue);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Actions Column */
.rk-dl-actions-col {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-info {
    margin-bottom: 35px;
}

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

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

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

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 800;
    transition: all 0.2s;
}

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

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

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

.rk-dl-btn-secondary:hover {
    border-color: var(--rk-dl-blue);
    color: var(--rk-dl-blue);
    background: var(--rk-dl-blue-light);
}

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

.rk-dl-meta {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Footer / Copyright */
.rk-dl-footer {
    padding: 20px 45px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    color: var(--rk-dl-gray);
    line-height: 1.5;
    text-align: center;
}

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

/* Fullscreen Modal */
.rk-dl-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    padding: 40px;
    justify-content: center;
    align-items: center;
}

.rk-dl-modal.is-open {
    display: flex;
}

.rk-dl-modal-content {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 40px;
    cursor: pointer;
    line-height: 1;
}

@media (max-width: 768px) {
    .rk-dl-layout { grid-template-columns: 1fr; }
    .rk-dl-preview-col { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 30px 20px; }
    .rk-dl-header, .rk-dl-actions-col, .rk-dl-footer { padding: 30px 20px; }
    .rk-dl-header { flex-direction: column; text-align: center; gap: 15px; }
    .rk-dl-modal { padding: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Pobierz Infografikę: Kompendium parametrów wylewki",
    "description": "Zestawienie normatywnych parametrów grubości i oporów cieplnych posadzek w formie graficznej, przygotowane specjalnie dla inwestorów i wykonawców.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Infografika techniczna: Ogrzewanie podłogowe a wylewka",
    "description": "Plik PDF i WebP o wysokiej rozdzielczości zawierający zbiór kluczowych błędów montażowych, wytycznych normowych i zależności oporu cieplnego okładzin.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "ściągawka wylewka betonowa PDF",
      "błędy inwestorów posadzki grzewczej",
      "normy projektowe podłogówka",
      "grubość wylewki tabela wykończeń"
    ],
    "measurementTechnique": "Przedstawienie skomplikowanych wyliczeń OZC oraz wymogów prawnych PN-EN w formie wektorowego schematu graficznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecane grubości posadzek a rodzaj paneli / płytek.",
        "Krzywe spadku COP przy przewymiarowaniu warstwy betonowej.",
        "Rekomendacje dotyczące otuliny w zależności od średnicy rury."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Moduł Dystrybucji Wiedzy Inżynierskiej",
    "description": "Interfejs do pobierania autorskich materiałów edukacyjnych (PDF, WebP), umożliwiający zapis plików bezpośrednio na urządzeniu użytkownika w celach projektowych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-wrapper">
    <div class="rk-dl-header">
        <div class="rk-dl-header-text">
            <h2>Materiały do pobrania</h2>
            <p>Zachowaj tę wiedzę dla siebie lub przekaż ją swojemu wykonawcy.</p>
        </div>
        <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: #38bdf8;"><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>
    </div>

    <div class="rk-dl-layout">
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumbnail-box" onclick="rkOpenModal()">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" alt="Infografika - Grubość wylewki betonowej na ogrzewanie podłogowe" class="rk-dl-thumbnail">
            </div>
            <div class="rk-dl-preview-desc">Kliknij, aby podglądnąć</div>
        </div>

        <div class="rk-dl-actions-col">
            <div class="rk-dl-info">
                <h3>Infografika: Ściągawka Inwestora</h3>
                <p>Przygotowałem skrót najważniejszych norm, zaleceń i pułapek technologicznych w wygodnej formie graficznej. Zapisz plik na telefonie przed wizytą na budowie.</p>
            </div>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.pdf" download class="rk-dl-btn rk-dl-btn-primary" target="_blank">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                        <span>Pobierz jako dokument PDF</span>
                    </div>
                    <span class="rk-dl-meta">Wysoka jakość</span>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" download class="rk-dl-btn rk-dl-btn-secondary" target="_blank">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="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>
                        <span>Pobierz jako Obraz (WebP)</span>
                    </div>
                    <span class="rk-dl-meta">Lekki plik</span>
                </a>
            </div>
        </div>
    </div>

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

<div class="rk-dl-modal" id="rkImageModal" onclick="rkCloseModal(event)">
    <button class="rk-dl-modal-close" onclick="rkCloseModal(event)">&times;</button>
    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" alt="Podgląd Infografiki" class="rk-dl-modal-content" id="rkModalImg">
</div>

<script>
    function rkOpenModal() {
        var modal = document.getElementById('rkImageModal');
        if (modal) {
            modal.classList.add('is-open');
        }
    }

    function rkCloseModal(event) {
        var modal = document.getElementById('rkImageModal');
        var modalImg = document.getElementById('rkModalImg');
        
        // Zamykaj tylko jeśli kliknięto tło (modal) lub przycisk zamknięcia, a nie sam obrazek (bez &&)
        if (event.target === modal) {
            modal.classList.remove('is-open');
        } else {
            if (event.target.classList.contains('rk-dl-modal-close')) {
                modal.classList.remove('is-open');
            }
        }
    }
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</title>
		<link>https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 14:43:41 +0000</pubDate>
				<category><![CDATA[Domy energooszczędne]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Koszty energii]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Koszty ogrzewania podłogowego]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania domu]]></category>
		<category><![CDATA[ogrzewanie domu 2026]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka czy grzejniki]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[zwrot z inwestycji ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3718</guid>

					<description><![CDATA[<p>Rosnące ceny energii sprawiają, że inwestorzy coraz częściej analizują nie tylko koszt budowy instalacji grzewczej, ale także jej opłacalność w długiej perspektywie. Właśnie dlatego temat zwrot z inwestycji w ogrzewanie podłogowe budzi dziś ogromne zainteresowanie wśród właścicieli domów i osób planujących budowę. Nowoczesne systemy niskotemperaturowe, współpracujące z pompami ciepła, pozwalają znacząco obniżyć rachunki za ogrzewanie. Sprawdzamy realne wyliczenia na 2026 rok, porównujemy koszty z grzejnikami i pokazujemy, kiedy podłogówka zaczyna przynosić realny zysk.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to jedna z tych decyzji, które dzielą inwestorów na dwa obozy: tych, którzy liczą każdą złotówkę wydaną „na starcie”, oraz tych, którzy patrzą na całkowity koszt posiadania domu przez dekady. W 2026 roku, w obliczu uwolnionych cen energii, taryf dynamicznych i rygorystycznych norm unijnych wynikających z dyrektywy EPBD, odpowiedź na pytanie o&nbsp;<strong>zwrot z inwestycji w ogrzewanie podłogowe</strong>&nbsp;nie jest już tylko kwestią komfortu, ale twardej matematyki, którą można precyzyjnie wyliczyć.</p>



<p class="wp-block-paragraph">Czy „podłogówka” to nadal luksus, czy może jedyna droga do przetrwania w dobie drogiego prądu? Sprawdzamy, ile realnie zaoszczędzisz po 10 latach i dlaczego tradycyjne grzejniki stają się dla pomp ciepła „kulą u nogi”. Wstępne koszty instalacji ogrzewania podłogowego są wyższe o około 30-40% w porównaniu do klasycznych grzejników, ale w 2026 roku kluczowym pojęciem jest&nbsp;<strong>COP (Coefficient of Performance)</strong>&nbsp;pompy ciepła.</p>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/" type="link" id="https://projekt-ogrzewania.pl/">Ogrzewanie podłogowe</a> to system niskotemperaturowy (zasilanie ok. 30–35°C), podczas gdy grzejniki wymagają 50–55°C, by pracować efektywnie. Każdy stopień obniżenia temperatury zasilania to około 2-3% oszczędności na rachunku za prąd. W skali dekady, przy uwzględnieniu inflacji i rosnących opłat dystrybucyjnych, różnica ta staje się Twoim czystym zyskiem. <strong>Inwestycja w ogrzewanie podłogowe zwrot</strong> następuje zazwyczaj między 7. a 11. rokiem użytkowania, ale jeśli weźmiemy pod uwagę taryfy dynamiczne (ładowanie „bufora ciepła” w wylewce, gdy prąd jest tani), okres ten może skrócić się nawet do 5-6 lat.</p>



<h2 class="wp-block-heading">Jakie czynniki decydują o opłacalności podłogówki w 2026 roku?</h2>



<p class="wp-block-paragraph">Zanim przejdziemy do szczegółowych wyliczeń, musimy zrozumieć, dlaczego w ogóle ogrzewanie podłogowe może być bardziej ekonomiczne od tradycyjnych grzejników. Odpowiedź kryje się w dwóch słowach:&nbsp;<strong>temperatura zasilania</strong>.</p>



<h3 class="wp-block-heading">Niska temperatura to wyższa efektywność źródła ciepła.</h3>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompy ciepła</a></strong> osiągają tym wyższą efektywność (współczynnik COP), im niższa jest temperatura wody w instalacji. Dla podłogówki COP może wynosić nawet 4,2–4,5, podczas gdy przy grzejnikach spada do 2,8–3,2.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/kociol-gazowy/" type="link" id="https://projekt-ogrzewania.pl/kociol-gazowy/">Kotły kondensacyjne</a></strong> w pełni wykorzystują zjawisko kondensacji pary wodnej właśnie przy niskich temperaturach powrotu. Im chłodniejsza woda wraca do kotła, tym więcej ciepła odzyskujemy ze spalin.</li>
</ul>



<h3 class="wp-block-heading">Taryfy dynamiczne i magazynowanie ciepła – nowość 2026 roku.</h3>



<p class="wp-block-paragraph">W 2026 roku taryfy dynamiczne pozwalają pompie pracować głównie w godzinach taniego prądu (np. między 11:00 a 15:00, gdy fotowoltaika sąsiadów generuje nadwyżki do sieci).&nbsp;<strong>Wylewka anhydrytowa o grubości 6-7 cm magazynuje to ciepło na wieczór</strong>, działając jak tani akumulator. Grzejniki takiej możliwości nie dają – muszą pracować wtedy, gdy jest zimno, czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy.</p>



<h3 class="wp-block-heading">Koszt instalacji w 2026 roku – ile trzeba wydać na starcie?</h3>



<p class="wp-block-paragraph">Dla potrzeb naszych wyliczeń przyjmujemy następujące koszty instalacji wewnętrznej (bez źródła ciepła):</p>



<ul class="wp-block-list">
<li><strong>Dom 120 m²</strong>: podłogówka około 27 600 zł, grzejniki około 19 200 zł</li>



<li><strong>Dom 150 m²</strong>: podłogówka około 34 500 zł, grzejniki około 24 000 zł</li>



<li><strong>Dom 200 m²</strong>: podłogówka około 46 000 zł, grzejniki około 32 000 zł</li>
</ul>



<h2 class="wp-block-heading">Realne wyliczenia dla czterech scenariuszy inwestycyjnych (dane na 2026 rok).</h2>



<p class="wp-block-paragraph">Przyjmujemy średnią cenę prądu w 2026 roku na poziomie&nbsp;<strong>1,10 zł/kWh</strong>&nbsp;(z dystrybucją) oraz gazu na poziomie&nbsp;<strong>0,42 zł/kWh</strong>. Standard energetyczny domów: WT 2021 (około&nbsp;<strong>70 kWh/m²/rok</strong>).</p>



<h3 class="wp-block-heading">Scenariusz A: Mały dom (120 m²) + Pompa ciepła powietrzna.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 120 m², zapotrzebowanie = 8 400 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 19 200 zł + 35 000 zł = 54 200 zł</li>



<li>Podłogówka + pompa ciepła: 27 600 zł + 35 000 zł = 62 600 zł</li>



<li><strong>Różnica (dopłata do podłogówki)</strong>: 8 400 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP przy 55°C = 3,0): 8 400 / 3,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li>Podłogówka (COP przy 35°C = 4,2): 8 400 / 4,2 = 2 000 kWh × 1,10 zł =&nbsp;<strong>2 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 080 – 2 200 =&nbsp;<strong>880 zł</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Prosty okres zwrotu</strong>: 8 400 zł / 880 zł ≈&nbsp;<strong>9,5 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz B: Średni dom (150 m²) + Pompa ciepła + Taryfy dynamiczne.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 150 m², zapotrzebowanie = 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 24 000 zł + 35 000 zł = 59 000 zł</li>



<li>Podłogówka + pompa ciepła: 34 500 zł + 35 000 zł = 69 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>&nbsp;(z optymalizacją taryf dynamicznych):</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 3,0, brak akumulacji): 10 500 / 3,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 4,2 + magazynowanie w wylewce pozwala wykorzystać 70% energii w tańszej taryfie 0,80 zł/kWh): 10 500 / 4,2 = 2 500 kWh, z czego 1 750 kWh po 0,80 zł i 750 kWh po 1,10 zł = 1 400 + 825 =&nbsp;<strong>2 225 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 2 225 =&nbsp;<strong>1 625 zł</strong>&nbsp;(dla uśrednienia przyjmijmy 1 450 zł, uwzględniając lata mniej słoneczne)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 1 450 zł ≈&nbsp;<strong>7,2 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz C: Duży dom (200 m²) + Pompa ciepła gruntowa.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 200 m², zapotrzebowanie = 14 000 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa gruntowa: 32 000 zł + 65 000 zł = 97 000 zł</li>



<li>Podłogówka + pompa gruntowa: 46 000 zł + 65 000 zł = 111 000 zł</li>



<li><strong>Różnica</strong>: 14 000 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 4,0 dla gruntówki przy 55°C): 14 000 / 4,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 5,0 przy 35°C): 14 000 / 5,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 3 080 =&nbsp;<strong>770 zł</strong>&nbsp;(Uwaga: to mniej niż w scenariuszu B, bo gruntówka jest już bardzo efektywna nawet z grzejnikami)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 14 000 zł / 770 zł ≈&nbsp;<strong>18 lat</strong>&nbsp;– to pokazuje, że przy gruntowej pompie głównym zyskiem jest komfort, a nie ekonomia.</p>



<h3 class="wp-block-heading">Scenariusz D: Dom 150 m² + Kocioł gazowy kondensacyjny (modernizacja).</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: jak w scenariuszu B, 150 m², 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + kocioł: 24 000 zł + 18 000 zł = 42 000 zł</li>



<li>Podłogówka + kocioł: 34 500 zł + 18 000 zł = 52 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (sprawność 95%): 10 500 / 0,95 = 11 053 kWh gazu × 0,42 zł =&nbsp;<strong>4 642 zł</strong></li>



<li>Podłogówka (sprawność 105%): 10 500 / 1,05 = 10 000 kWh gazu × 0,42 zł =&nbsp;<strong>4 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 4 642 – 4 200 =&nbsp;<strong>442 zł</strong>&nbsp;(w zaokrągleniu 450 zł)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 450 zł ≈&nbsp;<strong>23 lata</strong></p>



<p class="wp-block-paragraph"><strong>Wniosek</strong>: Przy gazie podłogówkę wybieramy głównie dla komfortu, a nie czystego zysku. To potwierdza, że prawdziwym beneficjentem niskotemperaturowej podłogówki jest pompa ciepła.</p>



<h2 class="wp-block-heading">Tabela rzeczywistego zwrotu w latach (z inflacją i taryfami dynamicznymi).</h2>



<p class="wp-block-paragraph">Poniższa tabela przedstawia skumulowane oszczędności z wyboru ogrzewania podłogowego nad grzejnikowym dla&nbsp;<strong>domu 150 m² z pompą ciepła i taryfami dynamicznymi</strong>&nbsp;(Scenariusz B). Założono średni wzrost cen energii o 4% rocznie oraz coroczną optymalizację taryfową.</p>



<style>
.roi-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 40px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.roi-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}

.roi-table thead {
    background: #1c7c54;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
}

.roi-table th {
    padding: 18px;
    font-size: 14px;
    text-align: left;
    font-weight: 600;
}

.roi-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: middle;
}

.roi-table tr:nth-child(even) {
    background: #fafafa;
}

/* POPRAWKA: Selektor ograniczony tylko do ciała tabeli */
.roi-table tbody tr:hover:not(.roi-break) {
    background: #f2f7f5;
}

.roi-bold {
    font-weight: 700;
}

.roi-profit {
    color: #157a5b;
    font-weight: 700;
}

.roi-loss {
    color: #c0392b;
    font-weight: 600;
}

.roi-break {
    background: #fff3dc !important;
    font-weight: 700;
    box-shadow: inset 4px 0 0 #e0a94f;
}

.roi-progress {
    height: 8px;
    background: #e9f3ef;
    border-radius: 6px;
    margin-top: 6px;
    overflow: hidden;
}

.roi-bar {
    height: 100%;
    background: #1c7c54;
    border-radius: 6px;
}

@media(max-width:768px) {
    .roi-table th {
        font-size: 13px;
        padding: 14px;
    }
    .roi-table td {
        font-size: 14px;
        padding: 14px;
    }
}
</style>

<div class="roi-table-wrapper">
    <table class="roi-table">
        <thead>
            <tr>
                <th>Rok</th>
                <th>Koszt eksploatacji<br>(Grzejniki)</th>
                <th>Koszt eksploatacji<br>(Podłogówka)</th>
                <th>Skumulowana oszczędność</th>
                <th>Bilans inwestycji<br>(Nadwyżka / Strata)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="roi-bold">Rok 0</td>
                <td>–</td>
                <td>–</td>
                <td>–</td>
                <td class="roi-loss">-10 500 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 1</td>
                <td>3 850 zł</td>
                <td>2 225 zł</td>
                <td>1 625 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:8%"></div></div>
                </td>
                <td class="roi-loss">-8 875 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 2</td>
                <td>4 004 zł</td>
                <td>2 314 zł</td>
                <td>3 315 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:17%"></div></div>
                </td>
                <td class="roi-loss">-7 185 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 3</td>
                <td>4 164 zł</td>
                <td>2 407 zł</td>
                <td>5 072 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:26%"></div></div>
                </td>
                <td class="roi-loss">-5 428 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 4</td>
                <td>4 331 zł</td>
                <td>2 503 zł</td>
                <td>6 900 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:35%"></div></div>
                </td>
                <td class="roi-loss">-3 600 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 5</td>
                <td>4 504 zł</td>
                <td>2 603 zł</td>
                <td>8 801 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:45%"></div></div>
                </td>
                <td class="roi-loss">-1 699 zł</td>
            </tr>
            <tr class="roi-break">
                <td class="roi-bold">Rok 6</td>
                <td>4 684 zł</td>
                <td>2 707 zł</td>
                <td>10 778 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:55%"></div></div>
                </td>
                <td class="roi-profit">+278 zł (Próg rentowności)</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 7</td>
                <td>4 872 zł</td>
                <td>2 815 zł</td>
                <td>12 835 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:66%"></div></div>
                </td>
                <td class="roi-profit">+2 335 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 8</td>
                <td>5 067 zł</td>
                <td>2 928 zł</td>
                <td>14 974 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:77%"></div></div>
                </td>
                <td class="roi-profit">+4 474 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 9</td>
                <td>5 270 zł</td>
                <td>3 045 zł</td>
                <td>17 199 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:88%"></div></div>
                </td>
                <td class="roi-profit">+6 699 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 10</td>
                <td>5 481 zł</td>
                <td>3 167 zł</td>
                <td class="roi-bold">19 513 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:100%"></div></div>
                </td>
                <td class="roi-profit roi-bold">+9 013 zł</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph"><strong>Interpretacja</strong>: W 6. roku użytkowania system podłogowy nie tylko „spłacił” różnicę w cenie zakupu (10 500 zł), ale zaczyna przynosić czysty zysk. Po 10 latach na koncie zostaje dodatkowe&nbsp;<strong>9 013 zł</strong>&nbsp;w porównaniu do sytuacji, w której pozostalibyśmy przy grzejnikach. Po 15 latach zysk przekracza 20 000 zł.</p>



<h2 class="wp-block-heading">Porównanie systemów grzewczych: podłogówka vs grzejniki vs ogrzewanie powietrzne.</h2>



<p class="wp-block-paragraph">Dlaczego ogrzewanie powietrzne (klimatyzacja z funkcją grzania) przegrywa w bilansie 10-letnim? Choć jest tanie w montażu, w 2026 roku traci na&nbsp;<strong>braku bezwładności cieplnej</strong>. Poniższa tabela zestawia kluczowe cechy:</p>



<style>
.system-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 30px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.system-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.system-table thead {
    background: #1c7c54;
    color: #ffffff;
}

.system-table th {
    padding: 16px;
    font-size: 15px;
    text-align: left;
    font-weight: 600;
}

.system-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: top;
}

.system-table tr:nth-child(even) {
    background: #fafafa;
}

/* POPRAWKA: Selektor ograniczony do tbody */
.system-table tbody tr:hover {
    background: #f3f7f5;
}

.system-feature {
    font-weight: 600;
    white-space: nowrap;
}

.system-best {
    color: #1c7c54;
    font-weight: 700;
}

.system-warning {
    color: #c0392b;
    font-weight: 600;
}

@media(max-width:768px) {
    .system-table th {
        font-size: 13px;
    }
    .system-table td {
        font-size: 14px;
    }
}
</style>

<div class="system-table-wrapper">
    <table class="system-table">
        <thead>
            <tr>
                <th>Cecha</th>
                <th>Ogrzewanie podłogowe</th>
                <th>Grzejniki (konwekcyjne)</th>
                <th>Klimatyzacja (powietrze-powietrze)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="system-feature">Efektywność z PC</td>
                <td class="system-best">Najwyższa (COP 4.0–4.5)</td>
                <td>Średnia (COP 2.8–3.2)</td>
                <td>Wysoka (COP 3.5–4.0), ale brak akumulacji</td>
            </tr>
            <tr>
                <td class="system-feature">Komfort cieplny</td>
                <td class="system-best">Idealny (ciepłe stopy, brak przeciągów)</td>
                <td>Punktowy (zimne strefy przy podłodze)</td>
                <td class="system-warning">Nawiew (ryzyko przeciągów i przesuszenia)</td>
            </tr>
            <tr>
                <td class="system-feature">Akumulacja ciepła</td>
                <td class="system-best">Bardzo wysoka (6–12 godzin w wylewce)</td>
                <td>Bardzo niska (minuty)</td>
                <td>Brak</td>
            </tr>
            <tr>
                <td class="system-feature">Możliwość optymalizacji taryfowej</td>
                <td class="system-best">Pełna – ładujemy tani prąd w południe</td>
                <td>Ograniczona</td>
                <td class="system-warning">Żadna – grzeje gdy jest zimno, czyli drogo</td>
            </tr>
            <tr>
                <td class="system-feature">Estetyka</td>
                <td class="system-best">Niewidoczne</td>
                <td>Zajmują ściany</td>
                <td>Widoczne jednostki wewnętrzne</td>
            </tr>
            <tr>
                <td class="system-feature">Koszt instalacji</td>
                <td>Wysoki</td>
                <td>Niski / Średni</td>
                <td>Średni</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph">Kluczowa różnica: ogrzewanie podłogowe pozwala „kupić” tanią energię w południe i oddawać ją do północy. Klimatyzacja musi pracować wtedy, kiedy jest zimno – czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy. W perspektywie 10 lat to setki, a nawet tysiące złotych różnicy.</p>



<h2 class="wp-block-heading"><strong>Kalkulator zwrotu: Podłogówka vs Grzejniki</strong>.</h2>



<style>
.roi-kalkulator {
    max-width: 1100px;
    margin: 20px auto;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #333;
    background: #fdfdfd;
    border: 1px solid #eee;
    border-radius: 12px;
}

.roi-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

@media(max-width: 900px) {
    .roi-box { grid-template-columns: 1fr; }
}

.roi-panel {
    background: #ffffff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.roi-title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 25px;
    text-align: center;
    color: #1c7c54;
}

.roi-input {
    margin-bottom: 20px;
}

.roi-input label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 14px;
}

.roi-input .helper-text {
    font-size: 12px;
    color: #666;
    margin-bottom: 8px;
    display: block;
    line-height: 1.3;
}

.roi-input input,
.roi-input select {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 16px;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.roi-input input:focus {
    border-color: #1c7c54;
    outline: none;
    box-shadow: 0 0 0 3px rgba(28, 124, 84, 0.1);
}

.roi-result {
    font-size: 16px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f0f0f0;
}

.roi-big {
    font-size: 26px;
    font-weight: 700;
    color: #1c7c54;
    margin-top: 4px;
}

.roi-cta {
    margin-top: 25px;
}

.roi-cta a {
    display: block;
    background: #1c7c54;
    color: white;
    padding: 16px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    transition: background 0.3s ease;
    line-height: 1.4;
}

.roi-cta a:hover {
    background: #155f41;
}

#roi-res-zwrot {
    color: #e67e22;
}
</style>

<div class="roi-kalkulator">
    <div class="roi-title">Kalkulator zwrotu: Podłogówka vs Grzejniki</div>
    
    <div class="roi-box">
        <div class="roi-panel">
            <div class="roi-input">
                <label>Powierzchnia domu (m²)</label>
                <input type="number" id="roi-metraz" value="150" min="1">
            </div>

            <div class="roi-input">
                <label>Standard energetyczny</label>
                <select id="roi-standard">
                    <option value="70">Nowy dom (WT 2021) &#8211; 70 kWh/m²</option>
                    <option value="50">Dom energooszczędny &#8211; 50 kWh/m²</option>
                    <option value="100">Dom starszy / modernizowany &#8211; 100 kWh/m²</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Źródło ciepła</label>
                <select id="roi-zrodlo">
                    <option value="pc_powietrze">Pompa ciepła powietrzna</option>
                    <option value="pc_grunt">Pompa ciepła gruntowa</option>
                    <option value="gaz">Kocioł gazowy kondensacyjny</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Cena energii (zł/kWh)</label>
                <input type="number" id="roi-energia" value="1.10" step="0.01">
            </div>

            <div class="roi-input">
                <label>Różnica w koszcie inwestycji (zł)</label>
                <span class="helper-text">Wpisz o ile droższy jest montaż podłogówki od instalacji z grzejnikami (np. 12 000 zł).</span>
                <input type="number" id="roi-roznica" placeholder="Pozostaw puste, by zobaczyć same oszczędności" min="0">
            </div>
        </div>

        <div class="roi-panel">
            <div class="roi-result">
                Roczny koszt – grzejniki
                <div class="roi-big" id="roi-res-grzejniki">0 zł</div>
            </div>

            <div class="roi-result">
                Roczny koszt – podłogówka
                <div class="roi-big" id="roi-res-podlogowka">0 zł</div>
            </div>

            <div class="roi-result">
                Roczna oszczędność na paliwie
                <div class="roi-big" id="roi-res-oszczednosc">0 zł</div>
            </div>

            <div class="roi-result">
                Czas zwrotu różnicy kosztów
                <div class="roi-big" id="roi-res-zwrot">0 lat</div>
            </div>

            <div class="roi-result">
                Bilans po 10 latach użytkowania
                <div class="roi-big" id="roi-res-zysk">0 zł</div>
            </div>

            <div class="roi-cta">
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">
                    Zamów profesjonalny projekt, aby realnie obniżyć koszty ogrzewania
                </a>
            </div>
        </div>
    </div>
</div>

<script>
(function() {
    // Funkcja formatująca walutę
    function format(val) {
        return Math.round(val).toLocaleString('pl-PL') + " zł";
    }

    function oblicz() {
        const metraz = parseFloat(document.getElementById("roi-metraz").value) || 0;
        const standard = parseFloat(document.getElementById("roi-standard").value) || 0;
        const cenaEnergii = parseFloat(document.getElementById("roi-energia").value) || 0;
        const roznicaInwestycji = parseFloat(document.getElementById("roi-roznica").value) || 0;
        const zrodlo = document.getElementById("roi-zrodlo").value;

        // Roczne zapotrzebowanie na ciepło (kWh)
        const zapotrzebowanie = metraz * standard;

        // Ustawienie sprawności (COP / Sprawność kotła)
        let copGrzejnik = 3.0, copPodloga = 4.2;

        if (zrodlo === "pc_grunt") { copGrzejnik = 4.0; copPodloga = 5.0; }
        if (zrodlo === "gaz") { copGrzejnik = 0.95; copPodloga = 1.05; }

        // Koszty eksploatacji
        const kosztG = (zapotrzebowanie / copGrzejnik) * cenaEnergii;
        const kosztP = (zapotrzebowanie / copPodloga) * cenaEnergii;
        const oszczednoscRoczna = kosztG - kosztP;
        
        // Logika wyświetlania zwrotu
        let zwrotWynik = "0.0 lat";
        if (oszczednoscRoczna > 0) {
            if (roznicaInwestycji > 0) {
                zwrotWynik = (roznicaInwestycji / oszczednoscRoczna).toFixed(1) + " lat";
            } else {
                zwrotWynik = "0.0 lat";
            }
        } else {
            zwrotWynik = "Brak zwrotu";
        }

        // Zysk po 10 latach (Oszczędności * 10 - koszt początkowy różnicy)
        const bilans10 = (oszczednoscRoczna * 10) - roznicaInwestycji;

        // Renderowanie wyników
        document.getElementById("roi-res-grzejniki").innerText = format(kosztG);
        document.getElementById("roi-res-podlogowka").innerText = format(kosztP);
        document.getElementById("roi-res-oszczednosc").innerText = format(oszczednoscRoczna);
        document.getElementById("roi-res-zwrot").innerText = zwrotWynik;
        document.getElementById("roi-res-zysk").innerText = format(bilans10);
    }

    // Nasłuchiwanie zmian
    const inputs = ["roi-metraz", "roi-standard", "roi-zrodlo", "roi-energia", "roi-roznica"];
    inputs.forEach(id => {
        document.getElementById(id).addEventListener("input", oblicz);
    });

    // Startowe wywołanie
    oblicz();
})();
</script>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – klucz do realnych oszczędności</h2>



<p class="wp-block-paragraph">Wszystkie powyższe wyliczenia opierają się na założeniu, że instalacja została prawidłowo zaprojektowana i wykonana. W kontekście <strong>zwrotu z inwestycji w ogrzewanie podłogowe</strong> należy podkreślić, że <strong>profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt</a> to nie koszt, ale inwestycja, która bezpośrednio przekłada się na oszczędności</strong>.</p>



<p class="wp-block-paragraph">Dlaczego projekt jest tak ważny w 2026 roku? Po pierwsze, określa on optymalny rozstaw rur w zależności od stref obciążenia cieplnego – w pomieszczeniach narażonych na duże straty (przy oknach, drzwiach balkonowych) rury układa się gęściej, co zapobiega wychładzaniu podłogi. Po drugie, projekt uwzględnia opory przepływu i dobiera odpowiednią średnicę rur, aby pompa ciepła pracowała w optymalnym zakresie wydajności. Po trzecie, zawiera wytyczne dotyczące grubości i rodzaju wylewki –&nbsp;<strong>wylewka anhydrytowa o grubości 6-7 cm</strong>&nbsp;to dziś standard, bo najlepiej przewodzi ciepło i magazynuje je na potrzeby taryf dynamicznych.</p>



<p class="wp-block-paragraph">Dla inwestorów modernizujących stare budynki, którzy nie mogą zerwać podłóg, projektanci proponują <strong><a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche</a> (cienkowarstwowe)</strong> – ich zwrot jest nieco dłuższy, ale wciąż lepszy niż pozostanie przy wysokotemperaturowych grzejnikach. Koszt projektu (1 500–3 000 zł) zwraca się już w pierwszym sezonie grzewczym dzięki niższym rachunkom i bezawaryjnej pracy systemu.</p>



<h2 class="wp-block-heading">Dodatkowe korzyści: wartość domu przy sprzedaży i prestiż.</h2>



<p class="wp-block-paragraph">W 2026 roku kupujący domy są znacznie bardziej świadomi energetycznie niż jeszcze 5 lat temu.&nbsp;<strong>Certyfikat Energetyczny (Świadectwo Charakterystyki Energetycznej)</strong>&nbsp;jest dokumentem krytycznym przy transakcji.</p>



<ul class="wp-block-list">
<li><strong>Wyższa klasa energetyczna</strong>: Dom z podłogówką i pompą ciepła łatwiej wpada w klasę „A” lub „A+”. To realnie podnosi cenę ofertową nieruchomości o&nbsp;<strong>5–8%</strong>&nbsp;. Dla domu wartego 1 000 000 zł to dodatkowe 50 000 – 80 000 zł.</li>



<li><strong>Uniwersalność wykończenia</strong>: Brak grzejników pod oknami do samej ziemi (portfenetrami) to standard nowoczesnej architektury. Domy z grzejnikami w 2026 roku zaczynają być postrzegane jako „technologicznie przestarzałe”.</li>



<li><strong>Zdrowie i higiena</strong>: Ograniczenie konwekcji (unoszenia się kurzu) to argument, który dla alergików jest wart dopłaty przy zakupie domu.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1772881304440"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe naprawdę się opłaca?</strong></strong> <p class="schema-faq-answer">Tak, szczególnie w połączeniu z pompą ciepła. Niska temperatura zasilania zwiększa efektywność systemu, dzięki czemu rachunki za energię mogą być nawet o kilkadziesiąt procent niższe niż przy grzejnikach.</p> </div> <div class="schema-faq-section" id="faq-question-1772881366554"><strong class="schema-faq-question"><strong>Po ilu latach następuje zwrot z inwestycji w ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W większości nowych domów z pompą ciepła <strong>zwrot z inwestycji w ogrzewanie podłogowe</strong> następuje zazwyczaj po około 6–9 latach użytkowania, w zależności od cen energii i standardu izolacji budynku.</p> </div> <div class="schema-faq-section" id="faq-question-1772881379861"><strong class="schema-faq-question"><strong>Czy podłogówka działa lepiej z pompą ciepła niż z grzejnikami?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe jest systemem niskotemperaturowym, dlatego pompa ciepła pracuje z wyższym współczynnikiem COP, co bezpośrednio przekłada się na niższe koszty eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881405330"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe można zastosować w modernizowanym domu?</strong></strong> <p class="schema-faq-answer">Tak, istnieją systemy cienkowarstwowe i suche, które pozwalają zamontować podłogówkę bez znacznego podnoszenia poziomu podłogi. W takich przypadkach kluczowy jest dobrze wykonany projekt instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881413673"><strong class="schema-faq-question"><strong>Czy podłogówka zwiększa wartość domu?</strong></strong> <p class="schema-faq-answer">Tak. Domy wyposażone w nowoczesne systemy niskotemperaturowe, takie jak ogrzewanie podłogowe i pompy ciepła, uzyskują często wyższą klasę energetyczną, co może zwiększyć wartość nieruchomości nawet o kilka procent.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: czy to się opłaca?</h2>



<p class="wp-block-paragraph">Jeśli budujesz dom w 2026 roku i planujesz w nim mieszkać dłużej niż 7 lat,&nbsp;<strong>inwestycja w ogrzewanie podłogowe zwrot</strong>&nbsp;jest gwarantowany przez samą fizykę i zmiany w systemie rozliczeń energii. Nasze wyliczenia pokazują, że:</p>



<ol start="1" class="wp-block-list">
<li><strong>Przy pompie ciepła i taryfach dynamicznych</strong>&nbsp;okres zwrotu wynosi&nbsp;<strong>6–9 lat</strong>&nbsp;(w zależności od metrażu i izolacji). Po 10 latach zysk sięga kilku-kilkunastu tysięcy złotych.</li>



<li><strong>Przy kotle gazowym</strong>&nbsp;okres zwrotu wydłuża się do 20–25 lat – w tym przypadku podłogówkę wybieramy dla komfortu, a nie dla oszczędności.</li>



<li><strong>Kluczową rolę odgrywa możliwość magazynowania ciepła w wylewce</strong>&nbsp;i wykorzystania tanich taryf – to wyróżnik podłogówki, którego nie ma żaden inny system.</li>



<li><strong>Wartość domu przy sprzedaży rośnie o 5–8%</strong>&nbsp;, co wielokrotnie przewyższa początkową dopłatę do instalacji.</li>
</ol>



<h3 class="wp-block-heading">Rekomendacje na 2026 rok:</h3>



<ul class="wp-block-list">
<li><strong>Dla oszczędnych</strong>: Wybierz system wodny z grubszą wylewką anhydrytową (minimum 6 cm) i sterownikiem obsługującym taryfy dynamiczne. To połączenie daje najszybszy zwrot.</li>



<li><strong>Dla modernizujących</strong>: Jeśli nie możesz zerwać podłóg, rozważ systemy suche (cienkowarstwowe) – ich zwrot jest nieco dłuższy, ale wciąż opłacalny w perspektywie 10-12 lat.</li>
</ul>



<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to w 2026 roku nie tylko zakup <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rurek</a> i <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/" type="link" id="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">rozdzielaczy</a>. To zakup <strong>„akumulatora ciepła”</strong>, który jako jedyny pozwala skutecznie walczyć z niestabilnymi cenami energii na wolnym rynku. Decydując się na podłogówkę, zyskujesz nie tylko niższe rachunki, ale przede wszystkim wyższą wartość swojego domu i bezkonkurencyjny komfort przez najbliższe dekady.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Punkt rosy w ogrzewaniu podłogowym – jak bezpiecznie chłodzić dom bez ryzyka kondensacji.</title>
		<link>https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 09:58:03 +0000</pubDate>
				<category><![CDATA[Chłodzenie płaszczyznowe]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje domowe]]></category>
		<category><![CDATA[Instalacje wodne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[analiza techniczna]]></category>
		<category><![CDATA[automatyka instalacji]]></category>
		<category><![CDATA[chłodzenie domu]]></category>
		<category><![CDATA[chłodzenie podłogowe]]></category>
		<category><![CDATA[dew point control]]></category>
		<category><![CDATA[fizyka budowli]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[kondensacja]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[punkt rosy]]></category>
		<category><![CDATA[rekuperacja]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<category><![CDATA[wilgotność powietrza]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3528</guid>

					<description><![CDATA[<p>Chłodzenie podłogówką brzmi jak idealne rozwiązanie na upalne lato – cicho, bez przeciągów i bez widocznych urządzeń. Jednak kluczowym parametrem, który decyduje o bezpieczeństwie całego systemu, jest punkt rosy w ogrzewaniu podłogowym. To on wyznacza granicę między komfortowym chłodem a ryzykiem kondensacji, mokrej posadzki i rozwoju pleśni. W artykule wyjaśniam, jak kontrolować wilgotność, jaką temperaturę podłogi uznać za bezpieczną oraz dlaczego automatyka antykondensacyjna to nie dodatek, lecz konieczność.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">Punkt rosy w ogrzewaniu podłogowym – jak bezpiecznie chłodzić dom bez ryzyka kondensacji.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light-blue: #f0f9ff;
    --rk-intro-gray: #64748b;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
    
    --rk-intro-danger: #ef4444;
    --rk-intro-danger-bg: #fef2f2;
    --rk-intro-success: #10b981;
    --rk-intro-success-bg: #dcfce7;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 0; /* Surowy, techniczny styl */
    border: 2px solid var(--rk-intro-dark);
    box-shadow: 8px 8px 0px var(--rk-intro-border);
}

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

.rk-intro-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

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

/* Hook i Szybka Odpowiedź */
.rk-intro-alerts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 2px solid var(--rk-intro-border);
}

.rk-intro-alert-box {
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-hook {
    border-right: 2px solid var(--rk-intro-border);
    background: var(--rk-intro-danger-bg);
}

.rk-intro-quick-answer {
    background: var(--rk-intro-success-bg);
}

.rk-alert-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-intro-hook .rk-alert-title { color: var(--rk-intro-danger); }
.rk-intro-quick-answer .rk-alert-title { color: #065f46; } /* Ciemniejszy zielony dla kontrastu */

.rk-alert-text {
    font-size: 15px;
    color: var(--rk-intro-dark);
    line-height: 1.6;
    margin: 0;
    font-weight: 600;
}

/* Tekst Bazowy */
.rk-intro-main-text {
    padding: 40px 50px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    background: #ffffff;
}

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

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

/* Nawigator - Co znajdziesz w artykule */
.rk-intro-navigator {
    padding: 0 50px 40px;
    background: #ffffff;
}

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

.rk-nav-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-nav-btn {
    width: 100%;
    background: #f8fafc;
    border: 2px solid var(--rk-intro-border);
    padding: 20px;
    text-align: left;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

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

.rk-nav-content {
    display: none;
    background: var(--rk-intro-light-blue);
    border: 2px solid var(--rk-intro-blue);
    padding: 25px;
    margin-top: -10px; /* Przylega do przycisku */
    margin-bottom: 10px;
}

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

.rk-nav-content p {
    margin: 0;
    font-size: 15px;
    color: var(--rk-intro-dark);
    line-height: 1.6;
}

.rk-interactive-badge {
    display: inline-block;
    background: var(--rk-intro-blue);
    color: #ffffff;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-main-text, .rk-intro-navigator { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 24px; }
    .rk-intro-alerts { grid-template-columns: 1fr; }
    .rk-intro-hook { border-right: none; border-bottom: 2px solid var(--rk-intro-border); }
    .rk-nav-btn { padding: 15px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Punkt rosy w ogrzewaniu podłogowym – jak bezpiecznie chłodzić dom bez ryzyka kondensacji.",
    "description": "Zrozum punkt rosy w ogrzewaniu podłogowym. Szybka odpowiedź, normy temperatur zasilania oraz interaktywne narzędzia do obliczania kondensacji latem.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-quickanswer",
    "name": "Parametry brzegowe bezpiecznego chłodzenia (Quick Answer)",
    "description": "Zestawienie podstawowych, granicznych temperatur zasilania dla wodnych instalacji płaszczyznowych w trybie letnim.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "punkt rosy w ogrzewaniu podłogowym",
      "temperatura zasilania chłodzenia podłogowego",
      "kondensacja na podłodze latem",
      "bezpieczne chłodzenie domów",
      "rewersyjna pompa ciepła parametry"
    ],
    "measurementTechnique": "Bezpośrednie odniesienie do normy PN-EN 1264 ustalające twarde granice dla temperatury zasilania czynnika chłodniczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna temperatura zasilania instalacji: 16°C – 20°C.",
        "Warunek bezwzględny: Temperatura wody zawsze minimum 1,5°C powyżej aktualnego punktu rosy.",
        "Wymóg techniczny: Konieczność zastosowania automatyki Dew Point Control."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-nawigator",
    "name": "Interaktywny Nawigator Artykułu",
    "description": "Narzędzie ułatwiające czytelnikom dostęp do zaawansowanych kalkulatorów i symulatorów termodynamicznych zawartych w artykule.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper" id="rk-intro-app">
    <div class="rk-intro-header">
        <h2>Punkt rosy w ogrzewaniu podłogowym – jak bezpiecznie chłodzić dom bez ryzyka kondensacji.</h2>
        <p>Inżynierskie kompendium wiedzy. Oblicz parametry powietrza, sprawdź normy i nie pozwól, aby letnie chłodzenie zniszczyło Twoją posadzkę.</p>
    </div>

    <div class="rk-intro-alerts">
        <div class="rk-intro-alert-box rk-intro-hook">
            <div class="rk-alert-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Zagrożenie
            </div>
            <p class="rk-alert-text">
                Wyobraź sobie upalne lato. Uruchamiasz chłodzenie, a po kilku godzinach Twoja nowa dębowa podłoga zaczyna pęcznieć, a płytki stają się śliskie od wody. To nie awaria hydrauliki – to bezlitosny <strong>punkt rosy</strong>, który właśnie niszczy Twój dom.
            </p>
        </div>

        <div class="rk-intro-alert-box rk-intro-quick-answer">
            <div class="rk-alert-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Szybka odpowiedź
            </div>
            <p class="rk-alert-text">
                Aby bezpiecznie chłodzić dom, temperatura wody w rurach musi wynosić <strong>16°C – 20°C</strong> i być stale kontrolowana. Musi być wyższa od wyznaczonego punktu rosy. Wymaga to precyzyjnej automatyki antykondensacyjnej (Dew Point Control).
            </p>
        </div>
    </div>

    <div class="rk-intro-main-text">
        <p>
            Chłodzenie płaszczyznowe za pomocą instalacji podłogowej i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">rewersyjnej pompy ciepła</a> to niezwykle skuteczny, bezgłośny i pozbawiony przeciągów sposób na obniżenie temperatury wewnętrznej latem. Jednak jego krytyczną granicą operacyjną jest właśnie <strong>punkt rosy w ogrzewaniu podłogowym</strong>. 
        </p>
        <p>
            Zjawisko to definiuje temperaturę, przy której para wodna zawarta w powietrzu ulega skraplaniu na powierzchni posadzki, wywołując potężne szkody budowlane. Aby proces ten przebiegał bezawaryjnie, minimalna temperatura zasilania instalacji musi być utrzymywana na poziomie wyższym niż wyznaczony punkt rosy, co w praktyce oznacza wspomniane parametry rzędu 16°C – 20°C. 
        </p>
        <p>
            Bezpieczna eksploatacja wymaga od instalatora doboru <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">zaawansowanego sterownika pogodowego</a> oraz ścisłej kontroli wilgotności względnej powietrza w budynku za pomocą dedykowanych czujników.
        </p>
    </div>

    <div class="rk-intro-navigator">
        <h3 class="rk-nav-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
            Co znajdziesz w tym artykule?
        </h3>
        
        <div class="rk-nav-container">
            <button class="rk-nav-btn" data-target="nav-1">
                Fizyka punktu rosy i kalkulator Magnus-Tetensa
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-nav-content" id="nav-1">
                <span class="rk-interactive-badge">Kalkulator Interaktywny</span>
                <p>Nie musisz znać skomplikowanych wzorów. W dalszej części artykułu przygotowaliśmy narzędzie, w którym suwakami ustawisz temperaturę i wilgotność w swoim domu, aby na żywo zobaczyć, kiedy woda zacznie skraplać się na posadzce.</p>
            </div>

            <button class="rk-nav-btn" data-target="nav-2">
                Tabela bezpiecznych temperatur i mocy chłodniczej
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-nav-content" id="nav-2">
                <span class="rk-interactive-badge">Pulpit Wydajności</span>
                <p>Dowiesz się, dlaczego przy wilgotności 70% Twoja podłogówka przestanie chłodzić i poznasz dokładne wytyczne dotyczące minimalnej bezpiecznej temperatury wody dla różnych warunków pogodowych.</p>
            </div>

            <button class="rk-nav-btn" data-target="nav-3">
                Wpływ chłodzenia na projekt hydrauliczny
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-nav-content" id="nav-3">
                <p>Omawiamy 4 filary projektowania: dlaczego przy chłodzeniu rury muszą być zagęszczone do 10 cm, jak dobrać opór cieplny materiałów wykończeniowych oraz dlaczego pompa obiegowa musi tłoczyć niemal dwukrotnie więcej wody.</p>
            </div>
            
            <button class="rk-nav-btn" data-target="nav-4">
                Symulator awarii i błędów montażowych
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-nav-content" id="nav-4">
                <span class="rk-interactive-badge">Skaner Ryzyka</span>
                <p>Przeklikaj się przez najczęstsze błędy instalatorów (od braku strefowej kontroli po manualne zawory mieszające) i zobacz fizyczne skutki zniszczenia struktury budowlanej domu.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const navBtns = document.querySelectorAll('.rk-nav-btn');
    const navContents = document.querySelectorAll('.rk-nav-content');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            const targetContent = document.getElementById(targetId);
            const isActive = this.classList.contains('active');
            
            // Twardy reset klas (zamiast toggle dla pewności i braku operatorów logicznych)
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            navContents.forEach(function(c) {
                c.classList.remove('active');
            });
            
            // Jeśli nie był aktywny, aktywuj (zachowanie typu akordeon)
            if (isActive === false) {
                this.classList.add('active');
                if (targetContent !== null) {
                    targetContent.classList.add('active');
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-risk-dark: #0f172a;
    --rk-risk-blue: #0284c7;
    --rk-risk-light: #f8fafc;
    --rk-risk-gray: #64748b;
    --rk-risk-border: #e2e8f0;
    --rk-risk-bg: #ffffff;
    
    --rk-risk-water: #0ea5e9;
    --rk-risk-mold: #10b981;
    --rk-risk-wood: #d97706;
    --rk-risk-danger: #ef4444;
}

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

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

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

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

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

/* Sekcja Interaktywnego Symulatora */
.rk-risk-simulator {
    padding: 40px 50px;
    background: var(--rk-risk-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-risk-simulator::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 50% 150%, rgba(14, 165, 233, 0.2) 0%, transparent 60%);
    pointer-events: none;
}

.rk-risk-sim-title {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 20px 0;
    position: relative;
    z-index: 1;
}

.rk-risk-slider-container {
    max-width: 500px;
    margin: 0 auto 30px;
    position: relative;
    z-index: 1;
    background: rgba(255,255,255,0.05);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-risk-temp-display {
    font-size: 48px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 15px;
    font-variant-numeric: tabular-nums;
    transition: color 0.3s;
}

.rk-risk-input {
    width: 100%;
    -webkit-appearance: none;
    height: 6px;
    border-radius: 3px;
    background: rgba(255,255,255,0.2);
    outline: none;
}

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

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

.rk-risk-status-badge {
    display: inline-block;
    padding: 8px 20px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s;
}

/* Siatka Konsekwencji */
.rk-risk-consequences {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-risk-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-risk-card {
    background: #ffffff;
    border: 1px solid var(--rk-risk-border);
    border-radius: 16px;
    padding: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0.6;
    filter: grayscale(100%);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-risk-card.active {
    opacity: 1;
    filter: grayscale(0%);
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(0,0,0,0.1);
}

.rk-risk-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-risk-card.active[data-type="wood"] { border-color: var(--rk-risk-wood); }
.rk-risk-card.active[data-type="wood"] .rk-risk-card-icon { background: #fef3c7; color: var(--rk-risk-wood); }

.rk-risk-card.active[data-type="glue"] { border-color: var(--rk-risk-water); }
.rk-risk-card.active[data-type="glue"] .rk-risk-card-icon { background: #e0f2fe; color: var(--rk-risk-water); }

.rk-risk-card.active[data-type="mold"] { border-color: var(--rk-risk-mold); }
.rk-risk-card.active[data-type="mold"] .rk-risk-card-icon { background: #dcfce7; color: var(--rk-risk-mold); }

.rk-risk-card.active[data-type="screed"] { border-color: var(--rk-risk-danger); }
.rk-risk-card.active[data-type="screed"] .rk-risk-card-icon { background: #fef2f2; color: var(--rk-risk-danger); }

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

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

.rk-risk-card a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
}

/* Stany dynamiczne dla JS */
.sim-safe .rk-risk-status-badge { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.4); }
.sim-safe .rk-risk-temp-display { color: #ffffff; }

.sim-danger .rk-risk-status-badge { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.4); animation: pulseDanger 2s infinite; }
.sim-danger .rk-risk-temp-display { color: #f87171; }
.sim-danger .rk-risk-input::-webkit-slider-thumb { border-color: #f87171; background: #fef2f2; }

@keyframes pulseDanger {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

@media (max-width: 768px) {
    .rk-risk-header, .rk-risk-simulator, .rk-risk-consequences { padding: 30px 20px; }
    .rk-risk-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-risk-temp-display { font-size: 40px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-ryzyko-zalania",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Czym jest punkt rosy w ogrzewaniu podłogowym i dlaczego generuje ryzyko zalania posadzki?",
    "description": "Fizyka budowli i równanie Clausiusa-Clapeyrona w praktyce. Zobacz, jak spadek temperatury jastrychu poniżej punktu rosy niszczy drewno, kleje i wywołuje pleśń.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-destrukcja",
    "name": "Katalog uszkodzeń posadzek przy chłodzeniu płaszczyznowym",
    "description": "Zbiór konsekwencji budowlanych wynikających z przekroczenia granicy wilgotności względnej na elemencie konstrukcyjnym zgodnie z normą PN-EN ISO 13788.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "punkt rosy w ogrzewaniu podłogowym",
      "ryzyko zalania posadzki",
      "pleśń od podłogówki",
      "uszkodzenie paneli chłodzenie",
      "jastrych anhydrytowy a wilgoć"
    ],
    "measurementTechnique": "Identyfikacja uszkodzeń materiałowych na podstawie nieliniowego spadku zdolności powietrza do akumulacji pary wodnej (równanie Clausiusa-Clapeyrona).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Deformacja drewna: Pęcznienie i łódkowanie parkietów w wyniku wchłaniania kondensatu.",
        "Utrata nośności: Rozwarstwianie klejów pod płytkami ceramicznymi.",
        "Zagrożenie biologiczne: Rozwój patogenów i grzybów w dylatacjach przyściennych.",
        "Destrukcja jastrychu: Rozpad struktury wylewek anhydrytowych po kontakcie z wodą płynną."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-symulator-ryzyka",
    "name": "Symulator Destrukcji Posadzki (Punkt Rosy)",
    "description": "Narzędzie interaktywne ilustrujące moment przemiany fazowej pary wodnej i wynikające z tego kaskadowe uszkodzenia warstw wykończeniowych podłogi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-risk-wrapper" id="rk-risk-app">
    <div class="rk-risk-header">
        <h2>Czym jest punkt rosy i dlaczego wywołuje ryzyko zalania?</h2>
        <p>Punkt rosy to graniczna temperatura posadzki, przy której powietrze (np. o określonym RH i temperaturze) osiąga stan nasycenia 100%. Zgodnie z prawami fizyki i normą <strong>PN-EN ISO 13788</strong>, przekroczenie tej granicy wywołuje skraplanie pary wodnej w ciecz.</p>
        <p>Zdolność powietrza do trzymania wilgoci maleje nieliniowo przy spadku temperatury. Efekt? Woda zrzucana jest na najzimniejszy element – czyli Twoją podłogę. Sprawdź, jak <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">fizyka budowli</a> mści się za błędy hydrauliczne.</p>
    </div>

    <div class="rk-risk-simulator sim-safe" id="rkRiskSim">
        <h3 class="rk-risk-sim-title">Symulator warunków letnich (Założony Punkt Rosy: 19°C)</h3>
        
        <div class="rk-risk-slider-container">
            <div class="rk-risk-temp-display" id="rkTempDisplay">24.0°C</div>
            <input type="range" class="rk-risk-input" id="rkTempSlider" min="15" max="26" step="0.5" value="24">
        </div>
        
        <div class="rk-risk-status-badge" id="rkStatusBadge">Powierzchnia sucha</div>
    </div>

    <div class="rk-risk-consequences">
        <h3 style="font-size: 18px; color: var(--rk-risk-gray); text-transform: uppercase; letter-spacing: 0.5px; margin: 0 0 20px 0; text-align: center;">Konsekwencje kondensacji</h3>
        
        <div class="rk-risk-grid">
            
            <div class="rk-risk-card" id="card-wood" data-type="wood">
                <div class="rk-risk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h20"></path><path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"></path><path d="M4 12V8a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v4"></path></svg>
                </div>
                <h3>Pęcznienie drewna</h3>
                <p>Panele laminowane oraz <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">parkiety drewniane</a> ulegają deformacji geometrycznej (ryzyko łódkowania) na skutek wchłaniania wody z jastrychu.</p>
            </div>

            <div class="rk-risk-card" id="card-glue" data-type="glue">
                <div class="rk-risk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <h3>Rozwarstwianie klejów</h3>
                <p>Nawet najlepsze kleje pod płytkami ceramicznymi, poddane cyklicznemu zawilgoceniu bez możliwości odparowania, tracą swoje właściwości nośne.</p>
            </div>

            <div class="rk-risk-card" id="card-mold" data-type="mold">
                <div class="rk-risk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                </div>
                <h3>Rozwój pleśni</h3>
                <p>Wilgoć utrzymująca się w strefach przyściennych stwarza idealne warunki dla grzybów i mikroorganizmów, tworząc poważne zagrożenie dla układu oddechowego.</p>
            </div>

            <div class="rk-risk-card" id="card-screed" data-type="screed">
                <div class="rk-risk-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.59-9.21l-5.94 5.94"></path></svg>
                </div>
                <h3>Destrukcja wylewki</h3>
                <p>Wysoce higroskopijna <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka anhydrytowa</a> wykazuje skrajną wrażliwość na wodę płynną. Jej kontakt z kondensatem prowadzi do utraty właściwości wytrzymałościowych.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkTempSlider');
    const display = document.getElementById('rkTempDisplay');
    const simBox = document.getElementById('rkRiskSim');
    const badge = document.getElementById('rkStatusBadge');
    const cards = document.querySelectorAll('.rk-risk-card');

    const DEW_POINT = 19.0; // Ustalony punkt rosy dla symulacji

    function updateSimulation() {
        const currentTemp = parseFloat(slider.value);
        display.textContent = currentTemp.toFixed(1) + '°C';

        // Warunek logiczny bez użycia "&&"
        if (currentTemp <= DEW_POINT) {
            // Stan krytyczny: Skraplanie
            simBox.className = 'rk-risk-simulator sim-danger';
            badge.textContent = 'Kondensacja (Wykroplenie Wody)';
            
            cards.forEach(function(card) {
                card.classList.add('active');
            });
        } else {
            // Stan bezpieczny
            simBox.className = 'rk-risk-simulator sim-safe';
            badge.textContent = 'Powierzchnia sucha';
            
            cards.forEach(function(card) {
                card.classList.remove('active');
            });
        }
    }

    slider.addEventListener('input', updateSimulation);
    
    // Inicjalizacja
    updateSimulation();
});
</script>



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

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

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

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

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

.rk-math-header a {
    color: #38bdf8;
    text-decoration: underline;
    font-weight: 700;
}

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

/* Przełączniki scenariuszy (Lewa kolumna) */
.rk-math-nav {
    background: #f8fafc;
    border-right: 1px solid var(--rk-math-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-math-nav h3 {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-math-gray);
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-math-btn {
    background: #ffffff;
    border: 2px solid var(--rk-math-border);
    border-radius: 16px;
    padding: 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
    overflow: hidden;
}

.rk-math-btn:hover {
    border-color: #bae6fd;
}

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

.rk-math-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-math-dark);
}

.rk-math-btn-sub {
    font-size: 13px;
    color: var(--rk-math-gray);
    font-weight: 600;
}

/* Obszar wyświetlania wyników (Prawa kolumna) */
.rk-math-display {
    padding: 40px 50px;
    position: relative;
}

.rk-math-panel {
    display: none;
    animation: fadeInMath 0.4s ease-out;
}

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

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

.rk-math-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-math-box {
    background: #f8fafc;
    border: 1px solid var(--rk-math-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-math-box-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-math-blue);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    flex-shrink: 0;
}

.rk-math-box-data {
    display: flex;
    flex-direction: column;
}

.rk-math-box-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-math-gray);
}

.rk-math-box-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-math-dark);
}

/* Wynik końcowy scenariusza */
.rk-math-result {
    border-radius: 16px;
    padding: 30px;
    border: 2px solid transparent;
    text-align: center;
    position: relative;
}

.state-danger {
    background: var(--rk-math-red-bg);
    border-color: var(--rk-math-red);
}

.state-optimal {
    background: var(--rk-math-teal-bg);
    border-color: var(--rk-math-teal);
}

.state-perfect {
    background: var(--rk-math-green-bg);
    border-color: var(--rk-math-green);
}

.rk-math-result-title {
    font-size: 16px;
    text-transform: uppercase;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.state-danger .rk-math-result-title { color: var(--rk-math-red); }
.state-optimal .rk-math-result-title { color: var(--rk-math-teal); }
.state-perfect .rk-math-result-title { color: var(--rk-math-green); }

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

.rk-math-result-desc {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

/* Animacja SVG dla wilgoci */
.rk-math-svg-anim {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 60px;
    height: 60px;
    opacity: 0.2;
}

@media (max-width: 768px) {
    .rk-math-layout { grid-template-columns: 1fr; }
    .rk-math-header, .rk-math-display { padding: 30px 20px; }
    .rk-math-nav { border-right: none; border-bottom: 1px solid var(--rk-math-border); padding: 25px 20px; }
    .rk-math-metrics { grid-template-columns: 1fr; gap: 15px; }
    .rk-math-svg-anim { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Jak obliczyć punkt rosy dla parametrów powietrza w domu?",
    "description": "Zastosowanie wzoru Magnus-Tetensa w praktyce inżynierskiej. Analiza trzech scenariuszy wilgotnościowych dla chłodzenia płaszczyznowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-scenariusze",
    "name": "Scenariusze analityczne temperatury punktu rosy",
    "description": "Baza danych obliczeniowych prezentująca zależność bezpiecznej temperatury wylewki od parametrów powietrza wewnętrznego (T, RH).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór magnus-tetensa punkt rosy",
      "obliczanie kondensacji podłogówka",
      "temperatura skraplania chłodzenie płaszczyznowe",
      "zależność temperatury i wilgotności",
      "bezpieczna podłoga chłodzenie"
    ],
    "measurementTechnique": "Algorytm Magnus-Tetensa dla zakresu temperatur 0-60°C z dokładnością 0,1°C. Zastosowane stałe: a = 17,27, b = 237,7°C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wysokie obciążenie (28°C, 70% RH): Punkt rosy 22,0°C. Blokada systemu.",
        "Warunki standardowe (24°C, 50% RH): Punkt rosy 12,9°C. Bezpieczna praca.",
        "Powietrze suche (26°C, 40% RH): Punkt rosy 11,5°C. Maksymalna wydajność."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-analizator",
    "name": "Analizator Scenariuszy Mikroklimatu HVAC",
    "description": "Edukacyjna aplikacja webowa tłumacząca skomplikowane wzory termodynamiczne na praktyczne decyzje eksploatacyjne pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-math-wrapper" id="rk-math-app">
    <div class="rk-math-header">
        <h2>Jak obliczyć punkt rosy dla parametrów powietrza?</h2>
        <p>W praktyce inżynierskiej wykorzystujemy uproszczony <strong>wzór Magnus-Tetensa</strong>, zalecany przez normy HVAC. Nie musisz być jednak matematykiem, by go zrozumieć. Zobacz, jak ten algorytm wpływa na bezpieczeństwo Twojej podłogi w 3 najczęstszych scenariuszach. To równie ważne co pytanie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">czy ogrzewanie podłogowe wysusza powietrze</a> zimą.</p>
    </div>

    <div class="rk-math-layout">
        
        <div class="rk-math-nav">
            <h3>Wybierz scenariusz</h3>
            
            <button class="rk-math-btn active" data-scenario="1">
                <span class="rk-math-btn-title">1. Dzień parny (Burza)</span>
                <span class="rk-math-btn-sub">Wysokie obciążenie wilgocią</span>
            </button>
            
            <button class="rk-math-btn" data-scenario="2">
                <span class="rk-math-btn-title">2. Warunki standardowe</span>
                <span class="rk-math-btn-sub">Klimatyzacja / Przewietrzanie</span>
            </button>
            
            <button class="rk-math-btn" data-scenario="3">
                <span class="rk-math-btn-title">3. Powietrze suche</span>
                <span class="rk-math-btn-sub">Działająca rekuperacja</span>
            </button>
        </div>

        <div class="rk-math-display">
            
            <div class="rk-math-panel active" id="scenario-1">
                <div class="rk-math-metrics">
                    <div class="rk-math-box">
                        <div class="rk-math-box-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Temperatura (T)</span>
                            <span class="rk-math-box-val">28,0 °C</span>
                        </div>
                    </div>
                    <div class="rk-math-box">
                        <div class="rk-math-box-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></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Wilgotność (RH)</span>
                            <span class="rk-math-box-val">70 %</span>
                        </div>
                    </div>
                </div>

                <div class="rk-math-result state-danger">
                    <svg class="rk-math-svg-anim" viewBox="0 0 24 24" fill="var(--rk-math-red)"><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></svg>
                    <div class="rk-math-result-title">WYNIK: Obliczony punkt rosy (Tp)</div>
                    <div class="rk-math-final-val">22,0 °C</div>
                    <p class="rk-math-result-desc">
                        Podłoga nie może mieć temperatury niższej niż <strong>23,5 °C - 24,0 °C</strong> (margines bezpieczeństwa). Schłodzenie domu jest w tych warunkach fizycznie niemożliwe – system musi zostać zablokowany.
                    </p>
                </div>
            </div>

            <div class="rk-math-panel" id="scenario-2">
                <div class="rk-math-metrics">
                    <div class="rk-math-box">
                        <div class="rk-math-box-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Temperatura (T)</span>
                            <span class="rk-math-box-val">24,0 °C</span>
                        </div>
                    </div>
                    <div class="rk-math-box">
                        <div class="rk-math-box-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></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Wilgotność (RH)</span>
                            <span class="rk-math-box-val">50 %</span>
                        </div>
                    </div>
                </div>

                <div class="rk-math-result state-optimal">
                    <svg class="rk-math-svg-anim" viewBox="0 0 24 24" fill="var(--rk-math-teal)"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    <div class="rk-math-result-title">WYNIK: Obliczony punkt rosy (Tp)</div>
                    <div class="rk-math-final-val">12,9 °C</div>
                    <p class="rk-math-result-desc">
                        Bezpieczna temperatura powierzchni posadzki wynosi <strong>14,9 °C</strong>. Jest to bezpieczna strefa, w której można efektywnie obniżać temperaturę w pomieszczeniu bez ryzyka wilgoci.
                    </p>
                </div>
            </div>

            <div class="rk-math-panel" id="scenario-3">
                <div class="rk-math-metrics">
                    <div class="rk-math-box">
                        <div class="rk-math-box-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Temperatura (T)</span>
                            <span class="rk-math-box-val">26,0 °C</span>
                        </div>
                    </div>
                    <div class="rk-math-box">
                        <div class="rk-math-box-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></svg>
                        </div>
                        <div class="rk-math-box-data">
                            <span class="rk-math-box-label">Wilgotność (RH)</span>
                            <span class="rk-math-box-val">40 %</span>
                        </div>
                    </div>
                </div>

                <div class="rk-math-result state-perfect">
                    <svg class="rk-math-svg-anim" viewBox="0 0 24 24" fill="var(--rk-math-green)"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    <div class="rk-math-result-title">WYNIK: Obliczony punkt rosy (Tp)</div>
                    <div class="rk-math-final-val">11,5 °C</div>
                    <p class="rk-math-result-desc">
                        Minimalna bezpieczna temperatura posadzki to zaledwie <strong>13,5 °C</strong>. Warunki idealne! Pompa ciepła może pracować z maksymalną wydajnością, błyskawicznie chłodząc cały budynek.
                    </p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const mathBtns = document.querySelectorAll('.rk-math-btn');
    const mathPanels = document.querySelectorAll('.rk-math-panel');

    mathBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const scenario = this.getAttribute('data-scenario');
            
            // Bezpieczne usuwanie klas aktywnych (bez '&&')
            mathBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            mathPanels.forEach(function(p) {
                p.classList.remove('active');
            });
            
            // Aktywacja wybranych elementów
            this.classList.add('active');
            const targetPanel = document.getElementById('scenario-' + scenario);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #0f172a;
    --rk-temp-blue: #0284c7;
    --rk-temp-ice: #38bdf8;
    --rk-temp-gray: #64748b;
    --rk-temp-border: #e2e8f0;
    --rk-temp-bg: #ffffff;
    
    --rk-perf-high: #10b981; /* Wysoka wydajność - Zielony */
    --rk-perf-high-bg: #dcfce7;
    --rk-perf-low: #f59e0b;  /* Niska wydajność - Pomarańczowy */
    --rk-perf-low-bg: #fef3c7;
    --rk-perf-block: #ef4444; /* Blokada - Czerwony */
    --rk-perf-block-bg: #fef2f2;
}

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

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

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

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

.rk-temp-norm-box {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 1px solid var(--rk-temp-blue);
    padding: 15px 20px;
    border-radius: 12px;
    font-size: 14px;
    color: var(--rk-temp-dark);
    font-weight: 600;
}

.rk-temp-norm-box svg {
    color: var(--rk-temp-blue);
    flex-shrink: 0;
}

/* Interaktywny Selektor Temperatury */
.rk-temp-dashboard {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-temp-nav-title {
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-temp-gray);
    margin: 0 0 15px 0;
    text-align: center;
    letter-spacing: 0.5px;
}

.rk-temp-nav {
    display: flex;
    gap: 15px;
    margin-bottom: 35px;
    justify-content: center;
}

.rk-temp-btn {
    padding: 15px 30px;
    background: #ffffff;
    border: 2px solid var(--rk-temp-border);
    border-radius: 16px;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-temp-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-temp-btn svg { width: 24px; height: 24px; }

.rk-temp-btn:hover {
    border-color: var(--rk-temp-ice);
    color: var(--rk-temp-ice);
}

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

/* Kafelki z danymi (Zamiast Tabeli) */
.rk-temp-data-view {
    display: none;
    animation: fadeInTemp 0.4s ease-out;
}

.rk-temp-data-view.active {
    display: block;
}

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

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

.rk-temp-card {
    background: #ffffff;
    border: 1px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: transform 0.3s;
}

.rk-temp-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 20px -10px rgba(0,0,0,0.05);
}

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

.rk-temp-card.perf-high::before { background: var(--rk-perf-high); }
.rk-temp-card.perf-low::before { background: var(--rk-perf-low); }
.rk-temp-card.perf-block::before { background: var(--rk-perf-block); }

.rk-rh-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 20px;
}

.perf-high .rk-rh-badge { background: var(--rk-perf-high-bg); color: var(--rk-perf-high); }
.perf-low .rk-rh-badge { background: var(--rk-perf-low-bg); color: var(--rk-perf-low); }
.perf-block .rk-rh-badge { background: var(--rk-perf-block-bg); color: var(--rk-perf-block); }

.rk-card-metric {
    margin-bottom: 15px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-card-metric span:first-child {
    font-size: 12px;
    text-transform: uppercase;
    color: var(--rk-temp-gray);
    font-weight: 700;
}

.rk-card-metric span:last-child {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-temp-dark);
}

.rk-card-power {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed var(--rk-temp-border);
}

.rk-card-power span:first-child {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--rk-temp-gray);
    font-weight: 800;
    margin-bottom: 5px;
}

.rk-power-val {
    font-size: 28px;
    font-weight: 900;
}

.perf-high .rk-power-val { color: var(--rk-perf-high); }
.perf-low .rk-power-val { color: var(--rk-perf-low); }
.perf-block .rk-power-val { color: var(--rk-perf-block); font-size: 20px; }

/* Wniosek końcowy */
.rk-temp-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-temp-border);
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-temp-conclusion svg {
    color: var(--rk-perf-block);
    flex-shrink: 0;
    width: 32px;
    height: 32px;
}

.rk-temp-conclusion p {
    margin: 0;
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
}

.rk-temp-conclusion strong {
    color: var(--rk-temp-dark);
}

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-dashboard, .rk-temp-conclusion { padding: 25px 20px; }
    /* Wymuszony układ pionowy dla nawigacji i kart (Akordeon Style dla mobile UX) */
    .rk-temp-nav { flex-direction: column; gap: 10px; }
    .rk-temp-btn { width: 100%; justify-content: center; padding: 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-temp-conclusion { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-temperatura-podlogi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Jaka jest minimalna bezpieczna temperatura podłogi przy chłodzeniu?",
    "description": "Zestawienie limitów chłodzenia podłogowego. Zależność między wilgotnością powietrza, punktem rosy a maksymalną wydajnością chłodniczą w W/m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-tabela-rosy",
    "name": "Tabela bezpiecznych temperatur podłogi chłodzącej",
    "description": "Dane pomiarowe korelujące temperaturę, wilgotność względną (RH) i wydajność chłodniczą zgodnie z normą PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna bezpieczna temperatura podłogi",
      "wydajność chłodnicza podłogówki",
      "norma PN-EN 1264 chłodzenie",
      "temperatura punktu rosy tabela",
      "blokada chłodzenia przy wysokiej wilgotności"
    ],
    "measurementTechnique": "Obliczenia psychrometryczne z dodanym marginesem bezpieczeństwa 1,5 K do 2,0 K powyżej punktu rosy, z uwzględnieniem dolnego limitu 19,0°C dla stref przebywania ludzi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przy 24°C i 40% RH: Punkt rosy 9,7°C, moc chłodnicza max 45 W/m2.",
        "Przy 26°C i 60% RH: Punkt rosy 17,6°C, moc chłodnicza drastycznie spada do 25 W/m2.",
        "Przy 28°C i 70% RH: Punkt rosy 22,0°C, chłodzenie zablokowane (0 W/m2)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-kalkulator-wydajnosci",
    "name": "Interaktywna Tabela Wydajności Chłodniczej",
    "description": "Narzędzie pozwalające odczytać maksymalną wydajność w watach na metr kwadratowy w zależności od mikroklimatu panującego w pomieszczeniu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-temp-app">
    <div class="rk-temp-header">
        <h2>Jaka jest minimalna bezpieczna temperatura podłogi przy chłodzeniu?</h2>
        <p>Minimalna bezpieczna temperatura posadzki musi wynosić od <strong>1,5°C do 2,0°C powyżej aktualnej temperatury punktu rosy</strong>. To fundamentalna zasada chroniąca przed kondensacją i zalaniem.</p>
        
        <div class="rk-temp-norm-box">
            <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><polyline points="9 12 11 14 15 10"></polyline></svg>
            Dodatkowo, z wytycznych <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" style="color: var(--rk-temp-blue); text-decoration: underline;">normy PN-EN 1264</a> wynika, że ze względu na komfort bosej stopy, temperatura podłogi nie powinna spadać poniżej 19,0°C.
        </div>
    </div>

    <div class="rk-temp-dashboard">
        <h3 class="rk-temp-nav-title">Wybierz temperaturę powietrza w pokoju:</h3>
        <div class="rk-temp-nav">
            <button class="rk-temp-btn active" data-temp="24">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
                24,0°C
            </button>
            <button class="rk-temp-btn" data-temp="26">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
                26,0°C
            </button>
            <button class="rk-temp-btn" data-temp="28">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
                28,0°C
            </button>
        </div>

        <div class="rk-temp-data-view active" id="data-24">
            <div class="rk-temp-grid">
                <div class="rk-temp-card perf-high">
                    <span class="rk-rh-badge">40% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>9,7°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>11,7°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">45 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-high">
                    <span class="rk-rh-badge">50% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>12,9°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>14,9°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">35 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-low">
                    <span class="rk-rh-badge">60% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>15,8°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>17,8°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">22 W/m²</div></div>
                </div>
            </div>
        </div>

        <div class="rk-temp-data-view" id="data-26">
            <div class="rk-temp-grid">
                <div class="rk-temp-card perf-high">
                    <span class="rk-rh-badge">40% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>11,5°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>13,5°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">48 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-high">
                    <span class="rk-rh-badge">50% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>14,8°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>16,8°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">38 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-low">
                    <span class="rk-rh-badge">60% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>17,6°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>19,6°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">25 W/m²</div></div>
                </div>
            </div>
        </div>

        <div class="rk-temp-data-view" id="data-28">
            <div class="rk-temp-grid">
                <div class="rk-temp-card perf-high">
                    <span class="rk-rh-badge">50% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>16,7°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>18,7°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">36 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-low">
                    <span class="rk-rh-badge">60% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>19,5°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>21,5°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">20 W/m²</div></div>
                </div>
                <div class="rk-temp-card perf-block">
                    <span class="rk-rh-badge">70% Wilgotności</span>
                    <div class="rk-card-metric"><span>Punkt Rosy</span><span>22,0°C</span></div>
                    <div class="rk-card-metric"><span>Zabezpieczenie min.</span><span>24,0°C</span></div>
                    <div class="rk-card-power"><span>Wydajność systemu</span><div class="rk-power-val">BLOKADA (0 W/m²)</div></div>
                </div>
            </div>
        </div>

    </div>

    <div class="rk-temp-conclusion">
        <svg 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>
        <p>
            Widzisz to wyraźnie na danych. Krytycznym czynnikiem ograniczającym moc chłodniczą podłogówki nie jest temperatura, <strong>lecz wilgotność powietrza</strong>. Przy wilgotności dochodzącej do 70%, by zapobiec wykraplaniu, parametry zasilania muszą zostać wywindowane do wartości neutralnych, co skutkuje całkowitym zablokowaniem systemu. Pamiętaj, jak ważna jest <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" style="color: var(--rk-temp-blue); font-weight:700; text-decoration:none;">bezwładność cieplna w ogrzewaniu podłogowym</a> przy regulacji tych parametrów.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tempBtns = document.querySelectorAll('.rk-temp-btn');
    const dataViews = document.querySelectorAll('.rk-temp-data-view');

    tempBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetTemp = this.getAttribute('data-temp');
            
            // Bezpieczne usuwanie klas aktywnych (bez użycia operatorów logicznych typu &&)
            tempBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            dataViews.forEach(function(view) {
                view.classList.remove('active');
            });
            
            // Aktywacja odpowiedniego widoku
            this.classList.add('active');
            const targetView = document.getElementById('data-' + targetTemp);
            
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-hp-dark: #0f172a;
    --rk-hp-ice: #38bdf8;
    --rk-hp-ice-light: #f0f9ff;
    --rk-hp-geo: #10b981;
    --rk-hp-geo-light: #dcfce7;
    --rk-hp-gray: #64748b;
    --rk-hp-border: #e2e8f0;
    --rk-hp-bg: #ffffff;
    --rk-hp-danger: #ef4444;
}

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

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

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

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

/* Przełącznik trybów */
.rk-hp-mode-selector {
    display: flex;
    padding: 20px 50px;
    background: #f1f5f9;
    gap: 20px;
}

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

.rk-hp-btn svg { width: 28px; height: 28px; transition: all 0.3s; }

.rk-hp-btn[data-mode="active"]:hover { border-color: var(--rk-hp-ice); color: var(--rk-hp-ice); }
.rk-hp-btn[data-mode="active"].selected { 
    background: var(--rk-hp-ice-light); 
    border-color: var(--rk-hp-ice); 
    color: #0284c7; 
    box-shadow: 0 10px 20px -5px rgba(56, 189, 248, 0.2); 
}

.rk-hp-btn[data-mode="passive"]:hover { border-color: var(--rk-hp-geo); color: var(--rk-hp-geo); }
.rk-hp-btn[data-mode="passive"].selected { 
    background: var(--rk-hp-geo-light); 
    border-color: var(--rk-hp-geo); 
    color: #047857; 
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2); 
}

/* Ekrany wizualizacji */
.rk-hp-display {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-hp-panel {
    display: none;
    animation: hpFadeIn 0.4s ease-out;
}

.rk-hp-panel.selected { display: block; }

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

.rk-hp-layout {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 40px;
    align-items: center;
}

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

.rk-hp-tech-info p {
    font-size: 15px;
    color: #475569;
    line-height: 1.7;
    margin: 0 0 20px 0;
}

.rk-hp-tech-info a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Parametry w kafelkach */
.rk-hp-specs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-hp-spec-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f8fafc;
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-hp-border);
}

.mode-active .rk-hp-spec-row { border-left-color: var(--rk-hp-ice); }
.mode-passive .rk-hp-spec-row { border-left-color: var(--rk-hp-geo); }

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

.rk-hp-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-hp-dark);
}

/* SVG Schematy */
.rk-hp-schema {
    background: #f8fafc;
    border-radius: 20px;
    padding: 30px;
    border: 1px solid var(--rk-hp-border);
    text-align: center;
}

.rk-hp-schema svg {
    width: 100%;
    height: auto;
    max-width: 280px;
}

.anim-flow { stroke-dasharray: 8; animation: flowMove 1s linear infinite; }
@keyframes flowMove { to { stroke-dashoffset: -16; } }

@media (max-width: 768px) {
    .rk-hp-header, .rk-hp-display { padding: 30px 20px; }
    .rk-hp-mode-selector { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-hp-layout { grid-template-columns: 1fr; gap: 30px; }
    .rk-hp-schema { order: -1; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-zasilanie-chlodzenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Jak ustawić temperaturę wody chłodzącej w pompie ciepła?",
    "description": "Techniczne wytyczne dla zasilania chłodzenia podłogowego. Różnice między chłodzeniem aktywnym (rewersyjnym) a pasywnym (free cooling).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-limity-chlodzenia",
    "name": "Krzywe i limity zasilania chłodzenia płaszczyznowego",
    "description": "Zestawienie twardych limitów termodynamicznych dla ustawień sterowników pomp ciepła w trybie letnim, z podziałem na źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "chłodzenie pasywne pompy ciepła",
      "chłodzenie aktywne",
      "temperatura zasilania podłogówki latem",
      "zawór mieszający chłodzenie pasywne",
      "minimalna temperatura chłodzenia"
    ],
    "measurementTechnique": "Wyznaczenie sztywnych blokad zasilania instalacji na podstawie charakterystyki pracy sprężarek (aktywne) oraz wymienników gruntowych (pasywne).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Chłodzenie Aktywne: Zasilanie rzędu 15-18°C, sztywna blokada krzywej chłodzenia na poziomie np. 16°C.",
        "Chłodzenie Pasywne: Solanka gruntowa 8-12°C. Bezwzględny wymóg zaworu mieszającego (<120s) podnoszącego czynnik do bezpiecznych 17-18°C przed rozdzielaczem."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-symulator-pompy",
    "name": "Wizualizator Trybów Chłodzenia Pompy Ciepła",
    "description": "Interaktywny schemat różnicujący układ hydrauliczny pomiędzy klimatyzacją odwróconą a dolnym źródłem gruntowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hp-wrapper" id="rk-hp-app">
    <div class="rk-hp-header">
        <h2>Jak ustawić temperaturę wody chłodzącej w pompie ciepła?</h2>
        <p>Wodne chłodzenie płaszczyznowe wymaga żelaznej dyscypliny na zasilaniu. Spadek temperatury poniżej wyznaczonych limitów generuje natychmiastowe ryzyko przekroczenia punktu rosy. Zobacz różnice w hydraulice obu trybów.</p>
    </div>

    <div class="rk-hp-mode-selector">
        <button class="rk-hp-btn selected" data-mode="active">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Chłodzenie Aktywne
        </button>
        <button class="rk-hp-btn" data-mode="passive">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Chłodzenie Pasywne
        </button>
    </div>

    <div class="rk-hp-display">
        
        <div class="rk-hp-panel mode-active selected" id="panel-active">
            <div class="rk-hp-layout">
                <div class="rk-hp-tech-info">
                    <h3>Rewersyjna Pompa Ciepła</h3>
                    <p>W tym trybie <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> pracuje w odwróconym cyklu sprężarkowym (jak klimatyzator). Układ automatyki precyzyjnie moduluje pracą sprężarki, by utrzymać pożądaną temperaturę na wyjściu z wymiennika (parownika).</p>
                    <p>Bezpieczny algorytm sterowania wykorzystuje <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą chłodzenia</a> (skorelowaną z pogodą), ale bezwzględnie wymaga od instalatora nałożenia sztywnej blokady temperatury minimalnej chroniącej wylewkę.</p>
                    
                    <div class="rk-hp-specs">
                        <div class="rk-hp-spec-row">
                            <span class="rk-hp-spec-label">Zalecany przedział zasilania</span>
                            <span class="rk-hp-spec-val" style="color: var(--rk-hp-ice);">15°C – 18°C</span>
                        </div>
                        <div class="rk-hp-spec-row">
                            <span class="rk-hp-spec-label">Sztywny limit sterownika (Tz,min)</span>
                            <span class="rk-hp-spec-val">np. 16.0°C</span>
                        </div>
                    </div>
                </div>
                <div class="rk-hp-schema">
                    <svg viewBox="0 0 200 200">
                        <rect x="50" y="50" width="100" height="100" rx="10" fill="#ffffff" stroke="var(--rk-hp-ice)" stroke-width="4"/>
                        <circle cx="100" cy="100" r="30" fill="var(--rk-hp-ice-light)" stroke="var(--rk-hp-ice)" stroke-width="3"/>
                        <path d="M100 70 L100 130 M70 100 L130 100 M78 78 L122 122 M78 122 L122 78" stroke="var(--rk-hp-ice)" stroke-width="3" stroke-linecap="round"/>
                        <path d="M150 120 L180 120" stroke="var(--rk-hp-ice)" stroke-width="6" class="anim-flow"/>
                        <rect x="160" y="105" width="40" height="20" rx="4" fill="var(--rk-hp-dark)"/>
                        <text x="180" y="120" fill="#ffffff" font-size="12" font-weight="bold" text-anchor="middle" dominant-baseline="central">16°C</text>
                    </svg>
                </div>
            </div>
        </div>

        <div class="rk-hp-panel mode-passive" id="panel-passive">
            <div class="rk-hp-layout">
                <div class="rk-hp-tech-info">
                    <h3>Geotermalne (Free Cooling)</h3>
                    <p>Wykorzystuje chłód solanki z odwiertów przez <a href="https://projekt-ogrzewania.pl/zasada-dzialania-wymiennika-plytowego-w-ogrzewaniu-podlogowym/">pośredni wymiennik płytowy</a>, bez udziału sprężarki. Solanka latem ma potężny ładunek zimna, zagrażający posadzce.</p>
                    <p>Wpuszczenie wody 8°C w pętle to natychmiastowe zalanie podłogi. Instalacja pasywna bezwzględnie wymaga układu podmieszania z nadrzędnym regulatorem, który wymiesza zład zanim wyśle go na rozdzielacz. Pamiętaj by <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">kontrolować minimalne parametry zasilania</a>.</p>
                    
                    <div class="rk-hp-specs">
                        <div class="rk-hp-spec-row">
                            <span class="rk-hp-spec-label">Temperatura Solanki z gruntu</span>
                            <span class="rk-hp-spec-val" style="color: var(--rk-hp-danger);">8°C – 12°C</span>
                        </div>
                        <div class="rk-hp-spec-row">
                            <span class="rk-hp-spec-label">Wymagany zawór trójdrogowy</span>
                            <span class="rk-hp-spec-val" style="color: var(--rk-hp-geo);">Max 120 sekund</span>
                        </div>
                        <div class="rk-hp-spec-row">
                            <span class="rk-hp-spec-label">Bezpieczne zasilanie (po podmieszaniu)</span>
                            <span class="rk-hp-spec-val">17°C – 18°C</span>
                        </div>
                    </div>
                </div>
                <div class="rk-hp-schema">
                    <svg viewBox="0 0 200 200">
                        <path d="M20 160 L20 40 L50 40 L50 160 Z" fill="var(--rk-hp-geo-light)" stroke="var(--rk-hp-geo)" stroke-width="4"/>
                        <text x="35" y="100" fill="var(--rk-hp-danger)" font-size="14" font-weight="bold" text-anchor="middle" transform="rotate(-90 35 100)">SOLANKA 8°C</text>
                        <rect x="80" y="70" width="30" height="60" fill="#ffffff" stroke="var(--rk-hp-gray)" stroke-width="4"/>
                        <path d="M50 80 L80 80 M50 120 L80 120" stroke="var(--rk-hp-geo)" stroke-width="4" class="anim-flow"/>
                        <polygon points="140,85 155,110 125,110" fill="var(--rk-hp-dark)"/>
                        <circle cx="140" cy="100" r="6" fill="#ffffff"/>
                        <path d="M110 100 L125 100" stroke="#0284c7" stroke-width="4"/>
                        <path d="M140 110 L140 140 L180 140" stroke="#0284c7" stroke-width="4" stroke-dasharray="4"/>
                        <path d="M150 100 L180 100" stroke="var(--rk-hp-ice)" stroke-width="6" class="anim-flow"/>
                        <rect x="160" y="85" width="40" height="20" rx="4" fill="var(--rk-hp-dark)"/>
                        <text x="180" y="95" fill="#ffffff" font-size="12" font-weight="bold" text-anchor="middle" dominant-baseline="central">17°C</text>
                    </svg>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const hpBtns = document.querySelectorAll('.rk-hp-btn');
    const hpPanels = document.querySelectorAll('.rk-hp-panel');

    hpBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const mode = this.getAttribute('data-mode');
            
            // Bezpieczne usuwanie klas (bez '&&')
            hpBtns.forEach(function(b) {
                b.classList.remove('selected');
            });
            hpPanels.forEach(function(p) {
                p.classList.remove('selected');
            });
            
            // Ustawienie aktywnych klas
            this.classList.add('selected');
            const targetPanel = document.getElementById('panel-' + mode);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('selected');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-auto-dark: #0f172a;
    --rk-auto-blue: #0284c7;
    --rk-auto-light: #f8fafc;
    --rk-auto-gray: #64748b;
    --rk-auto-border: #e2e8f0;
    
    /* Kolory poziomów ostrzegawczych */
    --rk-lvl1: #eab308; /* Modulacja - Żółty */
    --rk-lvl1-bg: #fefce8;
    --rk-lvl2: #f97316; /* Odcięcie - Pomarańczowy */
    --rk-lvl2-bg: #fff7ed;
    --rk-lvl3: #ef4444; /* Awaria - Czerwony */
    --rk-lvl3-bg: #fef2f2;
}

.rk-auto-wrapper {
    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(15, 23, 42, 0.1);
    border: 1px solid var(--rk-auto-border);
    overflow: hidden;
}

.rk-auto-header {
    padding: 40px 50px 30px;
    background: var(--rk-auto-dark);
    color: #ffffff;
    position: relative;
}

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

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

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

/* Sekcja Lewa - System Wizualizacji */
.rk-auto-display {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-auto-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-auto-visual-box {
    background: var(--rk-auto-light);
    border: 2px dashed var(--rk-auto-border);
    border-radius: 20px;
    padding: 40px;
    text-align: center;
    transition: all 0.4s ease;
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-auto-svg-icon {
    width: 120px;
    height: 120px;
    margin-bottom: 25px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-auto-visual-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-auto-dark);
    margin: 0 0 10px 0;
    transition: color 0.3s;
}

.rk-auto-visual-desc {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja Prawa - Interaktywne Poziomy */
.rk-auto-controls {
    padding: 30px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-auto-controls h3 {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-auto-gray);
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
    text-align: center;
}

.rk-lvl-btn {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-auto-border);
    border-radius: 16px;
    padding: 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.rk-lvl-indicator {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-auto-border);
    transition: background 0.3s;
}

.rk-lvl-btn[data-lvl="1"]:hover { border-color: var(--rk-lvl1); }
.rk-lvl-btn[data-lvl="1"].active { background: var(--rk-lvl1-bg); border-color: var(--rk-lvl1); }
.rk-lvl-btn[data-lvl="1"].active .rk-lvl-indicator { background: var(--rk-lvl1); }

.rk-lvl-btn[data-lvl="2"]:hover { border-color: var(--rk-lvl2); }
.rk-lvl-btn[data-lvl="2"].active { background: var(--rk-lvl2-bg); border-color: var(--rk-lvl2); }
.rk-lvl-btn[data-lvl="2"].active .rk-lvl-indicator { background: var(--rk-lvl2); }

.rk-lvl-btn[data-lvl="3"]:hover { border-color: var(--rk-lvl3); }
.rk-lvl-btn[data-lvl="3"].active { background: var(--rk-lvl3-bg); border-color: var(--rk-lvl3); }
.rk-lvl-btn[data-lvl="3"].active .rk-lvl-indicator { background: var(--rk-lvl3); }

.rk-lvl-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-auto-dark);
    margin: 0 0 5px 10px;
    display: block;
}

.rk-lvl-sub {
    font-size: 13px;
    color: var(--rk-auto-gray);
    font-weight: 600;
    margin-left: 10px;
    display: block;
}

/* Opis techniczny pod spodem */
.rk-auto-tech-desc {
    padding: 30px 50px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-auto-border);
    font-size: 15px;
    color: #475569;
    line-height: 1.7;
}

.rk-auto-tech-desc a {
    color: var(--rk-auto-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

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

.rk-auto-tech-desc strong {
    color: var(--rk-auto-dark);
}

/* Ukryte elementy do podmiany w JS */
.rk-logic-data { display: none; }

@media (max-width: 768px) {
    .rk-auto-layout { grid-template-columns: 1fr; }
    .rk-auto-header, .rk-auto-display, .rk-auto-controls, .rk-auto-tech-desc { padding: 25px 20px; }
    .rk-auto-controls { border-top: 1px solid var(--rk-auto-border); }
    .rk-auto-display { border-right: none; }
    .rk-auto-visual-box { min-height: 250px; padding: 20px; }
    .rk-auto-svg-icon { width: 80px; height: 80px; margin-bottom: 15px; }
    .rk-auto-visual-title { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-automatyka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Jaka automatyka zabezpiecza przed kondensacją wilgoci na podłodze?",
    "description": "Zrozum trójstopniowy system obrony Dew Point Control: od zaworów mieszających, przez siłowniki termoelektryczne, po awaryjne higrostaty przylgowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-automatyka",
    "name": "Protokoły Ochrony Dew Point Control (HVAC)",
    "description": "Zestawienie trójstopniowego algorytmu sprzętowo-programowego zabezpieczającego budynki przed kondensacją wilgoci podczas chłodzenia płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "automatyka dew point control",
      "termohigrometr ogrzewanie podłogowe",
      "zawór trójdrogowy mieszający podłogówka",
      "siłowniki termoelektryczne chłodzenie",
      "higrostat przylgowy awaryjny"
    ],
    "measurementTechnique": "Algorytm oparty na ciągłej analizie danych z czujników rezystancyjnych (PT1000) oraz cyfrowych termohigrometrów (np. protokół KNX/ZigBee).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ochrona Poziom 1: Modulacja sygnałem analogowym 0-10V zaworu mieszającego (korekta o 1,5°C - 3,0°C).",
        "Ochrona Poziom 2: Strefowe odcięcie zasilania siłowników NC/NO (próg RH = 65-70%).",
        "Ochrona Poziom 3: Sprzętowe rozwarcie styku przez mechaniczny czujnik kondensacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-automatyka",
    "name": "Symulator Tarczy Ochronnej Dew Point Control",
    "description": "Interfejs edukacyjny demonstrujący kaskadowe reakcje inteligentnego systemu HVAC na wzrastające zagrożenie wykropleniem wilgoci na jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auto-wrapper" id="rk-auto-app">
    <div class="rk-auto-header">
        <h2>Jaka automatyka zabezpiecza przed kondensacją?</h2>
        <p>Profesjonalny system sterowania chłodzeniem płaszczyznowym musi opierać się na standardzie <strong>Dew Point Control</strong>. Układ w sposób ciągły analizuje dane z czujników w wylewce (np. PT1000) i termohigrometrów. Poznaj 3 poziomy obrony.</p>
    </div>

    <div class="rk-auto-layout">
        
        <div class="rk-auto-display">
            <div class="rk-auto-visual-box" id="rkAutoMonitor">
                <svg class="rk-auto-svg-icon" id="rkAutoIcon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-lvl1)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                    <circle cx="12" cy="12" r="10"></circle>
                    <polyline points="12 16 16 12 12 8"></polyline>
                    <line x1="8" y1="12" x2="16" y2="12"></line>
                </svg>
                <h3 class="rk-auto-visual-title" id="rkAutoTitle" style="color: var(--rk-lvl1);">1. Modulacja zasilania</h3>
                <p class="rk-auto-visual-desc" id="rkAutoDesc">
                    Regulator wysyła sygnał (np. 0-10V) do zaworu trójdrogowego. Domyka on dopływ zimnej wody z pompy ciepła, płynnie podnosząc temperaturę zasilania o 1,5°C - 3,0°C.
                </p>
            </div>
        </div>

        <div class="rk-auto-controls">
            <h3>Wybierz stopień zabezpieczenia</h3>
            
            <button class="rk-lvl-btn active" data-lvl="1">
                <div class="rk-lvl-indicator"></div>
                <span class="rk-lvl-title">Poziom 1: Korekta Tła</span>
                <span class="rk-lvl-sub">Zawór trójdrogowy mieszacza</span>
            </button>
            
            <button class="rk-lvl-btn" data-lvl="2">
                <div class="rk-lvl-indicator"></div>
                <span class="rk-lvl-title">Poziom 2: Odcięcie Strefy</span>
                <span class="rk-lvl-sub">Siłowniki termoelektryczne (NC/NO)</span>
            </button>
            
            <button class="rk-lvl-btn" data-lvl="3">
                <div class="rk-lvl-indicator"></div>
                <span class="rk-lvl-title">Poziom 3: Twardy Reset</span>
                <span class="rk-lvl-sub">Awaryjny higrostat przylgowy</span>
            </button>
        </div>
    </div>

    <div class="rk-auto-tech-desc">
        Powyższa automatyka realizuje ochronę bez ingerencji użytkownika. Kiedy temperatura podłogi zbliża się do punktu rosy, najważniejszy jest czas reakcji <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworu mieszającego w ogrzewaniu podłogowym</a>. Jeśli zignorujesz ten element, lub zrezygnujesz z <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych na rozdzielaczach</a>, ryzykujesz zniszczeniem podłogi podczas pierwszej letniej burzy. Awaryjne wyłączenie <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a> przez czujnik przylgowy to ostateczna, mechaniczna linia obrony, działająca niezależnie od sterowników systemowych.
    </div>

    <div id="data-lvl-1" class="rk-logic-data">
        <span class="data-color">var(--rk-lvl1)</span>
        <span class="data-bg">var(--rk-lvl1-bg)</span>
        <span class="data-title">1. Modulacja zasilania</span>
        <span class="data-desc">Regulator wysyła sygnał (np. 0-10V) do zaworu trójdrogowego. Domyka on dopływ zimnej wody z pompy ciepła, płynnie podnosząc temperaturę zasilania o 1,5°C - 3,0°C.</span>
        <span class="data-svg">
            <circle cx="12" cy="12" r="10"></circle>
            <polyline points="12 16 16 12 12 8"></polyline>
            <line x1="8" y1="12" x2="16" y2="12"></line>
        </span>
    </div>

    <div id="data-lvl-2" class="rk-logic-data">
        <span class="data-color">var(--rk-lvl2)</span>
        <span class="data-bg">var(--rk-lvl2-bg)</span>
        <span class="data-title">2. Izolacja wilgotnego pokoju</span>
        <span class="data-desc">Termostat pokojowy wykrywa przekroczenie progu (np. RH = 65%). Wysyła sygnał do listwy, która odcina zasilanie siłowników, stopując chłodzenie tylko w tym jednym pomieszczeniu (np. w łazience po kąpieli).</span>
        <span class="data-svg">
            <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
            <line x1="9" y1="3" x2="9" y2="21"></line>
            <path d="M17 8l-4 4 4 4"></path>
        </span>
    </div>

    <div id="data-lvl-3" class="rk-logic-data">
        <span class="data-color">var(--rk-lvl3)</span>
        <span class="data-bg">var(--rk-lvl3-bg)</span>
        <span class="data-title">3. Mechaniczne odcięcie pomp</span>
        <span class="data-desc">Na rurze zasilającej zamontowany jest mechaniczny czujnik kondensacji. Gdy pojawi się na nim film wodny, czujnik rozwiera styk bezpieczeństwa, natychmiast odcinając zasilanie pomp, ratując budynek przed zalaniem.</span>
        <span class="data-svg">
            <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>
        </span>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const lvlBtns = document.querySelectorAll('.rk-lvl-btn');
    
    const monitorBox = document.getElementById('rkAutoMonitor');
    const monitorIcon = document.getElementById('rkAutoIcon');
    const monitorTitle = document.getElementById('rkAutoTitle');
    const monitorDesc = document.getElementById('rkAutoDesc');

    lvlBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const lvl = this.getAttribute('data-lvl');
            
            // Bezpieczne usuwanie klas
            lvlBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            this.classList.add('active');

            // Pobieranie danych dla danego poziomu
            const dataContainer = document.getElementById('data-lvl-' + lvl);
            
            if (dataContainer !== null) {
                const newColor = dataContainer.querySelector('.data-color').textContent;
                const newBg = dataContainer.querySelector('.data-bg').textContent;
                const newTitle = dataContainer.querySelector('.data-title').textContent;
                const newDesc = dataContainer.querySelector('.data-desc').textContent;
                const newSvgContent = dataContainer.querySelector('.data-svg').innerHTML;

                // Aktualizacja UI
                monitorBox.style.backgroundColor = newBg;
                monitorBox.style.borderColor = newColor;
                
                monitorIcon.style.stroke = newColor;
                monitorIcon.innerHTML = newSvgContent;
                
                monitorTitle.style.color = newColor;
                monitorTitle.textContent = newTitle;
                
                monitorDesc.textContent = newDesc;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-vent-dark: #0f172a;
    --rk-vent-blue: #0284c7;
    --rk-vent-light-blue: #f0f9ff;
    --rk-vent-teal: #0d9488;
    --rk-vent-teal-light: #f0fdfa;
    --rk-vent-gray: #64748b;
    --rk-vent-border: #e2e8f0;
    --rk-vent-bg: #ffffff;
}

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

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

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

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

/* Sekcja Interaktywna - Symulator */
.rk-vent-simulator {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #ffffff;
}

/* Panel sterowania (Przyciski) */
.rk-vent-controls {
    background: #f8fafc;
    border-right: 1px solid var(--rk-vent-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-vent-controls h3 {
    font-size: 16px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-vent-gray);
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-vent-btn {
    background: #ffffff;
    border: 2px solid var(--rk-vent-border);
    border-radius: 16px;
    padding: 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-vent-btn:hover {
    border-color: #99f6e4;
    background: var(--rk-vent-teal-light);
}

.rk-vent-btn.active {
    border-color: var(--rk-vent-teal);
    background: var(--rk-vent-teal-light);
    box-shadow: 0 10px 20px -5px rgba(13, 148, 136, 0.15);
}

.rk-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-vent-dark);
}

.rk-btn-sub {
    font-size: 13px;
    color: var(--rk-vent-gray);
    font-weight: 600;
}

/* Ekran Wyników */
.rk-vent-display {
    padding: 40px;
    position: relative;
}

.rk-vent-panel {
    display: none;
    animation: fadeInVent 0.4s ease-out;
}

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

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

.rk-vent-panel h4 {
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-vent-dark);
    margin: 0 0 20px 0;
}

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

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

/* Wizualizacja Danych */
.rk-data-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
}

.rk-data-card {
    background: #f8fafc;
    border: 1px solid var(--rk-vent-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-data-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 4px;
    background: var(--rk-vent-teal);
}

.rk-data-card.warning::before {
    background: #ef4444;
}

.rk-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-vent-gray);
    margin-bottom: 10px;
}

.rk-data-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-vent-dark);
}

.rk-data-value span {
    font-size: 18px;
    color: var(--rk-vent-gray);
}

/* SVG Animacje Wilgoci */
.rk-moisture-graphic {
    width: 100%;
    height: 120px;
    background: var(--rk-vent-light-blue);
    border-radius: 16px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.drop {
    position: absolute;
    fill: #38bdf8;
    animation: dropFall 2s infinite linear;
}

@keyframes dropFall {
    0% { transform: translateY(-50px) scale(0.5); opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { transform: translateY(100px) scale(1); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-vent-simulator { grid-template-columns: 1fr; }
    .rk-vent-controls { border-right: none; border-bottom: 1px solid var(--rk-vent-border); padding: 25px 20px; }
    .rk-vent-display { padding: 30px 20px; }
    .rk-data-cards { grid-template-columns: 1fr; gap: 15px; }
    .rk-vent-header { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-rekuperacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Dlaczego rekuperacja jest kluczowa przy chłodzeniu podłogowym?",
    "description": "Analiza zjawiska chłodzenia jawnego i ukrytego. Rola chłodnicy kanałowej oraz wymiennika entalpicznego w kontroli wilgotności (RH) i ochronie przed punktem rosy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-wentylacja",
    "name": "Wpływ systemów wentylacyjnych na obciążenie wilgociowe",
    "description": "Zestawienie redukcji wilgotności względnej (RH) w zależności od zastosowanej technologii rekuperacji przy aktywowanym chłodzeniu płaszczyznowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rekuperacja a chłodzenie podłogowe",
      "wymiennik entalpiczny wilgotność",
      "chłodnica kanałowa do rekuperacji",
      "osuszanie powietrza pompa ciepła",
      "chłodzenie jawne i utajone"
    ],
    "measurementTechnique": "Modelowanie spadku wilgotności względnej (RH) w budynku na podstawie separacji skroplin przez chłodnicę freonową/wodną (6-8°C) oraz wymiany utajonej rotora entalpicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak osuszania: RH wzrasta przy chłodzeniu (ryzyko kondensacji).",
        "Wymiennik entalpiczny: Redukcja obciążenia wilgocią o 25-35%.",
        "Chłodnica kanałowa (6-8°C): Głęboka kondensacja w kanale, powietrze suche na nawiewie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-osuszanie",
    "name": "Symulator Osuszania Powietrza (HVAC)",
    "description": "Aplikacja pozwalająca inwestorowi porównać efektywność chłodzenia podłogowego w zależności od wybranego systemu wentylacji mechanicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vent-container" id="rk-vent-app">
    <div class="rk-vent-header">
        <h2>Dlaczego rekuperacja jest kluczowa przy chłodzeniu podłogowym?</h2>
        <p>System chłodzenia podłogowego obniża temperaturę, ale <strong>nie potrafi osuszać powietrza</strong>. Zgodnie z prawami termodynamiki, chłodzenie bez wymiany wilgoci drastycznie przybliża układ do punktu rosy. Kooperacja z systemem wentylacyjnym to jedyna droga do bezpieczeństwa.</p>
    </div>

    <div class="rk-vent-simulator">
        <div class="rk-vent-controls" id="ventControls">
            <h3>Wybierz system wsparcia</h3>
            
            <button class="rk-vent-btn active" data-target="vent-none">
                <span class="rk-btn-title">Tylko chłodzenie podłogowe</span>
                <span class="rk-btn-sub">Brak kontroli wilgoci (Chłodzenie jawne)</span>
            </button>
            
            <button class="rk-vent-btn" data-target="vent-entalpia">
                <span class="rk-btn-title">Wymiennik entalpiczny</span>
                <span class="rk-btn-sub">Rekuperacja z odzyskiem wilgoci</span>
            </button>
            
            <button class="rk-vent-btn" data-target="vent-chlodnica">
                <span class="rk-btn-title">Chłodnica kanałowa</span>
                <span class="rk-btn-sub">Aktywne osuszanie powietrza nawiewnego</span>
            </button>
        </div>

        <div class="rk-vent-display">
            
            <div class="rk-vent-panel active" id="vent-none">
                <div class="rk-moisture-graphic" style="background: #fef2f2;">
                    <svg class="drop" style="left: 20%; animation-delay: 0s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                    <svg class="drop" style="left: 40%; animation-delay: 0.5s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                    <svg class="drop" style="left: 60%; animation-delay: 0.2s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                    <svg class="drop" style="left: 80%; animation-delay: 0.7s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                </div>
                <h4>Pułapka wilgotności (Efekt Jaskini)</h4>
                <p>Ochładzanie powietrza przy stałej zawartości wody (g/kg) powoduje gwałtowny wzrost wilgotności względnej (RH). Jeśli nie masz rekuperacji osuszającej, system podłogowy szybko zostanie zablokowany przez sterownik zabezpieczający przed zalaniem.</p>
                <div class="rk-data-cards">
                    <div class="rk-data-card warning">
                        <div class="rk-data-label">Wilgotność (RH)</div>
                        <div class="rk-data-value" style="color: #ef4444;">75<span>%</span></div>
                    </div>
                    <div class="rk-data-card warning">
                        <div class="rk-data-label">Moc chłodnicza</div>
                        <div class="rk-data-value" style="color: #ef4444;">Zablokowana</div>
                    </div>
                </div>
            </div>

            <div class="rk-vent-panel" id="vent-entalpia">
                <div class="rk-moisture-graphic" style="background: #f0fdfa;">
                    <svg class="drop" style="left: 30%; animation-delay: 0s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                    <svg class="drop" style="left: 70%; animation-delay: 0.5s;" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                </div>
                <h4>Redukcja obciążenia o 25-35%</h4>
                <p>W okresach letnich rekuperator wyposażony w wymiennik entalpiczny zatrzymuje część parnego powietrza zewnętrznego. Oddaje wilgoć do strumienia wywiewanego z domu. Poprawia to <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a> i pozwala na stabilniejszą pracę podłogówki.</p>
                <div class="rk-data-cards">
                    <div class="rk-data-card">
                        <div class="rk-data-label">Wilgotność (RH)</div>
                        <div class="rk-data-value" style="color: #0d9488;">60<span>%</span></div>
                    </div>
                    <div class="rk-data-card">
                        <div class="rk-data-label">Moc chłodnicza</div>
                        <div class="rk-data-value">22<span> W/m²</span></div>
                    </div>
                </div>
            </div>

            <div class="rk-vent-panel" id="vent-chlodnica">
                <div class="rk-moisture-graphic" style="background: #f8fafc;">
                    <svg width="60" height="60" viewBox="0 0 24 24" fill="none" stroke="var(--rk-vent-teal)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="opacity: 0.5;">
                        <path d="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path>
                    </svg>
                </div>
                <h4>Aktywne odcięcie wilgoci utajonej</h4>
                <p>Zastosowanie wodnej lub freonowej chłodnicy kanałowej za <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperatorem</a> to rozwiązanie ostateczne. Czynnik o temperaturze 6-8°C wymusza głęboką kondensację wody w kanale (odpływ do kanalizacji). Do pokojów trafia idealnie suche powietrze, co pozwala chłodzić podłogę z pełną mocą.</p>
                <div class="rk-data-cards">
                    <div class="rk-data-card">
                        <div class="rk-data-label">Wilgotność (RH)</div>
                        <div class="rk-data-value" style="color: #0ea5e9;">45<span>%</span></div>
                    </div>
                    <div class="rk-data-card">
                        <div class="rk-data-label">Moc chłodnicza</div>
                        <div class="rk-data-value" style="color: #0ea5e9;">40<span> W/m²</span></div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const ventBtns = document.querySelectorAll('.rk-vent-btn');
    const ventPanels = document.querySelectorAll('.rk-vent-panel');

    ventBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            // Bezpieczne usuwanie klas aktywnych (bez '&&')
            ventBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            ventPanels.forEach(function(p) {
                p.classList.remove('active');
            });
            
            // Aktywacja bieżącego
            this.classList.add('active');
            
            const targetPanel = document.getElementById(targetId);
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light: #f8fafc;
    --rk-calc-gray: #64748b;
    --rk-calc-border: #e2e8f0;
    --rk-calc-safe: #10b981;
    --rk-calc-safe-bg: #dcfce7;
    --rk-calc-warn: #f59e0b;
    --rk-calc-warn-bg: #fef3c7;
    --rk-calc-alarm: #ef4444;
    --rk-calc-alarm-bg: #fef2f2;
}

.rk-calc-wrapper {
    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(2, 132, 199, 0.1);
    border: 1px solid var(--rk-calc-blue);
    overflow: hidden;
}

.rk-calc-header {
    padding: 40px 50px 30px;
    background: var(--rk-calc-dark);
    color: #ffffff;
}

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

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

/* Układ Diagnozy 2-kolumnowy */
.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: #ffffff;
}

/* Sekcja Lewa: Suwaki i Wzory */
.rk-calc-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-calc-border);
}

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

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

.rk-slider-group {
    margin-bottom: 25px;
    background: var(--rk-calc-light);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
}

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

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

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

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

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

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

/* Sekcja Prawa: Wyniki Live */
.rk-calc-results {
    padding: 40px;
    background: var(--rk-calc-light);
    display: flex;
    flex-direction: column;
}

.rk-result-box {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    margin-bottom: 20px;
}

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

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

.rk-result-sub {
    font-size: 13px;
    color: var(--rk-calc-gray);
    margin-top: 10px;
}

/* Dynamiczny Status */
.rk-status-panel {
    margin-top: auto;
    padding: 30px 25px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.4s ease;
    border: 2px solid transparent;
}

.rk-status-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px;
}

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

.rk-status-desc {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
    font-weight: 600;
}

/* Klasy stanów wstrzykiwane przez JS */
.state-safe {
    background: var(--rk-calc-safe-bg);
    border-color: var(--rk-calc-safe);
    color: #065f46;
}
.state-safe .rk-status-title { color: var(--rk-calc-safe); }

.state-warn {
    background: var(--rk-calc-warn-bg);
    border-color: var(--rk-calc-warn);
    color: #92400e;
}
.state-warn .rk-status-title { color: var(--rk-calc-warn); }

.state-alarm {
    background: var(--rk-calc-alarm-bg);
    border-color: var(--rk-calc-alarm);
    color: #991b1b;
}
.state-alarm .rk-status-title { color: var(--rk-calc-alarm); }

/* Opis logiczny pod spodem */
.rk-calc-logic-desc {
    padding: 30px 50px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-calc-border);
}

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

.rk-logic-item {
    font-size: 15px;
    color: #475569;
    line-height: 1.7;
}

.rk-logic-item strong {
    color: var(--rk-calc-dark);
    display: block;
    margin-bottom: 5px;
}

.rk-logic-item a {
    color: var(--rk-calc-blue);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 768px) {
    .rk-calc-grid { grid-template-columns: 1fr; }
    .rk-calc-header, .rk-calc-controls, .rk-calc-results, .rk-calc-logic-desc { padding: 25px 20px; }
    .rk-logic-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-result-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Algorytm kalkulatora punktu rosy i oceny ryzyka kondensacji",
    "description": "Zrozum i przetestuj na żywo logikę automatyki Dew Point Control. Interaktywny symulator obliczający bezpieczną temperaturę zasilania podłogówki na bazie wilgotności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-algorytm",
    "name": "Parametry termodynamiczne punktu rosy (Magnus-Tetens)",
    "description": "Dane ustrukturyzowane odzwierciedlające algorytmy obronne sterowników HVAC przed zjawiskiem kondensacji na płaszczyznach chłodzących.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator punktu rosy chłodzenie",
      "wzór na punkt rosy podłogówka",
      "jak obliczyć kondensację latem",
      "bezpieczna temperatura zasilania kalkulator",
      "sterownik dew point control"
    ],
    "measurementTechnique": "Wykorzystanie równania Magnus-Tetensa dla wyznaczenia progu kondensacji oraz dodanie marginesu bezpieczeństwa 1,5 K dla algorytmu sterującego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kryterium Bezpieczne: T podłogi >= T bezpieczne ORAZ RH < 65%",
        "Kryterium Ostrzeżenia: Podniesienie krzywej zasilania przy zbliżaniu się do limitu.",
        "Kryterium Alarmowe: Awaryjne odcięcie pomp przy RH >= 70% lub T podłogi <= Tp."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Punktu Rosy HVAC",
    "description": "Aplikacja webowa pozwalająca inwestorom symulować na żywo warunki atmosferyczne i obserwować reakcje automatyki chłodzącej na zmiany temperatury i wilgotności.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper">
    <div class="rk-calc-header">
        <h2>Algorytm kalkulatora punktu rosy i oceny ryzyka</h2>
        <p>Przetestuj na żywo, jak zadziała zaawansowany <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/" style="color:#38bdf8; text-decoration:none; font-weight:700;">sterownik pogodowy</a> z funkcją Dew Point Control. Poniższy kalkulator wykorzystuje wzór Magnus-Tetensa, analizując parametry w czasie rzeczywistym.</p>
    </div>

    <div class="rk-calc-grid">
        <div class="rk-calc-controls">
            <h3 class="rk-calc-step-title">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                Wprowadź dane z termohigrometru
            </h3>
            
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Temperatura powietrza (T_air)</span>
                    <span class="rk-slider-val" id="val-tair">26.0 °C</span>
                </div>
                <input type="range" class="rk-range-input" id="slide-tair" min="20" max="35" step="0.5" value="26">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Wilgotność względna (RH)</span>
                    <span class="rk-slider-val" id="val-rh">50 %</span>
                </div>
                <input type="range" class="rk-range-input" id="slide-rh" min="30" max="90" step="1" value="50">
            </div>

            <div class="rk-slider-group" style="margin-bottom: 0;">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Temp. planowana posadzki (T_floor)</span>
                    <span class="rk-slider-val" id="val-tfloor">18.0 °C</span>
                </div>
                <input type="range" class="rk-range-input" id="slide-tfloor" min="10" max="25" step="0.5" value="18">
            </div>
        </div>

        <div class="rk-calc-results">
            <div class="rk-result-box">
                <div class="rk-result-label">Obliczony Punkt Rosy (Tp)</div>
                <div class="rk-result-value" id="res-tp">-- °C</div>
                <div class="rk-result-sub">Krok 2 i 3: Obliczenie ciśnienia pary E i logarytmów.</div>
            </div>

            <div class="rk-result-box">
                <div class="rk-result-label">Min. Bezpieczna Temp. Podłogi</div>
                <div class="rk-result-value" id="res-safe">-- °C</div>
                <div class="rk-result-sub">Krok 4: Wartość Tp + Margines 1.5°C</div>
            </div>

            <div class="rk-status-panel state-safe" id="status-box">
                <svg id="icon-safe" class="rk-status-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block"><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>
                <svg id="icon-warn" class="rk-status-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none"><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>
                
                <h3 class="rk-status-title" id="status-title">STATUS: BEZPIECZNIE</h3>
                <p class="rk-status-desc" id="status-desc">Zezwolenie na chłodzenie. Brak ryzyka kondensacji wilgoci na posadzce.</p>
            </div>
        </div>
    </div>

    <div class="rk-calc-logic-desc">
        <h3 style="font-size: 20px; font-weight: 800; color: var(--rk-calc-dark); margin: 0 0 20px 0;">Instrukcje warunkowe automatyki</h3>
        <div class="rk-logic-grid">
            <div class="rk-logic-item">
                <strong>STATUS: OSTRZEŻENIE</strong>
                Jeżeli temperatura posadzki zbliża się do punktu rosy, automatyka wymusza korektę: przymyka zawór mieszający, podnosząc temperaturę zasilania wody obiegowej. Jeśli interesuje Cię, jak kompleksowo obliczyć moce, sprawdź <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">kompleksowy kalkulator ogrzewania podłogowego</a>.
            </div>
            <div class="rk-logic-item">
                <strong>STATUS: KATASTROFA (ALARM)</strong>
                Gdy temperatura podłogi zrówna się z punktem rosy LUB wilgotność w pomieszczeniu przekroczy 70%. Następuje awaryjne odcięcie chłodzenia i sprzętowe wymuszenie pracy rekuperatora na 100% w celu natychmiastowego osuszenia <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">zgodnie z wytycznymi norm</a>.
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slideTair = document.getElementById('slide-tair');
    const slideRh = document.getElementById('slide-rh');
    const slideTfloor = document.getElementById('slide-tfloor');
    
    const valTair = document.getElementById('val-tair');
    const valRh = document.getElementById('val-rh');
    const valTfloor = document.getElementById('val-tfloor');
    
    const resTp = document.getElementById('res-tp');
    const resSafe = document.getElementById('res-safe');
    
    const statusBox = document.getElementById('status-box');
    const statusTitle = document.getElementById('status-title');
    const statusDesc = document.getElementById('status-desc');
    const iconSafe = document.getElementById('icon-safe');
    const iconWarn = document.getElementById('icon-warn');

    function calculate() {
        const tAir = parseFloat(slideTair.value);
        const rh = parseFloat(slideRh.value);
        const tFloor = parseFloat(slideTfloor.value);

        // Update Labels
        valTair.textContent = tAir.toFixed(1) + ' °C';
        valRh.textContent = rh + ' %';
        valTfloor.textContent = tFloor.toFixed(1) + ' °C';

        // Math: Magnus-Tetens
        // Krok 2: Cisnienie
        const exponent = (17.67 * tAir) / (tAir + 243.5);
        const Es = 6.112 * Math.exp(exponent);
        const E = Es * (rh / 100);

        // Krok 3: Punkt rosy Tp
        const logE = Math.log(E / 6.112);
        const Tp = (243.5 * logE) / (17.67 - logE);
        
        // Krok 4: T safe
        const Tsafe = Tp + 1.5;

        // Display results
        resTp.textContent = Tp.toFixed(1) + ' °C';
        resSafe.textContent = Tsafe.toFixed(1) + ' °C';

        // Logika Sterownika (Bez użycia operatora AND)
        let currentState = 'ALARM';
        
        if (rh >= 70) {
            currentState = 'ALARM';
        } else if (tFloor <= Tp) {
            currentState = 'ALARM';
        } else {
            // Skoro tu jesteśmy, wiemy że RH < 70 ORAZ tFloor > Tp
            if (tFloor < Tsafe) {
                currentState = 'WARNING';
            } else {
                // Skoro tu jesteśmy, tFloor >= Tsafe
                if (rh < 65) {
                    currentState = 'SAFE';
                } else {
                    // RH między 65 a 69
                    currentState = 'WARNING';
                }
            }
        }

        // Aktualizacja UI na podstawie stanu
        iconSafe.style.display = 'none';
        iconWarn.style.display = 'none';

        if (currentState === 'ALARM') {
            statusBox.className = 'rk-status-panel state-alarm';
            statusTitle.textContent = 'STATUS: KATASTROFA';
            statusDesc.textContent = 'System odcięty! Natychmiastowe ryzyko zalania posadzki.';
            iconWarn.style.display = 'block';
        } else if (currentState === 'WARNING') {
            statusBox.className = 'rk-status-panel state-warn';
            statusTitle.textContent = 'STATUS: OSTRZEŻENIE';
            statusDesc.textContent = 'Wymuszono podniesienie temp. zasilania (praca zaworu mieszającego).';
            iconWarn.style.display = 'block';
        } else {
            statusBox.className = 'rk-status-panel state-safe';
            statusTitle.textContent = 'STATUS: BEZPIECZNIE';
            statusDesc.textContent = 'Zezwolenie na chłodzenie. Pełna praca pompy obiegowej.';
            iconSafe.style.display = 'block';
        }
    }

    // Event Listeners
    slideTair.addEventListener('input', calculate);
    slideRh.addEventListener('input', calculate);
    slideTfloor.addEventListener('input', calculate);

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



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-hover: #0369a1;
    --rk-proj-light-blue: #f0f9ff;
    --rk-proj-accent: #38bdf8;
    --rk-proj-gray: #64748b;
    --rk-proj-border: #e2e8f0;
    --rk-proj-bg: #ffffff;
    --rk-proj-warning: #f59e0b;
}

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

.rk-proj-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-proj-header::after {
    content: '';
    position: absolute;
    right: -20px;
    top: -50px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.2) 0%, transparent 70%);
}

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

.rk-proj-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.rk-proj-header p {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.7;
    margin: 0;
    max-width: 750px;
    position: relative;
    z-index: 1;
}

/* Interaktywny Pulpit Projektanta */
.rk-proj-dashboard {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-proj-tab {
    background: #ffffff;
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 20px 15px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-proj-tab:hover {
    border-color: #bae6fd;
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-proj-tab.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-light-blue);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-proj-icon-wrapper {
    width: 48px;
    height: 48px;
    background: #f1f5f9;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-proj-gray);
    transition: all 0.3s;
}

.rk-proj-tab.active .rk-proj-icon-wrapper {
    background: var(--rk-proj-blue);
    color: #ffffff;
}

.rk-proj-tab span {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-proj-dark);
}

/* Wyświetlacz Treści */
.rk-proj-content-area {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-proj-panel {
    display: none;
    animation: fadeInProj 0.4s ease-out;
}

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

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

.rk-proj-panel h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

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

.rk-proj-panel a:hover {
    border-color: var(--rk-proj-blue);
}

.rk-proj-data-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-proj-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-proj-data-box h4 {
    margin: 0 0 10px 0;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-proj-gray);
    font-weight: 800;
}

.rk-proj-data-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--rk-proj-border);
    font-size: 15px;
}

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

.rk-proj-val {
    font-weight: 800;
    color: var(--rk-proj-dark);
}

.val-warning { color: var(--rk-proj-warning); }

/* Mocne CTA Sprzedażowe */
.rk-proj-cta-section {
    padding: 50px;
    text-align: center;
    background: #ffffff;
    border-top: 1px solid var(--rk-proj-border);
}

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

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

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

.rk-btn-premium:hover {
    transform: translateY(-5px);
    background: var(--rk-proj-blue-hover);
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #bae6fd;
}

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-dashboard, .rk-proj-cta-section { padding: 30px 20px; }
    .rk-proj-nav { grid-template-columns: 1fr; gap: 10px; }
    .rk-proj-tab { flex-direction: row; padding: 15px 20px; justify-content: flex-start; }
    .rk-proj-content-area { padding: 25px 20px; }
    .rk-proj-panel h3 { font-size: 20px; align-items: flex-start; flex-direction: column; gap: 8px; }
    .rk-btn-premium { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-projekt-chlodzenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Jak funkcja chłodzenia płaszczyznowego wpływa na projekt ogrzewania podłogowego?",
    "description": "Techniczne wytyczne dla projektowania chłodzenia podłogowego. Redefinicja parametrów hydraulicznych: OZC, rozstaw rur co 10 cm, przepływy masowe, pompa obiegowa i dobór materiałów wykończeniowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-parametry-projektowe",
    "name": "Wytyczne hydrauliczne i materiałowe dla chłodzenia podłogowego",
    "description": "Porównanie parametrów brzegowych instalacji grzewczej i chłodzącej: moc z m2, rozstaw rur, opory cieplne, przepływy masowe pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z chłodzeniem",
      "obliczenia OZC zyski ciepła latem",
      "rozstaw rur w chłodzeniu podłogowym",
      "opór cieplny paneli przy chłodzeniu",
      "dobór pompy obiegowej do podłogówki",
      "przepływ masowy w chłodzeniu płaszczyznowym"
    ],
    "measurementTechnique": "Wyliczenia oparte na normie PN-EN 1264, z uwzględnieniem niskiego zrzutu temperatury (Delta T = 3K) i ograniczeń wilgotnościowych punktu rosy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zyski ciepła: Max moc chłodnicza 30-40 W/m² (wymagane precyzyjne OZC).",
        "Rozstaw rur: Zagęszczenie do 10 cm, wyłącznie układ ślimakowy w celu uniknięcia lokalnej kondensacji.",
        "Materiały: Rekomendowany opór R < 0,02 m²K/W (płytki). Ryzyko dla R > 0,10 m²K/W (drewno).",
        "Hydraulika: Niskie Delta T (3K) wymusza podwojenie przepływów (np. 1,15 m³/h dla 4 kW). Pompa klasy EEI <= 0,20."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-pulpit-projektanta",
    "name": "Pulpit Wytycznych Projektowych HVAC",
    "description": "Interaktywny interfejs dla inwestorów budowlanych pozwalający zgłębić 4 filary profesjonalnego projektowania instalacji płaszczyznowych (OZC, Rozstaw, Materiały, Hydraulika).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
            Inżynieria Systemowa
        </div>
        <h2>Jak funkcja chłodzenia rewolucjonizuje projekt instalacji?</h2>
        <p>Projektowanie instalacji, która oprócz ogrzewania ma realizować bezpieczne chłodzenie, wymaga całkowitej redefinicji hydrauliki. Instalacja "na oko" zakończy się zalaniem. Zobacz 4 filary profesjonalnych obliczeń.</p>
    </div>

    <div class="rk-proj-dashboard">
        
        <div class="rk-proj-nav" id="rkProjTabs">
            <div class="rk-proj-tab active" data-target="panel-ozc">
                <div class="rk-proj-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"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                </div>
                <span>1. OZC / Zyski Ciepła</span>
            </div>
            
            <div class="rk-proj-tab" data-target="panel-rozstaw">
                <div class="rk-proj-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"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line><line x1="9" y1="3" x2="9" y2="21"></line><line x1="15" y1="3" x2="15" y2="21"></line></svg>
                </div>
                <span>2. Rozstaw Rur</span>
            </div>
            
            <div class="rk-proj-tab" data-target="panel-mat">
                <div class="rk-proj-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"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <span>3. Wykończenie (Opór R)</span>
            </div>
            
            <div class="rk-proj-tab" data-target="panel-hydro">
                <div class="rk-proj-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 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                </div>
                <span>4. Hydraulika Pompy</span>
            </div>
        </div>

        <div class="rk-proj-content-area" id="rkProjContent">
            
            <div class="rk-proj-panel active" id="panel-ozc">
                <h3>Obliczenia zysków ciepła i bariera wydajności</h3>
                <p>Podczas gdy zimą projektuje się instalację na pokrycie strat ciepła (gdzie gęstość strumienia to 60-80 W/m²), latem wyznacza się <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Obliczeniowe Zapotrzebowanie Cieplne (OZC)</a> pod kątem zysków cieplnych z nasłonecznienia.</p>
                <p>Z powodu fizycznego ograniczenia temperaturą punktu rosy, podłogówka ma twardy limit wydajności. Jeśli salon z dużymi oknami wymaga potężnego chłodzenia (np. 70 W/m²), projektant musi przewidzieć wsparcie (np. klimakonwektory), ponieważ sama podłoga nie da rady bezpiecznie odebrać tyle ciepła.</p>
                
                <div class="rk-proj-data-box">
                    <h4>Kluczowe Parametry OZC (Chłodzenie)</h4>
                    <div class="rk-proj-data-row">
                        <span>Zimowa wydajność grzewcza</span>
                        <span class="rk-proj-val">60 - 80 W/m²</span>
                    </div>
                    <div class="rk-proj-data-row">
                        <span>Letnia wydajność chłodnicza (limit punktu rosy)</span>
                        <span class="rk-proj-val val-warning">MAX 30 - 40 W/m²</span>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-rozstaw">
                <h3>Eliminacja "pasiastości" i zagęszczenie rur</h3>
                <p>Przy tradycyjnym ogrzewaniu dopuszczalna jest niewielka nierównomierność temperatury jastrychu. Przy chłodzeniu jest to absolutnie niedopuszczalne. Jeśli ułożysz rury rzadko (np. co 20 cm), podłoga nad rurą ulegnie silnemu wychłodzeniu (np. do 14°C) stając się epicentrum kondensacji, podczas gdy przestrzeń obok pozostanie sucha (19°C).</p>
                <p>Aby uśrednić temperaturę i uniknąć gnicia pasmowego, niezbędny jest rygorystyczny <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur w instalacji</a>. Wymagany jest układ ślimakowy naprzemienny, który niweluje szoki termiczne.</p>
                
                <div class="rk-proj-data-box">
                    <h4>Zalecenia układania pętli (Chłodzenie)</h4>
                    <div class="rk-proj-data-row">
                        <span>Rozstaw strefowy (Salon, sypialnie)</span>
                        <span class="rk-proj-val">10 cm</span>
                    </div>
                    <div class="rk-proj-data-row">
                        <span>Typ układania rury PEX/PERT</span>
                        <span class="rk-proj-val">Wyłącznie układ ślimakowy</span>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-mat">
                <h3>Dobór materiału wykończeniowego a opór cieplny (R)</h3>
                <p>Norma PN-EN 1264 mówi, że dla ogrzewania opór cieplny warstwy (R) nie powinien przekraczać 0,15 m²K/W. W trybie chłodzenia ten wymóg jest drastycznie zaostrzony. Płytki ceramiczne i gres idealnie i natychmiastowo przekazują chłód z wylewki do pokoju.</p>
                <p>Z kolei <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">panele i grube parkiety drewniane</a> działają latem jak potężny izolator cieplny. Aby "przepchnąć" przez nie chłód, woda musiałaby być lodowata (np. 12°C), co wywoła natychmiastową kondensację wilgoci tuż pod panelem, niszcząc drewno i kleje.</p>
                
                <div class="rk-proj-data-box">
                    <h4>Opór Cieplny posadzek a bezpieczeństwo</h4>
                    <div class="rk-proj-data-row">
                        <span>Płytki ceramiczne / Gres (R ~ 0,02 m²K/W)</span>
                        <span class="rk-proj-val" style="color: #10b981;">100% Bezpieczne i wydajne</span>
                    </div>
                    <div class="rk-proj-data-row">
                        <span>Deska trójwarstwowa (R ~ 0,12 m²K/W)</span>
                        <span class="rk-proj-val val-warning">Wysokie ryzyko kondensacji</span>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-hydro">
                <h3>Wyzwanie dla przepływów i pompy obiegowej</h3>
                <p>Chłodzenie pracuje na znacznie mniejszej różnicy temperatur (tzw. Delta T wynosi tylko około 3 Kelwinów) niż ogrzewanie (gdzie Delta T to często 5-8 Kelwinów). Fizyka jest nieubłagana: aby przenieść tę samą moc w kW przy tak małej różnicy temperatur, przez system musi przepłynąć blisko dwukrotnie więcej litrów wody na minutę!</p>
                <p>Aby uniknąć gigantycznych strat ciśnienia i piszczących instalacji, inżynier projektuje bardzo krótkie pętle grzewcze (max 80 metrów) oraz dobiera <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> o znacznie większej wysokości podnoszenia, najczęściej z indeksem EEI <= 0,20.</p>
                
                <div class="rk-proj-data-box">
                    <h4>Krytyczne parametry dla hydrauliki</h4>
                    <div class="rk-proj-data-row">
                        <span>Różnica temperatur (Delta T) przy chłodzeniu</span>
                        <span class="rk-proj-val">Zaledwie 3 Kelwiny</span>
                    </div>
                    <div class="rk-proj-data-row">
                        <span>Przepływ masowy wody dla mocy 4,0 kW</span>
                        <span class="rk-proj-val">Aż 1,15 m³/h (potężny strumień)</span>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3 class="rk-proj-cta-title">Nie zgaduj. Zbuduj dom w oparciu o twarde liczby.</h3>
        <p class="rk-proj-cta-desc">
            Instalator układający rury "z pamięci" nie uchroni Cię przed fizyką i punktem rosy. Zabezpiecz swoją podłogę, uzyskaj idealny komfort letni i zimowy dzięki rygorystycznym obliczeniom inżynierskim.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-premium">
            ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA Z CHŁODZENIEM
            <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 12h14"></path><path d="M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const projTabs = document.querySelectorAll('.rk-proj-tab');
    const projPanels = document.querySelectorAll('.rk-proj-panel');

    projTabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            // Usunięcie klas aktywnych ze wszystkich zakładek bez '&&'
            projTabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Usunięcie klas aktywnych ze wszystkich paneli
            projPanels.forEach(function(p) {
                p.classList.remove('active');
            });
            
            // Aktywacja klikniętej zakładki i powiązanego panelu
            this.classList.add('active');
            const targetPanel = document.getElementById(targetId);
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



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

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

.rk-err-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #fff1f2 0%, #ffffff 100%);
    border-bottom: 1px solid rgba(239, 68, 68, 0.2);
    position: relative;
}

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

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

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

/* Układ Diagnozy */
.rk-err-layout {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: #ffffff;
}

/* Lista Błędów (Nawigacja) */
.rk-err-list {
    background: #f8fafc;
    border-right: 1px solid var(--rk-err-border);
    padding: 20px 0;
}

.rk-err-btn {
    width: 100%;
    text-align: left;
    padding: 20px 30px;
    background: transparent;
    border: none;
    border-left: 4px solid transparent;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-err-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-btn:hover {
    background: #f1f5f9;
    color: var(--rk-err-dark);
}

.rk-err-btn.active {
    background: #ffffff;
    color: var(--rk-err-red);
    border-left-color: var(--rk-err-red);
    box-shadow: -2px 0 10px rgba(0,0,0,0.02);
}

.rk-err-btn-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-err-border);
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-gray);
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-btn-num {
    background: var(--rk-err-red);
    color: #ffffff;
}

/* Wyświetlacz Konsekwencji */
.rk-err-display {
    padding: 40px 50px;
    position: relative;
}

.rk-err-content {
    display: none;
    animation: slideIn 0.4s ease-out;
}

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

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

.rk-err-warning-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-err-red-light);
    color: var(--rk-err-red);
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

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

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

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

.rk-err-content a:hover {
    color: var(--rk-err-dark);
}

.rk-err-visual {
    background: #f8fafc;
    border: 1px dashed #cbd5e1;
    border-radius: 16px;
    padding: 30px;
    text-align: center;
}

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

.anim-pulse-red {
    transform-origin: center;
    animation: pulseError 2s infinite;
}

@keyframes pulseError {
    0% { transform: scale(0.95); opacity: 0.8; }
    50% { transform: scale(1.05); opacity: 1; filter: drop-shadow(0 0 8px rgba(239, 68, 68, 0.4)); }
    100% { transform: scale(0.95); opacity: 0.8; }
}

@media (max-width: 768px) {
    .rk-err-header, .rk-err-display { padding: 30px 20px; }
    .rk-err-layout { display: flex; flex-direction: column; }
    .rk-err-list { border-right: none; border-bottom: 1px solid var(--rk-err-border); display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 15px; gap: 10px; background: #ffffff; }
    .rk-err-btn { flex: 0 0 85%; scroll-snap-align: center; background: #f8fafc; border: 1px solid var(--rk-err-border); border-radius: 12px; padding: 15px; border-left: 1px solid var(--rk-err-border); flex-direction: column; text-align: center; align-items: center; justify-content: center; gap: 10px; }
    .rk-err-btn.active { border-color: var(--rk-err-red); background: var(--rk-err-red-light); box-shadow: none; border-left: 1px solid var(--rk-err-red); }
    .rk-err-content h3 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Najczęstsze błędy wykonawcze i projektowe niszczące posadzkę",
    "description": "Katalog krytycznych błędów przy chłodzeniu podłogowym: od braku dylatacji, przez złe zawory mieszające, aż po ignorowanie strefowej kontroli wilgotności.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-bledy",
    "name": "Katalog Błędów Instalacyjnych Chłodzenia Płaszczyznowego",
    "description": "Zbiór danych technicznych analizujący wpływ błędów montażowych na ryzyko kondensacji i uszkodzenia posadzki chłodzącej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy chłodzenia podłogowego",
      "kondensacja posadzki",
      "dylatacja wylewki chłodzącej",
      "grubość styropianu podłogówka",
      "zawór mieszający chłodzenie"
    ],
    "measurementTechnique": "Analiza awaryjności systemów HVAC na podstawie przekroczenia wilgotności RH 65% oraz norm dylatacyjnych DIN 18560.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Awaria 1: Brak termohigrometrów w strefach mokrych.",
        "Awaria 2: Sztywne parametry 16°C na zaworze manualnym.",
        "Awaria 3: Układ meandrowy generujący gradient temperatur.",
        "Awaria 4: EPS poniżej 15 cm (kondensacja kapilarna).",
        "Awaria 5: Brak profili dylatacyjnych DIN 18560."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-skaner",
    "name": "Symulator Konsekwencji Błędów Montażowych",
    "description": "Narzędzie diagnostyczne pozwalające inwestorom zweryfikować skutki fizyczne najpopularniejszych błędów instalatorów na etapie projektowania podłogówki.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    <div class="rk-err-header">
        <h2>Najczęstsze błędy wykonawcze i projektowe niszczące posadzkę</h2>
        <p>Instalacja chłodzenia płaszczyznowego nie wybacza dróg na skróty. Sprawdź, jak jedna błędna decyzja instalatora może doprowadzić do katastrofy budowlanej w Twoim salonie.</p>
    </div>

    <div class="rk-err-layout">
        <div class="rk-err-list" id="rkErrNav">
            <button class="rk-err-btn active" data-target="err-1">
                <span class="rk-err-btn-num">1</span>
                Brak strefowej kontroli wilgotności
            </button>
            <button class="rk-err-btn" data-target="err-2">
                <span class="rk-err-btn-num">2</span>
                Manualne zawory mieszające
            </button>
            <button class="rk-err-btn" data-target="err-3">
                <span class="rk-err-btn-num">3</span>
                Pętle w układzie meandrowym
            </button>
            <button class="rk-err-btn" data-target="err-4">
                <span class="rk-err-btn-num">4</span>
                Zbyt cienka izolacja EPS na gruncie
            </button>
            <button class="rk-err-btn" data-target="err-5">
                <span class="rk-err-btn-num">5</span>
                Brak dylatacji (DIN 18560)
            </button>
        </div>

        <div class="rk-err-display" id="rkErrDisplay">
            
            <div class="rk-err-content active" id="err-1">
                <div class="rk-err-warning-badge">
                    <svg width="16" height="16" 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>
                    Skutek: Natychmiastowe wykroplenie
                </div>
                <h3>Brak strefowej kontroli wilgotności w pomieszczeniach mokrych</h3>
                <p>Uruchamianie chłodzenia w łazienkach lub kuchniach bez dedykowanych termohigrometrów odcinających pętle natychmiast po przekroczeniu progu wilgotności RH równego 65%. Skutkuje to natychmiastowym wykropleniem wody podczas kąpieli lub gotowania. Pamiętaj, jak istotne jest <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> i chłodzeniem w takich przypadkach.</p>
                <div class="rk-err-visual">
                    <svg class="rk-err-svg anim-pulse-red" viewBox="0 0 100 100">
                        <path d="M50 20 C30 50, 20 70, 50 90 C80 70, 70 50, 50 20" fill="var(--rk-err-red)" opacity="0.8"/>
                        <path d="M45 45 Q50 60 55 45" fill="none" stroke="#ffffff" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>
            </div>

            <div class="rk-err-content" id="err-2">
                <div class="rk-err-warning-badge">
                    <svg width="16" height="16" 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>
                    Skutek: Zalanie podłóg w burzę
                </div>
                <h3>Zastosowanie manualnych zaworów bez siłowników</h3>
                <p>Ustawienie stałej temperatury na rozdzielaczu "na sztywno" na np. 16°C przez cały okres letni. W przypadku załamania pogody i nadejścia frontu burzowego, wilgotność na zewnątrz gwałtownie rośnie. Wtedy te 16°C staje się parametrem krytycznym powodującym zalanie budynku. Tylko automatyczny <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a> chroni przed zmianami pogody.</p>
                <div class="rk-err-visual">
                    <svg class="rk-err-svg anim-pulse-red" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="40" fill="none" stroke="var(--rk-err-red)" stroke-width="6"/>
                        <line x1="50" y1="20" x2="50" y2="50" stroke="var(--rk-err-red)" stroke-width="6" stroke-linecap="round"/>
                        <line x1="50" y1="50" x2="70" y2="70" stroke="var(--rk-err-red)" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="8" fill="var(--rk-err-dark)"/>
                    </svg>
                </div>
            </div>

            <div class="rk-err-content" id="err-3">
                <div class="rk-err-warning-badge">
                    <svg width="16" height="16" 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>
                    Skutek: Lokalne gnicie posadzki
                </div>
                <h3>Układanie pętli w układzie meandrowym</h3>
                <p>Zastosowanie <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">układu meandrowego rur</a> generuje duży gradient temperatur. Początek strefy jest lodowaty, a koniec ciepły. W strefie napływu czynnika (najczęściej przy ścianie zewnętrznej) temperatura posadzki drastycznie spada poniżej punktu rosy, wywołując bezlitosne lokalne gnicie materiału wykończeniowego.</p>
                <div class="rk-err-visual">
                    <svg class="rk-err-svg" viewBox="0 0 100 100">
                        <polyline points="10 20 90 20 90 40 10 40 10 60 90 60 90 80 10 80" fill="none" stroke="url(#meanderGrad)" stroke-width="8" stroke-linecap="round" stroke-linejoin="round"/>
                        <defs>
                            <linearGradient id="meanderGrad" x1="0%" y1="0%" x2="0%" y2="100%">
                                <stop offset="0%" stop-color="var(--rk-err-blue)" />
                                <stop offset="100%" stop-color="var(--rk-err-red)" />
                            </linearGradient>
                        </defs>
                    </svg>
                </div>
            </div>

            <div class="rk-err-content" id="err-4">
                <div class="rk-err-warning-badge">
                    <svg width="16" height="16" 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>
                    Skutek: Kondensacja kapilarna w gruncie
                </div>
                <h3>Ignorowanie grubości styropianu na gruncie</h3>
                <p>Zastosowanie zbyt cienkiej warstwy izolacji termicznej pod rurami powoduje, że latem instalacja chłodząca zamiast chłodzić pokój, chłodzi ułożony niżej grunt. Prowadzi to do przesunięcia profilu temperatur w głąb struktury podłogi. Zawsze upewnij się <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> zakłada projekt – absolutne minimum to 15 cm EPS 100.</p>
                <div class="rk-err-visual">
                    <svg class="rk-err-svg" viewBox="0 0 100 100">
                        <rect x="10" y="20" width="80" height="20" fill="#e2e8f0"/>
                        <rect x="10" y="45" width="80" height="10" fill="var(--rk-err-blue)"/>
                        <path d="M10 60 Q 30 50, 50 60 T 90 60 V 90 H 10 Z" fill="#8b5cf6" opacity="0.3"/>
                        <line x1="30" y1="70" x2="30" y2="55" stroke="var(--rk-err-blue)" stroke-width="2" stroke-dasharray="2 2" marker-end="url(#arrow)"/>
                        <line x1="70" y1="70" x2="70" y2="55" stroke="var(--rk-err-blue)" stroke-width="2" stroke-dasharray="2 2" marker-end="url(#arrow)"/>
                    </svg>
                </div>
            </div>

            <div class="rk-err-content" id="err-5">
                <div class="rk-err-warning-badge">
                    <svg width="16" height="16" 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>
                    Skutek: Pękanie jastrychu i odspajanie płytek
                </div>
                <h3>Brak dylatacji i taśmy brzegowej</h3>
                <p>Podczas chłodzenia wylewka betonowa kurczy się, a zimą rozszerza. Brak zastosowania pełnych profili dylatacyjnych (zgodnie z normą DIN 18560) oraz <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacji</a> z pianki polietylenowej o grubości minimum 8 mm, prowadzi do powstawania naprężeń ścinających na granicach stref.</p>
                <div class="rk-err-visual">
                    <svg class="rk-err-svg anim-pulse-red" viewBox="0 0 100 100">
                        <rect x="10" y="30" width="38" height="40" fill="#cbd5e1" rx="4"/>
                        <rect x="52" y="30" width="38" height="40" fill="#cbd5e1" rx="4"/>
                        <path d="M48 20 L55 45 L45 55 L52 80" fill="none" stroke="var(--rk-err-red)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
                    </svg>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errBtns = document.querySelectorAll('.rk-err-btn');
    const errContents = document.querySelectorAll('.rk-err-content');

    errBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych (Bez użycia && dla bezpieczeństwa)
            errBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            errContents.forEach(function(c) {
                c.classList.remove('active');
            });
            
            // Ustawienie nowej klasy aktywnej
            this.classList.add('active');
            
            // Wyszukanie docelowego kontenera i aktywacja
            const targetContent = document.getElementById(targetId);
            if (targetContent) {
                targetContent.classList.add('active');
            }
        });
    });
});
</script>



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

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

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

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(245, 158, 11, 0.2);
    color: var(--rk-case-accent);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

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

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

/* Profil Inwestora (Persona) */
.rk-case-persona {
    display: grid;
    grid-template-columns: 1fr 2fr;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-persona-avatar {
    padding: 30px 40px;
    background: var(--rk-case-light);
    border-right: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-avatar-icon {
    width: 80px;
    height: 80px;
    background: #e0f2fe;
    color: var(--rk-case-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

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

.rk-avatar-detail {
    font-size: 14px;
    color: var(--rk-case-gray);
    font-weight: 600;
}

.rk-persona-stats {
    padding: 30px 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: center;
}

.rk-stat-box {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

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

.rk-stat-val {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-case-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-stat-val svg { color: var(--rk-case-blue); }

/* Interaktywny Moduł Projektowy */
.rk-case-module {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-case-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}

.rk-case-tab {
    flex: 1;
    background: var(--rk-case-light);
    border: 2px solid var(--rk-case-border);
    padding: 16px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    cursor: pointer;
    text-align: center;
    transition: all 0.3s;
}

.rk-case-tab:hover {
    border-color: var(--rk-case-blue);
    color: var(--rk-case-blue);
}

.rk-case-tab.active {
    background: var(--rk-case-blue);
    border-color: var(--rk-case-blue);
    color: #ffffff;
    box-shadow: 0 8px 15px -5px rgba(2, 132, 199, 0.3);
}

.rk-case-content {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 30px;
    animation: caseFade 0.4s ease-out;
}

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

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

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

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

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

.rk-case-solution-box {
    background: #f0fdf4;
    border-left: 4px solid var(--rk-case-success);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-case-solution-box h4 {
    margin: 0 0 10px 0;
    color: #065f46;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
}

/* Tagi Długiego Ogona */
.rk-case-tags {
    padding: 0 50px 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    display: inline-block;
    padding: 6px 14px;
    background: #f1f5f9;
    border: 1px solid var(--rk-case-border);
    border-radius: 99px;
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-case-gray);
}

@media (max-width: 768px) {
    .rk-case-header, .rk-case-module, .rk-case-tags { padding: 30px 20px; }
    .rk-case-persona { grid-template-columns: 1fr; }
    .rk-persona-avatar { border-right: none; border-bottom: 1px solid var(--rk-case-border); padding: 20px; }
    .rk-persona-stats { grid-template-columns: 1fr; gap: 15px; padding: 20px; }
    .rk-case-nav { flex-direction: column; gap: 10px; }
    .rk-case-content { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Case Study: Zabezpieczenie chłodzenia podłogowego w nowym domu przed wylewkami",
    "description": "Studium przypadku inwestora z Podkarpacia. Diagnoza zysków ciepła w salonie z dużymi oknami i wdrożenie automatyki chroniącej przed punktem rosy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-casestudy",
    "name": "Dane projektowe inwestycji referencyjnej (Chłodzenie)",
    "description": "Weryfikacja empiryczna parametrów dla nowo budowanego domu (etap dachu). Korelacja wielkości przeszkleń z mocą chłodniczą wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "chłodzenie podłogówki na podkarpaciu",
      "kalkulacja zysków ciepła duże okna",
      "jak zabezpieczyć posadzkę przed wylewkami",
      "punkt rosy w nowym domu",
      "rozstaw rur pod duże przeszklenia"
    ],
    "measurementTechnique": "Kalkulacja zysków cieplnych z uwzględnieniem orientacji południowo-zachodniej oraz optymalizacja grubości i rodzaju jastrychu grzewczo-chłodzącego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Przegrzewanie salonu latem (zyski > 65 W/m2) z ryzykiem skroplin przy dużych witrynach.",
        "Diagnoza: Podłogówka w standardzie 15 cm nie pokryje zapotrzebowania i stworzy strefy rosy.",
        "Rozwiązanie: Zagęszczenie do 10 cm, wylewka betonowa wysokoprzewodząca i moduł Dew Point Control z czujnikami ściennymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-casestudy",
    "name": "Przeglądarka Case Study HVAC",
    "description": "Moduł ułatwiający inwestorom analizę realnych problemów instalacyjnych poprzez nawigację Problem-Diagnoza-Rozwiązanie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-wrapper" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study #402</div>
        <h2>Praktyka Inżynierska: Ucieczka przed punktem rosy</h2>
        <p>Teoria fizyki budowli to jedno, ale jak wygląda to na prawdziwej budowie? Prześledźmy realny proces projektowy na przykładzie inwestora, który w porę zrezygnował z układania rur "na oko".</p>
    </div>

    <div class="rk-case-persona">
        <div class="rk-persona-avatar">
            <div class="rk-avatar-icon">
                <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="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
            </div>
            <h3 class="rk-avatar-name">Patryk (47 lat)</h3>
            <span class="rk-avatar-detail">Województwo Podkarpackie</span>
        </div>
        <div class="rk-persona-stats">
            <div class="rk-stat-box">
                <span class="rk-stat-label">Etap budowy</span>
                <span class="rk-stat-val">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-success)" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Dach ukończony (SSZ)
                </span>
            </div>
            <div class="rk-stat-box">
                <span class="rk-stat-label">Najbliższe prace</span>
                <span class="rk-stat-val">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Instalacja rur i wylewki
                </span>
            </div>
            <div class="rk-stat-box">
                <span class="rk-stat-label">Źródło chłodu</span>
                <span class="rk-stat-val">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    Rewersyjna Pompa Ciepła
                </span>
            </div>
            <div class="rk-stat-box">
                <span class="rk-stat-label">Główne Wyzwanie</span>
                <span class="rk-stat-val">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--rk-case-accent)" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                    Przeszklony salon (Południe)
                </span>
            </div>
        </div>
    </div>

    <div class="rk-case-module">
        <div class="rk-case-nav">
            <button class="rk-case-tab active" data-tab="problem">1. Wyzwanie</button>
            <button class="rk-case-tab" data-tab="diagnoza">2. Diagnoza OZC</button>
            <button class="rk-case-tab" data-tab="wydrozenie">3. Rozwiązanie</button>
        </div>

        <div class="rk-case-content active" id="tab-problem">
            <h3>Wyzwanie: Piekarnik w salonie a ryzyko kondensacji</h3>
            <p>Inwestor planuje nowoczesną bryłę z 6-metrowym oknem przesuwnym w salonie od strony południowo-zachodniej. Z uwagi na specyfikę letnich, parnych burz na Podkarpaciu, wilgotność w budynku często przekracza 65%.</p>
            <p>Pierwotny hydraulik zalecił "standardowe ułożenie rur co 15 cm" na całym parterze. <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">Strefa przy oknach z dużymi przeszkleniami</a> generowała jednak olbrzymie zyski ciepła. Próba schłodzenia tego pomieszczenia standardowym układem wymusiłaby podanie wody o temperaturze 14°C, co natychmiast wywołałoby skraplanie na całej powierzchni posadzki.</p>
        </div>

        <div class="rk-case-content" id="tab-diagnoza">
            <h3>Diagnoza: Kalkulacja zysków bez złudzeń</h3>
            <p>Zanim hydraulik wszedł na budowę, przygotowaliśmy precyzyjny <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator zapotrzebowania cieplnego</a> (OZC dla trybu letniego). Wyliczenia wykazały, że przy oknie zyski ciepła wynoszą aż 65 W/m².</p>
            <p>Z uwagi na punkt rosy przy wilgotności 60% w regionie, bezpieczna temperatura wylewki została ograniczona do minimum 19°C. Przy tych parametrach podłoga mogła oddać maksymalnie 30 W/m² mocy chłodniczej z zachowaniem pełnego bezpieczeństwa. Stwierdzono jednoznacznie: standardowy układ hydrauliczny to gwarancja awarii.</p>
        </div>

        <div class="rk-case-content" id="tab-wydrozenie">
            <h3>Wdrożenie: Świadome projektowanie przed wylewkami</h3>
            <p>Na podstawie twardych danych zmieniliśmy architekturę instalacji. W strefie salonu zagęściliśmy rury do 10 cm w bezwzględnym układzie ślimakowym, wyrównując rozkład temperatur. Zadbaliśmy również o to, by <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki betonowej</a> została zoptymalizowana pod kątem szybkiego przewodzenia chłodu.</p>
            
            <div class="rk-case-solution-box">
                <h4>System Zabezpieczony (Sukces)</h4>
                <p style="margin:0; color:#064e3b; font-size:14px;">
                    Zastosowano centralę sterującą KNX z modułem Dew Point Control. Higrometry ścienne w sposób ciągły analizują stan powietrza. Jeśli nad Podkarpaciem przechodzi burza i wilgotność w salonie dobija do 70%, automatyka płynnie przymyka zawór mieszający, podnosząc temperaturę zasilania i blokując powstawanie kondensatu, jeszcze zanim na podłodze pojawi się pierwsza kropla wody.
                </p>
            </div>
        </div>
    </div>

    <div class="rk-case-tags">
        <span class="rk-mat-tag"># chłodzenie podłogówki na podkarpaciu</span>
        <span class="rk-mat-tag"># punkt rosy w nowym domu</span>
        <span class="rk-mat-tag"># zabezpieczenie posadzki przed wylewkami</span>
        <span class="rk-mat-tag"># zyski ciepła przy dużych oknach</span>
        <span class="rk-mat-tag"># rozstaw rur dla chłodzenia</span>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const caseTabs = document.querySelectorAll('.rk-case-tab');
    const caseContents = document.querySelectorAll('.rk-case-content');

    caseTabs.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-tab');
            
            // Czyszczenie klas aktywnych bez '&&' dla pełnego bezpieczeństwa
            caseTabs.forEach(function(t) {
                t.classList.remove('active');
            });
            caseContents.forEach(function(c) {
                c.classList.remove('active');
            });
            
            // Aktywacja wybranych
            this.classList.add('active');
            const contentPanel = document.getElementById('tab-' + targetId);
            
            if (contentPanel !== null) {
                contentPanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-bg: #f0f9ff;
    --rk-auth-gray: #64748b;
    --rk-auth-border: #e2e8f0;
    --rk-auth-bg: #ffffff;
    --rk-auth-text: #334155;
}

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

.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 30px 40px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-auth-header svg {
    color: var(--rk-auth-blue);
    flex-shrink: 0;
}

.rk-auth-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -0.5px;
    color: #ffffff;
}

.rk-auth-body {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: #ffffff;
}

/* Sekcja Profilu */
.rk-auth-profile {
    padding: 40px;
    border-right: 2px solid var(--rk-auth-dark);
    background: #f8fafc;
    text-align: center;
}

.rk-auth-photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-dark);
    margin: 0 auto 20px;
    object-fit: cover;
    box-shadow: 4px 4px 0px var(--rk-auth-blue);
    display: block;
}

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

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

.rk-auth-socials {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--rk-auth-dark);
    color: #ffffff;
    border-radius: 8px;
    text-decoration: none;
}

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

/* Sekcja Treści i Zasad */
.rk-auth-content {
    padding: 40px;
}

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

.rk-auth-rules-title {
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--rk-auth-border);
}

/* Interaktywny Panel Bez Animacji */
.rk-auth-nav {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-auth-tab-btn {
    background: #ffffff;
    border: 2px solid var(--rk-auth-border);
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-gray);
    cursor: pointer;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

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

.rk-auth-panel {
    display: none;
    background: var(--rk-auth-blue-bg);
    border: 2px solid var(--rk-auth-blue);
    padding: 25px;
}

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

.rk-auth-panel h4 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 10px 0;
}

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

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

@media (max-width: 768px) {
    .rk-auth-header { padding: 25px 20px; }
    .rk-auth-header h2 { font-size: 22px; }
    .rk-auth-body { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 2px solid var(--rk-auth-dark); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-photo { width: 120px; height: 120px; }
    .rk-auth-quote { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o bezpieczeństwie chłodzenia",
    "description": "Autorskie podsumowanie inwestycyjne. 3 żelazne zasady ochrony posadzki przed punktem rosy i zalaniem przy wykorzystaniu pompy 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": "CEO & Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-zlote-zasady",
    "name": "Eksperckie wytyczne instalacyjne (Złote Zasady Kucharskiego)",
    "description": "Zbiór autorskich, inżynierskich zasad zabezpieczających układy chłodzenia płaszczyznowego przed awarią termodynamiczną.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania",
      "zasady chłodzenia podłogowego",
      "ekspert hvac punkt rosy",
      "zabezpieczenie pompy ciepła latem",
      "bezpieczny projekt podłogówki"
    ],
    "measurementTechnique": "Weryfikacja empiryczna na bazie setek zrealizowanych projektów, zestawiająca twarde wymogi OZC z automatyką wykonawczą.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Fizyka nie negocjuje. Bez sprzętowego układu Dew Point Control instalacja jest skazana na awarię.",
        "Zasada 2: Projekt to fundament. Zagęszczony rozstaw i analiza zysków ciepła to warunek skuteczności.",
        "Zasada 3: Chłodzenie bez wentylacji to półśrodek. Wilgoć utajona musi zostać odprowadzona."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-panel-eksperta",
    "name": "Interaktywny Przewodnik Inwestora",
    "description": "Moduł podsumowujący pozwalający na przegląd kluczowych decyzji inwestycyjnych wymaganych do bezpiecznej realizacji układu chłodzenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-auth-app">
    <div class="rk-auth-header">
        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
        <h2>Zdaniem eksperta: Robert Kucharski</h2>
    </div>

    <div class="rk-auth-body">
        
        <div class="rk-auth-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-auth-photo" loading="lazy">
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <p class="rk-auth-role">CEO & Specjalista HVAC</p>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-link" title="Obserwuj na Facebooku">
                    <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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-auth-social-link" title="Połącz na LinkedIn">
                    <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="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            <blockquote class="rk-auth-quote">
                "Fizyka budowli nie negocjuje. Wpuszczenie zimnej wody z pompy ciepła w rury podłogowe bez odpowiedniego projektu i automatyki to nie oszczędność – to wyrok na Twoją posadzkę. Punkt rosy zawsze wygrywa z wykonawstwem 'na oko'."
            </blockquote>

            <h4 class="rk-auth-rules-title">3 Żelazne Zasady Inwestora</h4>
            
            <div class="rk-auth-nav">
                <button class="rk-auth-tab-btn active" data-rule="1">
                    1. Projekt jest ważniejszy niż sprzęt
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-auth-panel active" id="rule-1">
                    <h4>Bez OZC działasz w ciemno</h4>
                    <p>Aby chłodzenie było bezpieczne, musimy znać letnie zyski ciepła. System wymaga zagęszczonego układu rur i rygorystycznego doboru pompy obiegowej ze względu na zwiększone przepływy. <strong>Brak dedykowanego projektu to najdroższy błąd.</strong></p>
                </div>

                <button class="rk-auth-tab-btn" data-rule="2">
                    2. Tarcza ochronna to konieczność
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-auth-panel" id="rule-2">
                    <h4>Inteligentna obrona przed wilgocią</h4>
                    <p>Standard Dew Point Control z zaworem mieszającym oraz czujnikami w każdym pomieszczeniu to absolutne minimum. Automatyka musi mieć możliwość natychmiastowego odcięcia wilgotnych stref (np. łazienki), chroniąc dom przed zalaniem.</p>
                </div>

                <button class="rk-auth-tab-btn" data-rule="3">
                    3. Synergia z wentylacją
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-auth-panel" id="rule-3">
                    <h4>Zapanuj nad wilgocią utajoną</h4>
                    <p>Chłodna podłoga nie osusza powietrza. Jeśli zależy Ci na stałym komforcie bez ryzyka skraplania podczas letnich burz, system podłogowy musi współpracować z centralą wentylacyjną (rekuperatorem) wyposażonym w skuteczną funkcję obniżania wilgotności.</p>
                </div>
            </div>

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

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

    tabBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const ruleTarget = this.getAttribute('data-rule');
            
            // Twarde przełączanie bez użycia niedozwolonych znaków
            tabBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            panels.forEach(function(p) {
                p.classList.remove('active');
            });
            
            this.classList.add('active');
            
            const targetPanel = document.getElementById('rule-' + ruleTarget);
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    });
});
</script>



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

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

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

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

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

/* Interaktywny Symulator Automatyki */
.rk-interactive-sim {
    padding: 30px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
    display: flex;
    align-items: center;
    gap: 30px;
}

.rk-sim-controls {
    flex: 1;
}

.rk-sim-controls h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0 0 15px 0;
}

.rk-switch-container {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    padding: 15px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-faq-border);
}

.rk-switch {
    position: relative;
    display: inline-block;
    width: 60px;
    height: 34px;
}

.rk-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-faq-green);
    transition: .4s;
    border-radius: 34px;
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

input:checked + .rk-slider {
    background-color: var(--rk-faq-red);
}

input:checked + .rk-slider:before {
    transform: translateX(26px);
}

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

.rk-sim-visual {
    width: 120px;
    text-align: center;
}

.rk-svg-icon {
    width: 100%;
    height: auto;
    transition: all 0.4s ease;
}

#svg-safe { display: block; fill: var(--rk-faq-green); }
#svg-danger { display: none; fill: var(--rk-faq-red); }

/* Akordeon FAQ */
.rk-faq-body {
    padding: 20px 50px 40px;
    background: #ffffff;
}

.rk-accordion-item {
    border-bottom: 1px solid var(--rk-faq-border);
}

.rk-accordion-item:last-child {
    border-bottom: none;
}

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

.rk-accordion-btn:hover {
    color: var(--rk-faq-blue);
}

.rk-icon-plus {
    position: relative;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.rk-icon-plus::before, .rk-icon-plus::after {
    content: '';
    position: absolute;
    background-color: var(--rk-faq-blue);
    transition: transform 0.3s ease;
}

.rk-icon-plus::before {
    top: 11px; left: 4px; width: 16px; height: 2px;
}

.rk-icon-plus::after {
    top: 4px; left: 11px; width: 2px; height: 16px;
}

.rk-accordion-btn.active .rk-icon-plus::after {
    transform: rotate(90deg);
    opacity: 0;
}

.rk-accordion-btn.active .rk-icon-plus::before {
    transform: rotate(180deg);
}

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

.rk-accordion-inner {
    padding: 0 0 25px 0;
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
}

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

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

@media (max-width: 768px) {
    .rk-faq-header, .rk-interactive-sim, .rk-faq-body { padding: 30px 20px; }
    .rk-interactive-sim { flex-direction: column; text-align: center; gap: 20px; }
    .rk-switch-container { justify-content: center; flex-direction: column; }
    .rk-accordion-btn { font-size: 16px; padding: 20px 0; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy chłodzenie podłogowe może doprowadzić do powstania pleśni w domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jeśli system nie posiada automatyki kontrolującej punkt rosy, obniżenie temperatury posadzki przy wysokiej wilgotności (RH powyżej 70%) wywoła kondensację powierzchniową wody. Stała obecność wilgoci w szczelinach dylatacyjnych i strefach przyściennych tworzy idealne środowisko do rozwoju zarodników grzybów pleśniowych i destrukcji jastrychu."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest minimalna bezpieczna temperatura wody na zasilaniu rozdzielacza latem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Minimalna bezpieczna temperatura czynnika chłodniczego wprowadzana w pętle podłogowe wynosi standardowo 16°C - 18°C. Dokładna wartość musi być na bieżąco korygowana przez zawór mieszający automatyki, tak aby temperatura powierzchni posadzki była zawsze o co najmniej 1,5°C wyższa od aktualnej temperatury punktu rosy."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można bezpiecznie chłodzić pomieszczenia z podłogą drewnianą lub panelami?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Chłodzenie stref z wykończeniem drewnianym jest wysoce ryzykowne z powodu dużego oporu cieplnego drewna (R około 0,12 m²K/W) oraz jego podatności na pęcznienie pod wpływem wilgoci. W takich pomieszczeniach dopuszcza się chłodzenie wyłącznie przy restrykcyjnym ograniczeniu temperatury zasilania do minimum 19°C i ciągłej kontroli wilgotności przez cyfrowe higrostaty."
        }
      },
      {
        "@type": "Question",
        "name": "Jak zabezpieczyć instalację przed kondensacją w przypadku awarii automatyki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Podstawowym zabezpieczeniem mechanicznym jest montaż higrostatu przylgowego (czujnika kondensacji) bezpośrednio na metalowej rurze zasilającej rozdzielacz podłogówki. W przypadku pojawienia się pierwszych mikro-kropel wody, czujnik ten natychmiast przerywa obwód elektryczny i sprzętowo odcina zasilanie pompy obiegowej, zapobiegając zalaniu domu."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego tradycyjna klimatyzacja radzi sobie z wilgocią lepiej niż podłogówka?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Klimatyzacja (chłodzenie konwekcyjne) pracuje na bardzo niskich temperaturach czynnika (6°C - 8°C), przez co powietrze przepływające przez parownik jednostki wewnętrznej celowo i głęboko przekracza punkt rosy, oddając wilgoć, która jest odprowadzana rurką skroplin. Chłodzenie podłogowe obniża temperaturę bez separacji wody, dlatego bez wsparcia rekuperacji z chłodnicą kanałową nie jest w stanie osuszyć powietrza."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#faq-chlodzenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "FAQ – Najważniejsze pytania o punkt rosy i bezpieczne chłodzenie",
    "description": "Baza wiedzy inwestora. Odpowiedzi inżyniera na najczęstsze pytania dotyczące punktu rosy, minimalnej temperatury zasilania i ryzyka pleśni przy chłodzeniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-faq",
    "name": "Katalog parametrów krytycznych chłodzenia płaszczyznowego",
    "description": "Zestawienie bezpiecznych temperatur zasilania, oporów cieplnych i wartości granicznych wilgotności dla instalacji ogrzewania i chłodzenia podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna temperatura zasilania podłogówki",
      "punkt rosy klimatyzacja a podłogówka",
      "chłodzenie podłogi drewnianej",
      "hygrostat przylgowy zasada działania",
      "ryzyko pleśni przy chłodzeniu"
    ],
    "measurementTechnique": "Określanie bezpiecznych limitów termodynamicznych na podstawie oporu cieplnego posadzek i wilgotności względnej powietrza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezpieczna temperatura zasilania rozdzielacza: 16-18°C.",
        "Limit wilgotności względnej w pomieszczeniu: max 70%.",
        "Opór cieplny podłogi drewnianej: ok. 0,12 m²K/W (ryzyko kondensacji)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-faq",
    "name": "Interaktywny Akordeon Bazy Wiedzy HVAC",
    "description": "Aplikacja webowa ułatwiająca nawigację po skomplikowanych problemach inżynierskich poprzez układ pionowy z symulatorem stanu automatyki Dew Point Control.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-wrapper">
    <div class="rk-faq-header">
        <h2>FAQ – Najważniejsze pytania o punkt rosy i bezpieczne chłodzenie płaszczyznowe</h2>
        <p>Rozwiewamy inżynierskie wątpliwości. Dowiedz się, dlaczego fizyka budowli nie wybacza błędów i jak zabezpieczyć swój dom przed awarią.</p>
    </div>

    <div class="rk-interactive-sim">
        <div class="rk-sim-controls">
            <h3>Sprawdź wpływ automatyki na posadzkę</h3>
            <div class="rk-switch-container">
                <span class="rk-switch-label" id="rk-status-text" style="color: var(--rk-faq-green);">Ochrona aktywna (Dew Point Control)</span>
                <label class="rk-switch">
                    <input type="checkbox" id="rk-mode-toggle">
                    <span class="rk-slider"></span>
                </label>
                <span style="font-size: 13px; color: #64748b;">Symuluj awarię</span>
            </div>
        </div>
        <div class="rk-sim-visual">
            <svg id="svg-safe" class="rk-svg-icon" viewBox="0 0 24 24" 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>
                <polyline points="9 12 11 14 15 10" stroke="#ffffff" stroke-width="3"></polyline>
            </svg>
            <svg id="svg-danger" class="rk-svg-icon" viewBox="0 0 24 24" 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="18" x2="12" y2="18" stroke="#ffffff" stroke-width="4"></line>
                <line x1="12" y1="10" x2="12" y2="14" stroke="#ffffff" stroke-width="3"></line>
            </svg>
        </div>
    </div>

    <div class="rk-faq-body">
        
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <span>Czy chłodzenie podłogowe może doprowadzić do powstania pleśni w domu?</span>
                <div class="rk-icon-plus"></div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, jeśli system nie posiada automatyki kontrolującej punkt rosy, obniżenie temperatury posadzki przy wysokiej wilgotności (RH powyżej 70%) wywoła kondensację powierzchniową wody. Stała obecność wilgoci w szczelinach dylatacyjnych i strefach przyściennych tworzy idealne środowisko do rozwoju zarodników grzybów pleśniowych i wpływa na to <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">czy ogrzewanie podłogowe jest zdrowe</a> dla domowników, a także prowadzi do destrukcji jastrychu.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <span>Jaka jest minimalna bezpieczna temperatura wody na zasilaniu rozdzielacza latem?</span>
                <div class="rk-icon-plus"></div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Minimalna bezpieczna temperatura czynnika chłodniczego wprowadzana w pętle podłogowe wynosi standardowo 16°C - 18°C. Dokładna wartość musi być na bieżąco korygowana przez inteligentny <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do podłogówki</a> współpracujący z zaworem mieszającym, tak aby temperatura powierzchni posadzki była zawsze o co najmniej 1,5°C wyższa od aktualnej temperatury punktu rosy.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <span>Czy można bezpiecznie chłodzić pomieszczenia z podłogą drewnianą lub panelami?</span>
                <div class="rk-icon-plus"></div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Chłodzenie stref z wykończeniem drewnianym jest wysoce ryzykowne z powodu dużego oporu cieplnego drewna (R około 0,12 m²K/W) oraz jego podatności na pęcznienie pod wpływem wilgoci. Wybierając <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane vs panele laminowane</a> pod chłodzenie, należy pamiętać, że dopuszcza się je wyłącznie przy restrykcyjnym ograniczeniu temperatury zasilania do minimum 19°C i ciągłej kontroli wilgotności przez cyfrowe higrostaty.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <span>Jak zabezpieczyć instalację przed kondensacją w przypadku awarii automatyki?</span>
                <div class="rk-icon-plus"></div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Aby wyeliminować <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu</a> instalacji chłodzącej, podstawowym zabezpieczeniem mechanicznym jest montaż higrostatu przylgowego (czujnika kondensacji) bezpośrednio na metalowej rurze zasilającej rozdzielacz podłogówki. W przypadku pojawienia się pierwszych mikro-kropel wody, czujnik ten natychmiast przerywa obwód elektryczny i sprzętowo odcina zasilanie pompy obiegowej, zapobiegając zalaniu domu.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn">
                <span>Dlaczego tradycyjna klimatyzacja radzi sobie z wilgocią lepiej niż podłogówka?</span>
                <div class="rk-icon-plus"></div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Klimatyzacja (chłodzenie konwekcyjne) pracuje na bardzo niskich temperaturach czynnika (6°C - 8°C), przez co powietrze przepływające przez parownik jednostki wewnętrznej celowo i głęboko przekracza punkt rosy, oddając wilgoć, która jest odprowadzana rurką skroplin. Chłodzenie podłogowe obniża temperaturę bez separacji wody, dlatego bez wsparcia rekuperacji z chłodnicą kanałową nie jest w stanie osuszyć powietrza.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Akordeonu FAQ
    const accordionBtns = document.querySelectorAll('.rk-accordion-btn');
    
    accordionBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            this.classList.toggle('active');
            const content = this.nextElementSibling;
            
            if (content.style.maxHeight) {
                content.style.maxHeight = null;
            } else {
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });

    // Logika Symulatora (Bez użycia &&)
    const modeToggle = document.getElementById('rk-mode-toggle');
    const statusText = document.getElementById('rk-status-text');
    const svgSafe = document.getElementById('svg-safe');
    const svgDanger = document.getElementById('svg-danger');

    modeToggle.addEventListener('change', function() {
        if (this.checked) {
            // Tryb awaryjny
            statusText.textContent = 'Awaria automatyki - Ryzyko Kondensacji!';
            statusText.style.color = 'var(--rk-faq-red)';
            svgSafe.style.display = 'none';
            svgDanger.style.display = 'block';
        } else {
            // Tryb bezpieczny
            statusText.textContent = 'Ochrona aktywna (Dew Point Control)';
            statusText.style.color = 'var(--rk-faq-green)';
            svgSafe.style.display = 'block';
            svgDanger.style.display = 'none';
        }
    });
});
</script>



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

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

.rk-final-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border-bottom: 1px solid var(--rk-sum-border);
}

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

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

.rk-synergy-module {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-synergy-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 20px;
}

.rk-syn-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    border-radius: 14px;
    background: transparent;
    color: var(--rk-sum-gray);
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-syn-btn.active {
    background: #ffffff;
    color: var(--rk-sum-blue);
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.rk-syn-content-box {
    display: none;
    grid-template-columns: 120px 1fr;
    gap: 30px;
    align-items: center;
    padding: 35px;
    background: var(--rk-sum-light-blue);
    border: 1px solid rgba(2, 132, 199, 0.2);
    border-radius: 20px;
    animation: fadeIn 0.4s ease-out;
}

.rk-syn-content-box.active {
    display: grid;
}

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

.rk-syn-icon {
    width: 100%;
    height: auto;
}

.rk-syn-text h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0 0 12px 0;
}

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

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

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

.rk-tags-section {
    padding: 20px 50px 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: #ffffff;
}

.rk-mat-tag {
    display: inline-block;
    padding: 8px 16px;
    background: #f8fafc;
    border: 1px solid var(--rk-sum-border);
    border-radius: 99px;
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-sum-gray);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-sum-light-blue);
    border-color: var(--rk-sum-blue);
    color: var(--rk-sum-blue);
}

.rk-final-cta {
    padding: 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-final-cta::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(2,132,199,0.15) 0%, transparent 60%);
    z-index: 0;
}

.rk-cta-wrapper {
    position: relative;
    z-index: 1;
}

.rk-cta-title {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-neon {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: transparent;
    color: #38bdf8;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 40px;
    border-radius: 12px;
    text-decoration: none;
    border: 2px solid #38bdf8;
    box-shadow: 0 0 20px rgba(56, 189, 248, 0.2);
    transition: all 0.3s;
}

.rk-btn-neon:hover {
    background: #38bdf8;
    color: var(--rk-sum-dark);
    box-shadow: 0 0 30px rgba(56, 189, 248, 0.5);
    transform: translateY(-3px);
}

@media (max-width: 768px) {
    .rk-final-header, .rk-synergy-module, .rk-tags-section, .rk-final-cta { padding: 30px 20px; }
    .rk-synergy-controls { flex-direction: column; gap: 8px; background: transparent; padding: 0; }
    .rk-syn-btn { background: #f1f5f9; text-align: left; justify-content: flex-start; padding: 18px; }
    .rk-syn-btn.active { box-shadow: inset 4px 0 0 var(--rk-sum-blue); }
    .rk-syn-content-box { grid-template-columns: 1fr; text-align: center; padding: 25px 20px; }
    .rk-syn-icon { max-width: 80px; margin: 0 auto; }
    .rk-btn-neon { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Podsumowanie techniczne dla inwestorów – Bezpieczne chłodzenie",
    "description": "Techniczne podsumowanie warunków brzegowych dla bezpiecznego chłodzenia płaszczyznowego. Rola OZC, automatyki Dew Point Control oraz rekuperacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-26",
    "dateModified": "2026-06-26"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-synergia",
    "name": "Parametry brzegowe synergii układów HVAC latem",
    "description": "Zestawienie wymogów sprzętowych i obliczeniowych niezbędnych do uniknięcia kondensacji przy chłodzeniu podłogowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bezpieczne chłodzenie podłogówką",
      "automatyka do chłodzenia podłogowego",
      "projekt ogrzewania podłogowego z pompą ciepła",
      "obliczanie zysków ciepła latem",
      "rozstaw rur do chłodzenia płaszczyznowego"
    ],
    "measurementTechnique": "Analiza termodynamiczna punktu rosy, korelacja wilgotności względnej z krzywą zasilania posadzki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt OZC: Zagęszczony rozstaw rur dostosowany do ograniczonych mocy chłodniczych.",
        "Automatyka: Mikroprocesorowy system reagujący na odczyty z higrometrów pokojowych.",
        "Wentylacja: Mechaniczne obniżanie poziomu wilgotności względnej (RH) poniżej 60%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-symulator",
    "name": "Interaktywny Przewodnik Synergii Chłodzenia",
    "description": "Moduł UI demonstrujący nierozerwalną współpracę trzech elementów: optymalnego projektu, precyzyjnej automatyki i wentylacji osuszającej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="rk-final-app">
    <div class="rk-final-header">
        <h2>Podsumowanie techniczne dla inwestorów</h2>
        <p>Wykorzystanie instalacji ogrzewania podłogowego do chłodzenia budynku to bezgłośny komfort bez przeciągów. Jednak z punktu widzenia fizyki budowli – <strong>punkt rosy to nieprzekraczalna granica termodynamiczna</strong>. Sukces Twojej inwestycji zależy od pełnej synergii trzech filarów technicznych.</p>
    </div>

    <div class="rk-synergy-module">
        <div class="rk-synergy-controls" id="rkSynTabs">
            <button class="rk-syn-btn active" data-target="tab-projekt">
                <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="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>
                1. Projekt Hydrauliczny
            </button>
            <button class="rk-syn-btn" data-target="tab-auto">
                <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>
                2. Automatyka
            </button>
            <button class="rk-syn-btn" data-target="tab-went">
                <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 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                3. Wentylacja
            </button>
        </div>

        <div class="rk-syn-content-box active" id="tab-projekt">
            <svg class="rk-syn-icon" viewBox="0 0 100 100">
                <rect x="20" y="20" width="60" height="60" rx="10" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4"/>
                <line x1="30" y1="40" x2="70" y2="40" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round"/>
                <line x1="30" y1="60" x2="50" y2="60" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round"/>
                <circle cx="70" cy="70" r="15" fill="#f0f9ff" stroke="var(--rk-sum-blue)" stroke-width="4"/>
                <path d="M65 70 L68 75 L75 65" fill="none" stroke="var(--rk-sum-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
            </svg>
            <div class="rk-syn-text">
                <h3>Precyzyjny fundament obliczeniowy</h3>
                <p>Bezpośrednie wpuszczenie zimnej wody z pompy ciepła w pętle ułożone "na oko" to gwarancja uszkodzenia posadzki. <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Profesjonalny projekt pod pompę ciepła</a> uwzględnia letnie zyski ciepła (OZC) oraz definiuje zagęszczony rozstaw rur, aby zapobiec lokalnym pasmom kondensacji.</p>
            </div>
        </div>

        <div class="rk-syn-content-box" id="tab-auto">
            <svg class="rk-syn-icon" viewBox="0 0 100 100">
                <circle cx="50" cy="50" r="40" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4"/>
                <path d="M50 25 V50 L65 65" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round"/>
                <circle cx="50" cy="50" r="4" fill="var(--rk-sum-blue)"/>
                <path d="M20 50 A30 30 0 0 1 80 50" fill="none" stroke="var(--rk-sum-blue)" stroke-width="2" stroke-dasharray="4 4"/>
            </svg>
            <div class="rk-syn-text">
                <h3>Dew Point Control – Elektroniczna tarcza</h3>
                <p>Instalacja musi wiedzieć, co dzieje się w powietrzu. Algorytmy zasilane danymi ze strefowych czujników wilgotności na bieżąco analizują punkt rosy i automatycznie podnoszą temperaturę zasilania na zaworze mieszającym, blokując wyciek zanim się pojawi.</p>
            </div>
        </div>

        <div class="rk-syn-content-box" id="tab-went">
            <svg class="rk-syn-icon" viewBox="0 0 100 100">
                <path d="M20 50 C 40 20, 60 80, 80 50" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round"/>
                <path d="M20 70 C 40 40, 60 100, 80 70" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round" stroke-dasharray="8 8"/>
                <polyline points="70 40 80 50 70 60" fill="none" stroke="var(--rk-sum-blue)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
            </svg>
            <div class="rk-syn-text">
                <h3>Kontrola Wilgoci Utajonej</h3>
                <p>Podłogówka chłodzi, ale nie wysusza powietrza. Im zimniej w domu, tym wyższa wilgotność względna. Dlatego <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">współpraca z rekuperacją</a> wyposażoną w funkcję osuszania to jedyna droga, by instalacja chłodnicza pracowała z maksymalną wydajnością podczas letnich upałów.</p>
            </div>
        </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># bezpieczne chłodzenie podłogówką</span>
        <span class="rk-mat-tag"># automatyka do chłodzenia podłogowego</span>
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego z pompą ciepła</span>
        <span class="rk-mat-tag"># obliczanie zysków ciepła latem</span>
        <span class="rk-mat-tag"># rozstaw rur do chłodzenia płaszczyznowego</span>
        <span class="rk-mat-tag"># czujnik punktu rosy w podłodze</span>
        <span class="rk-mat-tag"># rekuperacja a chłodzenie podłogowe</span>
        <span class="rk-mat-tag"># moduł chłodzenia pompy ciepła</span>
    </div>

    <div class="rk-final-cta">
        <div class="rk-cta-wrapper">
            <h3 class="rk-cta-title">Zaprojektuj podłogówkę, która przetrwa pokolenia</h3>
            <p class="rk-cta-desc">
                Nie ryzykuj zalania i zniszczenia posadzki przez błędy w hydraulice. Dołącz do świadomych inwestorów, poznaj rygorystyczne normy inżynierskie i zbuduj dom odporny na awarie.
            </p>
            <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-neon">
                ODKRYJ BAZĘ WIEDZY INŻYNIERSKIEJ
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const synBtns = document.querySelectorAll('.rk-syn-btn');
    const synContents = document.querySelectorAll('.rk-syn-content-box');

    synBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            // Reset state
            synBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            synContents.forEach(function(c) {
                c.classList.remove('active');
            });
            
            // Set new active
            this.classList.add('active');
            const targetContent = document.getElementById(targetId);
            if (targetContent) {
                targetContent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-light-blue: #f0f9ff;
    --rk-dl-gray: #64748b;
    --rk-dl-border: #e2e8f0;
    --rk-dl-bg: #ffffff;
    --rk-dl-text: #334155;
    --rk-dl-pdf: #ef4444; /* Czerwony akcent dla PDF */
}

.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-dark);
    box-shadow: 6px 6px 0px var(--rk-dl-border);
}

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

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

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

.rk-dl-body {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #ffffff;
}

/* Kolumna z miniaturą */
.rk-dl-preview {
    padding: 30px;
    border-right: 2px solid var(--rk-dl-border);
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumbnail-wrapper {
    width: 100%;
    border: 2px solid var(--rk-dl-dark);
    background: #ffffff;
    padding: 10px;
    box-shadow: 4px 4px 0px var(--rk-dl-border);
    position: relative;
    cursor: pointer;
}

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

.rk-dl-img {
    width: 100%;
    height: auto;
    display: block;
}

.rk-dl-zoom-hint {
    background: var(--rk-dl-dark);
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    padding: 8px;
    text-align: center;
    margin-top: 15px;
    width: 100%;
    cursor: pointer;
}

.rk-dl-zoom-hint:hover {
    background: var(--rk-dl-blue);
}

/* Kolumna z przyciskami i opisem */
.rk-dl-content {
    padding: 30px 40px;
}

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

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

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

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

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 25px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 800;
    border: 2px solid var(--rk-dl-dark);
    background: #ffffff;
    color: var(--rk-dl-dark);
    cursor: pointer;
}

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

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

.rk-dl-btn.primary:hover {
    background: #b91c1c;
    border-color: #b91c1c;
}

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

.rk-dl-file-info {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

.rk-dl-btn.primary .rk-dl-file-info {
    color: #fca5a5;
}

/* Stopka Prawa Autorskie */
.rk-dl-copyright {
    padding: 20px 40px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    text-align: center;
    font-weight: 600;
}

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

/* Modal Pełnoekranowy (Bez animacji) */
.rk-modal-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    padding: 20px;
    align-items: center;
    justify-content: center;
}

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

.rk-modal-content {
    max-width: 90%;
    max-height: 90vh;
    position: relative;
}

.rk-modal-img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    border: 4px solid #ffffff;
}

.rk-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer;
    background: none;
    border: none;
    padding: 5px;
}

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

@media (max-width: 768px) {
    .rk-dl-header { padding: 25px 20px; }
    .rk-dl-header h2 { font-size: 22px; }
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-preview { border-right: none; border-bottom: 2px solid var(--rk-dl-border); padding: 20px; }
    .rk-dl-content { padding: 25px 20px; }
    .rk-dl-copyright { padding: 15px 20px; }
    .rk-dl-btn { flex-direction: column; gap: 10px; text-align: center; align-items: stretch; }
    .rk-dl-btn-icon { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/"
    },
    "headline": "Kompendium wiedzy do pobrania: Infografika punktu rosy",
    "description": "Zestawienie parametrów granicznych i wytycznych dla bezpiecznego chłodzenia płaszczyznowego w formie wysokiej jakości infografiki inżynierskiej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Punkt-rosy-w-ogrzewaniu-podlogowym-–-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#dataset-sciagawka",
    "name": "Inżynierska ściągawka parametrów chłodzenia (Infografika)",
    "description": "Plik PDF i obraz WebP zawierający skondensowane wytyczne dotyczące norm OZC, rozstawu rur, temperatur zasilania oraz trybów pracy pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika punkt rosy chłodzenie",
      "ściągawka instalatora hvac",
      "bezpieczne chłodzenie pdf",
      "parametry podłogówki schemat",
      "chłodzenie płaszczyznowe wykres"
    ],
    "measurementTechnique": "Wizualizacja zależności termodynamicznych (wilgotność vs temperatura) w formie przystępnych wykresów i wytycznych instalacyjnych.",
    "mainEntity": {
      "@type": "DataDownload",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Punkt-rosy-w-ogrzewaniu-podlogowym-–-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji.pdf",
      "encodingFormat": "application/pdf"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/#webapp-pobieranie",
    "name": "Interaktywny Panel Dokumentacji Technicznej",
    "description": "Zintegrowane narzędzie UI pozwalające na bezstratny podgląd schematów inżynierskich oraz bezpieczne pobranie licencjonowanych materiałów źródłowych.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-dl-app">
    <div class="rk-dl-header">
        <h2>Kompendium wiedzy do pobrania</h2>
        <p>Zabierz inżynierskie standardy na budowę. Pobierz gotową infografikę z parametrami granicznymi bezpiecznego chłodzenia.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview">
            <div class="rk-dl-thumbnail-wrapper" id="rkThumbTrigger">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Punkt-rosy-w-ogrzewaniu-podlogowym-–-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji.webp" 
                     alt="Infografika punktu rosy w chłodzeniu podłogowym" 
                     class="rk-dl-img" 
                     loading="lazy">
            </div>
            <button class="rk-dl-zoom-hint" id="rkZoomBtn">
                + Powiększ podgląd
            </button>
        </div>

        <div class="rk-dl-content">
            <h3>Pobierz darmowe materiały inżynierskie</h3>
            <p>
                Przygotowałem ten materiał, aby ułatwić komunikację między inwestorem a instalatorem. Zanim Twoja ekipa wyleje beton, upewnij się, że instalacja opiera się na twardych danych. 
                Aby pogłębić wiedzę przed zalaniem posadzki, sprawdź również, dlaczego w instalacji powinna pracować <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/" class="rk-inline-link">woda demineralizowana z inhibitorem korozji</a> oraz jak prawidłowo powinna zostać wykonana <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-inline-link">próba szczelności instalacji</a>.
            </p>

            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Punkt-rosy-w-ogrzewaniu-podlogowym-–-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji.pdf" 
                   class="rk-dl-btn primary" 
                   download 
                   target="_blank" 
                   rel="noopener noreferrer">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                        Pobierz plik PDF
                    </div>
                    <span class="rk-dl-file-info">Format: PDF (Wysoka jakość)</span>
                </a>

                <button class="rk-dl-btn" id="rkActionViewBtn">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                        Otwórz grafikę w przeglądarce
                    </div>
                    <span class="rk-dl-file-info">Format: WebP</span>
                </button>
            </div>
        </div>
    </div>

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

    <div class="rk-modal-overlay" id="rkImgModal">
        <div class="rk-modal-content">
            <button class="rk-modal-close" id="rkModalCloseBtn">[ Zamknij podgląd X ]</button>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Punkt-rosy-w-ogrzewaniu-podlogowym-–-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji.webp" 
                 alt="Infografika - Pełny wymiar" 
                 class="rk-modal-img">
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const modal = document.getElementById('rkImgModal');
    const thumbTrigger = document.getElementById('rkThumbTrigger');
    const zoomBtn = document.getElementById('rkZoomBtn');
    const actionViewBtn = document.getElementById('rkActionViewBtn');
    const closeBtn = document.getElementById('rkModalCloseBtn');

    // Funkcja otwierająca (Bezpieczna pod kątem operatorów JS)
    function openModal() {
        modal.classList.add('active');
    }

    // Funkcja zamykająca
    function closeModal() {
        modal.classList.remove('active');
    }

    // Eventy otwarcia
    thumbTrigger.addEventListener('click', openModal);
    zoomBtn.addEventListener('click', openModal);
    actionViewBtn.addEventListener('click', openModal);

    // Eventy zamknięcia
    closeBtn.addEventListener('click', closeModal);
    
    modal.addEventListener('click', function(e) {
        // Zamknięcie po kliknięciu w czarne tło (overlay)
        if (e.target === modal) {
            closeModal();
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">Punkt rosy w ogrzewaniu podłogowym – jak bezpiecznie chłodzić dom bez ryzyka kondensacji.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego z pompą ciepła.</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 09:42:12 +0000</pubDate>
				<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[budownictwo nowoczesne]]></category>
		<category><![CDATA[chłodzenie płaszczyznowe]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje hvac]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[niskie parametry zasilania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3414</guid>

					<description><![CDATA[<p>Wybór systemu grzewczego to jedna z najważniejszych decyzji podczas budowy nowoczesnego domu. Samo urządzenie to jednak tylko połowa sukcesu. Aby instalacja była naprawdę energooszczędna, niezbędny jest rzetelny i precyzyjnie wykonany projekt ogrzewania podłogowego z pompą ciepła, który połączy fizykę budowli z charakterystyką pracy inwertera. W tym artykule wchodzimy głęboko w techniczne aspekty synergii systemów niskotemperaturowych. Analizujemy wpływ temperatury zasilania na współczynnik COP, wyjaśniamy znaczenie bezwładności jastrychu dla żywotności sprężarki oraz podpowiadamy, jak uniknąć błędów hydraulicznych, które mogą drastycznie podnieść Twoje rachunki za prąd. To obowiązkowa lektura dla każdego świadomego inwestora.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-card: #1e293b;
    --rk-intro-primary: #06b6d4; /* Cyjan/Teal - idealny do tematów pomp ciepła */
    --rk-intro-primary-glow: rgba(6, 182, 212, 0.4);
    --rk-intro-success: #10b981;
    --rk-intro-danger: #f43f5e;
    --rk-intro-text: #e2e8f0;
    --rk-intro-muted: #94a3b8;
    --rk-intro-bg: #ffffff;
}

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

/* Sekcja Wstępu - Ciemny motyw dla kontrastu */
.rk-intro-hero {
    background: linear-gradient(145deg, var(--rk-intro-dark), var(--rk-intro-card));
    padding: 50px 45px;
    color: #ffffff;
    position: relative;
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.15);
    color: var(--rk-intro-primary);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(6, 182, 212, 0.3);
}

.rk-intro-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-intro-title span {
    color: var(--rk-intro-primary);
}

.rk-intro-text-block {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-intro-text);
}

.rk-intro-text-block p {
    margin: 0 0 15px 0;
}

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

.rk-intro-text-block a {
    color: var(--rk-intro-primary);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--rk-intro-primary);
    transition: all 0.3s;
}

.rk-intro-text-block a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

/* Interaktywny Dashboard */
.rk-intro-dashboard {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-intro-dash-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    flex-wrap: wrap;
    gap: 20px;
}

.rk-intro-dash-title h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-intro-dash-title p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-intro-muted);
}

/* Przełącznik (Toggle) */
.rk-toggle-wrapper {
    display: inline-flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 4px;
    position: relative;
}

.rk-toggle-btn {
    padding: 10px 20px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-muted);
    cursor: pointer;
    border-radius: 999px;
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}

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

.rk-toggle-pill {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    background: var(--rk-intro-danger);
    border-radius: 999px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Wskaźniki Grid */
.rk-gauge-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}

.rk-gauge-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 25px 20px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-gauge-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.rk-gauge-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-gauge-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    line-height: 1;
    margin-bottom: 10px;
    transition: color 0.4s;
}

/* SVG Animations */
.rk-svg-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 15px auto;
}

.svg-rotor {
    transform-origin: center;
}

/* State: Bad (No Project) */
.state-bad .svg-rotor {
    animation: spin-erratic 0.8s infinite;
    stroke: var(--rk-intro-danger);
}
.state-bad .val-cop { color: var(--rk-intro-danger); }
.state-bad .val-bill { color: var(--rk-intro-danger); }

/* State: Good (Project) */
.state-good .svg-rotor {
    animation: spin-smooth 3s linear infinite;
    stroke: var(--rk-intro-success);
}
.state-good .val-cop { color: var(--rk-intro-success); }
.state-good .val-bill { color: var(--rk-intro-success); }

@keyframes spin-smooth {
    100% { transform: rotate(360deg); }
}

@keyframes spin-erratic {
    0% { transform: rotate(0deg); }
    30% { transform: rotate(120deg); }
    50% { transform: rotate(100deg); }
    80% { transform: rotate(280deg); }
    100% { transform: rotate(360deg); }
}

/* Wskaźnik Łukowy (Gauge) SVG */
.gauge-bg {
    fill: none;
    stroke: #e2e8f0;
    stroke-width: 8;
    stroke-linecap: round;
}
.gauge-fill {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s;
}

@media (max-width: 768px) {
    .rk-intro-hero, .rk-intro-dashboard { padding: 35px 25px; }
    .rk-gauge-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-dash-header { flex-direction: column; align-items: flex-start; }
    .rk-toggle-wrapper { width: 100%; display: flex; }
    .rk-toggle-btn { flex: 1; text-align: center; padding: 12px 10px; font-size: 13px; }
    .rk-intro-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Wstęp – Synergia Pompy Ciepła i Ogrzewania Podłogowego",
    "description": "Kluczowy dokument techniczny definiujący synergię między źródłem ciepła a hydrauliką. Brak obliczeń to drastyczny spadek COP i taktowanie sprężarki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-wstep",
    "name": "Wpływ braku projektu na parametry pracy pompy ciepła",
    "description": "Dane wyjściowe pokazujące spadek współczynnika efektywności (COP) oraz wzrost kosztów operacyjnych przy braku optymalizacji hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik COP pompy ciepła",
      "taktowanie sprężarki",
      "zużycie prądu przez pompę ciepła",
      "optymalizacja hydrauliki instalacji",
      "projekt ogrzewania podłogowego z pompą ciepła"
    ],
    "measurementTechnique": "Porównanie deklarowanego wskaźnika COP pompy inwerterowej z rzeczywistym poborem prądu przy błędnie ułożonych pętlach i braku zładu wodnego (taktowanie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalizacja (Z Projektem): COP 4.5 - 5.0, płynna praca inwertera.",
        "Błąd wykonawczy (Bez Projektu): Spadek COP do 3.0, rachunki wyższe o 35%, taktowanie niszczące sprężarkę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-wstep",
    "name": "Symulator Taktowania i COP",
    "description": "Interaktywne narzędzie przełącznikowe (toggle) pokazujące wizualną różnicę w żywotności sprężarki i wartości COP w zależności od wykonania inżynieryjnego projektu hydraulicznego OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-hero">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Wprowadzenie Techniczne
        </div>
        <h2 class="rk-intro-title">Osiągnij <span>Synergię</span> Źródła Ciepła i Podłogi</h2>
        
        <div class="rk-intro-text-block">
            <p>
                <strong>Projekt ogrzewania podłogowego z pompą ciepła</strong> to kluczowy dokument techniczny, który definiuje synergię między niskotemperaturowym źródłem ciepła a płaszczyznowym układem oddawania energii.
            </p>
            <p>
                Prawidłowo wykonany projekt optymalizuje hydraulikę instalacji, ustalając rozstaw rur, <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">przepływy masowe oraz nastawy zaworów</a>, co pozwala na osiągnięcie maksymalnego współczynnika <strong>COP na poziomie 4,5–5,0</strong>. 
            </p>
            <p>
                Ignorowanie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń inżynieryjnych (OZC)</a> w <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">systemach z pompą ciepła</a> prowadzi do drastycznego wzrostu rachunków za prąd (nawet o <strong>35%</strong>) oraz przedwczesnego zużycia sprężarki wskutek tzw. <strong>taktowania</strong>.
            </p>
        </div>
    </div>

    <div class="rk-intro-dashboard state-bad" id="rkDashState">
        <div class="rk-intro-dash-header">
            <div class="rk-intro-dash-title">
                <h3>Symulacja Pracy Sprężarki</h3>
                <p>Zobacz, jak projekt wpływa na żywotność i efektywność systemu.</p>
            </div>
            
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-pill" id="rkTogglePill" style="width: 145px; transform: translateX(0);"></div>
                <button class="rk-toggle-btn active" data-state="bad" id="btnBad">Montaż &#8222;Na oko&#8221;</button>
                <button class="rk-toggle-btn" data-state="good" id="btnGood">Projekt OZC</button>
            </div>
        </div>

        <div class="rk-gauge-grid">
            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Praca Sprężarki</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#e2e8f0" stroke-width="6"/>
                    <path class="svg-rotor" d="M50 15 L50 45 M50 55 L50 85 M15 50 L45 50 M55 50 L85 50 M25 25 L43 43 M57 57 L75 75 M75 25 L57 43 M43 57 L25 75" stroke-width="6" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="10" fill="#cbd5e1" />
                </svg>
                <div class="rk-gauge-value" id="valStatus" style="font-size: 24px;">Taktowanie!</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Szybkie zużycie</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Efektywność (COP)</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 80">
                    <path class="gauge-bg" d="M 10 70 A 40 40 0 0 1 90 70" />
                    <path id="svgCopGauge" class="gauge-fill" d="M 10 70 A 40 40 0 0 1 90 70" stroke="var(--rk-intro-danger)" stroke-dasharray="35 125"/>
                </svg>
                <div class="rk-gauge-value val-cop" id="valCop">3.1</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Zasilanie 45°C</div>
            </div>

            <div class="rk-gauge-card">
                <div class="rk-gauge-title">Koszty Prądu</div>
                <svg class="rk-svg-icon" viewBox="0 0 100 100" style="margin-bottom: 5px;">
                    <rect x="25" y="20" width="50" height="60" rx="8" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                    <line x1="40" y1="40" x2="60" y2="40" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                    <line x1="40" y1="55" x2="60" y2="55" stroke="#cbd5e1" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-gauge-value val-bill" id="valBill">+35%</div>
                <div style="font-size: 13px; color: var(--rk-intro-muted);">Straty finansowe</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f43f5e; border: 2px solid #e11d48; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">🚫</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane ustrukturyzowane (JSON-LD) stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Skrypt został zablokowany.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Dashboardu / Przełącznika
    const dashContainer = document.getElementById('rkDashState');
    const pill = document.getElementById('rkTogglePill');
    const btnBad = document.getElementById('btnBad');
    const btnGood = document.getElementById('btnGood');
    
    // Zmienne DOM wartości
    const valStatus = document.getElementById('valStatus');
    const valCop = document.getElementById('valCop');
    const valBill = document.getElementById('valBill');
    const svgCopGauge = document.getElementById('svgCopGauge');

    // Funkcja zmieniająca stan
    function setState(state) {
        if (state === 'bad') {
            // Stylizacja przycisków
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-danger)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-bad';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Taktowanie!';
            valCop.innerText = '3.0';
            valCop.nextElementSibling.innerText = 'Zasilanie 40-45°C';
            valBill.innerText = '+35%';
            valBill.nextElementSibling.innerText = 'Straty finansowe';
            
            // Animacja Gauge COP (Mniej zielonego, mały obwód)
            // Obwód dla r=40 (półokrąg) to ok 125px
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-danger)');
            svgCopGauge.style.strokeDasharray = '35 125'; 

        } else {
            // Stylizacja przycisków
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-intro-success)';
            
            // Stylizacja Kontenera
            dashContainer.className = 'rk-intro-dashboard state-good';
            
            // Aktualizacja Wartości
            valStatus.innerText = 'Płynna praca';
            valCop.innerText = '4.8';
            valCop.nextElementSibling.innerText = 'Zasilanie 30°C';
            valBill.innerText = 'Optymalne';
            valBill.nextElementSibling.innerText = 'Niskie rachunki';
            
            // Animacja Gauge COP (Pełny łuk)
            svgCopGauge.setAttribute('stroke', 'var(--rk-intro-success)');
            svgCopGauge.style.strokeDasharray = '120 125'; 
        }
    }

    // Event Listenery
    btnBad.addEventListener('click', () => setState('bad'));
    btnGood.addEventListener('click', () => setState('good'));

    // Fix rozmiaru pigułki na start
    setTimeout(() => {
        pill.style.width = btnBad.offsetWidth + 'px';
    }, 100);
    
    // Inicjalizacja domyślnego widoku (Ostrzegawczy)
    setState('bad');
});
</script>



<style>
:root {
    --rk-temp-dark: #111827;
    --rk-temp-card: #1f2937;
    --rk-temp-brand: #3b82f6;
    --rk-temp-optimal: #10b981; /* Zielony (Optymalnie) */
    --rk-temp-warning: #f59e0b; /* Pomarańczowy (Ostrzeżenie) */
    --rk-temp-danger: #ef4444; /* Czerwony (Błąd) */
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
    --rk-temp-bg: #f8fafc;
    --rk-temp-border: #cbd5e1;
}

.rk-temp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--rk-temp-border);
    overflow: hidden;
}

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

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-temp-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

.rk-temp-title span {
    color: var(--rk-temp-brand);
}

/* Kontener Interaktywny */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
}

.rk-temp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Panel Kontrolny */
.rk-temp-control-panel {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-temp-slider-wrap {
    margin-bottom: 25px;
}

.rk-temp-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-temp-dark);
}

.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(to right, var(--rk-temp-optimal) 0%, var(--rk-temp-warning) 50%, var(--rk-temp-danger) 100%);
    outline: none;
    cursor: pointer;
}

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

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

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

.rk-reading-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    background: var(--rk-temp-bg);
    border-radius: 12px;
    border: 1px solid var(--rk-temp-border);
}

.rk-reading-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-temp-muted);
    text-transform: uppercase;
}

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

/* Wizualizacja SVG (Termowizja podłogi) */
.rk-temp-visual {
    position: relative;
    width: 100%;
    height: 280px;
    background: var(--rk-temp-dark);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 4px solid #334155;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}

.rk-visual-title {
    position: absolute;
    top: 15px;
    left: 20px;
    color: rgba(255,255,255,0.6);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    z-index: 2;
}

.rk-svg-floor {
    width: 80%;
    height: auto;
    z-index: 1;
}

.svg-pipe {
    fill: none;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.4s;
}

.svg-heat-glow {
    transition: stop-color 0.4s, stop-opacity 0.4s;
}

/* Tekst i Wyjaśnienie */
.rk-temp-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

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

.rk-temp-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-temp-text);
    margin-bottom: 20px;
}

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

.rk-temp-content a {
    color: var(--rk-temp-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: border-color 0.3s;
}

.rk-temp-content a:hover {
    border-color: var(--rk-temp-brand);
}

.rk-alert-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-temp-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-alert-box p {
    margin: 0;
    color: #991b1b;
    font-size: 15px;
}

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-interactive, .rk-temp-content { padding: 30px 25px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-temp-title { font-size: 22px; }
    .rk-reading-value { font-size: 18px; }
    .rk-temp-visual { height: 220px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna temperatura zasilania w projekcie ogrzewania podłogowego z pompą ciepła",
    "description": "Optymalna temperatura zasilania (Tz) dla pompy ciepła to 28-32°C zgodnie z PN-EN 1264. Poznaj skutki finansowe błędnego rozstawu rur wymuszającego pracę na 40°C.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-temperatura",
    "name": "Korelacja: Rozstaw rur a temperatura zasilania i koszty eksploatacji",
    "description": "Zestawienie wykazujące, jak oszczędności na rurach (rozstaw 15 cm zamiast 10 cm) wymuszają wyższą temperaturę zasilania (Tz), obniżając sprawność pompy ciepła o 2,5-3% na każdy stopień.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura zasilania podłogówki",
      "norma PN-EN 1264 parametry",
      "rozstaw rur 10 czy 15 cm",
      "spadek COP pompy ciepła",
      "straty finansowe ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Symulacja strat finansowych w okresie 20 lat w oparciu o spadek współczynnika COP wywołany koniecznością podniesienia krzywej grzewczej dla zrekompensowania małej powierzchni grzewczej (rzadki rozstaw rur).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt zgodny z PN-EN 1264: Rozstaw 10 cm, Tz = 30°C, maksymalna sprawność sprężarki.",
        "Instalacja 'na oko': Rozstaw 15 cm, Tz = 40°C+, generuje od 25 000 do 40 000 PLN strat po 20 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-temperatura",
    "name": "Kalkulator Strat Termo-Ekonomicznych",
    "description": "Interaktywny suwak pozwalający użytkownikowi manipulować rozstawem rur (od 10 cm do 15 cm) i obserwować bezpośredni wzrost temperatury zasilania oraz skumulowaną stratę finansową w ciągu 20 lat pracy pompy ciepła.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-temp-app">
    
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            Termodynamika Układu
        </div>
        <h2 class="rk-temp-title">Maksymalna temperatura zasilania a <span>Koszty Ukryte</span></h2>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-control-panel">
                <div class="rk-temp-slider-wrap">
                    <div class="rk-temp-slider-label">
                        <span>Rozstaw Projektowy (10 cm)</span>
                        <span style="color: var(--rk-temp-danger);">Wykonawstwo &#8222;Na oko&#8221; (15 cm)</span>
                    </div>
                    <input type="range" min="0" max="100" value="0" class="rk-slider" id="rkTzSlider">
                </div>

                <div class="rk-temp-readings">
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Gęstość Rur (OZC)</span>
                        <span class="rk-reading-value" id="valSpacing">10 cm</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Wymagane Zasilanie (Tz)</span>
                        <span class="rk-reading-value" id="valTz" style="color: var(--rk-temp-optimal);">30.0 °C</span>
                    </div>
                    <div class="rk-reading-box">
                        <span class="rk-reading-title">Strata po 20 latach</span>
                        <span class="rk-reading-value" id="valLoss" style="color: var(--rk-temp-optimal);">0 PLN</span>
                    </div>
                </div>
            </div>

            <div class="rk-temp-visual">
                <div class="rk-visual-title">Kamera Termowizyjna (Symulacja)</div>
                <svg class="rk-svg-floor" viewBox="0 0 200 120" preserveAspectRatio="xMidYMid meet">
                    <defs>
                        <linearGradient id="heatGradient" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#ef4444" stop-opacity="0.8" id="glowTop"/>
                            <stop offset="100%" stop-color="#ef4444" stop-opacity="0.1" id="glowBottom"/>
                        </linearGradient>
                    </defs>
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="url(#heatGradient)" />
                    <rect x="10" y="20" width="180" height="90" rx="4" fill="none" stroke="#475569" stroke-width="2" />
                    
                    <path id="svgPipeHeat" class="svg-pipe" stroke="#ef4444" d="M 30 110 L 30 40 A 10 10 0 0 1 50 40 L 50 110 A 10 10 0 0 0 70 110 L 70 40 A 10 10 0 0 1 90 40 L 90 110 A 10 10 0 0 0 110 110 L 110 40 A 10 10 0 0 1 130 40 L 130 110 A 10 10 0 0 0 150 110 L 150 40 A 10 10 0 0 1 170 40 L 170 110" />
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-temp-content">
        <h3>Jaka jest maksymalna temperatura zasilania w projekcie?</h3>
        <p>
            Maksymalna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania podłogówki</a> w nowoczesnym projekcie z pompą ciepła nie powinna przekraczać <strong>35°C</strong> przy obliczeniowej temperaturze zewnętrznej (np. -20°C dla III strefy klimatycznej w Polsce). Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, optymalnym parametrem dla domów energooszczędnych jest zakres <strong>28–32°C</strong>, co gwarantuje najwyższą sprawność kompresora.
        </p>
        
        <p>
            Podniesienie temperatury zasilania o każde 1°C skutkuje drastycznym spadkiem sprawności pompy ciepła o około <strong>2,5–3%</strong>. Jeśli instalator „na oko” przyjmie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> co 15 cm zamiast obliczeniowych 10 cm, wymusi to na pompie pracę na parametrze 40°C lub wyższym, aby fizycznie pokryć straty ciepła budynku.
        </p>

        <div class="rk-alert-box">
            <p><strong>Konsekwencje Inwestycyjne:</strong> W <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">skali 20 lat eksploatacji</a>, brak precyzyjnego projektu generuje straty rzędu <strong>25 000 – 40 000 PLN</strong> wynikające wyłącznie z wyższych rachunków za energię. Fizyki nie da się oszukać rzadszym ułożeniem rury.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-temp-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz dane ustrukturyzowane (JSON-LD) należą do serwisu <strong>Projekt-Ogrzewania.pl</strong>. Wykryto nieautoryzowane użycie skryptu.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka i Obliczeń
    const slider = document.getElementById('rkTzSlider');
    const valSpacing = document.getElementById('valSpacing');
    const valTz = document.getElementById('valTz');
    const valLoss = document.getElementById('valLoss');
    
    const svgPipe = document.getElementById('svgPipeHeat');
    const glowTop = document.getElementById('glowTop');
    const glowBottom = document.getElementById('glowBottom');

    // Funkcja aktualizująca interfejs
    function updateCalc(val) {
        // Obliczenia interpolowane (0 -> 100)
        // Spacing: 10cm do 15cm
        const spacing = 10 + (val / 20);
        // Tz: 30°C do 42°C
        const tz = 30 + (val * 0.12);
        // Strata finansowa: od 0 do 35 000 PLN (zaokrąglone do setek)
        const loss = Math.round((val / 100) * 35000 / 100) * 100;

        // Aktualizacja DOM tekst
        valSpacing.innerText = spacing.toFixed(1) + ' cm';
        valTz.innerText = tz.toFixed(1) + ' °C';
        
        if (loss > 0) {
            valLoss.innerText = '-' + loss.toLocaleString('pl-PL') + ' PLN';
        } else {
            valLoss.innerText = '0 PLN';
        }

        // ==========================================
        // Logika Kolorów dla Tekstu (Aspekt Finansowy)
        // ==========================================
        let colorText = '';
        
        if (val <= 33) {
            colorText = 'var(--rk-temp-optimal)'; // Zielony
        } else if (val <= 66) {
            colorText = 'var(--rk-temp-warning)'; // Pomarańczowy
        } else {
            colorText = 'var(--rk-temp-danger)'; // Czerwony
        }

        // Aplikacja kolorów dla wartości tekstowych
        valTz.style.color = colorText;
        valLoss.style.color = colorText;

        // ==========================================
        // Logika Kolorów Kamery (Efektywność cieplna)
        // ==========================================
        // Czerwień blednąca wraz ze spadkiem efektywności (wzrostem rozstawu)
        // val rośnie od 0 do 100, opacity spada od 1.0 do ok. 0.15
        const heatOpacity = 1 - (val / 115); 
        const pipeColor = `rgba(239, 68, 68, ${heatOpacity})`; // Używa czerwieni #ef4444
        
        // Aplikacja blaknącej czerwieni do kamery termowizyjnej
        svgPipe.setAttribute('stroke', pipeColor);
        glowTop.setAttribute('stop-color', '#ef4444');
        glowTop.setAttribute('stop-opacity', heatOpacity * 0.8); // Zmiana intensywności poświaty
        glowBottom.setAttribute('stop-color', '#ef4444');
        glowBottom.setAttribute('stop-opacity', heatOpacity * 0.1);
        
        // Zmiana gęstości rur na obrazku - ciągła linia dla wszystkich stanów
        if (val > 66) {
            svgPipe.style.strokeDasharray = 'none';
        } else if (val > 33) {
            svgPipe.style.strokeDasharray = 'none';
        } else {
            svgPipe.style.strokeDasharray = 'none';
        }
    }

    // Event Listener dla suwaka
    slider.addEventListener('input', function(e) {
        updateCalc(e.target.value);
    });

    // Inicjalizacja (Stan startowy)
    updateCalc(0);
});
</script>



<style>
:root {
    --rk-ozc-dark: #0f172a;
    --rk-ozc-card: #1e293b;
    --rk-ozc-brand: #f59e0b;
    --rk-ozc-brand-light: #fef3c7;
    --rk-ozc-blue: #3b82f6;
    --rk-ozc-text: #334155;
    --rk-ozc-muted: #64748b;
    --rk-ozc-bg: #ffffff;
    --rk-ozc-border: #e2e8f0;
}

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

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

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

.rk-ozc-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
    color: #ffffff;
}

.rk-ozc-title span {
    color: var(--rk-ozc-brand);
}

/* Interaktywny Symulator OZC */
.rk-ozc-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

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

.rk-ozc-tab {
    flex: 1;
    padding: 16px 20px;
    background: transparent;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-ozc-tab:hover {
    color: var(--rk-ozc-dark);
}

.rk-ozc-tab.active {
    background: #ffffff;
    color: var(--rk-ozc-brand);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Grid Wyników i Wizualizacji */
.rk-ozc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    align-items: stretch;
}

.rk-ozc-visual {
    background: var(--rk-ozc-dark);
    border-radius: 20px;
    padding: 25px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    min-height: 280px;
}

.rk-ozc-svg-room {
    width: 100%;
    height: 100%;
    max-height: 220px;
}

/* Elementy SVG */
.ozc-pipe {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, opacity 0.5s;
}

.ozc-window {
    fill: rgba(59, 130, 246, 0.2);
    stroke: var(--rk-ozc-blue);
    stroke-width: 4;
    transition: opacity 0.5s;
}

.ozc-bathtub {
    fill: none;
    stroke: rgba(255,255,255,0.4);
    stroke-width: 3;
    stroke-dasharray: 6 4;
    transition: opacity 0.5s;
}

/* Karta z danymi (OZC) */
.rk-ozc-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-ozc-card {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.3s;
}

.rk-ozc-card.highlight {
    border-left: 6px solid var(--rk-ozc-brand);
}

.rk-ozc-card-title {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-ozc-muted);
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.rk-ozc-card-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-ozc-dark);
    line-height: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
    transition: color 0.3s;
}

.rk-ozc-card-unit {
    font-size: 16px;
    color: var(--rk-ozc-muted);
}

/* Treść Merytoryczna */
.rk-ozc-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-ozc-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-ozc-text);
    margin: 0 0 20px 0;
}

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

.rk-ozc-content a {
    color: var(--rk-ozc-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
}

.rk-ozc-content a:hover {
    color: #d97706;
    border-bottom-style: solid;
}

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

.rk-ozc-h3::before {
    content: '';
    display: block;
    width: 24px;
    height: 4px;
    background: var(--rk-ozc-brand);
    border-radius: 2px;
}

/* Mocne CTA z animacją SVG */
.rk-ozc-cta-box {
    padding: 40px 50px;
    background: var(--rk-ozc-brand-light);
    text-align: center;
    border-top: 1px solid rgba(245, 158, 11, 0.2);
}

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

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

@keyframes ctaPulse {
    0% { stroke-opacity: 1; transform: scale(1); }
    50% { stroke-opacity: 0.4; transform: scale(1.1); }
    100% { stroke-opacity: 1; transform: scale(1); }
}

@keyframes ctaMove {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(4px); }
}

.cta-anim-circle {
    animation: ctaPulse 2s infinite ease-in-out;
    transform-origin: center;
}

.cta-anim-arrow {
    animation: ctaMove 2s infinite ease-in-out;
}

@media (max-width: 768px) {
    .rk-ozc-header, .rk-ozc-interactive, .rk-ozc-content, .rk-ozc-cta-box { padding: 30px 25px; }
    .rk-ozc-tabs { flex-direction: column; }
    .rk-ozc-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-ozc-title { font-size: 24px; }
    .rk-ozc-card-value { font-size: 28px; }
    .rk-ozc-cta-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego obliczenie OZC to fundament projektu instalacji podłogowej?",
    "description": "OZC (Projektowe Obciążenie Cieplne) to jedyna precyzyjna metoda doboru rozstawu rur w podłogówce i mocy pompy ciepła wg normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-ozc",
    "name": "Porównanie Zapotrzebowania Cieplnego (OZC) dla typowych pomieszczeń",
    "description": "Analiza różnic w zapotrzebowaniu na moc grzewczą (W/m²) pomiędzy strefami o wysokich zyskach słonecznych a pomieszczeniami o podwyższonej temperaturze wymaganej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC podłogówka",
      "zapotrzebowanie na moc cieplną",
      "rozstaw rur w łazience",
      "strefa brzegowa podłogówka",
      "projekt ogrzewania podłogowego PN-EN 12831"
    ],
    "measurementTechnique": "Analiza porównawcza zapotrzebowania cieplnego (W/m²) dla różnych typów pomieszczeń z uwzględnieniem strat przez przegrody i zysków słonecznych w celu zrównoważenia hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon z dużymi przeszkleniami: Zapotrzebowanie ok. 30 W/m², temperatura 20°C, rozstaw rur 10-12.5 cm (zagęszczenie pod oknami do 5-7.5 cm).",
        "Łazienka: Zapotrzebowanie ok. 80 W/m², temperatura 24°C, rozstaw rur 10 cm, powierzchnia grzejna ograniczona armaturą."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-ozc",
    "name": "Symulator Zapotrzebowania Cieplnego (OZC) dla Pomieszczeń",
    "description": "Interaktywny panel przełączający schematy hydrauliczne (rozstaw rur) pomiędzy salonem a łazienką w oparciu o wyniki Projektowego Obciążenia Cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ozc-container" id="rk-ozc-app">
    
    <div class="rk-ozc-header">
        <div class="rk-ozc-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Fundament Hydrauliki
        </div>
        <h2 class="rk-ozc-title">Dlaczego obliczenie <span>OZC</span> to absolutna podstawa projektu?</h2>
    </div>

    <div class="rk-ozc-interactive">
        
        <div class="rk-ozc-tabs">
            <button class="rk-ozc-tab active" data-room="salon">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Salon z oknami HS (20°C)
            </button>
            <button class="rk-ozc-tab" data-room="lazienka">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 13v-2a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2"></path><path d="M3 13v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5"></path><path d="M6 20v2"></path><path d="M18 20v2"></path><path d="M8 9V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4"></path></svg>
                Łazienka (24°C)
            </button>
        </div>

        <div class="rk-ozc-grid">
            <div class="rk-ozc-visual">
                <svg class="rk-ozc-svg-room" viewBox="0 0 300 200" preserveAspectRatio="xMidYMid meet">
                    <rect x="10" y="10" width="280" height="180" fill="none" stroke="#475569" stroke-width="4" rx="8" />
                    
                    <rect id="svgWindow" class="ozc-window" x="40" y="5" width="220" height="10" rx="2" />
                    
                    <rect id="svgBathtub" class="ozc-bathtub" x="180" y="15" width="100" height="70" rx="10" style="opacity: 0;" />
                    
                    <path id="pipeSalon" class="ozc-pipe" stroke="#f59e0b" stroke-width="6" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 20 A 10 10 0 0 1 200 20 L 200 180 A 10 10 0 0 0 220 180 L 220 20 A 10 10 0 0 1 240 20 L 240 180 A 10 10 0 0 0 260 180 L 260 20 A 10 10 0 0 1 280 20 L 280 180" />
                    
                    <path id="pipeLazienka" class="ozc-pipe" stroke="#ef4444" stroke-width="6" style="opacity: 0;" d="M 20 180 L 20 20 A 10 10 0 0 1 40 20 L 40 180 A 10 10 0 0 0 60 180 L 60 20 A 10 10 0 0 1 80 20 L 80 180 A 10 10 0 0 0 100 180 L 100 20 A 10 10 0 0 1 120 20 L 120 180 A 10 10 0 0 0 140 180 L 140 20 A 10 10 0 0 1 160 20 L 160 180 A 10 10 0 0 0 180 180 L 180 100 A 10 10 0 0 1 200 100 L 200 180 A 10 10 0 0 0 220 180 L 220 100 A 10 10 0 0 1 240 100 L 240 180 A 10 10 0 0 0 260 180 L 260 100 A 10 10 0 0 1 280 100 L 280 180" />
                </svg>
            </div>

            <div class="rk-ozc-data">
                <div class="rk-ozc-card highlight">
                    <div class="rk-ozc-card-title">Zapotrzebowanie na moc</div>
                    <div class="rk-ozc-card-value" id="valPower">
                        30 <span class="rk-ozc-card-unit">W/m²</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Wymagana Temperatura</div>
                    <div class="rk-ozc-card-value" id="valTemp">
                        20 <span class="rk-ozc-card-unit">°C</span>
                    </div>
                </div>
                <div class="rk-ozc-card">
                    <div class="rk-ozc-card-title">Rozstaw Rur PEX/PERT</div>
                    <div class="rk-ozc-card-value" id="valSpacing" style="font-size: 22px;">
                        10–12.5 cm (Brzeg: 5 cm)
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-ozc-content">
        <p>
            <strong>OZC (Projektowe Obciążenie Cieplne)</strong> to jedyna metoda precyzyjnego określenia zapotrzebowania na moc grzewczą każdego pomieszczenia z osobna, wyrażona w W/m². Zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>, projektant musi uwzględnić przenikanie ciepła przez przegrody, mostki termiczne oraz straty na wentylację, aby dobrać odpowiednią gęstość rur w każdej strefie z uwzględnieniem <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>.
        </p>
        
        <p>
            Bez OZC projekt ogrzewania podłogowego jest jedynie ryzykownym zgadywaniem. W łazience, gdzie oczekujemy komfortowych <strong>24°C</strong>, a powierzchnia grzejna jest drastycznie ograniczona przez wannę czy duży brodzik, zapotrzebowanie może wynosić nawet <strong>80 W/m²</strong>. Dla kontrastu, w nowoczesnym salonie z dużymi przeszkleniami generującymi zyski słoneczne, to zapotrzebowanie może wynosić zaledwie <strong>30 W/m²</strong>. Projektant musi zrównoważyć te różnice hydraulicznie, dobierając odpowiednie długości pętli i przepływy na rotametrach.
        </p>

        <h3 class="rk-ozc-h3">Jak to wpływa na projekt wykonawczy?</h3>
        <p>
            Wynik OZC bezpośrednio determinuje wybór mocy pompy ciepła (np. zakup urządzenia <strong>5 kW</strong> zamiast przewymiarowanego <strong>7 kW</strong>) oraz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">gęstość ułożenia rur</a>. Przykładowo, w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach podokiennych (strefy brzegowe)</a> projektant planuje gęsty rozstaw co <strong>5–7,5 cm</strong>, aby zniwelować chłód napływający od szyb, podczas gdy w centrum pokoju wystarczy standardowe <strong>10–12,5 cm</strong>.
        </p>
    </div>

    <div class="rk-ozc-cta-box">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-ozc-cta-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="26" height="26" 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" class="cta-anim-circle"></circle>
                <polyline points="12 16 16 12 12 8" class="cta-anim-arrow"></polyline>
                <line x1="8" y1="12" x2="16" y2="12" class="cta-anim-arrow"></line>
            </svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-ozc-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #b91c1c; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 14px; color: #94a3b8; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten komponent oraz załączone dane ustrukturyzowane JSON-LD są własnością serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie na nieautoryzowanej domenie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Zakładek (OZC Symulator)
    const tabs = document.querySelectorAll('.rk-ozc-tab');
    const valPower = document.getElementById('valPower');
    const valTemp = document.getElementById('valTemp');
    const valSpacing = document.getElementById('valSpacing');
    
    // Elementy SVG
    const svgWindow = document.getElementById('svgWindow');
    const svgBathtub = document.getElementById('svgBathtub');
    const pipeSalon = document.getElementById('pipeSalon');
    const pipeLazienka = document.getElementById('pipeLazienka');

    function switchRoom(roomType) {
        // Reset aktywnych zakładek
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-ozc-tab[data-room="${roomType}"]`).classList.add('active');

        if (roomType === 'salon') {
            // Aktualizacja Danych
            valPower.innerHTML = '30 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '20 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10–12.5 cm (Brzeg: 5 cm)';
            
            valPower.style.color = '#f59e0b'; // Kolor umiarkowany
            
            // Animacja SVG
            svgWindow.style.opacity = '1';
            svgBathtub.style.opacity = '0';
            pipeSalon.style.opacity = '1';
            pipeLazienka.style.opacity = '0';
            
        } else if (roomType === 'lazienka') {
            // Aktualizacja Danych
            valPower.innerHTML = '80 <span class="rk-ozc-card-unit">W/m²</span>';
            valTemp.innerHTML = '24 <span class="rk-ozc-card-unit">°C</span>';
            valSpacing.innerText = '10 cm (Mniej powierzchni)';
            
            valPower.style.color = '#ef4444'; // Kolor wysoki/czerwony
            
            // Animacja SVG
            svgWindow.style.opacity = '0';
            svgBathtub.style.opacity = '1';
            pipeSalon.style.opacity = '0';
            pipeLazienka.style.opacity = '1';
        }
    }

    // Event Listenery
    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchRoom(this.getAttribute('data-room'));
        });
    });
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-brand: #0284c7; /* Intensywny niebieski - hydraulika */
    --rk-flow-accent: #f59e0b; /* Pomarańczowy - wskaźnik przepływu */
    --rk-flow-light: #f0f9ff;
    --rk-flow-success: #10b981;
    --rk-flow-text: #334155;
    --rk-flow-muted: #64748b;
    --rk-flow-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-flow-header {
    background: var(--rk-flow-dark);
    padding: 45px 50px 35px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-flow-brand);
}

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

.rk-flow-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-flow-title span { color: var(--rk-flow-brand); }

/* Interaktywny Kalkulator Przepływu */
.rk-flow-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-flow-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Panel Kontrolny */
.rk-flow-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-flow-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

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

.rk-label-wrap {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-flow-dark);
}

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

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

/* Wizualizacja Rotametru */
.rk-flow-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-flow-dark);
    border-radius: 20px;
    padding: 30px;
    min-height: 350px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}

.rotameter-svg {
    width: 120px;
    height: auto;
}

.rotameter-float {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-flow-result-text {
    margin-top: 25px;
    text-align: center;
    color: #ffffff;
}

.rk-flow-val-large {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-flow-brand);
}

/* Sekcja merytoryczna */
.rk-flow-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-flow-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-flow-text);
    margin-bottom: 20px;
}

.rk-flow-formula {
    background: var(--rk-flow-light);
    padding: 25px;
    border-radius: 16px;
    border-left: 5px solid var(--rk-flow-brand);
    margin: 30px 0;
    font-family: 'Courier New', monospace;
}

.rk-flow-step {
    margin-bottom: 10px;
    display: flex;
    gap: 15px;
}

.rk-step-num {
    background: var(--rk-flow-brand);
    color: #ffffff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-flow-cta {
    padding: 40px 50px;
    background: #f8fafc;
    text-align: center;
    border-top: 1px solid var(--rk-flow-border);
}

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

.rk-btn-flow:hover {
    transform: translateY(-3px);
    background: #0369a1;
}

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-interactive, .rk-flow-content { padding: 30px 25px; }
    .rk-flow-grid { grid-template-columns: 1fr; }
    .rk-flow-title { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik inżynieryjny dotyczący obliczania strumienia wody (qm) w instalacji niskotemperaturowej. Poznaj wzór i algorytm nastaw rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Tabela korelacji mocy grzewczej i przepływu masowego",
    "description": "Zestawienie obliczonych wartości przepływu (l/h i l/min) dla typowych obciążeń cieplnych pętli ogrzewania podłogowego przy ΔT=5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy podłogówka wzór",
      "ustawienie rotametru l/min",
      "delta T pompa ciepła 5K",
      "obliczanie hydrauliki ogrzewania",
      "projektowanie pętli grzewczych"
    ],
    "measurementTechnique": "Algorytm obliczeniowy oparty na stałej fizycznej ciepła właściwego wody (1.163 Wh/kgK) i bilansie mocy cieplnej pętli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moc 1000W przy ΔT=5K: Przepływ 172 l/h (2.8 l/min)",
        "Moc 1500W przy ΔT=5K: Przepływ 258 l/h (4.3 l/min)",
        "Moc 2000W przy ΔT=5K: Przepływ 344 l/h (5.7 l/min) - Przekroczenie zakresu standardowego rotametru!"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Kalkulator Nastaw Rotametrów Podłogówki",
    "description": "Interaktywny symulator rotametru przeliczający moc cieplną pętli na wymaganą nastawę w litrach na minutę.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-flow-app">
    
    <div class="rk-flow-header">
        <div class="rk-flow-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
            Hydraulika Projektowa
        </div>
        <h2 class="rk-flow-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach?</h2>
    </div>

    <div class="rk-flow-interactive">
        <div class="rk-flow-grid">
            
            <div class="rk-flow-controls">
                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Moc cieplna pętli (Q)</span>
                        <span id="valPowerLabel" style="color: var(--rk-flow-brand);">1400 W</span>
                    </div>
                    <input type="range" min="200" max="2500" step="50" value="1400" class="rk-flow-slider" id="inputPower">
                </div>

                <div class="rk-control-group">
                    <div class="rk-label-wrap">
                        <span>Delta T (&Delta;T)</span>
                        <span id="valDeltaLabel" style="color: var(--rk-flow-brand);">5 K</span>
                    </div>
                    <input type="range" min="3" max="10" step="1" value="5" class="rk-flow-slider" id="inputDelta">
                </div>

                <div style="background: var(--rk-flow-light); padding: 15px; border-radius: 12px; font-size: 13px; color: var(--rk-flow-muted);">
                    <strong>Wskazówka:</strong> Standardowy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr</a> ma skalę do 5 l/min. Jeśli wynik przekracza tę wartość, pętla musi zostać podzielona na dwie.
                </div>
            </div>

            <div class="rk-flow-visual">
                <svg class="rotameter-svg" viewBox="0 0 100 300">
                    <rect x="30" y="20" width="40" height="240" rx="5" fill="rgba(255,255,255,0.1)" stroke="#ffffff" stroke-width="2"/>
                    <line x1="30" y1="210" x2="45" y2="210" stroke="#ffffff" stroke-width="1"/> <text x="15" y="215" fill="#ffffff" font-size="10">1</text>
                    <line x1="30" y1="170" x2="45" y2="170" stroke="#ffffff" stroke-width="1"/> <text x="15" y="175" fill="#ffffff" font-size="10">2</text>
                    <line x1="30" y1="130" x2="45" y2="130" stroke="#ffffff" stroke-width="1"/> <text x="15" y="135" fill="#ffffff" font-size="10">3</text>
                    <line x1="30" y1="90" x2="45" y2="90" stroke="#ffffff" stroke-width="1"/> <text x="15" y="95" fill="#ffffff" font-size="10">4</text>
                    <line x1="30" y1="50" x2="45" y2="50" stroke="#ffffff" stroke-width="1"/> <text x="15" y="55" fill="#ffffff" font-size="10">5</text>
                    
                    <rect id="svgWater" x="32" y="258" width="36" height="0" fill="var(--rk-flow-brand)" fill-opacity="0.3"/>
                    
                    <g id="svgFloat" class="rotameter-float" transform="translate(0, 210)">
                        <rect x="35" y="0" width="30" height="15" rx="2" fill="var(--rk-flow-accent)"/>
                        <circle cx="50" cy="7.5" r="3" fill="#ffffff"/>
                    </g>
                </svg>
                <div class="rk-flow-result-text">
                    <div style="font-size: 14px; font-weight: 800; text-transform: uppercase; margin-bottom: 5px;">Wymagany Przepływ:</div>
                    <div class="rk-flow-val-large" id="valResultFlow">4.0 l/min</div>
                    <div id="valResultLh" style="font-size: 16px; opacity: 0.8;">240.7 l/h</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-flow-content">
        <p>
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) wyliczoną w <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC</a> oraz założonej różnicy temperatur (&Delta;T). Dla systemów z rewersyjną <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompą ciepła</a> delta ta wynosi zazwyczaj <strong>5 K</strong>. 
        </p>
        
        <p>
            Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do masy betonu bez nagłego wzrostu temperatury powrotu, co skutkowałoby podnoszeniem ciśnienia w układzie chłodniczym i wyłączeniem sprężarki.
        </p>

        <div class="rk-flow-formula">
            <strong style="font-family: 'Inter', sans-serif;">Wzór Inżynierski:</strong><br>
            <span style="font-size: 18px; line-height: 2;">q<sub>m</sub> = Q / (c<sub>w</sub> &middot; &Delta;T)</span>
        </div>

        <div style="display: flex; flex-direction: column; gap: 10px;">
            <div class="rk-flow-step">
                <div class="rk-step-num">1</div>
                <div>Wyznacz moc pętli Q (np. <strong>1400 W</strong> dla salonu 40 m<sup>2</sup>).</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">2</div>
                <div>Przyjmij stałą c<sub>w</sub> = <strong>1.163 Wh/(kg&middot;K)</strong> dla wody.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">3</div>
                <div>Oblicz przepływ godzinowy: q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</div>
            </div>
            <div class="rk-flow-step">
                <div class="rk-step-num">4</div>
                <div>Przelicz na minuty: 240.7 / 60 &approx; <strong>4.0 l/min</strong> – to wartość, którą ustawisz na rotametrze.</div>
            </div>
        </div>

        <p style="margin-top: 25px;">
            Jeśli projektant zaplanuje zbyt długą pętlę (np. powyżej <strong>100-120 m</strong>), opory hydrauliczne wzrosną do poziomu, przy którym nawet nowoczesna <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie trwałym niedogrzaniem strefy.
        </p>
    </div>

    <div class="rk-flow-cta">
        <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-btn-flow">
            URUCHOM KOMPLEKSOWY KALKULATOR PRZEPŁYWÓW
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('rk-flow-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Kalkulatora
    const inPower = document.getElementById('inputPower');
    const inDelta = document.getElementById('inputDelta');
    const labelPower = document.getElementById('valPowerLabel');
    const labelDelta = document.getElementById('valDeltaLabel');
    const resFlowMin = document.getElementById('valResultFlow');
    const resFlowH = document.getElementById('valResultLh');
    const svgFloat = document.getElementById('svgFloat');
    const svgWater = document.getElementById('svgWater');

    function updateFlow() {
        const Q = parseFloat(inPower.value);
        const DT = parseFloat(inDelta.value);
        const cw = 1.163;

        // Obliczenia
        const qmH = Q / (cw * DT);
        const qmMin = qmH / 60;

        // Aktualizacja etykiet
        labelPower.innerText = Q + ' W';
        labelDelta.innerText = DT + ' K';
        resFlowMin.innerText = qmMin.toFixed(1) + ' l/min';
        resFlowH.innerText = qmH.toFixed(1) + ' l/h';

        // Kolorowanie przy przekroczeniu skali
        if (qmMin > 5) {
            resFlowMin.style.color = '#ef4444';
        } else {
            resFlowMin.style.color = 'var(--rk-flow-brand)';
        }

        // Animacja Rotametru
        // 0 l/min = y: 250 (dół)
        // 5 l/min = y: 50 (góra)
        // Zakres 200px na 5 jednostek = 40px na jednostkę
        let floatY = 250 - (qmMin * 40);
        if (floatY < 30) floatY = 30; // Limit górny
        if (floatY > 250) floatY = 250; // Limit dolny

        svgFloat.setAttribute('transform', `translate(0, ${floatY})`);
        
        // Dynamiczny poziom "wody" w rurce
        const waterHeight = 250 - floatY;
        svgWater.setAttribute('y', floatY + 10);
        svgWater.setAttribute('height', waterHeight);
    }

    inPower.addEventListener('input', updateFlow);
    inDelta.addEventListener('input', updateFlow);

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



<style>
:root {
    --rk-mass-dark: #0f172a;
    --rk-mass-card: #1e293b;
    --rk-mass-brand: #0284c7; /* Hydrauliczny błękit */
    --rk-mass-accent: #38bdf8;
    --rk-mass-success: #10b981;
    --rk-mass-warning: #f59e0b;
    --rk-mass-danger: #ef4444;
    --rk-mass-text: #334155;
    --rk-mass-muted: #64748b;
    --rk-mass-bg: #f8fafc;
    --rk-mass-border: #cbd5e1;
}

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

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

.rk-mass-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-mass-accent);
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.4);
}

.rk-mass-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-mass-title span { color: var(--rk-mass-accent); }

/* Interfejs Symulatora */
.rk-mass-interactive {
    padding: 40px 50px;
    background: var(--rk-mass-bg);
}

.rk-mass-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 35px;
}

/* Panel sterowania */
.rk-mass-controls {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-mass-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

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

.rk-mass-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-weight: 800;
    font-size: 14px;
    color: var(--rk-mass-dark);
}

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

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

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

.rk-mass-readouts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-readout-card {
    background: var(--rk-mass-bg);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    text-align: center;
}

.rk-readout-title {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-mass-muted);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-readout-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mass-dark);
}

/* Wizualizacja SVG */
.rk-mass-visual {
    background: var(--rk-mass-card);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-mass-status-overlay {
    position: absolute;
    top: 15px;
    left: 15px;
    right: 15px;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 1px;
    z-index: 10;
    transition: all 0.3s;
}

.status-ok { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid #10b981; }
.status-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid #f59e0b; }
.status-err { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid #ef4444; }

.rk-svg-system {
    width: 100%;
    height: auto;
    max-height: 200px;
    margin-top: 20px;
}

/* SVG Animations */
.anim-pump-rotor {
    transform-origin: 50px 50px;
}
.spin-fast { animation: spin 0.8s linear infinite; }
.spin-slow { animation: spin 3s linear infinite; }
.spin-stall { animation: shake 0.5s ease-in-out infinite; stroke: var(--rk-mass-danger); }

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes shake {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(10deg); }
    75% { transform: rotate(-10deg); }
}

.anim-flow-line {
    stroke-dasharray: 10 10;
    animation: flowMove 1s linear infinite;
}
@keyframes flowMove { to { stroke-dashoffset: -20; } }

/* Treść Merytoryczna */
.rk-mass-content {
    padding: 0 50px 45px 50px;
    background: #ffffff;
}

.rk-mass-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-mass-text);
    margin-bottom: 25px;
}

.rk-mass-formula-box {
    background: var(--rk-mass-dark);
    color: #ffffff;
    padding: 20px 25px;
    border-radius: 12px;
    border-left: 5px solid var(--rk-mass-accent);
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-formula-text {
    font-family: 'Courier New', monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-mass-accent);
}

.rk-step-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-step-card {
    background: var(--rk-mass-bg);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mass-border);
    position: relative;
}

.rk-step-number {
    position: absolute;
    top: -12px;
    left: -12px;
    width: 28px;
    height: 28px;
    background: var(--rk-mass-brand);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13px;
    box-shadow: 0 4px 6px rgba(2, 132, 199, 0.3);
}

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

.rk-alert-critical {
    background: #fef2f2;
    border-left: 4px solid var(--rk-mass-danger);
    padding: 20px;
    border-radius: 0 12px 12px 0;
}

.rk-alert-critical p {
    margin: 0;
    color: #991b1b;
    font-size: 15px;
    line-height: 1.6;
}

.rk-link {
    color: var(--rk-mass-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
    transition: all 0.3s;
}

.rk-link:hover {
    border-bottom-color: var(--rk-mass-brand);
}

@media (max-width: 768px) {
    .rk-mass-header, .rk-mass-interactive, .rk-mass-content { padding: 30px 25px; }
    .rk-mass-grid, .rk-step-grid { grid-template-columns: 1fr; }
    .rk-mass-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-przeplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak obliczyć wymagany przepływ masowy w pętlach podłogówki?",
    "description": "Przewodnik obliczeniowy strumienia wody (qm). Dowiedz się, dlaczego zbyt długa pętla (np. 140 m) dławi pompę obiegową i uniemożliwia oddanie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-przeplyw",
    "name": "Opory hydrauliczne a wydajność pompy obiegowej",
    "description": "Korelacja między długością pętli grzewczej, wymaganym przepływem w l/min, a zdolnością standardowej pompy obiegowej do pokonania oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przepływ masowy ogrzewanie podłogowe",
      "nastawa rotametru l/min",
      "za długa pętla podłogówki",
      "opory hydrauliczne pompy ciepła",
      "wzór na przepływ wody grzewczej"
    ],
    "measurementTechnique": "Algorytm bazujący na równaniu qm = Q / (cw * ΔT), uwzględniający krytyczne ograniczenia fizyczne pomp obiegowych przy pętlach przekraczających 100-120 metrów bieżących rury 16x2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan Optymalny: Pętla < 90m, przepływ ok. 2 l/min, niskie opory.",
        "Stan Krytyczny: Pętla 140m, wymagany przepływ 4 l/min, opory przekraczają wysokość podnoszenia standardowej pompy = strefa niedogrzana."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-przeplyw",
    "name": "Symulator Oporów i Przepływu Hydraulicznego",
    "description": "Interaktywny kalkulator pozwalający manipulować mocą pętli (Q) oraz jej długością (L), wizualizujący ryzyko zadławienia pompy obiegowej przy przekroczeniu limitów hydraulicznych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mass-container" id="rk-mass-app">
    
    <div class="rk-mass-header">
        <div class="rk-mass-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><circle cx="12" cy="12" r="4"></circle></svg>
            Mechanika Płynów
        </div>
        <h2 class="rk-mass-title">Jak obliczyć wymagany <span>przepływ masowy</span> w pętlach podłogówki?</h2>
    </div>

    <div class="rk-mass-interactive">
        <div class="rk-mass-grid">
            
            <div class="rk-mass-controls">
                <div class="rk-mass-slider-group">
                    <div class="rk-mass-label">
                        <span>Zapotrzebowanie Pętli (Q)</span>
                        <span id="valQ" style="color: var(--rk-mass-brand);">1400 W</span>
                    </div>
                    <input type="range" min="300" max="2000" step="50" value="1400" class="rk-slider" id="slideQ">
                </div>

                <div class="rk-mass-slider-group" style="margin-bottom: 10px;">
                    <div class="rk-mass-label">
                        <span>Długość Pętli 16x2 (L)</span>
                        <span id="valL" style="color: var(--rk-mass-brand);">140 m</span>
                    </div>
                    <input type="range" min="40" max="180" step="5" value="140" class="rk-slider" id="slideL">
                </div>

                <div class="rk-mass-readouts">
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Przepływ (Rotametr)</div>
                        <div class="rk-readout-val" id="valFlow">4.0 <span style="font-size: 14px; font-weight:700;">l/min</span></div>
                    </div>
                    <div class="rk-readout-card">
                        <div class="rk-readout-title">Opory liniowe</div>
                        <div class="rk-readout-val" id="valPress">28 <span style="font-size: 14px; font-weight:700;">kPa</span></div>
                    </div>
                </div>
            </div>

            <div class="rk-mass-visual">
                <div id="statusOverlay" class="rk-mass-status-overlay status-err">
                    Krytyczne Opory - Pompa Zadławiona
                </div>
                
                <svg class="rk-svg-system" viewBox="0 0 200 100">
                    <path d="M 10 50 L 50 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    <path id="svgLoop" d="M 150 50 L 190 50" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                    
                    <path id="svgFlowAnim" class="anim-flow-line" d="M 10 50 L 190 50" fill="none" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>

                    <circle cx="50" cy="50" r="25" fill="#1e293b" stroke="var(--rk-mass-accent)" stroke-width="4" id="svgPumpBorder"/>
                    <path id="svgPumpRotor" class="anim-pump-rotor spin-stall" d="M 50 25 L 50 45 M 50 55 L 50 75 M 25 50 L 45 50 M 55 50 L 75 50 M 32 32 L 46 46 M 54 54 L 68 68 M 68 32 L 54 46 M 46 54 L 32 68" stroke="var(--rk-mass-accent)" stroke-width="4" stroke-linecap="round"/>
                    <circle cx="50" cy="50" r="6" fill="var(--rk-mass-accent)" id="svgPumpCenter"/>

                    <rect x="130" y="20" width="20" height="60" rx="4" fill="#334155" stroke="#64748b" stroke-width="2"/>
                    <rect x="135" y="10" width="10" height="30" rx="2" fill="#e2e8f0"/>
                    <rect id="svgRotameterFill" x="135" y="30" width="10" height="10" fill="var(--rk-mass-brand)"/>
                </svg>
            </div>

        </div>
    </div>

    <div class="rk-mass-content">
        <div class="rk-mass-intro">
            Wymagany przepływ masowy (q<sub>m</sub>) obliczamy na podstawie zapotrzebowania na moc cieplną pomieszczenia (Q) oraz założonej delty temperatur (&Delta;T), która dla pomp ciepła wynosi zazwyczaj <strong>5 K</strong>. Zapewnienie odpowiedniego przepływu jest krytyczne, aby pompa mogła oddać wyprodukowane ciepło do betonu bez podnoszenia ciśnienia w układzie chłodniczym.
        </div>

        <div class="rk-mass-formula-box">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-mass-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="9" y1="9" x2="15" y2="15"></line><line x1="15" y1="9" x2="9" y2="15"></line></svg>
            <div>
                <div style="font-size: 13px; text-transform: uppercase; letter-spacing: 1px; color: #94a3b8; margin-bottom: 5px;">Równanie Inżynierskie</div>
                <div class="rk-formula-text">q<sub>m</sub> = Q / (C<sub>w</sub> &middot; &Delta;T)</div>
            </div>
        </div>

        <div class="rk-step-grid">
            <div class="rk-step-card">
                <div class="rk-step-number">1</div>
                <p><strong>Moc całkowita pętli (Q):</strong> W naszym przykładzie dla salonu (40 m<sup>2</sup> przy 35 W/m<sup>2</sup>) wynosi <strong>1400 W</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">2</div>
                <p><strong>Delta T (&Delta;T):</strong> Założona różnica temperatur zasilanie/powrót (np. 35°C i 30°C) to <strong>5 K</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">3</div>
                <p><strong>Ciepło właściwe wody (C<sub>w</sub>):</strong> Stała fizyczna wynosi <strong>1.163 Wh/(kg&middot;K)</strong>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-number">4</div>
                <p><strong>Obliczenie (l/h):</strong> q<sub>m</sub> = 1400 / (1.163 &middot; 5) &approx; <strong>240.7 l/h</strong>.</p>
            </div>
        </div>

        <div class="rk-alert-critical">
            <p>
                <strong>Konsekwencje wykonawcze:</strong> Przy przepływie rzędu 240 l/h, na <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-link">rozdzielaczu</a> musisz ustawić rotametr na ok. <strong>4.0 l/min</strong>. 
                Jeśli projektant zaplanuje <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">zbyt długą pętlę</a> (np. 140 m), opory hydrauliczne wzrosną do poziomu, przy którym standardowa <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-link">pompa obiegowa</a> nie będzie w stanie przepchnąć wymaganej ilości wody, co skutkować będzie niedogrzaniem salonu.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('rk-mass-app').innerHTML = '<div style="padding:40px; text-align:center; color:red; font-weight:bold; background:#0f172a;">BŁĄD LICENCJI: Kod należy do Projekt-Ogrzewania.pl</div>';
        return;
    }

    // 2. Logika Symulatora
    const slideQ = document.getElementById('slideQ');
    const slideL = document.getElementById('slideL');
    const valQ = document.getElementById('valQ');
    const valL = document.getElementById('valL');
    const valFlow = document.getElementById('valFlow');
    const valPress = document.getElementById('valPress');
    
    // Elementy SVG i UI
    const statusOverlay = document.getElementById('statusOverlay');
    const svgPumpRotor = document.getElementById('svgPumpRotor');
    const svgPumpBorder = document.getElementById('svgPumpBorder');
    const svgPumpCenter = document.getElementById('svgPumpCenter');
    const svgFlowAnim = document.getElementById('svgFlowAnim');
    const svgRotameterFill = document.getElementById('svgRotameterFill');

    function calculateSystem() {
        const Q = parseFloat(slideQ.value);
        const L = parseFloat(slideL.value);
        const cw = 1.163;
        const dT = 5; // Stała dla pompy ciepła wg treści

        // 1. Przepływ (l/min)
        const qmH = Q / (cw * dT);
        const flowMin = qmH / 60;
        
        // 2. Szacunkowe opory (kPa) - Uproszczony model wizualny (Przepływ * Długość * wsp)
        // Zakładamy, że 4 l/min przy 140m daje ogromne opory rzędu 35-40 kPa
        const baseResistance = (flowMin * flowMin) * (L / 100) * 1.5; 
        const pressLoss = Math.max(1, baseResistance);

        // Aktualizacja UI Tekst
        valQ.innerText = Q + ' W';
        valL.innerText = L + ' m';
        valFlow.innerHTML = flowMin.toFixed(1) + ' <span style="font-size: 14px; font-weight:700;">l/min</span>';
        valPress.innerHTML = pressLoss.toFixed(0) + ' <span style="font-size: 14px; font-weight:700;">kPa</span>';

        // Logika Statusu (Kolory i animacje)
        // Pompki obiegowe standardowe radzą sobie do ok 20-25 kPa na najdłuższej pętli.
        
        let color = '';
        let rotorClass = '';
        
        if (pressLoss > 25 || flowMin > 5) {
            // STAN KRYTYCZNY (Czerwony)
            color = 'var(--rk-mass-danger)';
            statusOverlay.className = 'rk-mass-status-overlay status-err';
            statusOverlay.innerText = 'Krytyczne Opory - Pompa Zadławiona';
            rotorClass = 'anim-pump-rotor spin-stall';
            svgFlowAnim.style.animationDuration = '0s'; // Przepływ stoi
        } else if (pressLoss > 15 || flowMin > 3.5) {
            // OSTRZEŻENIE (Pomarańczowy)
            color = 'var(--rk-mass-warning)';
            statusOverlay.className = 'rk-mass-status-overlay status-warn';
            statusOverlay.innerText = 'Wysokie Opory - Ryzyko Szumów';
            rotorClass = 'anim-pump-rotor spin-fast';
            svgFlowAnim.style.animationDuration = '0.4s'; // Przepływ szybki, wymuszony
        } else {
            // OPTYMALNIE (Zielony)
            color = 'var(--rk-mass-success)';
            statusOverlay.className = 'rk-mass-status-overlay status-ok';
            statusOverlay.innerText = 'Przepływ Laminarny - Optymalnie';
            rotorClass = 'anim-pump-rotor spin-slow';
            svgFlowAnim.style.animationDuration = '1.5s'; // Przepływ spokojny
        }

        // Aplikacja kolorów do odczytów i SVG
        valFlow.style.color = color;
        valPress.style.color = color;
        
        svgPumpBorder.setAttribute('stroke', color);
        svgPumpCenter.setAttribute('fill', color);
        svgFlowAnim.setAttribute('stroke', color);
        
        // Klasy wirnika (animacja)
        svgPumpRotor.className.baseVal = rotorClass;
        
        // Zmiana wysokości słupka rotametru (0-30px, max 5 l/min to h=30)
        let fillHeight = (flowMin / 5) * 30;
        if (fillHeight > 30) fillHeight = 30;
        svgRotameterFill.setAttribute('height', fillHeight);
        svgRotameterFill.setAttribute('y', 40 - fillHeight);
        svgRotameterFill.setAttribute('fill', color);
    }

    slideQ.addEventListener('input', calculateSystem);
    slideL.addEventListener('input', calculateSystem);

    calculateSystem(); // Start
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-brand: #3b82f6; /* Niebieski - inżynieria */
    --rk-loop-accent: #06b6d4; /* Cyjan - przepływ */
    --rk-loop-success: #10b981;
    --rk-loop-warning: #f59e0b;
    --rk-loop-danger: #ef4444;
    --rk-loop-bg: #f8fafc;
    --rk-loop-card: #ffffff;
    --rk-loop-border: #e2e8f0;
}

.rk-loop-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-loop-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-loop-border);
    overflow: hidden;
}

/* Header */
.rk-loop-header {
    background: linear-gradient(135deg, var(--rk-loop-dark) 0%, #1e293b 100%);
    padding: 50px 45px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-loop-brand);
}

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.15);
    color: #60a5fa;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-loop-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-loop-title span { color: var(--rk-loop-brand); }

/* Simulator Section */
.rk-loop-interactive {
    padding: 40px 45px;
    background: #f1f5f9;
}

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

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

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    margin-bottom: 30px;
}

.rk-loop-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-loop-brand);
    cursor: pointer;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Gauge Visual */
.rk-loop-visual {
    background: var(--rk-loop-dark);
    padding: 30px;
    border-radius: 20px;
    text-align: center;
    position: relative;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}

.rk-loop-indicator {
    font-size: 48px;
    font-weight: 900;
    margin: 10px 0;
    transition: color 0.4s;
}

.rk-loop-status-text {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 2px;
}

/* Dane Porównawcze */
.rk-loop-data-box {
    padding: 40px 45px;
}

.rk-loop-data-box h3 {
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 25px;
    color: var(--rk-loop-dark);
}

/* Układ Desktop - Tabela */
.rk-loop-table-wrapper {
    overflow-x: auto;
}

.rk-loop-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.rk-loop-table th {
    background: #f8fafc;
    text-align: left;
    padding: 18px;
    border-bottom: 2px solid var(--rk-loop-brand);
    font-weight: 800;
    color: var(--rk-loop-dark);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
}

.rk-loop-table td {
    padding: 18px;
    border-bottom: 1px solid #f1f5f9;
    color: #475569;
}

.rk-loop-table tr:hover td {
    background: #f0f9ff;
}

.rk-val-highlight {
    font-weight: 800;
    color: var(--rk-loop-brand);
}

/* Układ Mobilny - Kafelki (Domyślnie ukryte) */
.rk-loop-mobile-cards {
    display: none;
    grid-template-columns: 1fr;
    gap: 15px;
}

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

.rk-mc-title {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-loop-muted);
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-mc-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 14px;
}

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

.rk-mc-label {
    color: #64748b;
}

.rk-mc-val {
    font-weight: 700;
    color: var(--rk-loop-dark);
}

.rk-mc-val.highlight {
    color: var(--rk-loop-brand);
    font-size: 16px;
    font-weight: 900;
}

/* SVG Anim */
.rk-pipe-svg {
    width: 100%;
    max-width: 250px;
    height: auto;
    margin-bottom: 15px;
}

.anim-flow {
    stroke-dasharray: 15 15;
    animation: flowMove 1s linear infinite;
}

@keyframes flowMove { to { stroke-dashoffset: -30; } }

/* Footer/CTA */
.rk-loop-cta {
    padding: 40px 45px;
    background: var(--rk-loop-bg);
    text-align: center;
}

.rk-btn-engineering {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-loop-brand);
    color: #ffffff;
    padding: 20px 40px;
    border-radius: 16px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.4);
}

.rk-btn-engineering:hover {
    background: #2563eb;
    transform: translateY(-4px);
    box-shadow: 0 20px 35px -5px rgba(59, 130, 246, 0.5);
}

/* Media Queries */
@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive, .rk-loop-data-box, .rk-loop-cta { padding: 30px 20px; }
    .rk-loop-sim-grid { grid-template-columns: 1fr; }
    .rk-loop-title { font-size: 22px; }
    
    /* Ukrycie tabeli i pokazanie kafelków na mobilce */
    .rk-loop-table-wrapper { display: none; }
    .rk-loop-mobile-cards { display: grid; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-loop-length",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Maksymalna długość pętli i średnica rur w instalacji z pompą ciepła",
    "description": "Analiza inżynierska dopuszczalnych długości pętli (80-90m) dla rur 16x2mm. Poznaj wpływ oporów liniowych na sprawność układu hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-loops",
    "name": "Zestawienie parametrów hydraulicznych: Standard vs Pompa Ciepła",
    "description": "Dane porównawcze dotyczące temperatury zasilania, różnicy temperatur (Delta T) oraz granicznych długości pętli rur PEX/PERT dla niskotemperaturowych źródeł ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki",
      "średnica rury 16x2 opory",
      "delta T pompa ciepła",
      "projektowanie instalacji niskotemperaturowej",
      "opory liniowe w rurach PEX"
    ],
    "measurementTechnique": "Obliczenia strat ciśnienia na podstawie natężenia przepływu masowego wymaganego do utrzymania niskiej delty temperatur (5-7K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt Optymalny: Pętla 80-90m, Tz 30-33°C, Delta T 5K.",
        "System Standardowy: Pętla 100-120m, Tz 40-45°C, Delta T 10K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-hydraulics",
    "name": "Symulator Oporów Liniowych Pętli Grzewczej",
    "description": "Interaktywny kalkulator wizualizujący wzrost oporów hydraulicznych i obciążenia pompy obiegowej w funkcji długości rury grzewczej.",
    "applicationCategory": "Inżynieria/Kalkulator",
    "operatingSystem": "Wszystkie",
    "browserRequirements": "Obsługa JavaScript i SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-app">
    
    <div class="rk-loop-header">
        <div class="rk-loop-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16V12M12 8h.01"></path></svg>
            Inżynieria Hydrauliczna
        </div>
        <h2 class="rk-loop-title">Jaka powinna być maksymalna <span>długość pętli</span> i średnica rur?</h2>
    </div>

    <div class="rk-loop-interactive">
        <div class="rk-loop-sim-grid">
            
            <div class="rk-loop-controls">
                <div class="rk-slider-label">
                    <span>Długość Pętli (rura 16mm)</span>
                    <span id="valLoopLength" style="color: var(--rk-loop-brand);">85 m</span>
                </div>
                <input type="range" min="40" max="150" value="85" class="rk-loop-range" id="loopSlider">
                
                <p style="font-size: 14px; color: #64748b; line-height: 1.6; margin: 0;">
                    Zgodnie z normą <strong>PN-EN 1264</strong>, przekroczenie 90m przy rurze 16mm w układzie z pompą ciepła generuje opory, których standardowa pompa obiegowa nie jest w stanie pokonać przy niskiej delcie T.
                </p>
            </div>

            <div class="rk-loop-visual" id="rkVisualBox">
                <svg class="rk-pipe-svg" viewBox="0 0 200 60">
                    <path d="M 10 30 Q 100 0 190 30" fill="none" stroke="#334155" stroke-width="12" stroke-linecap="round"/>
                    <path id="svgFlowPath" class="anim-flow" d="M 10 30 Q 100 0 190 30" fill="none" stroke="var(--rk-loop-accent)" stroke-width="6" stroke-linecap="round"/>
                </svg>
                <div class="rk-loop-status-text" id="statusLabel">Stan: Optymalny</div>
                <div class="rk-loop-indicator" id="resistanceVal">18 kPa</div>
                <div style="color: #94a3b8; font-size: 12px; font-weight: 700;">OPÓR LINII POWROTNEJ</div>
            </div>

        </div>
    </div>

    <div class="rk-loop-data-box">
        <h3>Porównanie standardu i optymalizacji PC</h3>
        
        <div class="rk-loop-table-wrapper">
            <table class="rk-loop-table">
                <thead>
                    <tr>
                        <th>Parametr Techniczny</th>
                        <th>Standard (Kocioł)</th>
                        <th>Optymalizacja (PC)</th>
                        <th>Różnica / Zysk</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Temperatura zasilania (Tz)</td>
                        <td>40–45°C</td>
                        <td class="rk-val-highlight">30–33°C</td>
                        <td><strong>+25% wyższy COP</strong></td>
                    </tr>
                    <tr>
                        <td>Delta T (Zas.-Powrót)</td>
                        <td>10 K</td>
                        <td class="rk-val-highlight">5–7 K</td>
                        <td>Stabilna praca inwertera</td>
                    </tr>
                    <tr>
                        <td>Max. długość pętli (16x2)</td>
                        <td>100–120 m</td>
                        <td class="rk-val-highlight">80–90 m</td>
                        <td>Opory niższe o 40%</td>
                    </tr>
                    <tr>
                        <td>Rozstaw rur (średni)</td>
                        <td>15 cm</td>
                        <td class="rk-val-highlight">10 cm</td>
                        <td>Niższa Tz o ok. 5°C</td>
                    </tr>
                    <tr>
                        <td>Rodzaj wylewki</td>
                        <td>Cementowa</td>
                        <td class="rk-val-highlight">Anhydrytowa</td>
                        <td>Przewodzenie k = 1,8</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rk-loop-mobile-cards">
            <div class="rk-mobile-card">
                <div class="rk-mc-title">Temperatura zasilania (Tz)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">40–45°C</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">30–33°C</span>
                </div>
                <div class="rk-mc-row" style="background:#f0fdf4; padding: 10px; border-radius: 8px; margin-top: 10px; border: 1px solid #bbf7d0;">
                    <span class="rk-mc-label" style="color: #15803d; font-weight:800;">ZYSK:</span>
                    <span class="rk-mc-val" style="color: #15803d;">+25% wyższy COP</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Delta T (Zas.-Powrót)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">10 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">5–7 K</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Stabilna praca inwertera</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Max. długość pętli (16x2)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">100–120 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">80–90 m</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Opory niższe o 40%</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rozstaw rur (średni)</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">15 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">10 cm</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Niższa Tz o ok. 5°C</span>
                </div>
            </div>

            <div class="rk-mobile-card">
                <div class="rk-mc-title">Rodzaj wylewki</div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Standard:</span>
                    <span class="rk-mc-val">Cementowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label">Pompa Ciepła:</span>
                    <span class="rk-mc-val highlight">Anhydrytowa</span>
                </div>
                <div class="rk-mc-row">
                    <span class="rk-mc-label" style="font-weight:700;">Efekt:</span>
                    <span class="rk-mc-val">Przewodzenie k = 1,8</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-loop-cta">
        <p style="margin-bottom: 25px; color: #475569; font-size: 15px; max-width: 700px; margin-left: auto; margin-right: auto;">
            Maksymalna długość pętli dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">rury o średnicy 16x2 mm</a> w systemie z pompą ciepła to <strong>80–90 metrów</strong>. Przekroczenie tej wartości powoduje gwałtowny wzrost oporów liniowych, co zmusza <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" style="color:var(--rk-loop-brand); font-weight:700;">pompę obiegową</a> do pracy na najwyższym biegu, generując szumy i straty prądu.
        </p>
        <a href="https://projekt-ogrzewania.pl/sklep/" class="rk-btn-engineering">
            DOBIERZ MATERIAŁY PROJEKTOWE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-loop-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#f87171; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Simulator Logic
    const slider = document.getElementById('loopSlider');
    const lengthLabel = document.getElementById('valLoopLength');
    const resistanceLabel = document.getElementById('resistanceVal');
    const statusLabel = document.getElementById('statusLabel');
    const visualBox = document.getElementById('rkVisualBox');
    const flowAnim = document.getElementById('svgFlowPath');

    function updateHydraulics(val) {
        lengthLabel.innerText = val + ' m';
        
        // Obliczenie oporu (model nieliniowy)
        // val 80 -> ok 18 kPa, val 120 -> ok 35 kPa, val 150 -> ok 55 kPa
        let baseRes = (val * val * 0.0025) + (val * 0.05);
        resistanceLabel.innerText = Math.round(baseRes) + ' kPa';

        if (val <= 95) {
            // Stan OK
            resistanceLabel.style.color = 'var(--rk-loop-success)';
            statusLabel.innerText = 'Stan: Optymalny';
            statusLabel.style.color = 'var(--rk-loop-success)';
            flowAnim.style.stroke = 'var(--rk-loop-success)';
            flowAnim.style.animationDuration = '1.5s';
        } else if (val <= 115) {
            // Stan Warning
            resistanceLabel.style.color = 'var(--rk-loop-warning)';
            statusLabel.innerText = 'Stan: Wysokie Opory';
            statusLabel.style.color = 'var(--rk-loop-warning)';
            flowAnim.style.stroke = 'var(--rk-loop-warning)';
            flowAnim.style.animationDuration = '0.7s';
        } else {
            // Stan Danger
            resistanceLabel.style.color = 'var(--rk-loop-danger)';
            statusLabel.innerText = 'Stan: Przeciążenie Pompy';
            statusLabel.style.color = 'var(--rk-loop-danger)';
            flowAnim.style.stroke = 'var(--rk-loop-danger)';
            flowAnim.style.animationDuration = '0.3s';
        }
    }

    slider.addEventListener('input', function(e) {
        updateHydraulics(e.target.value);
    });

    updateHydraulics(85);
});
</script>



<style>
:root {
    --rk-buf-dark: #0f172a;
    --rk-buf-card: #1e293b;
    --rk-buf-brand: #8b5cf6; /* Fiolet/Indygo - symbolizuje mieszanie ciepła i chłodu */
    --rk-buf-brand-light: #f5f3ff;
    --rk-buf-hot: #ef4444; /* Czerwony - zasilanie */
    --rk-buf-cold: #3b82f6; /* Niebieski - powrót */
    --rk-buf-mix: #d946ef; /* Róż/Fiolet - zmieszanie w sprzęgle */
    --rk-buf-success: #10b981;
    --rk-buf-warning: #f59e0b;
    --rk-buf-text: #334155;
    --rk-buf-muted: #64748b;
    --rk-buf-bg: #ffffff;
    --rk-buf-border: #e2e8f0;
}

.rk-buf-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-buf-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    overflow: hidden;
}

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

.rk-buf-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.2);
    color: #c4b5fd;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(139, 92, 246, 0.4);
}

.rk-buf-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-buf-title span { color: #a78bfa; }

/* Interfejs Symulatora */
.rk-buf-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Przyciski Wyboru Schematu */
.rk-buf-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-buf-tab {
    background: #ffffff;
    border: 2px solid var(--rk-buf-border);
    padding: 15px 10px;
    border-radius: 16px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-buf-muted);
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.rk-buf-tab:hover {
    border-color: #a78bfa;
    color: var(--rk-buf-brand);
    background: var(--rk-buf-brand-light);
}

.rk-buf-tab.active {
    background: var(--rk-buf-brand-light);
    border-color: var(--rk-buf-brand);
    color: var(--rk-buf-brand);
    box-shadow: 0 10px 15px -3px rgba(139, 92, 246, 0.1);
}

.rk-tab-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-buf-border);
    color: #ffffff;
    transition: all 0.3s;
}

.rk-buf-tab.active .rk-tab-icon {
    background: var(--rk-buf-brand);
}

/* Wizualizacja SVG */
.rk-buf-visual-box {
    background: var(--rk-buf-dark);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
    border: 4px solid #334155;
    position: relative;
}

.rk-buf-svg {
    width: 100%;
    max-width: 500px;
    height: auto;
}

/* Elementy SVG */
.svg-pipe {
    fill: none;
    stroke-width: 6;
    stroke-linecap: butt; /* Zapobiega efektowi nakładania fasolek */
    stroke-linejoin: round;
    transition: opacity 0.5s, stroke 0.5s;
}

.svg-flow-anim {
    fill: none;
    stroke-width: 4;
    stroke-dasharray: 8 8;
    stroke-linecap: butt;
    animation: flowMove 1.5s linear infinite;
    transition: opacity 0.5s, stroke 0.5s;
}

@keyframes flowMove {
    to { stroke-dashoffset: -16; }
}

.svg-component {
    fill: #1e293b;
    stroke: #64748b;
    stroke-width: 3;
    transition: opacity 0.5s;
}

.svg-text {
    fill: #ffffff;
    font-family: 'Inter', sans-serif;
    font-size: 10px;
    font-weight: 800;
}

/* Karta Wynikowa */
.rk-buf-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-buf-metric {
    background: #ffffff;
    border: 1px solid var(--rk-buf-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-metric-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-buf-muted);
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-metric-val {
    font-size: 18px;
    font-weight: 900;
    transition: color 0.3s;
}

/* Treść Merytoryczna */
.rk-buf-content {
    padding: 0 50px 45px 50px;
}

.rk-buf-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-buf-text);
    margin: 0 0 20px 0;
}

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

.rk-buf-list {
    list-style: none;
    padding: 0;
    margin: 30px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-buf-list-item {
    background: var(--rk-buf-bg);
    border: 1px solid var(--rk-buf-border);
    border-left: 5px solid var(--rk-buf-brand);
    padding: 20px 25px;
    border-radius: 12px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-item-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-buf-dark);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-item-badge {
    font-size: 11px;
    padding: 4px 10px;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.badge-rec { background: #dcfce7; color: #15803d; }
.badge-warn { background: #fef3c7; color: #b45309; }
.badge-alert { background: #fee2e2; color: #b91c1c; }

.rk-link {
    color: var(--rk-buf-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #6d28d9;
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-buf-header, .rk-buf-interactive, .rk-buf-content { padding: 30px 25px; }
    .rk-buf-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-buf-results { grid-template-columns: 1fr; }
    .rk-buf-tab { flex-direction: row; justify-content: flex-start; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-bufor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jaką rolę pełni bufor ciepła w projekcie z pompą ciepła?",
    "description": "Przewodnik po schematach hydraulicznych: bufor szeregowy, równoległy (sprzęgło) i układ bezpośredni. Poznaj ich wpływ na sprawność i defrost pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-bufor",
    "name": "Wpływ schematu połączenia bufora na parametry pracy pompy ciepła",
    "description": "Zestawienie porównujące wpływ bufora szeregowego, równoległego oraz układu bezpośredniego na sprawność (COP), bezpieczeństwo defrostu oraz temperaturę zasilania (Tz).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor szeregowy czy sprzęgło",
      "zład wody w ogrzewaniu podłogowym",
      "defrost pompy ciepła bufor",
      "sprzęgło hydrauliczne pompa ciepła",
      "schemat instalacji pompa ciepła"
    ],
    "measurementTechnique": "Analiza wahań temperatury zasilania (Tz) oraz ocena bezpieczeństwa hydraulicznego podczas cyklu odszraniania (defrost) parownika w oparciu o dostępne pojemności zładu wodnego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szeregowy na powrocie: Najwyższy COP, brak mieszania Tz, pełne bezpieczeństwo defrostu (zład 15-20 l/kW).",
        "Równoległy (Sprzęgło): Spadek COP, wzrost Tz o 2-3 K z powodu mieszania strumieni w buforze.",
        "Bezpośredni (Open Loop): Wymaga idealnego projektu, ryzyko zablokowania przepływu przez siłowniki termoelektryczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-bufor",
    "name": "Symulator Przepływów w Schematach Buforowych",
    "description": "Interaktywne narzędzie wizualizujące kierunki przepływu i proces mieszania się wody grzewczej w zależności od wybranego sposobu wpięcia bufora ciepła do instalacji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf-container" id="rk-buf-app">
    
    <div class="rk-buf-header">
        <div class="rk-buf-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><path d="M4 12h16"></path><path d="M12 4v16"></path></svg>
            Architektura Systemu
        </div>
        <h2 class="rk-buf-title">Jaką rolę pełni <span>bufor ciepła</span> w projekcie?</h2>
    </div>

    <div class="rk-buf-interactive">
        
        <div class="rk-buf-tabs">
            <div class="rk-buf-tab active" data-mode="szereg">
                <div class="rk-tab-icon">1</div>
                Szeregowy na powrocie
            </div>
            <div class="rk-buf-tab" data-mode="rownoleg">
                <div class="rk-tab-icon">2</div>
                Równoległy (Sprzęgło)
            </div>
            <div class="rk-buf-tab" data-mode="bezposred">
                <div class="rk-tab-icon">3</div>
                Układ Bezpośredni
            </div>
        </div>

        <div class="rk-buf-visual-box">
            <svg class="rk-buf-svg" viewBox="0 0 400 200">
                <rect class="svg-component" x="10" y="60" width="60" height="80" rx="6" />
                <text class="svg-text" x="25" y="105">PC</text>
                
                <rect class="svg-component" x="330" y="40" width="40" height="120" rx="4" />
                <text class="svg-text" x="342" y="105">OP</text>

                <g id="g-szereg" style="opacity: 1;">
                    <rect class="svg-component" x="170" y="110" width="60" height="70" rx="4" />
                    <text class="svg-text" x="180" y="150">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                </g>

                <g id="g-rownoleg" style="opacity: 0;">
                    <rect class="svg-component" x="170" y="40" width="60" height="120" rx="6" />
                    <text class="svg-text" x="180" y="105">BUFOR</text>
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 70 L 170 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 70 L 170 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 170 130 L 70 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 170 130 L 70 130" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-mix)" d="M 230 70 L 330 70" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 230 70 L 330 70" />
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 130 L 230 130" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 130 L 230 130" />
                </g>

                <g id="g-bezposred" style="opacity: 0;">
                    <path class="svg-pipe" stroke="var(--rk-buf-hot)" d="M 70 75 L 330 75" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 70 75 L 330 75" />
                    
                    <path class="svg-pipe" stroke="var(--rk-buf-cold)" d="M 330 125 L 70 125" />
                    <path class="svg-flow-anim" stroke="#ffffff" d="M 330 125 L 70 125" />
                    
                    <circle cx="200" cy="100" r="30" fill="none" stroke="#ef4444" stroke-width="4" stroke-dasharray="8 4"/>
                    <line x1="180" y1="80" x2="220" y2="120" stroke="#ef4444" stroke-width="4"/>
                </g>
            </svg>
        </div>

        <div class="rk-buf-results">
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Sprawność (COP)</div>
                <div class="rk-metric-val" id="valCop" style="color: var(--rk-buf-success);">Maksymalna</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Temperatura Zasilania</div>
                <div class="rk-metric-val" id="valTz" style="color: var(--rk-buf-success);">Bez strat (30°C)</div>
            </div>
            <div class="rk-buf-metric">
                <div class="rk-metric-label">Odmrażanie (Defrost)</div>
                <div class="rk-metric-val" id="valDefrost" style="color: var(--rk-buf-success);">W 100% Bezpieczne</div>
            </div>
        </div>

    </div>

    <div class="rk-buf-content">
        <p>
            Wbrew obiegowym opiniom, <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a> w projekcie ogrzewania podłogowego pełni funkcję stricte hydrauliczną, a nie magazynową (rolę wielkiego akumulatora ciepła przejmuje wylewka betonowa lub anhydrytowa). 
        </p>
        <p>
            Jego głównym zadaniem jest zapewnienie <a href="https://projekt-ogrzewania.pl/wiekszy-czy-mniejszy-zlad-wody-w-ogrzewaniu-podlogowym/">odpowiedniego zładu wody</a> wymaganego do procesu odmrażania parownika (tzw. <strong>defrostu</strong>). Pompa ciepła w tym trybie pobiera nagle dużą ilość energii z instalacji, aby stopić lód na jednostce zewnętrznej. Jeśli system nie zapewni stałego przepływu, pompa wyrzuci błąd.
        </p>

        <ul class="rk-buf-list">
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    1. Szeregowy na powrocie
                    <span class="rk-item-badge badge-rec">Zalecany</span>
                </div>
                <p>
                    Rozwiązanie najlepsze dla inwerterowych pomp powietrznych. Woda wracająca z podłogówki przepływa przez bufor (zbiornik 50–100 litrów), a zasilanie idzie bezpośrednio do rozdzielacza. <strong>Nie tracimy temperatury zasilania</strong> (brak zjawiska mieszania), a pompa ma zagwarantowany zład wody do odszraniania. Zalecana pojemność: ok. 15–20 litrów na każdy 1 kW mocy urządzenia.
                </p>
            </li>
            
            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    2. Równoległy (Sprzęgło hydrauliczne)
                    <span class="rk-item-badge badge-warn">Wymusza spadek COP</span>
                </div>
                <p>
                    Stosowany najczęściej w układach z mieszaczami (np. gdy podłogówka działa razem z kaloryferami). Woda z pompy ciepła wpada do bufora, miesza się, i dopiero stamtąd jest tłoczona do obiegów przez <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">niezależne pompy obiegowe</a>. Niestety, wymieszanie wody zawsze <strong>podnosi wymaganą temperaturę pracy sprężarki o ok. 2–3 K</strong>, co bezpośrednio obniża współczynnik COP.
                </p>
            </li>

            <li class="rk-buf-list-item">
                <div class="rk-item-title">
                    3. Układ Bezpośredni
                    <span class="rk-item-badge badge-alert">Wymaga rygoru</span>
                </div>
                <p>
                    Całkowity brak bufora. Układ dopuszczalny <strong>wyłącznie</strong> jako tzw. "Open Loop". Inwestor i instalator muszą zagwarantować stały przepływ masowy przez podłogę. Wymaga to rezygnacji ze <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">strefowych siłowników termoelektrycznych</a> na rozdzielaczach, aby nie dopuścić do sytuacji, w której termostaty zamkną pętle, gdy pompa rozpocznie defrost.
                </p>
            </li>
        </ul>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-buf-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Logika Symulatora
    const tabs = document.querySelectorAll('.rk-buf-tab');
    const svgSzereg = document.getElementById('g-szereg');
    const svgRownoleg = document.getElementById('g-rownoleg');
    const svgBezposred = document.getElementById('g-bezposred');
    
    const valCop = document.getElementById('valCop');
    const valTz = document.getElementById('valTz');
    const valDefrost = document.getElementById('valDefrost');

    function switchMode(mode) {
        // Reset Tabs
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-buf-tab[data-mode="${mode}"]`).classList.add('active');

        // Reset SVGs
        svgSzereg.style.opacity = '0';
        svgRownoleg.style.opacity = '0';
        svgBezposred.style.opacity = '0';

        if (mode === 'szereg') {
            svgSzereg.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'rownoleg') {
            svgRownoleg.style.opacity = '1';
            
            valCop.innerText = 'Obniżona o ok. 8%';
            valCop.style.color = 'var(--rk-buf-warning)';
            
            valTz.innerText = 'Wzrost o 2–3 K';
            valTz.style.color = 'var(--rk-buf-warning)';
            
            valDefrost.innerText = 'W 100% Bezpieczne';
            valDefrost.style.color = 'var(--rk-buf-success)';
            
        } else if (mode === 'bezposred') {
            svgBezposred.style.opacity = '1';
            
            valCop.innerText = 'Maksymalna';
            valCop.style.color = 'var(--rk-buf-success)';
            
            valTz.innerText = 'Bez strat (30°C)';
            valTz.style.color = 'var(--rk-buf-success)';
            
            valDefrost.innerHTML = 'Krytyczne Ryzyko!';
            valDefrost.style.color = 'var(--rk-buf-hot)';
        }
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            switchMode(this.getAttribute('data-mode'));
        });
    });
});
</script>



<style>
:root {
    --rk-screed-dark: #0f172a;
    --rk-screed-card: #1e293b;
    --rk-screed-brand: #ea580c; /* Ciepły pomarańczowy - symbolizujący przewodnictwo */
    --rk-screed-brand-light: #ffedd5;
    --rk-screed-concrete: #94a3b8; /* Szary beton */
    --rk-screed-anhydrite: #fcd34d; /* Jasny, płynny anhydryt */
    --rk-screed-success: #10b981;
    --rk-screed-danger: #ef4444;
    --rk-screed-bg: #f8fafc;
    --rk-screed-border: #e2e8f0;
    --rk-screed-text: #334155;
}

.rk-screed-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(234, 88, 12, 0.15);
    border: 1px solid rgba(234, 88, 12, 0.3);
    overflow: hidden;
}

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

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

.rk-screed-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-screed-title span { color: var(--rk-screed-brand); }

/* Sekcja Interaktywna */
.rk-screed-interactive {
    padding: 40px 50px;
    background: var(--rk-screed-bg);
}

/* Przełącznik Wylewki */
.rk-screed-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 30px;
    position: relative;
}

.rk-screed-btn {
    flex: 1;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-screed-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-screed-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-screed-concrete); /* Domyślny kolor betonu */
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* Grid Layout */
.rk-screed-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wizualizacja */
.rk-screed-visual {
    background: var(--rk-screed-dark);
    border-radius: 20px;
    padding: 20px;
    box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-svg-crosssection {
    width: 100%;
    max-width: 250px;
    height: auto;
}

/* Style SVG */
.svg-screed-mass {
    transition: fill 0.5s, height 0.5s, y 0.5s;
}

.svg-air-gap {
    transition: stroke-width 0.5s, stroke 0.5s;
}

.svg-bubbles {
    transition: opacity 0.5s;
}

.svg-heat-wave {
    fill: none;
    stroke-linecap: round;
    transition: stroke 0.5s, stroke-width 0.5s;
}

.anim-heat-slow {
    stroke-dasharray: 10 20;
    animation: riseUp 3s linear infinite;
}

.anim-heat-fast {
    stroke-dasharray: 20 10;
    animation: riseUp 1s linear infinite;
}

@keyframes riseUp {
    to { stroke-dashoffset: -30; }
}

/* Karty Danych */
.rk-screed-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

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

.rk-data-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-screed-text);
    opacity: 0.7;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

.rk-data-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-screed-dark);
    display: flex;
    align-items: baseline;
    gap: 4px;
    transition: color 0.3s;
}

.rk-data-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-screed-text);
    opacity: 0.6;
}

.card-full {
    grid-column: span 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--rk-screed-brand-light);
    border-color: rgba(234, 88, 12, 0.3);
}

.card-full .rk-data-val {
    color: var(--rk-screed-brand);
}

/* Treść Artykułu */
.rk-screed-content {
    padding: 45px 50px;
}

.rk-screed-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-screed-text);
    margin-bottom: 20px;
}

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

.rk-alert-error {
    background: #fef2f2;
    border-left: 4px solid var(--rk-screed-danger);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.rk-alert-error h4 {
    margin: 0 0 10px 0;
    color: #991b1b;
    font-size: 16px;
    font-weight: 900;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-alert-error p {
    margin: 0;
    color: #7f1d1d;
    font-size: 15px;
}

.rk-link {
    color: var(--rk-screed-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed rgba(234, 88, 12, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #c2410c;
    border-bottom-style: solid;
}

/* CTA */
.rk-screed-cta {
    padding: 40px 50px;
    background: var(--rk-screed-bg);
    text-align: center;
    border-top: 1px solid var(--rk-screed-border);
}

.rk-btn-screed {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-screed-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.4);
}

.rk-btn-screed:hover {
    transform: translateY(-4px);
    background: #c2410c;
    box-shadow: 0 20px 35px -5px rgba(234, 88, 12, 0.5);
}

@media (max-width: 768px) {
    .rk-screed-header, .rk-screed-interactive, .rk-screed-content, .rk-screed-cta { padding: 30px 20px; }
    .rk-screed-grid { grid-template-columns: 1fr; }
    .rk-screed-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; text-align: center; }
    .rk-screed-title { font-size: 24px; }
    .card-full { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Jak rodzaj wylewki wpływa na wydajność pompy ciepła?",
    "description": "Porównanie przewodnictwa cieplnego jastrychu anhydrytowego i betonu. Anhydryt eliminuje pustki powietrzne, obniża temperaturę zasilania i zwiększa SCOP o 6-8%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-wylewki",
    "name": "Właściwości termofizyczne jastrychów grzewczych",
    "description": "Zestawienie współczynników przewodzenia ciepła oraz wpływu grubości wylewki na efektywność instalacji ogrzewania podłogowego z pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jastrych anhydrytowy przewodzenie ciepła",
      "wylewka betonowa pod ogrzewanie podłogowe",
      "bezwładność cieplna podłogówki",
      "wzrost SCOP pompy ciepła",
      "grubość wylewki na podłogówkę"
    ],
    "measurementTechnique": "Analiza współczynnika lambda [W/(mK)] materiałów budowlanych oraz zjawiska oporu cieplnego wywołanego pustkami powietrznymi (złe otulenie rury w betonie).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych Anhydrytowy: λ ≈ 1.8-2.0 W/(mK), idealne otulenie rury, wzrost SCOP o 6-8%, niska bezwładność.",
        "Tradycyjny Beton: λ ≈ 1.1-1.2 W/(mK), mikropory powietrzne działające jako izolator, duża bezwładność (szczególnie przy warstwie 10 cm)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-screed",
    "name": "Symulator Przewodnictwa Cieplnego Wylewki",
    "description": "Narzędzie interaktywne pokazujące różnice w otuleniu rury i propagacji ciepła pomiędzy betonem a anhydrytem w systemie płaszczyznowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-screed-container" id="rk-screed-app">
    
    <div class="rk-screed-header">
        <div class="rk-screed-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
            Fizyka Budowli
        </div>
        <h2 class="rk-screed-title">Jak rodzaj wylewki wpływa na <span>wydajność pompy ciepła?</span></h2>
    </div>

    <div class="rk-screed-interactive">
        
        <div class="rk-screed-toggle-wrapper">
            <div class="rk-screed-pill" id="screedPill"></div>
            <button class="rk-screed-btn active" data-type="beton" id="btnBeton">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><circle cx="15.5" cy="15.5" r="1.5"></circle><circle cx="15.5" cy="8.5" r="1.5"></circle><circle cx="8.5" cy="15.5" r="1.5"></circle></svg>
                Tradycyjny Beton
            </button>
            <button class="rk-screed-btn" data-type="anhydryt" id="btnAnhydryt">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 4.2c3.11 3.11 3.11 8.14 0 11.25a7.94 7.94 0 0 1-11.32 0c-3.11-3.11-3.11-8.14 0-11.25L12 2.69z"></path></svg>
                Jastrych Anhydrytowy
            </button>
        </div>

        <div class="rk-screed-grid">
            
            <div class="rk-screed-visual">
                <div style="color: #cbd5e1; font-size: 11px; font-weight: 800; letter-spacing: 1px; margin-bottom: 15px; text-transform: uppercase;">Przekrój - Promieniowanie</div>
                <svg class="rk-svg-crosssection" viewBox="0 0 200 160">
                    <rect x="10" y="130" width="180" height="30" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2" />
                    <line x1="10" y1="140" x2="190" y2="140" stroke="#94a3b8" stroke-dasharray="4 4"/>
                    
                    <rect id="svgScreed" class="svg-screed-mass" x="10" y="40" width="180" height="90" fill="var(--rk-screed-concrete)" />
                    
                    <g id="svgBubbles" class="svg-bubbles" fill="#ffffff" opacity="0.4">
                        <circle cx="30" cy="60" r="3"/><circle cx="50" cy="110" r="4"/><circle cx="80" cy="50" r="2"/>
                        <circle cx="150" cy="70" r="5"/><circle cx="170" cy="100" r="3"/><circle cx="120" cy="115" r="4"/>
                        <circle cx="40" cy="80" r="2"/><circle cx="140" cy="50" r="3"/><circle cx="100" cy="120" r="2"/>
                    </g>

                    <circle cx="100" cy="90" r="22" fill="none" class="svg-air-gap" id="svgAirGap" stroke="#ffffff" stroke-width="4"/>
                    <circle cx="100" cy="90" r="16" fill="#ef4444" stroke="#b91c1c" stroke-width="2"/>
                    
                    <g id="svgHeatWaves" stroke="#ef4444">
                        <path class="svg-heat-wave anim-heat-slow" d="M 60 70 Q 60 40 60 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 100 60 Q 100 30 100 10" />
                        <path class="svg-heat-wave anim-heat-slow" d="M 140 70 Q 140 40 140 10" />
                    </g>
                </svg>
            </div>

            <div class="rk-screed-data-grid">
                <div class="rk-data-card">
                    <div class="rk-data-label">Przewodnictwo (&lambda;)</div>
                    <div class="rk-data-val" id="valLambda">1.2 <span class="rk-data-unit">W/(m&middot;K)</span></div>
                </div>
                <div class="rk-data-card">
                    <div class="rk-data-label">Otulenie Rury</div>
                    <div class="rk-data-val" id="valContact" style="color: var(--rk-screed-text); font-size: 20px;">Słabe (Izolator)</div>
                </div>
                <div class="rk-data-card card-full">
                    <div>
                        <div class="rk-data-label">Wpływ na pompę ciepła</div>
                        <div class="rk-data-val" id="valEffect" style="color: var(--rk-screed-text); font-size: 20px; display: block;">Wymaga wyższej o 3&deg;C Tz</div>
                    </div>
                    <div style="text-align: right;">
                        <div class="rk-data-label" style="color: var(--rk-screed-danger);" id="lblScop">Spadek SCOP</div>
                        <div class="rk-data-val" id="valScop" style="color: var(--rk-screed-danger);">Brak zysku</div>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-screed-content">
        <p>
            Wybór jastrychu to decyzja stricte inżynieryjna, a nie tylko kosmetyczna czy wykończeniowa. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-link">Jastrych anhydrytowy</a> posiada współczynnik przewodzenia ciepła &lambda; &approx; <strong>1,8&ndash;2,0 W/(m&middot;K)</strong>, podczas gdy dla tradycyjnego betonu z miksikreta wartość ta wynosi zaledwie <strong>1,1&ndash;1,2 W/(m&middot;K)</strong>.
        </p>

        <p>
            Dzięki płynnej, samopoziomującej konsystencji, anhydryt w 100% szczelnie otula rurę grzewczą. Eliminuje to puste mikropęcherzyki powietrza, które w betonie działają jak naturalny izolator hamujący przepływ energii. W efekcie, aby uzyskać tę samą temperaturę odczuwalną na powierzchni kafli, woda w układzie z anhydrytem może być o <strong>2&ndash;3&deg;C chłodniejsza</strong>. To z kolei przekłada się na mniejsze zużycie prądu i realny wzrost współczynnika SCOP pompy ciepła o około <strong>6&ndash;8%</strong>.
        </p>

        <div class="rk-alert-error">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Konsekwencje błędów wykonawczych
            </h4>
            <p>
                Wylanie zbyt grubej warstwy betonu (np. 10 cm, co często ma miejsce przy łataniu nierówności chudziaka) drastycznie zwiększa <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link">bezwładność cieplną</a>. System staje się ociężały, nie reaguje na chwilowe zyski słoneczne wpadające przez okna, co prowadzi do notorycznego przegrzewania pomieszczeń i ogromnych strat energii.
            </p>
        </div>
    </div>

    <div class="rk-screed-cta">
        <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-btn-screed">
            PRZECZYTAJ KOMPLETNY PRZEWODNIK O WYLEWKACH
            <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="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-screed-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // 2. Elementy DOM
    const btnBeton = document.getElementById('btnBeton');
    const btnAnhydryt = document.getElementById('btnAnhydryt');
    const pill = document.getElementById('screedPill');
    
    // SVG Elements
    const svgScreed = document.getElementById('svgScreed');
    const svgBubbles = document.getElementById('svgBubbles');
    const svgAirGap = document.getElementById('svgAirGap');
    const svgHeatWaves = document.querySelectorAll('.svg-heat-wave');
    
    // Data Elements
    const valLambda = document.getElementById('valLambda');
    const valContact = document.getElementById('valContact');
    const valEffect = document.getElementById('valEffect');
    const lblScop = document.getElementById('lblScop');
    const valScop = document.getElementById('valScop');

    // 3. Logika Przełączania
    function setScreedType(type) {
        if (type === 'beton') {
            // UI Toggle
            btnBeton.classList.add('active');
            btnAnhydryt.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBeton.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-concrete)';

            // SVG Update (Grubszy, z bąblami, powolne ciepło, air gap)
            svgScreed.setAttribute('fill', 'var(--rk-screed-concrete)');
            svgScreed.setAttribute('height', '90'); // Grubsza
            svgScreed.setAttribute('y', '40');
            svgBubbles.style.opacity = '0.4';
            svgAirGap.setAttribute('stroke-width', '4'); // Szpara powietrzna widoczna
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-slow';
                wave.setAttribute('stroke', '#f87171'); // Słabsze czerwone
            });

            // Data Update
            valLambda.innerHTML = '1.2 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'Słabe (Izolator)';
            valContact.style.color = 'var(--rk-screed-text)';
            valEffect.innerText = 'Wymaga wyższej o 3°C Tz';
            
            lblScop.innerText = 'Spadek efektywności';
            lblScop.style.color = 'var(--rk-screed-danger)';
            valScop.innerText = 'Brak zysku';
            valScop.style.color = 'var(--rk-screed-danger)';

        } else {
            // UI Toggle
            btnAnhydryt.classList.add('active');
            btnBeton.classList.remove('active');
            pill.style.transform = `translateX(${btnBeton.offsetWidth}px)`;
            pill.style.width = btnAnhydryt.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-screed-brand)';

            // SVG Update (Cieńszy, bez bąbli, szybkie ciepło, idealne otulenie)
            svgScreed.setAttribute('fill', 'var(--rk-screed-anhydrite)');
            svgScreed.setAttribute('height', '60'); // Cieńsza wylewka
            svgScreed.setAttribute('y', '70');
            svgBubbles.style.opacity = '0';
            svgAirGap.setAttribute('stroke-width', '0'); // Brak szpary powietrznej
            
            svgHeatWaves.forEach(wave => {
                wave.className.baseVal = 'svg-heat-wave anim-heat-fast';
                wave.setAttribute('stroke', '#ea580c'); // Intensywne pomarańczowe
            });

            // Data Update
            valLambda.innerHTML = '2.0 <span class="rk-data-unit">W/(m&middot;K)</span>';
            valContact.innerText = 'W 100% Idealne';
            valContact.style.color = 'var(--rk-screed-success)';
            valEffect.innerText = 'Obniża Tz o 2-3°C';
            
            lblScop.innerText = 'Zysk dla pompy ciepła';
            lblScop.style.color = 'var(--rk-screed-brand)';
            valScop.innerText = '+ 8% SCOP';
            valScop.style.color = 'var(--rk-screed-brand)';
        }
    }

    // Inicjalizacja wymiarów pigułki (fix na start)
    setTimeout(() => {
        pill.style.width = btnBeton.offsetWidth + 'px';
    }, 100);

    // Event Listeners
    btnBeton.addEventListener('click', () => setScreedType('beton'));
    btnAnhydryt.addEventListener('click', () => setScreedType('anhydryt'));
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #1e293b;
    --rk-err-brand: #ef4444; /* Czerwony - sygnalizacja błędu/ostrzeżenia */
    --rk-err-accent: #f87171;
    --rk-err-warn: #f59e0b;
    --rk-err-info: #3b82f6;
    --rk-err-bg: #f8fafc;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-border: #e2e8f0;
}

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

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

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

.rk-err-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-err-title span { color: var(--rk-err-accent); }

.rk-err-intro {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 20px 0 0 0;
    max-width: 800px;
}

/* Sekcja Kafelków */
.rk-err-interactive {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

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

/* Pojedynczy Kafelek */
.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    cursor: pointer;
}

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

.rk-err-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -5px rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.3);
}

.rk-err-card:hover::before {
    background: var(--rk-err-brand);
}

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

.rk-err-num {
    width: 36px;
    height: 36px;
    background: var(--rk-err-bg);
    color: var(--rk-err-muted);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.4s;
}

.rk-err-card:hover .rk-err-num {
    background: var(--rk-err-brand);
    color: #ffffff;
}

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

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

/* Wizualizacje SVG */
.rk-err-visual {
    background: var(--rk-err-dark);
    height: 140px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* 1. Strefy Brzegowe */
.anim-cold-draft { stroke-dasharray: 5 10; animation: dropDown 2s linear infinite; opacity: 0.2; }
.rk-err-card:hover .anim-cold-draft { opacity: 1; stroke: #3b82f6; }
@keyframes dropDown { to { stroke-dashoffset: -30; } }

/* 2. Zbyt długa pętla */
.anim-pump-fail { transform-origin: center; }
.rk-err-card:hover .anim-pump-fail { animation: shakeErr 0.4s ease-in-out infinite; fill: var(--rk-err-brand); }
.pipe-fail-gradient { transition: stop-color 0.5s; }
.rk-err-card:hover .pipe-fail-gradient { stop-color: #3b82f6; } 
@keyframes shakeErr { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } }

/* 3. EVOH Bariera */
.anim-o2 { opacity: 0; transform: translateY(10px); transition: all 0.5s; }
.rk-err-card:hover .anim-o2 { opacity: 1; transform: translateY(0); animation: floatUp 2s infinite alternate; }
.pipe-rust { transition: fill 1s; }
.rk-err-card:hover .pipe-rust { fill: #9a3412; }
@keyframes floatUp { to { transform: translateY(-15px); } }

/* 4. Dylatacje */
.anim-crack { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.8s ease-out; }
.rk-err-card:hover .anim-crack { stroke-dashoffset: 0; }
.anim-expand-l { transition: transform 0.8s; }
.anim-expand-r { transition: transform 0.8s; }
.rk-err-card:hover .anim-expand-l { transform: translateX(-5px); }
.rk-err-card:hover .anim-expand-r { transform: translateX(5px); }

/* 5. Zabudowa Stała */
.anim-heat-trap { opacity: 0.3; transition: all 0.8s; }
.rk-err-card:hover .anim-heat-trap { opacity: 1; fill: #b91c1c; }
.anim-bounce { stroke-dasharray: 4 4; animation: bounceBack 1.5s infinite; opacity: 0;}
.rk-err-card:hover .anim-bounce { opacity: 1; }
@keyframes bounceBack { 0% { stroke-dashoffset: 0; } 50% { stroke-dashoffset: -10; } 100% { stroke-dashoffset: 0; } }

/* 6. Brak Równoważenia (Nowy) */
.anim-flow-imbalance { stroke-dasharray: 10 10; animation: flowRun 1s linear infinite; }
@keyframes flowRun { to { stroke-dashoffset: -20; } }
.rk-err-card:hover .flow-cold { stroke: #1e293b; transition: stroke 0.5s; }

.rk-err-consequence {
    background: #fef2f2;
    color: #991b1b;
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    margin-top: 15px;
    border-left: 3px solid var(--rk-err-brand);
}

.rk-link {
    color: var(--rk-err-info);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

/* CTA */
.rk-err-cta {
    padding: 40px 50px;
    background: var(--rk-err-bg);
    text-align: center;
    border-top: 1px solid var(--rk-err-border);
}

.rk-btn-safe {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-err-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
}

.rk-btn-safe:hover {
    transform: translateY(-4px);
    background: #334155;
    box-shadow: 0 20px 35px -5px rgba(15, 23, 42, 0.5);
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Top 6 krytycznych błędów w projektach ogrzewania podłogowego",
    "description": "Lista najczęstszych błędów instalacyjnych: brak stref brzegowych, zbyt długie pętle, brak bariery EVOH, brak dylatacji, błędy zabudowy oraz brak równoważenia hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Zestawienie krytycznych błędów hydraulicznych i termicznych v2",
    "description": "Analiza skutków 6 najczęstszych pomyłek wykonawczych w systemach płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "błędy w ogrzewaniu podłogowym",
      "brak stref brzegowych",
      "rura bez bariery antydyfuzyjnej",
      "brak równoważenia podłogówki",
      "pękanie posadzki dylatacja"
    ],
    "measurementTechnique": "Wizualizacja procesów degradacji systemu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak stref brzegowych = wychłodzenie przy oknach.",
        "Zbyt długa pętla = brak przepływu.",
        "Rura bez EVOH = korozja pompy.",
        "Brak dylatacji = pękanie płytek.",
        "Zabudowa stała = uwięzienie ciepła.",
        "Brak równoważenia = zimne pokoje."
      ]
    }
  }
]
</script>

<div class="rk-err-container" id="rk-err-app">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Audyt Techniczny 2026
        </div>
        <h2 class="rk-err-title">Top 6 najczęstszych <span>błędów</span> w projektach</h2>
        <p class="rk-err-intro">Nawet najdroższa pompa ciepła nie zrekompensuje błędów popełnionych na etapie projektu i montażu. Poznaj 6 krytycznych pomyłek, które bezpowrotnie niszczą efektywność Twojego domu. Najedź na kafelek, aby zobaczyć fizykę problemu.</p>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">1</div>
                    <h3>Brak stref brzegowych</h3>
                </div>
                <p class="rk-err-desc">Niezagęszczenie rur pod oknami tarasowymi. Zimne powietrze swobodnie opada na podłogę bez bariery cieplnej.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="10" height="100" fill="#cbd5e1"/>
                        <rect x="30" y="20" width="40" height="80" fill="rgba(59, 130, 246, 0.2)" stroke="#3b82f6" stroke-width="2"/>
                        <circle cx="100" cy="115" r="5" fill="#f87171"/>
                        <circle cx="150" cy="115" r="5" fill="#f87171"/>
                        <path class="anim-cold-draft" d="M 60 100 Q 90 110 160 110" fill="none" stroke="#64748b" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: „Roszenie” szyb i chłód przy oknach. <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-link">Czytaj o strefach</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">2</div>
                    <h3>Zbyt długie pętle</h3>
                </div>
                <p class="rk-err-desc">Pętle powyżej 100m przy rurze 16mm generują opory, których pompa obiegowa nie jest w stanie pokonać.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <path d="M 20 100 L 20 40 A 10 10 0 0 1 40 40 L 40 100 A 10 10 0 0 0 60 100 L 60 40 A 10 10 0 0 1 80 40 L 80 100 A 10 10 0 0 0 100 100 L 100 40 A 10 10 0 0 1 120 40 L 120 100 A 10 10 0 0 0 140 100 L 140 40 A 10 10 0 0 1 160 40 L 160 100" fill="none" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="20" cy="115" r="15" fill="#334155" class="anim-pump-fail"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Zimna podłoga mimo pracy pompy. <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">Limity pętli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">3</div>
                    <h3>Brak bariery EVOH</h3>
                </div>
                <p class="rk-err-desc">Przenikanie tlenu przez ścianki rury powoduje rdzewienie wymienników ciepła i elementów PC.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="160" height="60" rx="10" fill="#38bdf8" class="pipe-rust"/>
                        <text x="80" y="25" fill="#94a3b8" font-size="12" font-weight="bold" class="anim-o2">O&sup2;</text>
                        <circle cx="50" cy="70" r="4" fill="#78350f" opacity="0.8"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Korozja i zapowietrzanie. <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/" class="rk-link">Znaczenie EVOH</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">4</div>
                    <h3>Brak dylatacji</h3>
                </div>
                <p class="rk-err-desc">Brak nacięć przy dużych powierzchniach uniemożliwia jastrychowi swobodną pracę termiczną.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-l"/>
                        <rect x="105" y="40" width="75" height="60" fill="#94a3b8" class="anim-expand-r"/>
                        <path d="M 95 30 L 100 60 L 90 80 L 105 110" fill="none" stroke="#ef4444" stroke-width="3" class="anim-crack"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Pękanie płytek i fug. <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">Zasady dylatacji</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">5</div>
                    <h3>Zabudowa Stała</h3>
                </div>
                <p class="rk-err-desc">Rury pod szafkami czy wyspami kuchennymi przegrzewają meble zamiast oddawać ciepło do pokoju.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="40" y="30" width="120" height="60" fill="#854d0e" rx="4"/>
                        <rect x="40" y="100" width="120" height="20" fill="#f87171" class="anim-heat-trap"/>
                        <path d="M 90 95 L 90 85 L 80 90" fill="none" stroke="#ef4444" stroke-width="2" class="anim-bounce"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Niszczenie mebli i strata energii. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/" class="rk-link">Wpływ mebli</a>.</div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-header">
                    <div class="rk-err-num">6</div>
                    <h3>Brak równoważenia</h3>
                </div>
                <p class="rk-err-desc">Brak nastaw na rotametrach rozdzielacza powoduje, że woda płynie tylko tam, gdzie ma najmniejszy opór.</p>
                <div class="rk-err-visual">
                    <svg class="rk-svg-box" viewBox="0 0 200 140">
                        <rect x="20" y="20" width="20" height="100" fill="#334155"/>
                        <path d="M 40 40 L 120 40 L 120 60 L 40 60" fill="none" stroke="#ef4444" stroke-width="6" class="anim-flow-imbalance"/>
                        <path d="M 40 80 L 170 80 L 170 100 L 40 100" fill="none" stroke="#64748b" stroke-width="6" class="flow-cold"/>
                    </svg>
                </div>
                <div class="rk-err-consequence">Skutek: Jeden pokój przegrzany, drugi lodowaty. <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">Rola rotametrów</a>.</div>
            </div>

        </div>
    </div>

    <div class="rk-err-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-safe">
            PROJEKTUJ Z EKSPERTAMI - UNIKNIJ BŁĘDÓW
            <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-err-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }
    const cards = document.querySelectorAll('.rk-err-card');
    cards.forEach(card => {
        card.addEventListener('touchstart', function() {
            this.classList.toggle('hovered'); 
        }, {passive: true});
    });
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --rk-inv-dark: #0f172a;
    --rk-inv-card: #1e293b;
    --rk-inv-brand: #10b981; /* Szmaragdowa zieleń - symbol oszczędności i zysku */
    --rk-inv-brand-light: #dcfce7;
    --rk-inv-accent: #3b82f6; /* Zaufany niebieski */
    --rk-inv-warn: #f59e0b;
    --rk-inv-danger: #ef4444; /* Czerwony - straty */
    --rk-inv-danger-light: #fee2e2;
    --rk-inv-bg: #f8fafc;
    --rk-inv-border: #e2e8f0;
    --rk-inv-text: #334155;
    --rk-inv-muted: #64748b;
}

.rk-inv-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

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

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

.rk-inv-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-inv-title span { color: var(--rk-inv-brand); }

/* Interaktywny Symulator Kosztów */
.rk-inv-interactive {
    padding: 40px 50px;
    background: var(--rk-inv-bg);
}

.rk-inv-toggle-wrap {
    display: flex;
    background: #e2e8f0;
    padding: 6px;
    border-radius: 16px;
    margin-bottom: 35px;
    position: relative;
}

.rk-inv-btn {
    flex: 1;
    padding: 18px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-inv-text);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-inv-pill {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    background: var(--rk-inv-danger);
    border-radius: 12px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

/* Grid layout dla wykresu i wyników */
.rk-inv-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 35px;
    align-items: center;
}

/* Animowany Wykres Słupkowy SVG */
.rk-inv-chart-box {
    background: #ffffff;
    border: 1px solid var(--rk-inv-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    height: 280px;
    display: flex;
    flex-direction: column;
}

.rk-chart-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-inv-muted);
    letter-spacing: 1px;
    text-align: center;
    margin-bottom: 15px;
}

.rk-svg-chart {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.svg-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.4s;
    rx: 6;
}

.svg-bar-label {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 800;
    fill: var(--rk-inv-muted);
    text-anchor: middle;
    transition: fill 0.4s;
}

.svg-bar-val {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 900;
    fill: var(--rk-inv-dark);
    text-anchor: middle;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Wynikowe */
.rk-inv-data-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-inv-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-inv-border);
    padding: 20px 25px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-inv-data-card.highlight {
    background: var(--rk-inv-danger-light);
    border-color: rgba(239, 68, 68, 0.4);
}

.rk-inv-data-info h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-inv-dark);
    text-transform: uppercase;
}

.rk-inv-data-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-inv-muted);
}

.rk-inv-data-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-inv-danger);
    transition: color 0.3s;
}

/* Treść Merytoryczna - Kafelki na Desktop i Mobile */
.rk-inv-content {
    padding: 45px 50px;
    background: #ffffff;
}

.rk-inv-intro {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-inv-text);
    margin-bottom: 30px;
}

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

.rk-b-card {
    background: var(--rk-inv-bg);
    border: 1px solid var(--rk-inv-border);
    border-top: 4px solid var(--rk-inv-brand);
    padding: 25px 20px;
    border-radius: 12px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-b-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
}

.rk-b-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
    color: var(--rk-inv-brand);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-b-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-inv-dark);
}

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

.rk-subsidies-box {
    background: #f0f9ff;
    border-left: 4px solid var(--rk-inv-accent);
    padding: 25px;
    border-radius: 0 12px 12px 0;
}

.rk-subsidies-box h3 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #0369a1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-subsidies-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #0c4a6e;
}

.rk-link {
    color: var(--rk-inv-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

/* CTA */
.rk-inv-cta {
    padding: 40px 50px;
    background: var(--rk-inv-bg);
    text-align: center;
    border-top: 1px solid var(--rk-inv-border);
}

.rk-btn-inv {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-inv-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-inv:hover {
    transform: translateY(-4px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-inv-header, .rk-inv-interactive, .rk-inv-content, .rk-inv-cta { padding: 30px 20px; }
    .rk-inv-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-benefit-cards { grid-template-columns: 1fr; } /* Kafelki pod sobą na mobile */
    .rk-inv-btn { font-size: 14px; padding: 12px; flex-direction: column; gap: 5px; }
    .rk-inv-title { font-size: 24px; }
    .rk-inv-data-card { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-inwestycja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Dlaczego warto zamówić profesjonalny projekt? Zwrot z inwestycji",
    "description": "Profesjonalny projekt podłogówki zapobiega przewymiarowaniu pompy ciepła, eliminuje odpady rur i jest niezbędny do uzyskania dotacji Czyste Powietrze.",
    "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/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-inwestycja",
    "name": "Kalkulacja redukcji kosztów inwestycyjnych (CAPEX)",
    "description": "Zestawienie obrazujące oszczędności wynikające z optymalizacji OZC i dokładnego trasowania rur względem montażu 'na oko'.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "cena projektu ogrzewania podłogowego",
      "dotacje czyste powietrze 2026 wymogi",
      "przewymiarowana pompa ciepła koszty",
      "ile rury na podłogówkę",
      "zwrot z inwestycji OZC"
    ],
    "measurementTechnique": "Szacowanie oszczędności na podstawie redukcji mocy znamionowej pompy ciepła (np. z 9kW na 6kW) oraz eliminacji zakupu nadwyżek materiałowych (rury, izolacja).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Oszczędność 3000-5000 PLN na różnicy w cenie urządzenia.",
        "Materiały Hydrauliczne: Oszczędność rzędu 15% dzięki dokładnemu zestawieniu z programu CAD.",
        "Formalności: Zgodność z audytami programów Moje Ciepło i Czyste Powietrze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-inwestycja",
    "name": "Symulator Redukcji Kosztów Inwestycyjnych",
    "description": "Interaktywny wykres słupkowy ilustrujący różnice w nakładach finansowych pomiędzy instalacją intuicyjną a projektowaną inżynieryjnie.",
    "applicationCategory": "FinancialApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-inv-container" id="rk-inv-app">
    <div class="rk-inv-header">
        <div class="rk-inv-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="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>
            Ekonomia i Opłacalność
        </div>
        <h2 class="rk-inv-title">Dlaczego profesjonalny projekt <span>zwraca się natychmiast?</span></h2>
    </div>

    <div class="rk-inv-interactive">
        
        <div class="rk-inv-toggle-wrap">
            <div class="rk-inv-pill" id="invPill"></div>
            <button class="rk-inv-btn active" data-type="bad" id="btnInvBad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Instalator "Na oko"
            </button>
            <button class="rk-inv-btn" data-type="good" id="btnInvGood">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Projekt Inżynierski
            </button>
        </div>

        <div class="rk-inv-grid">
            
            <div class="rk-inv-chart-box">
                <div class="rk-chart-title">Porównanie Kosztów (CAPEX)</div>
                <svg class="rk-svg-chart" viewBox="0 0 200 180">
                    <line x1="20" y1="30" x2="180" y2="30" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="80" x2="180" y2="80" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#e2e8f0" stroke-width="1" stroke-dasharray="2 2"/>
                    
                    <rect id="barHeatPump" class="svg-bar" x="40" y="30" width="45" height="100" fill="var(--rk-inv-danger)"/>
                    <text id="valHeatPumpSvg" class="svg-bar-val" x="62.5" y="22">32 k</text>
                    <text class="svg-bar-label" x="62.5" y="148">Pompa C.</text>

                    <rect id="barMaterials" class="svg-bar" x="115" y="60" width="45" height="70" fill="var(--rk-inv-warn)"/>
                    <text id="valMaterialsSvg" class="svg-bar-val" x="137.5" y="52">12 k</text>
                    <text class="svg-bar-label" x="137.5" y="148">Rury</text>
                    
                    <line x1="20" y1="130" x2="180" y2="130" stroke="#94a3b8" stroke-width="2" stroke-linecap="round"/>
                </svg>
            </div>

            <div class="rk-inv-data-group">
                <div class="rk-inv-data-card highlight" id="cardHp">
                    <div class="rk-inv-data-info">
                        <h4>Moc Pompy Ciepła</h4>
                        <p id="descHp">Przewymiarowana (np. 9 kW)</p>
                    </div>
                    <div class="rk-inv-data-val" id="valHpCost">32 000 zł</div>
                </div>
                
                <div class="rk-inv-data-card highlight" id="cardMat">
                    <div class="rk-inv-data-info">
                        <h4>Koszty Rur (Zapas)</h4>
                        <p id="descMat">Kupione "na górkę" + ścinki</p>
                    </div>
                    <div class="rk-inv-data-val" id="valMatCost">12 000 zł</div>
                </div>

                <div class="rk-inv-data-card" style="background: var(--rk-inv-dark); border-color: var(--rk-inv-dark);">
                    <div class="rk-inv-data-info">
                        <h4 style="color: #ffffff;">Bilans Inwestycji</h4>
                        <p style="color: #94a3b8;">Łączne koszty materiałowe</p>
                    </div>
                    <div class="rk-inv-data-val" id="valTotalCost" style="color: #ffffff;">44 000 zł</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-inv-content">
        <p class="rk-inv-intro">
            Profesjonalny projekt ogrzewania podłogowego to inwestycja, która zwraca się już w dniu wizyty w hurtowni instalacyjnej. Oszacowania "na oko" i przewymiarowywanie urządzeń z obawy przed niedogrzaniem to najdroższe błędy na budowie. Dzięki dokładnym wyliczeniom zyskujesz trzykrotnie:
        </p>

        <div class="rk-benefit-cards">
            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                </div>
                <h4>Zero Odpadów</h4>
                <p>Kupujesz dokładnie tyle <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/" class="rk-link">metrów rury grzewczej</a>, ile wynika z rzutu CAD, unikając zakupu drogich zwojów "na zapas".</p>
            </div>
            
            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                </div>
                <h4>Tańsza Pompa</h4>
                <p>Precyzyjne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> często wykazuje, że zamiast jednostki 9 kW, budynek obsłuży tańszy model 6 kW (oszczędność rzędu 4 000 PLN).</p>
            </div>

            <div class="rk-b-card">
                <div class="rk-b-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h4>Idealny Komfort</h4>
                <p>Zrównoważone pętle i zaplanowane nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-link">rotametrach</a> eliminują problem "zimnej sypialni".</p>
            </div>
        </div>

        <div class="rk-subsidies-box">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Wymogi formalne dotacji 2026
            </h3>
            <p>
                Kompletna dokumentacja projektowa zawiera szczegółowe rysunki z trasowaniem rur, tabele nastaw rozdzielaczy oraz profesjonalny wynik OZC. Posiadanie takich dokumentów jest prawnie wymagane podczas audytów technicznych, by uzyskać dofinansowanie z programów takich jak <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-a-dotacje-czyste-powietrze-i-moje-cieplo-2026/" class="rk-link">"Czyste Powietrze" czy "Moje Ciepło"</a>.
            </p>
        </div>
    </div>

    <div class="rk-inv-cta">
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-inv">
            ZAMÓW PROJEKT I ZACZNIJ OSZCZĘDZAĆ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-inv-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    // Elementy DOM
    const btnBad = document.getElementById('btnInvBad');
    const btnGood = document.getElementById('btnInvGood');
    const pill = document.getElementById('invPill');
    
    const barHp = document.getElementById('barHeatPump');
    const barMat = document.getElementById('barMaterials');
    const valHpSvg = document.getElementById('valHeatPumpSvg');
    const valMatSvg = document.getElementById('valMaterialsSvg');
    
    const cardHp = document.getElementById('cardHp');
    const descHp = document.getElementById('descHp');
    const valHpCost = document.getElementById('valHpCost');
    
    const cardMat = document.getElementById('cardMat');
    const descMat = document.getElementById('descMat');
    const valMatCost = document.getElementById('valMatCost');
    
    const valTotalCost = document.getElementById('valTotalCost');

    function setMode(mode) {
        if (mode === 'bad') {
            // UI Toggle
            btnBad.classList.add('active');
            btnGood.classList.remove('active');
            pill.style.transform = 'translateX(0)';
            pill.style.width = btnBad.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-danger)';

            // Animacja SVG Słupków (Wysokie koszty)
            barHp.setAttribute('y', '30');
            barHp.setAttribute('height', '100');
            barHp.style.fill = 'var(--rk-inv-danger)';
            valHpSvg.setAttribute('y', '22');
            valHpSvg.textContent = '32 k';

            barMat.setAttribute('y', '60');
            barMat.setAttribute('height', '70');
            barMat.style.fill = 'var(--rk-inv-warn)';
            valMatSvg.setAttribute('y', '52');
            valMatSvg.textContent = '12 k';

            // Animacja Kart HTML
            cardHp.classList.add('highlight');
            descHp.innerText = 'Przewymiarowana (np. 9 kW)';
            valHpCost.innerText = '32 000 zł';
            valHpCost.style.color = 'var(--rk-inv-danger)';

            cardMat.classList.add('highlight');
            descMat.innerText = 'Kupione "na górkę" + ścinki';
            valMatCost.innerText = '12 000 zł';
            valMatCost.style.color = 'var(--rk-inv-warn)';

            valTotalCost.innerText = '44 000 zł';

        } else {
            // UI Toggle
            btnGood.classList.add('active');
            btnBad.classList.remove('active');
            pill.style.transform = `translateX(${btnBad.offsetWidth}px)`;
            pill.style.width = btnGood.offsetWidth + 'px';
            pill.style.backgroundColor = 'var(--rk-inv-brand)';

            // Animacja SVG Słupków (Zoptymalizowane/niskie)
            barHp.setAttribute('y', '70');
            barHp.setAttribute('height', '60');
            barHp.style.fill = 'var(--rk-inv-brand)';
            valHpSvg.setAttribute('y', '62');
            valHpSvg.textContent = '28 k';

            barMat.setAttribute('y', '95');
            barMat.setAttribute('height', '35');
            barMat.style.fill = 'var(--rk-inv-brand)';
            valMatSvg.setAttribute('y', '87');
            valMatSvg.textContent = '9 k';

            // Animacja Kart HTML
            cardHp.classList.remove('highlight');
            descHp.innerText = 'Wyliczona z OZC (np. 6 kW)';
            valHpCost.innerText = '28 000 zł';
            valHpCost.style.color = 'var(--rk-inv-brand)';

            cardMat.classList.remove('highlight');
            descMat.innerText = 'Dokładna specyfikacja z rzutu CAD';
            valMatCost.innerText = '9 000 zł';
            valMatCost.style.color = 'var(--rk-inv-brand)';

            valTotalCost.innerText = '37 000 zł';
        }
    }

    // Inicjalizacja szerokości pigułki
    setTimeout(() => { pill.style.width = btnBad.offsetWidth + 'px'; }, 100);

    // Eventy
    btnBad.addEventListener('click', () => setMode('bad'));
    btnGood.addEventListener('click', () => setMode('good'));
});
</script>



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

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

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

.rk-expert-header-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 10s linear infinite;
}

@keyframes spinRing {
    100% { transform: rotate(360deg); }
}

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

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

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

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

.rk-expert-text a {
    color: var(--rk-quote-primary);
    text-decoration: underline;
    text-decoration-color: var(--rk-quote-accent);
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-expert-text a:hover {
    color: var(--rk-quote-accent);
}

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

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

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

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

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

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-data-val {
    display: block;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header-title { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Robert Kucharski: Instalatorskie 'na oko' to najdroższy system grzewczy świata",
    "description": "Ekspercka opinia na temat ryzyka łączenia pomp ciepła z instalacjami układanymi bez projektu OZC. Zobacz kluczowe parametry.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Instalatorskie 'na oko' to najdroższy system grzewczy świata. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak projektu OZC i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30 procent. Fizyki nie da się oszukać intuicją, a beton nie wybacza błędów.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-cytat",
    "name": "Eksperckie parametry graniczne dla pomp ciepła",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do skutecznej i taniej eksploatacji układu z rewersyjną pompą ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt OZC podłogówka",
      "rozstaw rur pompa ciepła cytat",
      "inżynier hvac robert kucharski",
      "taktowanie pompy ciepła",
      "przewymiarowana sprężarka skutki"
    ],
    "measurementTechnique": "Określenie krytycznych wartości brzegowych weryfikacji projektu instalacji przed wylaniem jastrychu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Max temperatura zasilania (Tz): 35 stopni Celsjusza",
        "Zalecany rozstaw pętli (środek): 10 cm",
        "Spadek COP pompy: ok. 2.5% na każdy podniesiony 1 stopień Celsjusza"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-cytat",
    "name": "Panel Analityczny: Weryfikacja parametrów OZC",
    "description": "Interaktywny interfejs wyświetlający twarde dane liczbowe i parametry graniczne wynikające z norm hydraulicznych przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <div class="rk-expert-header-title">Głos Inżyniera</div>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Ostrzeżenie przed "intuicją"
            </span>
            <p class="rk-expert-text">
                "Instalatorskie 'na oko' to <strong>najdroższy system grzewczy świata</strong>. Kiedy łączymy pompę ciepła z ogrzewaniem podłogowym, każdy centymetr rury i każdy stopień temperatury zasilania mają krytyczne znaczenie. Brak <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektu OZC</a> i zgadywanie rozstawów to gwarancja przewymiarowanej sprężarki, taktowania i rachunków wyższych o 30%. Fizyki nie da się oszukać intuicją, a <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylany beton</a> nie wybacza błędów."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń twarde dane projektowe
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-stat">
                        <span class="rk-data-val">Max 35&deg;C</span>
                        <span class="rk-data-lab">Temperatura (Tz)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">10 cm</span>
                        <span class="rk-data-lab">Optymalny rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">-2.5%</span>
                        <span class="rk-data-lab">Strata COP na 1&deg;C</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Maksymalna zalecana temperatura zasilania (Tz): 35°C</li>
                <li>Zalecany rozstaw pętli grzewczych: 10 cm</li>
                <li>Strata sprawności (COP): 2.5% na każdy podniesiony 1°C</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Brak nagłówków H-tag)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń dane projektowe <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń twarde dane projektowe <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-card: #1e293b;
    --rk-case-brand: #10b981; /* Szmaragdowy - wysoka wydajność */
    --rk-case-accent: #3b82f6; /* Niebieski - technologia */
    --rk-case-danger: #ef4444; /* Czerwony - straty */
    --rk-case-bg: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    --rk-case-muted: #64748b;
}

.rk-case-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.12);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

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

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-case-title span { color: var(--rk-case-brand); }

/* Kontener Interaktywny */
.rk-case-interactive {
    padding: 40px 50px;
    background: var(--rk-case-bg);
}

/* Selektor Wariantów */
.rk-case-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-tab {
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    padding: 20px 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-case-tab:hover {
    border-color: var(--rk-case-accent);
    transform: translateY(-2px);
}

.rk-case-tab.active {
    background: var(--rk-case-dark);
    border-color: var(--rk-case-brand);
    color: #ffffff;
}

.rk-tab-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 5px;
    opacity: 0.7;
}

.rk-tab-name {
    font-size: 15px;
    font-weight: 900;
}

/* Dashboard Wyników */
.rk-case-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 35px;
    align-items: center;
}

.rk-case-visual {
    background: var(--rk-case-dark);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
    border: 4px solid #334155;
    position: relative;
    height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-svg-dashboard {
    width: 100%;
    height: 100%;
}

/* Animacje słupków energii */
.svg-energy-bar {
    transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.3s;
}

.svg-text-val {
    font-family: 'Inter', sans-serif;
    font-weight: 900;
    fill: #ffffff;
    transition: y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Karty Szczegółów */
.rk-case-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 20px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-data-info h4 {
    margin: 0 0 4px 0;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-case-muted);
}

.rk-data-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-case-text);
    font-weight: 700;
}

.rk-data-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-savings-highlight {
    background: var(--rk-case-brand);
    color: #ffffff;
    padding: 20px;
    border-radius: 16px;
    text-align: center;
}

.rk-savings-label { font-size: 12px; font-weight: 800; text-transform: uppercase; opacity: 0.9; margin-bottom: 5px; }
.rk-savings-val { font-size: 32px; font-weight: 900; }

/* Sekcja Treści */
.rk-case-content {
    padding: 45px 50px;
}

.rk-case-content h3 { font-size: 22px; font-weight: 900; color: var(--rk-case-dark); margin: 0 0 20px 0; }
.rk-case-content p { font-size: 16px; line-height: 1.8; color: var(--rk-case-text); margin-bottom: 20px; }
.rk-case-content strong { font-weight: 800; color: var(--rk-case-dark); }

.rk-check-list { list-style: none; padding: 0; margin: 25px 0; }
.rk-check-list li { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; font-size: 15px; }
.rk-check-icon { color: var(--rk-case-brand); flex-shrink: 0; margin-top: 3px; }

.rk-link { color: var(--rk-case-accent); font-weight: 700; text-decoration: none; border-bottom: 1px dashed rgba(59, 130, 246, 0.4); transition: all 0.3s; }
.rk-link:hover { border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-interactive, .rk-case-content { padding: 30px 20px; }
    .rk-case-tabs { grid-template-columns: 1fr; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-case-title { font-size: 22px; }
    .rk-data-card { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Case Study: Optymalizacja temperatury zasilania a oszczędności energii",
    "description": "Analiza rzeczywistego projektu domu 145 m2 w Warszawie. Dowiedz się, jak zmiana temperatury zasilania z 35 na 30 stopni Celsjusza obniża zużycie prądu.",
    "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/"
    },
    "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-02-08",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-case-study",
    "name": "Porównanie efektywności systemów grzewczych (SCOP)",
    "description": "Dane techniczne zużycia energii elektrycznej (kWh/rok) dla trzech wariantów instalacji w domu o obciążeniu 8 kW.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
        "SCOP pompy ciepła podłogówka",
        "zużycie prądu pompa ciepła dom 150m2",
        "projektowanie podłogówki 10 cm rozstaw",
        "oszczędności na ogrzewaniu podłogowym",
        "jastrych anhydrytowy wydajność"
    ],
    "measurementTechnique": "Symulacja rocznego zapotrzebowania na energię końcową na podstawie wskaźnika SCOP dla różnych parametrów zasilania (55stC, 40stC, 30stC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant A: Grzejniki (55stC), Zużycie 8500 kWh/rok, SCOP 2.8.",
        "Wariant B: Podłogówka 15cm (40stC), Zużycie 6600 kWh/rok, SCOP 3.6.",
        "Wariant C: Podłogówka Opti 10cm (30stC), Zużycie 5400 kWh/rok, SCOP 4.4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-case-study",
    "name": "Kalkulator Oszczędności Termo-Modernizacyjnych",
    "description": "Interaktywny symulator porównujący koszty eksploatacji pompy ciepła w zależności od gęstości ułożenia rur grzewczych i rodzaju wylewki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Analiza Rzeczywista: Dom 145 m&sup2;
        </div>
        <h2 class="rk-case-title">Case Study: Jak <span>-1200 PLN</span> rocznie zostaje w Twoim portfelu?</h2>
    </div>

    <div class="rk-case-interactive">
        <div class="rk-case-tabs">
            <div class="rk-case-tab" data-variant="A">
                <span class="rk-tab-label">Wariant A</span>
                <span class="rk-tab-name">Grzejniki (55&deg;C)</span>
            </div>
            <div class="rk-case-tab" data-variant="B">
                <span class="rk-tab-label">Wariant B</span>
                <span class="rk-tab-name">Podłogówka (15cm)</span>
            </div>
            <div class="rk-case-tab active" data-variant="C">
                <span class="rk-tab-label">Wariant C</span>
                <span class="rk-tab-name">Projekt RK (10cm)</span>
            </div>
        </div>

        <div class="rk-case-grid">
            <div class="rk-case-visual">
                <div style="color: #94a3b8; font-size: 11px; font-weight: 800; text-transform: uppercase; margin-bottom: 15px; letter-spacing: 1px;">Roczne zużycie energii (kWh)</div>
                <svg class="rk-svg-dashboard" viewBox="0 0 200 180">
                    <line x1="20" y1="150" x2="180" y2="150" stroke="#475569" stroke-width="2"/>
                    <rect id="barEnergy" class="svg-energy-bar" x="70" y="40" width="60" height="110" fill="var(--rk-case-brand)"/>
                    <text id="textEnergy" class="svg-text-val" x="100" y="30" text-anchor="middle" font-size="16">5400</text>
                    <text x="100" y="170" text-anchor="middle" fill="#94a3b8" font-size="10" font-weight="800">kWh / ROK</text>
                </svg>
            </div>

            <div class="rk-case-data">
                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Współczynnik SCOP</h4>
                        <p id="descScop">Zoptymalizowana sprawność</p>
                    </div>
                    <div class="rk-data-val" id="valScop">4.4</div>
                </div>

                <div class="rk-data-card">
                    <div class="rk-data-info">
                        <h4>Parametr Zasilania</h4>
                        <p id="descTemp">Zasilanie niskotemperaturowe</p>
                    </div>
                    <div class="rk-data-val" id="valTemp">30&deg;C</div>
                </div>

                <div class="rk-savings-highlight">
                    <div class="rk-savings-label">Zysk roczny względem standardu</div>
                    <div class="rk-savings-val" id="valSavings">1 200 PLN</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-content">
        <h3>Precyzyjny projekt to czysta matematyka oszczędności</h3>
        <p>
            W październiku 2025 roku, realizując projekt dla Pani Anny w Warszawie (nowoczesny dom szkieletowy o powierzchni 145 m&sup2;, spełniający standardy WT 2021), udowodniliśmy, że inżynieryjne podejście do instalacji bije na głowę tradycyjne wykonawstwo. Rozważyliśmy budynek o realnym obciążeniu cieplnym <strong>8 kW</strong> (przy temperaturze obliczeniowej -20&deg;C).
        </p>

        <ul class="rk-check-list">
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant A (Najdroższy):</strong> System oparty na grzejnikach wymusza temperaturę 55&deg;C. SCOP spada do 2,8, co generuje rachunek za 8500 kWh prądu rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span><strong>Wariant B (Standardowy):</strong> Podłogówka układana "na oko" (rozstaw 15 cm) wymaga 40&deg;C. SCOP wynosi 3,6 przy zużyciu 6600 kWh rocznie.</span>
            </li>
            <li>
                <svg class="rk-check-icon" 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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                <span><strong>Wariant C (Zoptymalizowany RK):</strong> Gęsty <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-link">rozstaw rur co 10 cm</a> oraz jastrych anhydrytowy pozwoliły obniżyć Tz do 30&ndash;32&deg;C. SCOP wzrósł do <strong>4,4</strong>, redukując zużycie do 5400 kWh.</span>
            </li>
        </ul>

        <p>
            Różnica między wariantem B a C to aż <strong>1200 kWh rocznie</strong>. Przy obecnej rynkowej cenie energii elektrycznej (1 PLN/kWh), inwestorka oszczędza 1200 PLN każdego roku. Dodatkowy koszt rur i profesjonalnego projektu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a> zwraca się całkowicie już po 3 latach eksploatacji, a przez kolejne 20 lat instalacja generuje czysty zysk.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-case-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const tabs = document.querySelectorAll('.rk-case-tab');
    const barEnergy = document.getElementById('barEnergy');
    const textEnergy = document.getElementById('textEnergy');
    const valScop = document.getElementById('valScop');
    const valTemp = document.getElementById('valTemp');
    const valSavings = document.getElementById('valSavings');
    const descScop = document.getElementById('descScop');
    const descTemp = document.getElementById('descTemp');

    const data = {
        'A': { energy: 8500, scop: '2.8', temp: '55°C', savings: '- 1 900 zł', color: '#ef4444', dS: 'Niska wydajność PC', dT: 'Wysoki parametr' },
        'B': { energy: 6600, scop: '3.6', temp: '40°C', savings: '0 PLN', color: '#f59e0b', dS: 'Wydajność standardowa', dT: 'Parametr średni' },
        'C': { energy: 5400, scop: '4.4', temp: '30°C', savings: '+ 1 200 zł', color: '#10b981', dS: 'Zoptymalizowana sprawność', dT: 'Zasilanie niskotemperaturowe' }
    };

    function updateVariant(v) {
        tabs.forEach(t => t.classList.remove('active'));
        document.querySelector(`.rk-case-tab[data-variant="${v}"]`).classList.add('active');

        const d = data[v];
        
        // Animacja Słupka (max energy 8500 -> height 130px)
        const h = (d.energy / 8500) * 130;
        barEnergy.setAttribute('height', h);
        barEnergy.setAttribute('y', 150 - h);
        barEnergy.setAttribute('fill', d.color);
        
        textEnergy.textContent = d.energy;
        textEnergy.setAttribute('y', 140 - h);
        textEnergy.style.fill = d.color;

        // Dane tekstowe
        valScop.innerText = d.scop;
        valScop.style.color = d.color;
        valTemp.innerText = d.temp;
        valSavings.innerText = d.savings;
        
        descScop.innerText = d.dS;
        descTemp.innerText = d.dT;
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', () => updateVariant(tab.getAttribute('data-variant')));
    });

    // Start na wariancie C
    updateVariant('C');
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5; /* Eksperckie Indygo */
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4; /* Cyjan dla kontrastu */
    --rk-faq-success: #10b981;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #a5b4fc;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(165, 180, 252, 0.3);
}

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq-title span { color: #818cf8; }

/* Sekcja Akordeonu */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

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

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
}

/* Przycisk Pytania */
.rk-faq-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-brand-light);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-brand);
    color: #ffffff;
}

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

.rk-faq-item.active .rk-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi (Animacja Grid) */
.rk-faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: center;
}

.rk-faq-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-faq-text);
}

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

.rk-link {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #3730a3;
    border-bottom-style: solid;
}

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
}

.rk-svg-box {
    width: 100%;
    height: 100%;
}

/* Animacje SVG zależne od .active w rodzicu */

/* 1. Pompa + Podłogówka */
.anim-heat-rise { stroke-dasharray: 6 12; animation: heatRise 2s linear infinite; opacity: 0; }
.rk-faq-item.active .anim-heat-rise { opacity: 1; stroke: #ef4444; }
@keyframes heatRise { to { stroke-dashoffset: -36; } }

/* 2. Pogodówka (Krzywa) */
.anim-curve { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s 0.3s ease-out; }
.rk-faq-item.active .anim-curve { stroke-dashoffset: 0; }
.anim-weather-sun { animation: spinSun 10s linear infinite; transform-origin: 25px 25px; }
@keyframes spinSun { to { transform: rotate(360deg); } }

/* 3. Rozstaw 10cm */
.anim-pipe-close { transition: transform 0.8s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-faq-item.active .pipe-top { transform: translateY(15px); }
.rk-faq-item.active .pipe-bot { transform: translateY(-15px); }

/* 4. Bufor (Defrost) */
.anim-defrost { opacity: 0; transition: opacity 0.5s 0.5s; }
.rk-faq-item.active .anim-defrost { opacity: 1; animation: pulseBlue 2s infinite alternate; }
@keyframes pulseBlue { from { fill: #3b82f6; } to { fill: #93c5fd; } }

/* 5. Wylewka Anhydryt */
.anim-liquid { transform: scaleY(0); transform-origin: bottom; transition: transform 1s 0.3s ease-out; }
.rk-faq-item.active .anim-liquid { transform: scaleY(1); }

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-interactive { padding: 30px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq-visual { height: 120px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-faq-question { font-size: 14px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o ogrzewanie podłogowe i pompy ciepła",
    "description": "Eksperckie odpowiedzi na pytania dotyczące rozstawu rur, buforów ciepła, sterowania pokojowego i doboru wylewki przy pompie ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to rozwiązanie wręcz idealne. Pompa inwerterowa osiąga najwyższą sprawność (COP) zasilając instalację niskotemperaturową na poziomie 30-35 stopni Celsjusza. Połączenie to gwarantuje najniższe rachunki i pełny komfort."
        }
      },
      {
        "@type": "Question",
        "name": "Czy mogę sterować każdym pokojem osobno przy pompie ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jest to technicznie możliwe, ale w nowoczesnych domach odradzane. Lepszym wyborem jest sterowanie pogodowe. Szybkie zamykanie pętli przez siłowniki termoelektryczne zaburza przepływy masowe i powoduje tzw. taktowanie sprężarki."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla pomp ciepła bezwzględnym standardem projektowym jest 10 cm. Zagęszczenie rur pozwala na drastyczne obniżenie temperatury zasilania do 30°C, co maksymalizuje wskaźnik COP. W strefach brzegowych pod oknami stosuje się rozstaw 5-7,5 cm."
        }
      },
      {
        "@type": "Question",
        "name": "Czy potrzebuję bufora ciepła, jeśli mam tylko ogrzewanie podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie do magazynowania ciepła (tę rolę pełni wylewka), ale niewielki bufor na powrocie (15-20 litrów/kW) gwarantuje zład wody wymagany do procesu bezpiecznego odszraniania (defrostu) parownika zewnętrznego zimą."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka wylewka jest optymalna do podłogówki z pompą ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepszym wyborem jest jastrych anhydrytowy. Posiada prawie dwukrotnie lepszy współczynnik przewodzenia ciepła niż beton z miksokreta (ok. 1,8-2,0 W/mK) i idealnie, płynnie otula rury grzewcze bez pozostawiania pustek powietrznych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-faq",
    "name": "Baza Wiedzy: Parametry operacyjne instalacji niskotemperaturowych",
    "description": "Zbiór kluczowych pytań i odpowiedzi inwestorskich dotyczących optymalizacji parametrów fizycznych dla systemów ogrzewania płaszczyznowego współpracujących z OZE.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny",
    "description": "Aplikacja edukacyjna w formie akordeonu ze zintegrowanymi animacjami SVG ułatwiająca wizualizację procesów hydraulicznych i termicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Czy pompa ciepła poradzi sobie z ogrzaniem domu tylko podłogówką?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Tak, jest to rozwiązanie <strong>wręcz idealne</strong>. <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-link">Pompa ciepła pracuje najwydajniej</a> przy bardzo niskich temperaturach (30&ndash;35&deg;C na zasilaniu), które są standardem i wymogiem dla komfortowego ogrzewania podłogowego. Brak tradycyjnych kaloryferów oznacza brak konieczności podnoszenia temperatury do 50&deg;C, co drastycznie tnie rachunki za prąd.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="50" width="60" height="10" fill="#64748b" rx="2"/>
                                    <path class="anim-heat-rise" d="M 30 50 L 30 10 M 50 50 L 50 10 M 70 50 L 70 10" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <rect x="10" y="20" width="15" height="30" fill="#3b82f6" rx="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy mogę sterować każdym pokojem osobno przy pompie ciepła?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Można, ale w nowoczesnych domach inżynieryjnie <strong>zdecydowanie lepiej sprawdza się</strong> tzw. autoadaptacja lub <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/" class="rk-link">sterowanie pogodowe (krzywa grzewcza)</a>. Wylewka betonowa ma ogromną bezwładność. Szybkie odcinanie <a href="https://projekt-ogrzewania.pl/petla-grzewcza/" class="rk-link">pętli</a> przez zamykanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/" class="rk-link">siłowników termoelektrycznych</a> powoduje zadławienia układu i niszczące dla kompresora taktowanie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <g class="anim-weather-sun"><circle cx="25" cy="25" r="8" fill="#eab308"/><path d="M 25 10 L 25 15 M 25 35 L 25 40 M 10 25 L 15 25 M 35 25 L 40 25" stroke="#eab308" stroke-width="2" stroke-linecap="round"/></g>
                                    <path d="M 20 60 L 90 60 M 20 60 L 20 10" stroke="#475569" stroke-width="2"/>
                                    <path class="anim-curve" d="M 20 50 Q 50 40 90 15" fill="none" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Jaki rozstaw rur jest najlepszy: 10 cm czy 15 cm?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Dla pomp ciepła <strong>standardem jest 10 cm</strong>. Zagęszczenie ułożenia pozwala na sztuczne "powiększenie" grzejnika, jakim jest podłoga, co z kolei pozwala obniżyć temperaturę zasilania na kotłowni do 30&deg;C. To drastycznie poprawia współczynnik COP w porównaniu do rozstawu 15 cm (zysk rzędu kilkunastu procent oszczędności rocznie). Przy dużych oknach stosuje się 5-7,5 cm (<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-link">strefa brzegowa</a>).
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="20" y1="10" x2="80" y2="10" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-top" x1="20" y1="20" x2="80" y2="20" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="40" x2="80" y2="40" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line class="anim-pipe-close pipe-bot" x1="20" y1="60" x2="80" y2="60" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                    <line x1="20" y1="70" x2="80" y2="70" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Czy potrzebuję bufora, jeśli mam tylko podłogówkę?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                System ogrzewania podłogowego sam w sobie to wielki magazyn ciepła, więc <strong>duży bufor nie jest wymagany</strong>. Jednak ze względów bezpieczeństwa hydraulicznego, zaleca się stosowanie niewielkiego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-link">bufora szeregowego na powrocie</a> (ok. 15-20 litrów na kW). Zabezpiecza to pompę, dostarczając zład wody niezbędny do procesu odszraniania (defrostu) urządzenia z lodu.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 20 L 80 20 M 20 50 L 50 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                    <rect x="50" y="35" width="20" height="30" fill="#334155" rx="4"/>
                                    <rect x="52" y="37" width="16" height="26" class="anim-defrost" fill="#3b82f6" rx="2"/>
                                    <path d="M 70 50 L 80 50" fill="none" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jakie wylewki są najlepsze pod pompę ciepła?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Inżynieryjnie najlepszym wyborem jest <strong>jastrych anhydrytowy</strong>. Posiada on wyższy współczynnik przewodzenia ciepła niż beton z miksokreta. Co ważniejsze, jego płynna konsystencja <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">szczelnie otula rury</a>, eliminując puste komory powietrzne, które działają jak izolator. Dzięki temu instalacja nagrzewa się szybciej i może pracować na niższych parametrach.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="10" y="50" width="80" height="15" fill="#475569" rx="2"/>
                                    <circle cx="30" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="50" cy="50" r="6" fill="#ef4444"/>
                                    <circle cx="70" cy="50" r="6" fill="#ef4444"/>
                                    <rect class="anim-liquid" x="10" y="20" width="80" height="30" fill="#fcd34d" opacity="0.8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-faq-app').innerHTML = '<div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900;">BŁĄD LICENCJI: KOD NALEŻY DO PROJEKT-OGRZEWANIA.PL</div>';
        return;
    }

    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            faqItems.forEach(i => i.classList.remove('active'));
            
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-pmp-dark: #0f172a;
    --rk-pmp-primary: #2563eb;
    --rk-pmp-light: #eff6ff;
    --rk-pmp-accent: #f59e0b;
    --rk-pmp-success: #10b981;
    --rk-pmp-success-bg: #d1fae5;
    --rk-pmp-danger: #ef4444;
    --rk-pmp-danger-bg: #fee2e2;
    --rk-pmp-gray: #64748b;
    --rk-pmp-border: #e2e8f0;
    --rk-pmp-bg: #ffffff;
}

.rk-pmp-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-pmp-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(37, 99, 235, 0.15);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-pmp-header {
    padding: 50px 40px;
    background: radial-gradient(circle at top right, #1e293b, var(--rk-pmp-dark));
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-pmp-primary);
}

.rk-pmp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    padding: 8px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-pmp-quote {
    font-size: 24px;
    font-weight: 800;
    line-height: 1.5;
    color: #ffffff;
    max-width: 750px;
    margin: 0 auto 20px auto;
}

.rk-pmp-quote span {
    color: var(--rk-pmp-accent);
}

/* Interaktywny Symulator Kosztów */
.rk-pmp-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-pmp-sim-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-pmp-sim-header h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-pmp-dark);
    margin: 0 0 10px 0;
}

.rk-pmp-sim-header p {
    color: var(--rk-pmp-gray);
    font-size: 15px;
    margin: 0;
}

/* Suwak (Slider) */
.rk-pmp-slider-box {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-pmp-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    margin-bottom: 30px;
}

.rk-pmp-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-weight: 700;
    font-size: 14px;
}

.rk-pmp-label-left { color: var(--rk-pmp-danger); }
.rk-pmp-label-right { color: var(--rk-pmp-success); }

.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, var(--rk-pmp-danger) 0%, #cbd5e1 50%, var(--rk-pmp-success) 100%);
    outline: none;
    transition: opacity .2s;
    cursor: pointer;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pmp-primary);
    cursor: grab;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
    transition: transform 0.2s;
}

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

/* Wynik symulacji */
.rk-pmp-result-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

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

.rk-pmp-data-value {
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    margin: 10px 0;
    transition: color 0.3s;
}

.rk-pmp-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-pmp-gray);
}

.rk-pmp-svg-container {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-pmp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}

/* SVG Animations */
.pipe-path {
    fill: none;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke 0.5s, stroke-dashoffset 0.5s;
}

.thermometer-fill {
    transition: height 0.5s, y 0.5s, fill 0.5s;
}

/* Treść podsumowania */
.rk-pmp-content {
    padding: 40px 50px;
    background: #ffffff;
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

.rk-pmp-content p {
    margin-bottom: 20px;
}

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

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

.rk-pmp-content a:hover {
    border-color: var(--rk-pmp-primary);
}

/* CTA */
.rk-pmp-cta {
    padding: 40px 50px;
    background: var(--rk-pmp-light);
    text-align: center;
    border-top: 1px solid var(--rk-pmp-border);
}

.rk-btn-hero {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-pmp-dark);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 22px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-hero:hover {
    transform: translateY(-4px);
    background: var(--rk-pmp-primary);
    box-shadow: 0 20px 35px -5px rgba(37, 99, 235, 0.5);
}

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

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

@media (max-width: 768px) {
    .rk-pmp-header, .rk-pmp-interactive, .rk-pmp-content, .rk-pmp-cta { padding: 30px 20px; }
    .rk-pmp-result-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-pmp-quote { font-size: 20px; }
    .rk-btn-hero { width: 100%; padding: 18px 20px; font-size: 15px; justify-content: center; }
    .rk-pmp-data-value { font-size: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Podsumowanie: Projekt podłogówki to fundament wydajności pompy ciepła",
    "description": "Zakończenie analizy inżynieryjnej: dlaczego optymalizacja hydrauliki, rozstawu rur i bezwładności termicznej jest kluczem do niskich rachunków w domach z pompą ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-koszty",
    "name": "Porównanie kosztów eksploatacji pompy ciepła: Montaż standardowy vs Inżynieryjny (2026)",
    "description": "Zestawienie obrazujące wpływ jakości projektu ogrzewania podłogowego (rozstaw rur, obliczenia OZC) na ostateczny rachunek za prąd przy użyciu pompy ciepła w sezonie zimowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania dom z pompą ciepła",
      "oszczędności na pompie ciepła",
      "rozstaw rur a COP",
      "rachunki za ogrzewanie 2026",
      "projekt ogrzewania podłogowego ROI"
    ],
    "measurementTechnique": "Kalkulacja kosztów miesięcznych na podstawie symulacji zużycia prądu (COP) względem temperatury zasilania narzuconej przez parametry hydrauliczne podłogówki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż 'na oko' (Rozstaw 15 cm, Tz 40°C): Rachunek ok. 750 PLN / mc. Niska sprawność.",
        "Projekt Optymalny (Rozstaw 10 cm, Tz 30°C, obliczone OZC): Rachunek ok. 250 PLN / mc. Wysoka sprawność."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-symulator",
    "name": "Symulator Rachunków: Wpływ Projektu na Pompę Ciepła",
    "description": "Interaktywny suwak demonstrujący, jak przejście od amatorskiego układania rur do profesjonalnego projektu OZC drastycznie obniża temperaturę zasilania (Tz) i redukuje miesięczne koszty prądu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pmp-container" id="rk-pmp-sum-app">
    <div class="rk-pmp-header">
        <div class="rk-pmp-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Podsumowanie Eksperckie
        </div>
        <h2 class="rk-pmp-quote">
            "Pompa ciepła jest <span>tylko tak dobra</span>, jak instalacja podłogowa, którą zasila."
        </h2>
    </div>

    <div class="rk-pmp-interactive">
        <div class="rk-pmp-sim-header">
            <h3>Symulator COP i Rachunków</h3>
            <p>Przesuń suwak, aby zobaczyć, jak brak obliczeń niszczy portfel inwestora.</p>
        </div>

        <div class="rk-pmp-slider-box">
            <div class="rk-pmp-labels">
                <span class="rk-pmp-label-left">Montaż "na oko" (bez projektu)</span>
                <span class="rk-pmp-label-right">Projekt Inżynierski (OZC)</span>
            </div>
            <input type="range" min="0" max="100" value="100" class="rk-range-slider" id="rkSimSlider">
        </div>

        <div class="rk-pmp-result-grid">
            <div class="rk-pmp-data-card" id="rkDataCard">
                <div class="rk-pmp-data-label">Szacowany koszt miesięczny</div>
                <div class="rk-pmp-data-value" id="rkCostVal">250 PLN</div>
                <div class="rk-pmp-data-label" style="margin-top: 15px; color: #94a3b8;">Temp. Zasilania (Tz)</div>
                <div style="font-size: 20px; font-weight: 800; color: var(--rk-pmp-dark);" id="rkTzVal">30°C</div>
            </div>

            <div class="rk-pmp-svg-container">
                <svg width="100%" height="150" viewBox="0 0 300 150">
                    <rect x="20" y="20" width="20" height="100" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect id="svgThermo" class="thermometer-fill" x="22" y="90" width="16" height="28" rx="8" fill="var(--rk-pmp-success)"/>
                    <circle cx="30" cy="120" r="15" fill="inherit" id="svgThermoBase" style="fill: var(--rk-pmp-success); transition: fill 0.5s;"/>
                    
                    <path id="svgPipe" class="pipe-path" d="M80 120 L80 40 A10 10 0 0 1 100 40 L100 120 A10 10 0 0 0 120 120 L120 40 A10 10 0 0 1 140 40 L140 120 A10 10 0 0 0 160 120 L160 40 A10 10 0 0 1 180 40 L180 120 A10 10 0 0 0 200 120 L200 40 A10 10 0 0 1 220 40 L220 120 A10 10 0 0 0 240 120 L240 40" stroke="var(--rk-pmp-success)" />
                    
                    <circle cx="260" cy="80" r="25" fill="none" stroke="var(--rk-pmp-dark)" stroke-width="4"/>
                    <polygon points="255,65 275,80 255,95" fill="var(--rk-pmp-dark)"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-pmp-content">
        <p>
            Prawidłowy projekt ogrzewania podłogowego z pompą ciepła to fundament nowoczesnego, energooszczędnego budynku. Jeśli zlekceważysz fazę inżynieryjną, zgadując długości pętli i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">zakładając uniwersalny rozstaw rur (np. co 15 cm)</a>, zniwelujesz cały zysk technologiczny nowoczesnej sprężarki inwerterowej. Zbyt rzadko ułożone rury i niepoliczone przepływy wymuszą podniesienie temperatury zasilania.
        </p>
        <p>
            <strong>Optymalna hydraulika instalacji</strong>, minimalne opory liniowe (krótkie pętle do 80-90 m) oraz maksymalna powierzchnia wymiany ciepła (zagęszczony układ w oparciu o wyliczenia z OZC) to jedyna techniczna droga, aby utrzymać <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania domu na poziomie 200–300 PLN miesięcznie</a> w środku zimy.
        </p>
    </div>

    <div class="rk-pmp-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-hero">
            ODKRYJ BAZĘ WIEDZY O POMPACH CIEPŁA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków HX w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-pmp-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 30px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 48px; margin-bottom: 20px;">⚠️</div>
                    <div style="font-size: 22px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Licencji Kodu</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 600px; margin: 0 auto; line-height: 1.7;">
                        Ten komponent interaktywny oraz zintegrowane dane JSON-LD stanowią własność intelektualną serwisu <strong>Projekt-Ogrzewania.pl</strong>. Uruchamianie skryptu na nieautoryzowanej domenie zostało zablokowane ze względów bezpieczeństwa.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Slider)
    const slider = document.getElementById('rkSimSlider');
    const costVal = document.getElementById('rkCostVal');
    const tzVal = document.getElementById('rkTzVal');
    const card = document.getElementById('rkDataCard');
    const pipe = document.getElementById('svgPipe');
    const thermo = document.getElementById('svgThermo');
    const thermoBase = document.getElementById('svgThermoBase');

    function updateSimulation(value) {
        // Obliczenia interpolowane
        // value: 0 (Na oko) -> 100 (Projekt OZC)
        const invertVal = 100 - value; // 100 to na oko, 0 to OZC
        
        // Koszty: od 250 PLN (pro) do 750 PLN (amator)
        const cost = 250 + (invertVal * 5); 
        
        // Tz: od 30°C do 42°C
        const tz = 30 + (invertVal * 0.12);

        // Aktualizacja DOM
        costVal.innerText = Math.round(cost) + ' PLN';
        tzVal.innerText = tz.toFixed(1) + '°C';

        // Wizualizacja kolorów i wysokości termometru
        let colorStr = '';
        let borderColor = '';
        let thermoHeight = 28; // Min height
        let thermoY = 90; // Start Y

        if (value >= 70) {
            // Stan idealny (Zielony)
            colorStr = 'var(--rk-pmp-success)';
            borderColor = 'var(--rk-pmp-success)';
            card.style.borderColor = 'var(--rk-pmp-success)';
            card.style.backgroundColor = 'var(--rk-pmp-success-bg)';
            costVal.style.color = 'var(--rk-pmp-success)';
            thermoHeight = 30;
            thermoY = 88;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else if (value >= 40) {
            // Stan średni (Pomarańczowy)
            colorStr = 'var(--rk-pmp-accent)';
            borderColor = 'var(--rk-pmp-accent)';
            card.style.borderColor = 'var(--rk-pmp-accent)';
            card.style.backgroundColor = '#fef3c7';
            costVal.style.color = '#d97706';
            thermoHeight = 60;
            thermoY = 58;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        } else {
            // Stan krytyczny (Czerwony)
            colorStr = 'var(--rk-pmp-danger)';
            borderColor = 'var(--rk-pmp-danger)';
            card.style.borderColor = 'var(--rk-pmp-danger)';
            card.style.backgroundColor = 'var(--rk-pmp-danger-bg)';
            costVal.style.color = 'var(--rk-pmp-danger)';
            thermoHeight = 90;
            thermoY = 28;
            pipe.style.strokeDasharray = 'none'; // Ciągła linia
        }

        // Aplikacja kolorów do SVG
        pipe.style.stroke = colorStr;
        thermo.style.fill = colorStr;
        thermoBase.style.fill = colorStr;
        
        // Animacja termometru
        thermo.setAttribute('height', thermoHeight);
        thermo.setAttribute('y', thermoY);
    }

    // Inicjalizacja
    slider.addEventListener('input', function(e) {
        updateSimulation(e.target.value);
    });
    
    // Uruchomienie na starcie (wartość 100)
    updateSimulation(100);
});
</script>



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

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

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

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

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

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

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

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

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

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

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

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

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

.dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#infografika-download",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Kompletna Infografika PDF: Projekt ogrzewania podłogowego z pompą ciepła",
    "description": "Pobierz inżynierskie zestawienie wytycznych dla systemów płaszczyznowych. Wykres COP, długość pętli, dobór wylewki oraz parametry zasilania w jednym pliku PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-11",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-infografika",
    "name": "Wytyczne projektowe dla ogrzewania podłogowego z PC",
    "description": "Zbiór kluczowych danych: krzywa sprawności COP w funkcji temperatury, optymalna długość rury 16x2 oraz niezbędny przepływ hydrauliczny l/h.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "wykres cop pompy ciepła",
      "projekt podłogówki schemat",
      "rozstaw rur 10cm parametry",
      "jak pobrać projekt podłogówki"
    ],
    "measurementTechnique": "Zestawienie optymalnych parametrów termodynamicznych na grafice 2D.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Schemat optymalizacji i najczęstsze błędy instalacyjne"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-download",
    "name": "Centrum Pobierania: Arkusz Projektowy PC",
    "description": "Interaktywny moduł umożliwiający pogląd w wysokiej rozdzielczości i bezpośrednie pobranie dokumentacji technicznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="download-hub-container" id="app-pc-infographic-dl">
    
    <div class="dl-header">
        <div class="dl-header-content">
            <div class="dl-badge">Darmowe Materiały 2026</div>
            <h2>Pobierz Arkusz Inżynierski</h2>
            <p>Zabierz ekspercką wiedzę bezpośrednio na budowę. Wykresy sprawności COP, parametry hydrauliczne i schematy montażowe w jednym pliku PDF.</p>
        </div>
        <div class="dl-header-visual">
            <svg class="dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="18" fill="white" font-size="5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-workspace">
        
        <div class="dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.webp" alt="Infografika - Projekt ogrzewania podłogowego z pompą ciepła. Schematy budowy, wykresy COP i kluczowe parametry techniczne." class="dl-preview-img" loading="lazy">
            <div style="position:absolute; bottom:20px; right:20px; background:rgba(0,0,0,0.7); color:white; padding:8px 12px; border-radius:8px; font-size:12px; font-weight:700;">🔍 Kliknij, aby powiększyć</div>
        </div>

        <div class="dl-info-side">
            <ul class="dl-feature-list">
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wykres: Efektywność COP a temp. zasilania
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Przekrój: Optymalny jastrych i masa (150 kg/m²)
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie: Najczęstsze błędy instalacyjne
                </li>
                <li class="dl-feature-item">
                    <svg class="dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Limity fizyki: Długości pętli rury 16mm
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Infografika-Projekt-ogrzewania-podlogowego-z-pompa-ciepla.pdf" class="dl-main-btn" target="_blank" rel="noopener">
                <span>📥</span> POBIERZ DOKUMENT (PDF)
            </a>
            
            <p style="margin-top: 20px; font-size: 13px; color: var(--dl-muted); line-height: 1.5;">
                Pragniesz przełożyć tę teorię na praktykę we własnym domu? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color:var(--dl-accent-dark); font-weight:800;">Zamów indywidualny projekt OZC</a> i uzyskaj pełną dokumentację wykonawczą dla swojego instalatora.
            </p>
        </div>

    </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-pc-infographic-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b;">Zasoby Chronione</div>
                    <p style="color: #b91c1c; font-size: 14px;">Ta infografika i dokumentacja PDF są własnością serwisu Projekt-Ogrzewania.pl. Pobieranie z zewnętrznych serwerów jest zabronione.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
