<?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 cop - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/cop/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/cop/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sat, 20 Jun 2026 16:48:42 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa cop - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/cop/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>
		<item>
		<title>Pompa Ciepła.</title>
		<link>https://projekt-ogrzewania.pl/pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Jan 2026 16:18:37 +0000</pubDate>
				<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Technologie OZE]]></category>
		<category><![CDATA[bufor ciepła]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[dolne źródło]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[gruntowa pompa ciepła]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[powietrzna pompa ciepła]]></category>
		<category><![CDATA[praca biwalentna]]></category>
		<category><![CDATA[projekt instalacji grzewczej]]></category>
		<category><![CDATA[schemat hydrauliczny]]></category>
		<category><![CDATA[scop]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3039</guid>

					<description><![CDATA[<p>Pompa ciepła to dziś jedno z najbardziej zaawansowanych technologicznie rozwiązań grzewczych, które realnie zmienia sposób projektowania nowoczesnych instalacji w budownictwie jednorodzinnym i komercyjnym. W artykule szczegółowo omawiamy zasadę działania pomp ciepła w ujęciu termodynamicznym, porównujemy ich główne typy, analizujemy kryteria doboru mocy, pracę biwalentną oraz kluczowe schematy hydrauliczne. Szczególną uwagę poświęcono współpracy pompy ciepła z ogrzewaniem podłogowym, buforom ciepła oraz aspektom projektowym decydującym o rzeczywistej sprawności i trwałości całego systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa 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-blue: #0284c7;
    --rk-intro-light: #f8fafc;
    --rk-intro-green: #10b981;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
    --rk-intro-text: #475569;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border: 2px solid var(--rk-intro-dark); /* Surowy, mocny border */
}

/* Sekcja Hooka i Szybkiej Odpowiedzi */
.rk-intro-hero {
    padding: 40px 45px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-intro-blue);
}

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

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

.rk-intro-quick-answer {
    background: rgba(255, 255, 255, 0.05);
    border-left: 4px solid var(--rk-intro-green);
    padding: 25px;
    margin-top: 20px;
}

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

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

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

/* Informacja o Kalkulatorach / Nawigacja */
.rk-intro-interactive-box {
    background: var(--rk-intro-light);
    padding: 30px 45px;
}

.rk-intro-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-intro-btn {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 15px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-text);
    text-transform: uppercase;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* ZERO ANIMACJI - natychmiastowe zmiany */
.rk-intro-btn:hover {
    background: #e2e8f0;
}

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

/* Ekrany zawartości */
.rk-intro-panel {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 30px;
}

.rk-intro-panel.active {
    display: block; /* Natychmiastowe pokazanie */
}

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

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

.rk-intro-panel ul {
    margin: 0;
    padding-left: 20px;
}

.rk-intro-panel li {
    font-size: 15px;
    color: var(--rk-intro-text);
    line-height: 1.7;
    margin-bottom: 8px;
    font-weight: 600;
}

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

/* RWD */
@media (max-width: 768px) {
    .rk-intro-hero { padding: 30px 20px; }
    .rk-intro-title { font-size: 26px; }
    .rk-intro-interactive-box { padding: 25px 20px; }
    .rk-intro-nav { flex-direction: column; gap: 5px; }
    .rk-intro-btn { text-align: left; }
    .rk-intro-panel { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Pompa ciepła – czym jest i jak działa? Kompendium wiedzy na 2026 rok",
    "description": "Błyskawiczna definicja pompy ciepła, mechanizm działania obiegu termodynamicznego oraz zbiór interaktywnych narzędzi inżynierskich doboru mocy i hydrauliki.",
    "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/",
      "jobTitle": "Specjalista HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-wstep",
    "name": "Słownik pojęć: Definicja i Parametry Pomp Ciepła",
    "description": "Zestawienie podstawowych definicji działania zamkniętego obiegu termodynamicznego oraz mechanicznego sprężania czynnika chłodniczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła definicja",
      "jak działa pompa ciepła szybka odpowiedź",
      "kompendium wiedzy o pompach ciepła",
      "kalkulator doboru pompy ciepła",
      "niskotemperaturowe urządzenie grzewcze"
    ],
    "measurementTechnique": "Określenie konwersji energii rozproszonej z dolnego źródła (powietrza/gruntu) za pomocą sprężarki do postaci użytecznej w instalacji CO i CWU.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa ciepła: Niskotemperaturowe urządzenie transportujące energię cieplną w kierunku przeciwnym do naturalnego przepływu ciepła.",
        "Obieg: Działanie oparte na mechanicznym sprężaniu i rozprężaniu czynnika chłodniczego.",
        "Wartość dodana artykułu: Obecność interaktywnych kalkulatorów hydraulicznych i termodynamicznych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-wstep",
    "name": "Interaktywny Przewodnik po Kompendium",
    "description": "Panel nawigacyjny (Tabbed Interface) informujący użytkownika o dostępności zaawansowanych kalkulatorów i symulatorów termodynamicznych w dalszej części artykułu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper" id="intro-app">
    
    <div class="rk-intro-hero">
        <span class="rk-intro-badge">Kompendium Wiedzy 2026</span>
        <h1 class="rk-intro-title">Pompa ciepła – inżynierski przewodnik bez marketingowej ściemy</h1>
        
        <p style="font-size: 16px; line-height: 1.6; color: #cbd5e1; margin: 0;">
            Ogrzewanie domu nie musi oznaczać uzależnienia od węgla, dymu, czyszczenia pieca i gigantycznych rachunków. Jako inżynier HVAC z dorobkiem ponad <strong>1000 zrealizowanych projektów instalacji grzewczych</strong>, stworzyłem ten artykuł, aby brutalnie rozprawić się z mitami. Znajdziesz tu czystą fizykę, matematykę i inżynierię, a nie sprzedażowe bajki.
        </p>

        <div class="rk-intro-quick-answer">
            <div class="rk-intro-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>
                Szybka definicja (TL;DR)
            </div>
            <p class="rk-intro-qa-text">
                <strong>Pompa ciepła to niskotemperaturowe urządzenie grzewcze.</strong> Jej celem nie jest &#8222;produkcja&#8221; ciepła ze spirali elektrycznej (jak w zwykłej grzałce), lecz <strong>transport darmowej energii termicznej</strong> z otoczenia (powietrza, gruntu lub wody) bezpośrednio do Twojej instalacji ogrzewania podłogowego (CO) oraz zasobnika ciepłej wody (CWU). Działanie to opiera się na skomplikowanym, mechanicznym sprężaniu i rozprężaniu czynnika chłodniczego w zamkniętym obiegu.
            </p>
        </div>
    </div>

    <div class="rk-intro-interactive-box">
        
        <div class="rk-intro-nav">
            <button class="rk-intro-btn active" data-intro="tools" id="btnTools">
                Narzędzia w artykule
                <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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            </button>
            <button class="rk-intro-btn" data-intro="value" id="btnValue">
                Co zyskasz?
                <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="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            </button>
            <button class="rk-intro-btn" data-intro="target" id="btnTarget">
                Wiedza Projektowa
                <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>
            </button>
        </div>

        <div class="rk-intro-panels-wrapper">
            <div class="rk-intro-panel active" id="pnlTools">
                <h3>Interaktywne Kalkulatory i Symulatory</h3>
                <p>Ten artykuł to nie jest zwykła ściana tekstu. Zaprojektowałem go jako <strong>narzędzie pracy dla inwestora</strong>. W dalszej części strony znajdziesz na żywo działające aplikacje:</p>
                <ul>
                    <li>Symulator 4-fazowego obiegu termodynamicznego (Jak to działa na mrozie?).</li>
                    <li>Kalkulator Punktu Biwalentnego i zapotrzebowania OZC (Oblicz moc urządzenia dla swojego domu).</li>
                    <li>Symulator ryzyka braku bufora ciepła (Zobacz awarię na własne oczy).</li>
                    <li>Studium przypadku <i>(Case Study)</i> &#8211; wpływ regulacji hydraulicznej na spadek rachunków z 8200 PLN na 3400 PLN.</li>
                </ul>
            </div>

            <div class="rk-intro-panel" id="pnlValue">
                <h3>Ochrona przed potężnymi stratami</h3>
                <p>Omawiam technologię obiektywnie, skupiając się równie mocno na <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wadach i zaletach układów wodnych</a>. Po lekturze dowiesz się, dlaczego błąd w średnicy rur lub zły dobór czynnika chłodniczego (GWP) kosztuje inwestorów dziesiątki tysięcy złotych podczas awarii i wymusza płatne przeglądy z ramienia Ustawy F-Gazowej.</p>
                <p>Przestaniesz być laikiem – zaczniesz patrzeć na ogrzewanie oczami inżyniera.</p>
            </div>

            <div class="rk-intro-panel" id="pnlTarget">
                <h3>Dla kogo jest to opracowanie?</h3>
                <p>Kompendium jest skierowane do osób budujących domy jednorodzinne (WT2021) oraz inwestorów planujących głęboką termomodernizację. Kładę gigantyczny nacisk na to, jak sprawić, by urządzenie stało się <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">jedynym źródłem ciepła</a>, gwarantując spokój na ponad 20 lat.</p>
                <p>Nie omawiam tu marketingowych haseł, lecz twarde wytyczne PORT PC oraz wpływ norm na ostatecznych <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kosztach instalacji</a>.</p>
            </div>
        </div>
        
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnTools = document.getElementById('btnTools');
    var btnValue = document.getElementById('btnValue');
    var btnTarget = document.getElementById('btnTarget');
    
    var pnlTools = document.getElementById('pnlTools');
    var pnlValue = document.getElementById('pnlValue');
    var pnlTarget = document.getElementById('pnlTarget');

    function resetIntroState() {
        btnTools.className = 'rk-intro-btn';
        btnValue.className = 'rk-intro-btn';
        btnTarget.className = 'rk-intro-btn';
        
        pnlTools.className = 'rk-intro-panel';
        pnlValue.className = 'rk-intro-panel';
        pnlTarget.className = 'rk-intro-panel';
    }

    function setIntroTab(mode) {
        resetIntroState();
        
        if (mode === 1) {
            btnTools.className = 'rk-intro-btn active';
            pnlTools.className = 'rk-intro-panel active';
        }
        if (mode === 2) {
            btnValue.className = 'rk-intro-btn active';
            pnlValue.className = 'rk-intro-panel active';
        }
        if (mode === 3) {
            btnTarget.className = 'rk-intro-btn active';
            pnlTarget.className = 'rk-intro-panel active';
        }
    }

    // Proste i bezpieczne event listenery
    btnTools.addEventListener('click', function() { setIntroTab(1); });
    btnValue.addEventListener('click', function() { setIntroTab(2); });
    btnTarget.addEventListener('click', function() { setIntroTab(3); });
});
</script>



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

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

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

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

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

.rk-therm-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

.rk-therm-desc strong {
    color: #bae6fd;
}

/* Symulator Obiegu */
.rk-therm-simulator {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-therm-bg);
}

/* Nawigacja Fazy (Lewa kolumna) */
.rk-therm-phases {
    padding: 35px 30px;
    background: var(--rk-therm-light);
    border-right: 1px solid var(--rk-therm-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-therm-phase-btn {
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-therm-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-therm-phase-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-therm-phase-btn.active {
    border-color: var(--rk-therm-blue);
    background: var(--rk-therm-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-phase-num {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-therm-light);
    color: var(--rk-therm-blue);
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-therm-phase-btn.active .rk-phase-num {
    background: #ffffff;
}

.rk-phase-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-therm-dark);
    transition: color 0.3s;
}

.rk-therm-phase-btn.active .rk-phase-title { color: #ffffff; }

/* Wyświetlacz Treści (Prawa kolumna) */
.rk-therm-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-display-panel {
    display: none;
    animation: fadeSlideUp 0.4s ease forwards;
}

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

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

.rk-display-icon {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: var(--rk-therm-active);
    color: var(--rk-therm-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.rk-display-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-therm-dark);
    margin: 0 0 15px 0;
}

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

.rk-display-stats {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.rk-stat-pill {
    background: #f1f5f9;
    border: 1px solid var(--rk-therm-border);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-therm-dark);
}

.rk-stat-pill span {
    color: var(--rk-therm-blue);
}

/* Sekcja Błędów - Alert */
.rk-therm-alert-wrapper {
    padding: 0 40px 40px 40px;
    background: var(--rk-therm-bg);
}

.rk-therm-alert {
    background: #fff1f2;
    border: 2px solid #fecdd3;
    border-radius: 16px;
    padding: 30px;
    border-left: 6px solid var(--rk-therm-red);
}

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

.rk-alert-title {
    font-size: 18px;
    font-weight: 900;
    color: #991b1b;
    margin: 0;
}

.rk-alert-text {
    font-size: 15px;
    line-height: 1.7;
    color: #7f1d1d;
    margin: 0;
}

/* RWD */
@media (max-width: 768px) {
    .rk-therm-header { padding: 30px 20px; }
    .rk-therm-title { font-size: 24px; }
    .rk-therm-simulator { grid-template-columns: 1fr; }
    .rk-therm-phases { padding: 25px 20px; border-right: none; border-bottom: 1px solid var(--rk-therm-border); }
    .rk-therm-display { padding: 30px 20px; }
    .rk-therm-alert-wrapper { padding: 0 20px 30px 20px; }
    .rk-therm-alert { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-termodynamika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Jak działa pompa ciepła od strony termodynamicznej?",
    "description": "Szczegółowe wyjaśnienie lewobieżnego obiegu Lindego w pompach ciepła, roli sprężarki inwerterowej oraz zjawisk w parowniku i skraplaczu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-termodynamika",
    "name": "Parametry termodynamiczne obiegu chłodniczego pompy ciepła (R290)",
    "description": "Wartości ciśnień, temperatur oraz specyfikacja faz przemian czynnika chłodniczego w czterech głównych podzespołach pompy ciepła w oparciu o normę PN-EN 14511.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obieg termodynamiczny pompy ciepła",
      "jak działa sprężarka inwerterowa",
      "współczynnik cop a temperatura zasilania",
      "zawór rozprężny w pompie ciepła",
      "skraplacz i parownik zasada działania"
    ],
    "measurementTechnique": "Określenie parametrów wskaźnikowych: odparowanie czynnika przy niskim ciśnieniu (ok. 4.5 bar), sprężenie polotropowe (do 22 bar i +75°C) oraz izobaryczne skraplanie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Parownik: Izobaryczne odparowanie czynnika chłodniczego pobierającego ciepło z otoczenia.",
        "Sprężarka: Podniesienie ciśnienia i temperatury czynnika, zużywająca jedyną energię elektryczną układu.",
        "Skraplacz: Wymiennik płytowy oddający utajone ciepło skraplania do instalacji CO.",
        "Konsekwencje: Zasilanie starych grzejników (65°C) obniża wskaźnik COP z 4.5 do 1.9."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-termodynamika",
    "name": "Symulator Obiegu Termodynamicznego",
    "description": "Edukacyjna, interaktywna wizualizacja faz cyklu Lindego, przedstawiająca procesy fizyczne (odparowanie, sprężanie, skraplanie, rozprężanie) w układzie hydraulicznym pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-therm-wrapper" id="therm-app">
    <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" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zasada Działania
        </div>
        <h2 class="rk-therm-title">Jak działa pompa ciepła od strony termodynamicznej?</h2>
        <p class="rk-therm-desc">
            To nie magia, to czysta fizyka. Systemy grzewcze bazują na <strong>lewobieżnym obiegu Lindego</strong> (norma PN-EN 14511). Urządzenie nie produkuje ciepła ze spirali elektrycznej, lecz napędza sprężarkę, która transportuje energię z dworu do domu. Rzeczywisty wskaźnik SCOP w Polsce wynosi od 3.5 do 4.8. Zobacz, jak to działa w 4 krokach.
        </p>
    </div>

    <div class="rk-therm-simulator">
        <div class="rk-therm-phases">
            <button class="rk-therm-phase-btn active" data-phase="1" id="btnPhase1">
                <div class="rk-phase-num">1</div>
                <span class="rk-phase-title">Parownik (Odbiór ciepła)</span>
            </button>
            <button class="rk-therm-phase-btn" data-phase="2" id="btnPhase2">
                <div class="rk-phase-num">2</div>
                <span class="rk-phase-title">Sprężarka (Serce układu)</span>
            </button>
            <button class="rk-therm-phase-btn" data-phase="3" id="btnPhase3">
                <div class="rk-phase-num">3</div>
                <span class="rk-phase-title">Skraplacz (Oddanie ciepła)</span>
            </button>
            <button class="rk-therm-phase-btn" data-phase="4" id="btnPhase4">
                <div class="rk-phase-num">4</div>
                <span class="rk-phase-title">Zawór Rozprężny (EXV)</span>
            </button>
        </div>

        <div class="rk-therm-display">
            
            <div class="rk-display-panel active" id="panelPhase1">
                <div class="rk-display-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 class="rk-display-title">Parownik (Wymiennik Ciepła)</h3>
                <p class="rk-display-text">Tutaj następuje izobaryczne odparowanie ciekłego czynnika chłodniczego pod niskim ciśnieniem. Czynnik dosłownie wrze w bardzo niskiej temperaturze i pochłania utajone ciepło z dolnego źródła (powietrza, gruntu).</p>
                <div class="rk-display-stats">
                    <div class="rk-stat-pill">Czynnik: <span>R290 (Propan)</span></div>
                    <div class="rk-stat-pill">Ciśnienie bazowe: <span>~ 4.5 bar</span></div>
                </div>
            </div>

            <div class="rk-display-panel" id="panelPhase2">
                <div class="rk-display-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><path d="M16 12l-4-4-4 4M12 8v8"></path></svg>
                </div>
                <h3 class="rk-display-title">Sprężarka (Inwerter Scroll/EVI)</h3>
                <p class="rk-display-text">Główny konsument prądu. Gazowy czynnik trafia do komory, gdzie następuje jego gwałtowne, polotropowe sprężenie. Zgodnie z prawami fizyki, drastyczny wzrost ciśnienia wywołuje równie drastyczny skok temperatury gazu.</p>
                <div class="rk-display-stats">
                    <div class="rk-stat-pill">Ciśnienie robocze: <span>~ 22 bar</span></div>
                    <div class="rk-stat-pill">Skok temperatury: <span>do +75°C</span></div>
                </div>
            </div>

            <div class="rk-display-panel" id="panelPhase3">
                <div class="rk-display-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="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <h3 class="rk-display-title">Skraplacz (Wymiennik Płytowy)</h3>
                <p class="rk-display-text">Mocno przegrzany gaz trafia do skraplacza, gdzie napotyka wodę krążącą w instalacji CO Twojego domu. Oddaje jej zgromadzoną energię, w wyniku czego izobarycznie skrapla się z powrotem do postaci ciekłej.</p>
                <div class="rk-display-stats">
                    <div class="rk-stat-pill">Temperatura zasilania instalacji: <span>np. 35°C</span></div>
                    <div class="rk-stat-pill">Stan czynnika: <span>Ciecz wysokiego ciśnienia</span></div>
                </div>
            </div>

            <div class="rk-display-panel" id="panelPhase4">
                <div class="rk-display-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="M3 3h18v18H3zM12 8v8M8 12h8"></path></svg>
                </div>
                <h3 class="rk-display-title">Zawór Rozprężny (Elektroniczny EXV)</h3>
                <p class="rk-display-text">Ostatni etap przed powtórzeniem cyklu. Ciecz pod gigantycznym ciśnieniem przechodzi przez dławiący element. Następuje gwałtowny spadek ciśnienia i temperatury czynnika, który w postaci mgły trafia znów do parownika.</p>
                <div class="rk-display-stats">
                    <div class="rk-stat-pill">Regulacja: <span>Mikrokrokowa (Elektroniczna)</span></div>
                    <div class="rk-stat-pill">Efekt: <span>Spadek do parametrów wejściowych</span></div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-therm-alert-wrapper">
        <div class="rk-therm-alert">
            <div class="rk-alert-header">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#991b1b" 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 class="rk-alert-title">Krytyczne konsekwencje błędu instalacyjnego</h4>
            </div>
            <p class="rk-alert-text">
                Termodynamiki nie oszukasz. Próba zasilania przez pompę starych grzejników wymuszających temperaturę pracy rzędu <strong>65°C</strong> drastycznie winduje stopień sprężania. Powoduje to załamanie chwilowego wskaźnika COP z poziomu 4.5 do zaledwie <strong>1.9</strong>. Generujesz w ten sposób gigantyczne rachunki za prąd i skracasz żywotność sprężarki o ponad połowę z powodu ciągłego przegrzewania uzwojeń. Ogrzewanie podłogowe (np. <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" style="color:#7f1d1d;font-weight:700;text-decoration:underline;">optymalne zasilanie 35°C</a>) to jedyna sensowna opcja dla długowiecznej pracy układu.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = [
        document.getElementById('btnPhase1'),
        document.getElementById('btnPhase2'),
        document.getElementById('btnPhase3'),
        document.getElementById('btnPhase4')
    ];
    
    var panels = [
        document.getElementById('panelPhase1'),
        document.getElementById('panelPhase2'),
        document.getElementById('panelPhase3'),
        document.getElementById('panelPhase4')
    ];

    // Funkcja bezpieczna - bez operatorów logicznych i porównań wrażliwych
    function switchPhase(indexToActivate) {
        // Reset
        for (var i = 0; i < 4; i++) {
            btns[i].classList.remove('active');
            panels[i].classList.remove('active');
        }
        
        // Aktywacja
        btns[indexToActivate].classList.add('active');
        panels[indexToActivate].classList.add('active');
    }

    // Podpięcie zdarzeń
    btns[0].addEventListener('click', function() { switchPhase(0); });
    btns[1].addEventListener('click', function() { switchPhase(1); });
    btns[2].addEventListener('click', function() { switchPhase(2); });
    btns[3].addEventListener('click', function() { switchPhase(3); });
});
</script>



<style>
:root {
    --rk-eff-dark: #0f172a;
    --rk-eff-blue: #0284c7;
    --rk-eff-light: #f8fafc;
    --rk-eff-green: #10b981;
    --rk-eff-yellow: #f59e0b;
    --rk-eff-border: #e2e8f0;
    --rk-eff-bg: #ffffff;
    --rk-eff-text: #475569;
}

.rk-eff-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-eff-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(245, 158, 11, 0.1);
    border: 1px solid var(--rk-eff-yellow);
    overflow: hidden;
}

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

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

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

.rk-eff-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Symulator Bilansu */
.rk-eff-simulator {
    padding: 40px 45px;
    background: var(--rk-eff-bg);
    border-bottom: 1px solid var(--rk-eff-border);
}

.rk-eff-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-eff-btn {
    flex: 1;
    padding: 15px;
    background: var(--rk-eff-light);
    border: 2px solid var(--rk-eff-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-eff-text);
    text-align: center;
}

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

.rk-eff-btn.active {
    background: #fffbeb;
    border-color: var(--rk-eff-yellow);
    color: var(--rk-eff-dark);
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.2);
}

/* Grafika Paska Energii */
.rk-eff-visual {
    background: #f8fafc;
    border: 1px solid var(--rk-eff-border);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
}

.rk-eff-equation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.rk-eff-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-eff-box {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 80px;
    border-radius: 12px;
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-box-elec { width: 80px; background: var(--rk-eff-blue); }
.rk-box-free { background: var(--rk-eff-green); width: 240px; } /* Zmienne via JS */
.rk-box-total { background: var(--rk-eff-yellow); width: 320px; } /* Zmienne via JS */

.rk-eff-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-eff-text);
    text-transform: uppercase;
}

.rk-eff-math {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-eff-border);
}

/* Sekcja Rozszerzenia Tekstu */
.rk-eff-content {
    padding: 40px 45px;
    background: var(--rk-eff-light);
}

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

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

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

.rk-eff-highlight {
    background: #ffffff;
    border-left: 4px solid var(--rk-eff-yellow);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
    font-weight: 600;
    color: var(--rk-eff-dark);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* RWD */
@media (max-width: 768px) {
    .rk-eff-header, .rk-eff-simulator, .rk-eff-content { padding: 30px 20px; }
    .rk-eff-title { font-size: 24px; }
    .rk-eff-controls { flex-direction: column; gap: 10px; }
    .rk-eff-equation { flex-direction: column; gap: 20px; }
    .rk-eff-math { transform: rotate(90deg); margin: -10px 0; }
    .rk-eff-box { width: 100% !important; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-sprawnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Skąd bierze się wysoka sprawność pompy ciepła (COP i SCOP)?",
    "description": "Fizyczne wyjaśnienie zasady zachowania energii w pompach ciepła. Dowiedz się, dlaczego sprawność powyżej 100% nie łamie praw fizyki, a darmowa energia pochodzi z otoczenia.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-sprawnosc",
    "name": "Bilans Energetyczny Pomp Ciepła (COP 3.0 - 5.0)",
    "description": "Zestawienie proporcji między energią elektryczną pobieraną z sieci a darmową energią cieplną pobieraną z dolnego źródła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skąd się bierze wysoki cop pompy ciepła",
      "jak obliczyć zużycie prądu przez pompę ciepła",
      "sprawność pompy ciepła powyżej 100 procent",
      "darmowa energia z dolnego źródła",
      "różnica między cop a scop",
      "zasada zachowania energii pompa ciepła"
    ],
    "measurementTechnique": "Algorytm wizualizujący wzór: COP = (Energia Elektryczna + Energia Otoczenia) / Energia Elektryczna.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dla COP = 3: 1 kWh prądu + 2 kWh energii darmowej = 3 kWh ciepła.",
        "Dla COP = 4: 1 kWh prądu + 3 kWh energii darmowej = 4 kWh ciepła.",
        "Dla COP = 5: 1 kWh prądu + 4 kWh energii darmowej = 5 kWh ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-sprawnosc",
    "name": "Symulator Bilansu COP",
    "description": "Dynamiczna aplikacja webowa obrazująca przepływ i transformację energii elektrycznej oraz termicznej w zależności od współczynnika efektywności urządzenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eff-wrapper">
    <div class="rk-eff-header">
        <div class="rk-eff-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="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Efektywność i Matematyka
        </div>
        <h2 class="rk-eff-title">Skąd bierze się tak wysoka sprawność pompy ciepła?</h2>
        <p class="rk-eff-desc">
            Słysząc o "sprawności 400%", wielu inwestorów puka się w czoło, twierdząc, że to łamie prawa fizyki. Tymczasem pompa nie jest grzałką – nie generuje ciepła z drutu, lecz je transportuje. Zobacz to na interaktywnym bilansie.
        </p>
    </div>

    <div class="rk-eff-simulator">
        <div class="rk-eff-controls">
            <button class="rk-eff-btn" data-cop="3" id="btnCop3">Stara instalacja<br><span style="font-size:12px;font-weight:600;">(Współczynnik COP = 3)</span></button>
            <button class="rk-eff-btn active" data-cop="4" id="btnCop4">Dobra Podłogówka<br><span style="font-size:12px;font-weight:600;">(Współczynnik COP = 4)</span></button>
            <button class="rk-eff-btn" data-cop="5" id="btnCop5">System Gruntowy<br><span style="font-size:12px;font-weight:600;">(Współczynnik COP = 5)</span></button>
        </div>

        <div class="rk-eff-visual">
            <div class="rk-eff-equation">
                <div class="rk-eff-block">
                    <div class="rk-eff-box rk-box-elec" id="boxElec">1 kWh</div>
                    <span class="rk-eff-label">Płatny Prąd sieciowy</span>
                </div>

                <div class="rk-eff-math">+</div>

                <div class="rk-eff-block">
                    <div class="rk-eff-box rk-box-free" id="boxFree">3 kWh</div>
                    <span class="rk-eff-label">Darmowe ciepło (Powietrze/Grunt)</span>
                </div>

                <div class="rk-eff-math">=</div>

                <div class="rk-eff-block">
                    <div class="rk-eff-box rk-box-total" id="boxTotal">4 kWh</div>
                    <span class="rk-eff-label">Oddane Ciepło do domu</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-eff-content">
        <h3>Dlaczego sprawność przekracza 100%?</h3>
        <p>Klasyczny kocioł elektryczny zamienia 1 kWh prądu na 1 kWh ciepła (sprawność 100%). Pompa ciepła natomiast traktuje prąd elektryczny wyłącznie jako "paliwo napędowe" dla sprężarki. Zasadę zachowania energii definiuje tu prosty bilans: darmowa energia zakumulowana w środowisku naturalnym zostaje wtłoczona do domowej instalacji hydraulicznej.</p>
        
        <div class="rk-eff-highlight">
            To właśnie dlatego sprawność pompy ciepła określamy terminem <strong>COP (Coefficient of Performance)</strong>. COP na poziomie 4 nie oznacza sprawności 400% z powietrza, lecz stosunek oddanej mocy cieplnej do pobranej mocy elektrycznej.
        </div>

        <h3>Papierowy COP a rzeczywisty SCOP</h3>
        <p>Musisz jednak uważać na obietnice z folderów reklamowych. Producenci najczęściej podają <strong>chwilowy wskaźnik COP</strong> (badany w idealnych, laboratoryjnych warunkach, np. dla +7°C na dworze i 35°C w podłogówce). Wraz ze spadkiem temperatury zewnętrznej, ilość darmowej energii w powietrzu maleje, przez co sprężarka musi pracować ciężej.</p>
        
        <p>W <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">szacowaniu rocznych kosztów ogrzewania</a> oraz w profesjonalnych projektach wyznacza się <strong>wskaźnik SCOP (Seasonal COP)</strong>. Uwzględnia on zmieniające się pory roku, mroźne noce zimowe i letnie dogrzewanie wody. Wyśrubowanie współczynnika SCOP jest możliwe tylko wtedy, gdy posiadamy bezbłędnie przeliczoną, <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niskotemperaturową podłogówkę</a> opartą na dokładnym OZC, która "ulży" pracy urządzenia.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = [
        document.getElementById('btnCop3'),
        document.getElementById('btnCop4'),
        document.getElementById('btnCop5')
    ];
    
    var boxFree = document.getElementById('boxFree');
    var boxTotal = document.getElementById('boxTotal');

    // Funkcja aktualizująca (bezpieczna dla JS w WordPressie)
    function updateBalance(copValue, activeIndex) {
        // Reset klas na przyciskach
        for(var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('active');
        }
        // Ustawienie aktywnego
        btns[activeIndex].classList.add('active');

        // Przeliczenia
        var freeEnergy = copValue - 1;
        var totalEnergy = copValue;

        // Aktualizacja tekstów
        boxFree.innerText = freeEnergy + " kWh";
        boxTotal.innerText = totalEnergy + " kWh";

        // Aktualizacja szerokości "wizualnej" tylko na desktopach
        if (window.innerWidth > 768) {
            boxFree.style.width = (freeEnergy * 80) + "px";
            boxTotal.style.width = (totalEnergy * 80) + "px";
        }
    }

    // Podpięcie zdarzeń
    btns[0].addEventListener('click', function() { updateBalance(3, 0); });
    btns[1].addEventListener('click', function() { updateBalance(4, 1); });
    btns[2].addEventListener('click', function() { updateBalance(5, 2); });
});
</script>



<style>
:root {
    --rk-fz-dark: #0f172a;
    --rk-fz-blue: #0284c7;
    --rk-fz-ice: #e0f2fe;
    --rk-fz-green: #10b981;
    --rk-fz-orange: #f59e0b;
    --rk-fz-border: #e2e8f0;
    --rk-fz-bg: #ffffff;
    --rk-fz-text: #475569;
}

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

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

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

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

.rk-fz-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

.rk-fz-desc strong {
    color: #bae6fd;
}

/* Interaktywny Panel Główny */
.rk-fz-interactive {
    display: grid;
    grid-template-columns: 1fr;
    background: var(--rk-fz-bg);
}

/* Przyciski Wyboru Temperatury */
.rk-fz-controls {
    display: flex;
    gap: 15px;
    padding: 35px 45px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-fz-border);
}

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

.rk-fz-btn:hover {
    background: var(--rk-fz-ice);
    border-color: #bae6fd;
}

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

.rk-fz-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-fz-dark);
    transition: color 0.3s;
}

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

.rk-fz-btn-sub {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-fz-blue);
    transition: color 0.3s;
}

.rk-fz-btn.active .rk-fz-btn-sub { color: #e0f2fe; }

/* Ekran Przeliczeniowy (Termometr Kelvin) */
.rk-fz-display {
    padding: 40px 45px;
    display: flex;
    align-items: center;
    gap: 40px;
}

.rk-fz-thermometer {
    flex-shrink: 0;
    width: 140px;
    background: var(--rk-fz-dark);
    border-radius: 20px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.5);
}

.rk-fz-kelvin-val {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    margin-bottom: 5px;
}

.rk-fz-kelvin-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-fz-energy-bar-wrap {
    margin-top: 20px;
    height: 150px;
    width: 20px;
    background: #1e293b;
    border-radius: 10px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
}

.rk-fz-energy-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: linear-gradient(to top, var(--rk-fz-blue), var(--rk-fz-orange));
    border-radius: 10px;
    transition: height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Szczegóły Fizyczne */
.rk-fz-info {
    flex-grow: 1;
}

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

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

.rk-fz-comparison {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #f8fafc;
    padding: 20px;
    border-radius: 16px;
    border-left: 4px solid var(--rk-fz-blue);
}

.rk-fz-comp-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
}

.rk-fz-comp-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-fz-dark);
    padding: 4px 12px;
    background: #ffffff;
    border-radius: 8px;
    border: 1px solid var(--rk-fz-border);
}

.val-refrigerant {
    color: var(--rk-fz-blue);
    border-color: var(--rk-fz-blue);
    background: var(--rk-fz-ice);
}

/* RWD */
@media (max-width: 768px) {
    .rk-fz-header { padding: 30px 20px; }
    .rk-fz-title { font-size: 24px; }
    .rk-fz-controls { flex-direction: column; padding: 25px 20px; gap: 10px; }
    .rk-fz-btn { flex-direction: row; justify-content: space-between; padding: 15px 20px; }
    .rk-fz-display { flex-direction: column; padding: 30px 20px; text-align: center; }
    .rk-fz-thermometer { width: 100%; height: auto; display: flex; align-items: center; justify-content: space-around; padding: 20px; }
    .rk-fz-energy-bar-wrap { height: 12px; width: 150px; margin-top: 0; }
    .rk-fz-energy-bar { height: 100% !important; bottom: auto; left: 0; transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
    .rk-fz-comparison { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-mroz",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Dlaczego pompa ciepła działa nawet przy mrozie?",
    "description": "Naukowe wyjaśnienie energii cieplnej zgromadzonej w powietrzu przy ujemnych temperaturach w skali Kelvina oraz roli czynnika chłodniczego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-mroz",
    "name": "Zależność Energii Cieplnej od Temperatury Bezwzględnej (Kelvin)",
    "description": "Zestawienie porównawcze temperatur w skali Celsjusza i Kelvina dla powietrza oraz temperatury wrzenia czynników chłodniczych (np. R290).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dlaczego pompa ciepła działa zimą",
      "temperatura zera bezwzględnego a pompa ciepła",
      "jak pompa ciepła grzeje przy -20 stopniach",
      "czynnik chłodniczy r290 w niskich temperaturach",
      "ciepło w powietrzu na mrozie"
    ],
    "measurementTechnique": "Przeliczenie skali Celsjusza na skalę bezwzględną Kelvina (0°C = 273.15 K) w celu zobrazowania pozostałej energii wewnętrznej cząsteczek.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Skala Celsjusza określa tylko nasze odczucie ludzkiego zimna, nie brak energii fizycznej.",
        "Zero bezwzględne to -273.15 °C (0 K) - dopóki powietrze jest cieplejsze, posiada energię do odzyskania.",
        "Rozprężony czynnik R290 ma ok -42 °C, więc dla niego powietrze o temp. -20 °C jest dosłownie gorące i zmusza go do wrzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-mroz",
    "name": "Kalkulator Potencjału Energetycznego na Mrozie",
    "description": "Interaktywny termometr przeliczający temperaturę otoczenia na skalę Kelvina i obrazujący zdolność wrzenia czynnika chłodniczego w ujemnych temperaturach.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fz-wrapper">
    <div class="rk-fz-header">
        <div class="rk-fz-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="14 2 18 6 7 17 3 17 3 13 14 2"></polygon><line x1="3" y1="22" x2="21" y2="22"></line></svg>
            Fizyka w Pompach Ciepła
        </div>
        <h2 class="rk-fz-title">Dlaczego pompa działa nawet przy siarczystym mrozie?</h2>
        <p class="rk-fz-desc">
            "Zimno" to tylko nasze ludzkie odczucie. Fizyka używa <strong>temperatury bezwzględnej (Skala Kelvina)</strong>, w której zero absolutne to -273,15°C. Dopóki na dworze jest cieplej, w powietrzu cały czas tkwi darmowa, zmagazynowana energia cieplna gotowa do odzyskania.
        </p>
    </div>

    <div class="rk-fz-interactive">
        
        <div class="rk-fz-controls">
            <button class="rk-fz-btn" id="btnTemp1" data-val="1">
                <span class="rk-fz-btn-title">Typowa Wiosna</span>
                <span class="rk-fz-btn-sub">+10°C</span>
            </button>
            <button class="rk-fz-btn active" id="btnTemp2" data-val="2">
                <span class="rk-fz-btn-title">Lekki Mróz</span>
                <span class="rk-fz-btn-sub">-5°C</span>
            </button>
            <button class="rk-fz-btn" id="btnTemp3" data-val="3">
                <span class="rk-fz-btn-title">Syberyjski Mróz</span>
                <span class="rk-fz-btn-sub">-25°C</span>
            </button>
        </div>

        <div class="rk-fz-display">
            <div class="rk-fz-thermometer">
                <div class="rk-fz-kelvin-val" id="dispKelvin">268</div>
                <div class="rk-fz-kelvin-label">Kelvin (K)</div>
                <div class="rk-fz-energy-bar-wrap">
                    <div class="rk-fz-energy-bar" id="dispBar" style="height: 85%;"></div>
                </div>
            </div>

            <div class="rk-fz-info">
                <h3 id="dispTitle">W powietrzu wciąż kipi energia!</h3>
                <p id="dispDesc">Na dworze jest -5°C, ale zjawiska fizyczne nie ustały. Powietrze nadal posiada aż 268 Kelvinów energii termicznej (prawie 98% całkowitej możliwej energii ziemskiej).</p>
                
                <div class="rk-fz-comparison">
                    <div class="rk-fz-comp-row">
                        <span>Temperatura powietrza:</span>
                        <span class="rk-fz-comp-val" id="dispAir">-5°C</span>
                    </div>
                    <div class="rk-fz-comp-row">
                        <span>Temperatura wrzenia (R290):</span>
                        <span class="rk-fz-comp-val val-refrigerant">-42°C</span>
                    </div>
                </div>
                
                <p style="margin-top: 15px; font-size: 14px; font-weight: 600; color: var(--rk-fz-blue);">
                    Zasada fizyki: Ciepło przepływa od ciała cieplejszego do zimniejszego. Skoro czynnik chłodniczy (R290) ma w parowniku -42°C, to mroźne powietrze o temperaturze <span id="dispAirSpan">-5°C</span> jest dla niego DOSŁOWNIE GORĄCE. Ogrzewa go i zmusza do błyskawicznego wrzenia.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = [
        document.getElementById('btnTemp1'),
        document.getElementById('btnTemp2'),
        document.getElementById('btnTemp3')
    ];
    
    var dispKelvin = document.getElementById('dispKelvin');
    var dispBar = document.getElementById('dispBar');
    var dispTitle = document.getElementById('dispTitle');
    var dispDesc = document.getElementById('dispDesc');
    var dispAir = document.getElementById('dispAir');
    var dispAirSpan = document.getElementById('dispAirSpan');

    function updateThermometer(state) {
        // Reset aktywnych buttonów
        for(var i = 0; i < 3; i++) {
            btns[i].classList.remove('active');
        }
        
        // Bezpieczna struktura if bez operatorów podwójnych
        if (state === 1) {
            btns[0].classList.add('active');
            dispKelvin.innerText = '283';
            dispTitle.innerText = 'Potężny rezerwuar ciepła';
            dispDesc.innerText = 'Przy +10°C powietrze zawiera gigantyczne ilości energii (283 K). Pompa odzyskuje je z łatwością, dlatego wskaźnik COP jest wtedy najwyższy.';
            dispAir.innerText = '+10°C';
            dispAirSpan.innerText = '+10°C';
            
            // Animacja paska w zależności od mobile/desktop
            if(window.innerWidth > 768) { dispBar.style.height = '100%'; dispBar.style.width = '100%'; } 
            else { dispBar.style.width = '100%'; dispBar.style.height = '100%'; }
        }
        
        if (state === 2) {
            btns[1].classList.add('active');
            dispKelvin.innerText = '268';
            dispTitle.innerText = 'W powietrzu wciąż kipi energia!';
            dispDesc.innerText = 'Na dworze jest -5°C, ale powietrze nadal posiada aż 268 Kelvinów energii termicznej gotowej do odebrania przez parownik pompy.';
            dispAir.innerText = '-5°C';
            dispAirSpan.innerText = '-5°C';
            
            if(window.innerWidth > 768) { dispBar.style.height = '85%'; dispBar.style.width = '100%'; } 
            else { dispBar.style.width = '85%'; dispBar.style.height = '100%'; }
        }
        
        if (state === 3) {
    btns[2].classList.add('active');
    dispKelvin.innerText = '248';
    dispTitle.innerText = 'Nadal istnieje zapas energii';
    dispDesc.innerHTML = 'Nawet przy potężnym mrozie -25°C jesteśmy ponad 240 K powyżej zera bezwzględnego. Wysokiej klasy pompy ciepła wykorzystujące <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" style="color:#0284c7;">czynnik R290 (propan)</a> nadal mogą efektywnie pobierać energię z powietrza.';
    dispAir.innerText = '-25°C';
    dispAirSpan.innerText = '-25°C';
            
            if(window.innerWidth > 768) { dispBar.style.height = '60%'; dispBar.style.width = '100%'; } 
            else { dispBar.style.width = '60%'; dispBar.style.height = '100%'; }
        }
    }

    // Eventy
    btns[0].addEventListener('click', function() { updateThermometer(1); });
    btns[1].addEventListener('click', function() { updateThermometer(2); });
    btns[2].addEventListener('click', function() { updateThermometer(3); });
});
</script>



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

.rk-ref-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-ref-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.1);
    border: 1px solid var(--rk-ref-green);
    overflow: hidden;
}

/* Header */
.rk-ref-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-ref-dark) 0%, #064e3b 100%);
    color: #ffffff;
}

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

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

.rk-ref-desc {
    font-size: 16px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0;
}

.rk-ref-desc strong {
    color: #a7f3d0;
}

/* Interaktywny Panel */
.rk-ref-simulator {
    display: flex;
    flex-direction: column;
    background: var(--rk-ref-bg);
}

/* Przyciski Czynników */
.rk-ref-controls {
    display: flex;
    gap: 15px;
    padding: 35px 45px;
    background: var(--rk-ref-light);
    border-bottom: 1px solid var(--rk-ref-border);
}

.rk-ref-btn {
    flex: 1;
    padding: 20px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-ref-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-ref-btn:hover {
    background: #f1f5f9;
    border-color: #94a3b8;
}

.rk-ref-btn.active {
    background: var(--rk-ref-dark);
    border-color: var(--rk-ref-dark);
    box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.3);
}

.rk-ref-btn-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ref-dark);
    transition: color 0.3s;
}

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

.rk-ref-btn-sub {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: #64748b;
    transition: color 0.3s;
}

.rk-ref-btn.active .rk-ref-btn-sub { color: #94a3b8; }

/* Dashboard Wyników */
.rk-ref-display {
    padding: 40px 45px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

/* GWP Meter */
.rk-gwp-meter {
    background: #ffffff;
    border: 1px solid var(--rk-ref-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-gwp-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-ref-text);
    text-transform: uppercase;
    margin-bottom: 15px;
}

.rk-gwp-circle {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 8px solid var(--rk-ref-border);
    transition: border-color 0.5s ease;
}

.rk-gwp-val {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-ref-dark);
    line-height: 1;
}

.rk-gwp-label {
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

/* Kafelki parametrów */
.rk-ref-specs {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-ref-spec-card {
    background: #f8fafc;
    border: 1px solid var(--rk-ref-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: background 0.3s;
}

.rk-ref-spec-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rk-ref-border);
}

.rk-ref-spec-content {
    flex-grow: 1;
}

.rk-ref-spec-name {
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.rk-ref-spec-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-ref-dark);
}

/* Treść o CO2 */
.rk-ref-text-block {
    padding: 0 45px 40px;
}

.rk-ref-co2-box {
    background: #f0fdf4;
    border-left: 6px solid var(--rk-ref-green);
    border-radius: 12px;
    padding: 30px;
}

.rk-ref-co2-box h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: #064e3b;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-ref-co2-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #065f46;
}

/* RWD */
@media (max-width: 768px) {
    .rk-ref-header, .rk-ref-display, .rk-ref-text-block { padding: 30px 20px; }
    .rk-ref-title { font-size: 24px; }
    .rk-ref-controls { flex-direction: column; padding: 25px 20px; gap: 10px; }
    .rk-ref-btn { flex-direction: row; justify-content: space-between; align-items: center; padding: 15px 20px; text-align: left; }
    .rk-ref-display { grid-template-columns: 1fr; gap: 20px; }
    .rk-gwp-meter { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-czynniki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Czynniki chłodnicze a ekologia i koszty F-Gaz (R290, R32, CO2)",
    "description": "Techniczna analiza czynników chłodniczych w pompach ciepła. Wpływ wskaźnika GWP na obowiązki serwisowe (ustawa F-Gaz) oraz możliwości wysokotemperaturowe (R290 i CO2).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-czynniki",
    "name": "Współczynnik GWP i Właściwości Czynników Chłodniczych 2026",
    "description": "Zestawienie parametrów termodynamicznych, wymogów prawnych (CRO) oraz temperatur zasilania dla popularnych czynników chłodniczych w technologii pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa ciepła r290 propan",
      "ustawa f-gazowa pompy ciepła 2026",
      "czynnik r32 a r290 porównanie",
      "współczynnik gwp czynników chłodniczych",
      "pompa ciepła r744 co2 wysoka temperatura"
    ],
    "measurementTechnique": "Określenie wskaźnika Global Warming Potential (GWP) oraz maksymalnych temperatur skraplania dla poszczególnych gazów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "R290 (Propan): GWP 3, maksymalna temp zasilania 75°C, brak wymogu F-Gaz (bezpieczny prawnie).",
        "R32: GWP 675, maksymalna temp zasilania 60°C, podlega regulacjom środowiskowym.",
        "R744 (CO2): GWP 1, ekstremalnie wysoka temperatura zasilania, doskonały do podgrzewu CWU."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-czynniki",
    "name": "Kalkulator Śladu Węglowego i Obciążeń F-Gaz",
    "description": "Narzędzie interaktywne pozwalające zweryfikować uciążliwość prawną (rejestr CRO) oraz parametry termodynamiczne pompy ciepła na podstawie wybranego czynnika.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ref-wrapper">
    <div class="rk-ref-header">
        <div class="rk-ref-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 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"></path><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Prawo i Ekologia
        </div>
        <h2 class="rk-ref-title">Czynniki chłodnicze: Uważaj na ukryte koszty serwisu</h2>
        <p class="rk-ref-desc">
            Nowoczesne pompy ciepła całkowicie odchodzą od gazów o wysokim GWP (Global Warming Potential). Jeśli kupisz starą maszynę, wpadniesz w sidła <strong>Restrykcyjnej Ustawy F-Gazowej</strong>, co oznacza rejestrację w CRO i płatne, coroczne kontrole szczelności przez serwisanta.
        </p>
    </div>

    <div class="rk-ref-simulator">
        <div class="rk-ref-controls">
            <button class="rk-ref-btn" id="btnR410" data-gas="1">
                <span class="rk-ref-btn-title">R410A</span>
                <span class="rk-rf-btn-sub" style="color:#ef4444;font-size:12px;font-weight:700;">Przestarzały</span>
            </button>
            <button class="rk-ref-btn" id="btnR32" data-gas="2">
                <span class="rk-ref-btn-title">R32</span>
                <span class="rk-rf-btn-sub" style="color:#f59e0b;font-size:12px;font-weight:700;">Przejściowy</span>
            </button>
            <button class="rk-ref-btn active" id="btnR290" data-gas="3">
                <span class="rk-ref-btn-title">R290</span>
                <span class="rk-rf-btn-sub" style="color:#10b981;font-size:12px;font-weight:700;">Przyszłościowy</span>
            </button>
        </div>

        <div class="rk-ref-display">
            <div class="rk-gwp-meter">
                <div class="rk-gwp-title">Wskaźnik GWP<br><span style="font-size:10px;color:#94a3b8;font-weight:500;">(Wpływ na ocieplenie klimatu)</span></div>
                <div class="rk-gwp-circle" id="circleGwp" style="border-color: var(--rk-ref-green);">
                    <div class="rk-gwp-val" id="valGwp">3</div>
                    <div class="rk-gwp-label">Bardzo niski</div>
                </div>
            </div>

            <div class="rk-ref-specs">
                <div class="rk-ref-spec-card" id="cardTemp">
                    <div class="rk-ref-spec-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-ref-red)" 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-ref-spec-content">
                        <div class="rk-ref-spec-name">Zasilanie (Max Temp)</div>
                        <div class="rk-ref-spec-value" id="valTemp">do 75°C (Idealny na grzejniki)</div>
                    </div>
                </div>

                <div class="rk-ref-spec-card" id="cardLaw">
                    <div class="rk-ref-spec-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-ref-dark)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                    </div>
                    <div class="rk-ref-spec-content">
                        <div class="rk-ref-spec-name">Rejestr i ustawa F-GAZ</div>
                        <div class="rk-ref-spec-value" id="valLaw" style="color:var(--rk-ref-green);">Brak wymogów prawnych</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-ref-text-block">
        <div class="rk-ref-co2-box">
            <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 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Specyfika R744 (Dwutlenek Węgla)
            </h3>
            <p>R290 (Propan) to król ogrzewania domów, ale na rynku pojawia się też naturalny czynnik <strong>CO2 (R744) o wskaźniku GWP=1</strong>. Pompy na CO2 to potężne maszyny, które rewelacyjnie sprawdzają się w układach przygotowania bardzo gorącej ciepłej wody użytkowej (CWU np. w hotelach). Pamiętaj jednak, że propan (R290) jako gaz łatwopalny wymusza konstrukcję typu monoblok i szczególne zabezpieczenia mechaniczne hermetycznego obiegu na zewnątrz budynku.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnR410 = document.getElementById('btnR410');
    var btnR32 = document.getElementById('btnR32');
    var btnR290 = document.getElementById('btnR290');

    var circleGwp = document.getElementById('circleGwp');
    var valGwp = document.getElementById('valGwp');
    var valTemp = document.getElementById('valTemp');
    var valLaw = document.getElementById('valLaw');
    
    // Zmienne kolorów zadeklarowane w CSS
    var colorRed = 'var(--rk-ref-red)';
    var colorOrange = 'var(--rk-ref-orange)';
    var colorGreen = 'var(--rk-ref-green)';

    function updateRef(state) {
        // Reset klas
        btnR410.classList.remove('active');
        btnR32.classList.remove('active');
        btnR290.classList.remove('active');

        // Bezpieczne sprawdzanie stanu (bez znaków podwójnych)
        if (state === 1) {
            btnR410.classList.add('active');
            valGwp.innerText = '2088';
            circleGwp.style.borderColor = colorRed;
            valTemp.innerText = 'do 55°C (Tylko podłogówka)';
            valLaw.innerText = 'OBOWIĄZKOWE i Płatne!';
            valLaw.style.color = colorRed;
        }

        if (state === 2) {
            btnR32.classList.add('active');
            valGwp.innerText = '675';
            circleGwp.style.borderColor = colorOrange;
            valTemp.innerText = 'do 60°C (Mieszane CO)';
            valLaw.innerText = 'Podlega pod limity ilościowe';
            valLaw.style.color = colorOrange;
        }

        if (state === 3) {
            btnR290.classList.add('active');
            valGwp.innerText = '3';
            circleGwp.style.borderColor = colorGreen;
            valTemp.innerText = 'do 75°C (Idealny na grzejniki)';
            valLaw.innerText = 'Brak wymogów prawnych';
            valLaw.style.color = colorGreen;
        }
    }

    // Nasłuchiwanie
    btnR410.addEventListener('click', function() { updateRef(1); });
    btnR32.addEventListener('click', function() { updateRef(2); });
    btnR290.addEventListener('click', function() { updateRef(3); });
});
</script>



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

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

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

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

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

.rk-biv-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

.rk-biv-desc strong {
    color: #bae6fd;
}

/* GŁÓWNY PANEL SYMULATORA */
.rk-biv-simulator {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-biv-bg);
    border-bottom: 1px solid var(--rk-biv-border);
}

/* Lewa Kolumna - Przyciski */
.rk-biv-controls {
    padding: 35px 30px;
    background: var(--rk-biv-light);
    border-right: 1px solid var(--rk-biv-border);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-biv-controls-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-biv-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.rk-biv-btn {
    padding: 18px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-biv-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-biv-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

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

.rk-biv-btn-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-biv-dark);
    transition: color 0.3s;
}

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

.rk-biv-btn-sub {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
    transition: color 0.3s;
}

.rk-biv-btn.active .rk-biv-btn-sub { color: #bae6fd; }

/* Prawa Kolumna - Wykres SVG */
.rk-biv-graph-box {
    padding: 35px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-biv-graph-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-biv-dark);
}

.rk-biv-legend {
    display: flex;
    gap: 15px;
    font-size: 12px;
}

.rk-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.rk-legend-color { width: 12px; height: 12px; border-radius: 3px; }
.bg-demand { background: var(--rk-biv-dark); }
.bg-pump { background: var(--rk-biv-blue); }

.rk-svg-container {
    width: 100%;
    height: auto;
    background: #f8fafc;
    border: 1px solid var(--rk-biv-border);
    border-radius: 12px;
    padding: 10px;
}

/* Elementy wykresu SVG */
.graph-axis { stroke: #cbd5e1; stroke-width: 2; }
.graph-grid { stroke: #e2e8f0; stroke-width: 1; stroke-dasharray: 4 4; }
.line-demand { stroke: var(--rk-biv-dark); stroke-width: 4; stroke-linecap: round; }
.line-pump { stroke: var(--rk-biv-blue); stroke-width: 4; stroke-linecap: round; transition: all 0.5s ease; }
.fill-assist { transition: all 0.5s ease; opacity: 0; }

.graph-point { fill: #ffffff; stroke: var(--rk-biv-blue); stroke-width: 3; transition: all 0.5s ease; }
.graph-text { font-family: 'Inter', sans-serif; font-size: 12px; fill: #64748b; font-weight: 600; }
.graph-label { font-family: 'Inter', sans-serif; font-size: 14px; fill: var(--rk-biv-dark); font-weight: 800; transition: all 0.5s ease; opacity: 0; }

/* Stany wykresu dla poszczególnych trybów */
.state-monoen .fill-assist { fill: var(--rk-biv-red); opacity: 0.2; }
.state-monoen .graph-label.label-monoen { opacity: 1; fill: var(--rk-biv-red); }

.state-biwal .fill-assist { fill: var(--rk-biv-orange); opacity: 0.2; }
.state-biwal .graph-label.label-biwal { opacity: 1; fill: var(--rk-biv-orange); }

.state-monowal .graph-label.label-monowal { opacity: 1; fill: var(--rk-biv-green); }

/* Błąd w Sztuce - Krytyczny Alert */
.rk-biv-alert {
    margin: 35px;
    padding: 30px;
    background: #fff1f2;
    border: 2px solid #fecdd3;
    border-radius: 16px;
    border-left: 6px solid var(--rk-biv-red);
}

.rk-biv-alert-title {
    font-size: 20px;
    font-weight: 900;
    color: #991b1b;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-biv-alert p {
    font-size: 15px;
    line-height: 1.7;
    color: #7f1d1d;
    margin: 0;
}

.rk-biv-alert a {
    color: #991b1b;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-biv-header { padding: 30px 20px; }
    .rk-biv-title { font-size: 24px; }
    .rk-biv-simulator { grid-template-columns: 1fr; }
    .rk-biv-controls { border-right: none; border-bottom: 1px solid var(--rk-biv-border); padding: 25px 20px; }
    .rk-biv-graph-box { padding: 25px 20px; }
    .rk-biv-graph-header { flex-direction: column; gap: 10px; }
    .rk-biv-alert { margin: 20px; padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-dobor-mocy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Jak dobrać moc pompy ciepła do zapotrzebowania budynku?",
    "description": "Zrozumienie znaczenia normy PN-EN 12831, projektowego obciążenia cieplnego (OZC) oraz definicji punktu biwalentnego w zapobieganiu taktowaniu 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-dobor-mocy",
    "name": "Analiza Punktu Biwalentnego i Zapotrzebowania OZC 2026",
    "description": "Techniczne zestawienie strategii doboru wydajności urządzenia (monowalentna, monoenergetyczna, biwalentna) oraz identyfikacja zjawiska taktowania sprężarki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak dobrać moc pompy ciepła",
      "punkt biwalentny pompy powietrznej",
      "taktowanie sprężarki pompy ciepła",
      "przewymiarowana pompa ciepła skutki",
      "kalkulator ozc dla pompy ciepła"
    ],
    "measurementTechnique": "Wyznaczanie punktu biwalentnego (Tb) na podstawie krzywej obciążenia cieplnego wg PN-EN 12831 (np. 6.0 kW przy -20 stopni) oraz krzywej wydajności.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Punkt Biwalentny Tb: Punkt przecięcia linii zapotrzebowania z krzywą wydajności pompy.",
        "System Monoenergetyczny: Standard w PL, punkt Tb od -5C do -8C, wspomagany grzałką.",
        "Zagrożenie (Taktowanie): Przewymiarowanie urządzenia powoduje mikro-cykle pracy (poniżej 10 minut), drastycznie obniżając żywotność do mniej niż 5 lat."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-dobor-mocy",
    "name": "Interaktywny Wykres Pracy Biwalentnej",
    "description": "Narzędzie symulujące punkt przecinania się krzywych mocy grzewczej i zapotrzebowania na ciepło dla trzech głównych strategii pracy systemu HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-biv-wrapper" id="rk-biv-app">
    <div class="rk-biv-header">
        <div class="rk-biv-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="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Krzywe Mocy i OZC
        </div>
        <h2 class="rk-biv-title">Jak poprawnie dobrać moc pompy ciepła?</h2>
        <p class="rk-biv-desc">
            Dobór mocy to nie jest wróżenie z fusów ani dobieranie z "zapasem". Prawidłowy projekt opiera się o <strong>obliczenia OZC (PN-EN 12831)</strong> oraz wyznaczenie <strong>Punktu Biwalentnego ($T_b$)</strong>. Zobacz, jak poszczególne strategie zachowują się na wykresie.
        </p>
    </div>

    <div class="rk-biv-simulator">
        <div class="rk-biv-controls">
            <div class="rk-biv-controls-title">Wybierz strategię systemu</div>
            
            <button class="rk-biv-btn active" data-mode="monoen" id="btnMonoen">
                <span class="rk-biv-btn-title">Układ Monoenergetyczny</span>
                <span class="rk-biv-btn-sub">Powietrze + Grzałka (Standard PL)</span>
            </button>
            
            <button class="rk-biv-btn" data-mode="monowal" id="btnMonowal">
                <span class="rk-biv-btn-title">Układ Monowalentny</span>
                <span class="rk-biv-btn-sub">Gruntowa / Odwiert (100% z pompy)</span>
            </button>
            
            <button class="rk-biv-btn" data-mode="biwal" id="btnBiwal">
                <span class="rk-biv-btn-title">Układ Biwalentny</span>
                <span class="rk-biv-btn-sub">Powietrze + Kocioł Gazowy</span>
            </button>
        </div>

        <div class="rk-biv-graph-box">
            <div class="rk-biv-graph-header">
                <span>Wykres Mocy do Zapotrzebowania</span>
                <div class="rk-biv-legend">
                    <div class="rk-legend-item"><div class="rk-legend-color bg-demand"></div> Zapotrzebowanie (OZC)</div>
                    <div class="rk-legend-item"><div class="rk-legend-color bg-pump"></div> Moc Pompy Ciepła</div>
                </div>
            </div>

            <div class="rk-svg-container state-monoen" id="bivGraph">
                <svg viewBox="0 0 500 300" width="100%" height="100%" preserveAspectRatio="xMidYMid meet">
                    <line x1="50" y1="250" x2="480" y2="250" class="graph-axis" /> <line x1="50" y1="20" x2="50" y2="250" class="graph-axis" />  <line x1="50" y1="200" x2="480" y2="200" class="graph-grid" />
                    <line x1="50" y1="140" x2="480" y2="140" class="graph-grid" />
                    <line x1="50" y1="80" x2="480" y2="80" class="graph-grid" />
                    
                    <text x="35" y="85" class="graph-text" text-anchor="end">8 kW</text>
                    <text x="35" y="145" class="graph-text" text-anchor="end">6 kW</text>
                    <text x="35" y="205" class="graph-text" text-anchor="end">4 kW</text>

                    <text x="80" y="270" class="graph-text" text-anchor="middle">-20°C</text>
                    <text x="215" y="270" class="graph-text" text-anchor="middle">-7°C</text>
                    <text x="350" y="270" class="graph-text" text-anchor="middle">+7°C</text>
                    <text x="450" y="270" class="graph-text" text-anchor="middle">+15°C</text>

                    <path id="svgAssist" class="fill-assist" d="M 80 80 L 215 140 L 80 140 Z" />

                    <line x1="80" y1="80" x2="450" y2="250" class="line-demand" />

                    <line id="svgPumpLine" x1="80" y1="180" x2="350" y2="50" class="line-pump" />

                    <circle id="svgPoint" cx="215" cy="140" r="6" class="graph-point" />
                    
                    <text x="120" y="125" class="graph-label label-monoen">+ Grzałka Elektryczna</text>
                    <text x="120" y="125" class="graph-label label-biwal">+ Kocioł (Gaz/Pelet)</text>
                    <text x="200" y="60" class="graph-label label-monowal">Pełne Pokrycie (Grunt)</text>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-biv-alert">
        <div class="rk-biv-alert-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
            Błąd w sztuce: Przewymiarowanie i Taktowanie
        </div>
        <p>Największym grzechem inwestycyjnym jest kupowanie pompy "z zapasem" (np. montaż 12 kW w domu wymagającym 6 kW), tylko po to, by grzałka przy -20°C nigdy się nie włączyła. Wiosną i jesienią pompa jest wtedy za mocna na ciepły dom i zaczyna <strong>taktować</strong> – włączać się na krótkie, 5-minutowe cykle. Skutek? Ogromne zużycie prądu (rozruch) i śmierć mechaniczna sprężarki <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">często już po 4-5 latach</a>.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnMonoen = document.getElementById('btnMonoen');
    var btnMonowal = document.getElementById('btnMonowal');
    var btnBiwal = document.getElementById('btnBiwal');
    
    var svgGraph = document.getElementById('bivGraph');
    var svgPumpLine = document.getElementById('svgPumpLine');
    var svgAssist = document.getElementById('svgAssist');
    var svgPoint = document.getElementById('svgPoint');

    // Funkcja resetowania klas aktywnych
    function resetClasses() {
        btnMonoen.classList.remove('active');
        btnMonowal.classList.remove('active');
        btnBiwal.classList.remove('active');
        
        svgGraph.classList.remove('state-monoen');
        svgGraph.classList.remove('state-monowal');
        svgGraph.classList.remove('state-biwal');
    }

    // Tryb Monoenergetyczny (Powietrze + Grzałka)
    function setMonoen() {
        resetClasses();
        btnMonoen.classList.add('active');
        svgGraph.classList.add('state-monoen');
        
        // Linia pompy opada. Tb na -7C
        svgPumpLine.setAttribute('x1', '80');
        svgPumpLine.setAttribute('y1', '180');
        svgPumpLine.setAttribute('x2', '350');
        svgPumpLine.setAttribute('y2', '50');
        
        // Trójkąt asysty
        svgAssist.setAttribute('d', 'M 80 80 L 215 140 L 80 180 Z');
        
        // Punkt
        svgPoint.setAttribute('cx', '215');
        svgPoint.setAttribute('cy', '140');
    }

    // Tryb Monowalentny (Grunt - płaska charakterystyka)
    function setMonowal() {
        resetClasses();
        btnMonowal.classList.add('active');
        svgGraph.classList.add('state-monowal');
        
        // Linia pompy pozioma. Przecięcie na skraju -20C lub pokrywa całość
        svgPumpLine.setAttribute('x1', '50');
        svgPumpLine.setAttribute('y1', '75');
        svgPumpLine.setAttribute('x2', '450');
        svgPumpLine.setAttribute('y2', '75');
        
        // Asysta ukryta
        svgAssist.setAttribute('d', 'M 80 80 L 80 80 L 80 80 Z');
        
        // Punkt Tb (na skraju z lewej)
        svgPoint.setAttribute('cx', '80');
        svgPoint.setAttribute('cy', '80');
    }

    // Tryb Biwalentny (Powietrze + Kocioł)
    function setBiwal() {
        resetClasses();
        btnBiwal.classList.add('active');
        svgGraph.classList.add('state-biwal');
        
        // Linia pompy niżej. Tb na ok -2C do 0C
        svgPumpLine.setAttribute('x1', '80');
        svgPumpLine.setAttribute('y1', '210');
        svgPumpLine.setAttribute('x2', '350');
        svgPumpLine.setAttribute('y2', '80');
        
        // Trójkąt asysty większy
        svgAssist.setAttribute('d', 'M 80 80 L 270 167 L 80 210 Z');
        
        // Punkt
        svgPoint.setAttribute('cx', '270');
        svgPoint.setAttribute('cy', '167');
    }

    // Podpięcie eventów
    btnMonoen.addEventListener('click', setMonoen);
    btnMonowal.addEventListener('click', setMonowal);
    btnBiwal.addEventListener('click', setBiwal);
});
</script>



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

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

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

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

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

.rk-tech-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Przełącznik Technologii */
.rk-tech-selector {
    padding: 35px 45px;
    background: var(--rk-tech-bg);
    display: flex;
    gap: 15px;
    border-bottom: 1px solid var(--rk-tech-border);
}

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

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

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

.rk-tech-btn-title { font-size: 16px; font-weight: 800; }
.rk-tech-btn-sub { font-size: 12px; font-weight: 600; opacity: 0.8; }

/* Dashboard Wyników */
.rk-tech-dashboard {
    padding: 35px 45px;
    background: var(--rk-tech-light);
}

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

.rk-kpi-card {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-tech-border);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.1);
    border-color: #bae6fd;
}

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

.rk-kpi-content { flex-grow: 1; }
.rk-kpi-label { font-size: 12px; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 5px; }
.rk-kpi-val { font-size: 22px; font-weight: 900; color: var(--rk-tech-dark); transition: color 0.3s; }

/* Detale Techniczne (Sondy/Kolektory) */
.rk-tech-details {
    padding: 0 45px 40px;
    background: var(--rk-tech-light);
}

.rk-tech-details-inner {
    background: #ffffff;
    border: 1px solid var(--rk-tech-border);
    border-left: 4px solid var(--rk-tech-blue);
    border-radius: 16px;
    padding: 30px;
}

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

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

.rk-tech-details-inner ul {
    margin: 0;
    padding-left: 20px;
}

.rk-tech-details-inner li {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-tech-text);
    margin-bottom: 10px;
}

.rk-tech-details-inner a {
    color: var(--rk-tech-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-tech-header, .rk-tech-selector, .rk-tech-dashboard, .rk-tech-details { padding: 30px 20px; }
    .rk-tech-title { font-size: 24px; }
    .rk-tech-selector { flex-direction: column; gap: 10px; }
    .rk-tech-btn { flex-direction: row; justify-content: space-between; padding: 15px 20px; text-align: left; }
    .rk-tech-btn-icon { display: none; }
    .rk-tech-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-kpi-val { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-technologie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Powietrzna czy gruntowa pompa ciepła: Którą technologię wybrać?",
    "description": "Techniczno-ekonomiczne porównanie pomp ciepła ASHP (R290) oraz GSHP. Analiza kosztów, wskaźnika SCOP oraz wymogów dla odwiertów pionowych i kolektoró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-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-technologie",
    "name": "Analiza Techniczno-Ekonomiczna: Powietrze vs Grunt 2026",
    "description": "Zestawienie tabelaryczne parametrów eksploatacyjnych, kosztów brutto oraz sprawności dla systemów ASHP i GSHP dla domu 150m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "gruntowa pompa ciepła koszty",
      "pompa ciepła r290 monoblok",
      "odwierty pod pompę ciepła cena",
      "scop pompy ciepła w35",
      "kolektor poziomy a pionowy"
    ],
    "measurementTechnique": "Szacunki oparte na wytycznych instrukcji projektowej PORT PC oraz realnych stawkach rynkowych dla domów jednorodzinnych 150 m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Powietrze/Woda: SCOP 3.8-4.2, Koszt: 35k-48k PLN, Chłodzenie aktywne.",
        "Sonda Pionowa: SCOP 4.8-5.2, Koszt: 65k-85k PLN, Uzysk 40-60 W/m.",
        "Kolektor Poziomy: SCOP 4.3-4.6, Koszt: 50k-65k PLN, Wymagana pow. 300-500 m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-technologie",
    "name": "Kalkulator Rentowności i Doboru Technologii OZE",
    "description": "Interaktywny panel zestawiający kluczowe parametry (Wydajność, Budżet, Działka, Żywotność) pozwalający na błyskawiczne porównanie systemów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-wrapper">
    <div class="rk-tech-header">
        <div class="rk-tech-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"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
            Analiza Inwestycyjna
        </div>
        <h2 class="rk-tech-title">Powietrzna czy gruntowa pompa ciepła: Którą technologię wybrać?</h2>
        <p class="rk-tech-desc">
            Decyzja musi opierać się na twardej matematyce i geologii, a nie marketingu. Systemy gruntowe wg wytycznych PORT PC dają absolutną stabilność (solanka na 100m to stałe +7°C). Z kolei powietrzne <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:#bae6fd;text-decoration:underline;">pompy monoblok na R290</a> bronią się potężnie niższym kosztem startowym. Zobacz liczby.
        </p>
    </div>

    <div class="rk-tech-selector">
        <button class="rk-tech-btn active" data-tech="air" id="btnAir">
            <svg class="rk-tech-btn-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path></svg>
            <div style="text-align:center;">
                <div class="rk-tech-btn-title">Powietrze / Woda</div>
                <div class="rk-tech-btn-sub">Monoblok R290</div>
            </div>
        </button>
        <button class="rk-tech-btn" data-tech="geo-v" id="btnGeoV">
            <svg class="rk-tech-btn-icon" 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 style="text-align:center;">
                <div class="rk-tech-btn-title">Grunt / Woda</div>
                <div class="rk-tech-btn-sub">Sonda Pionowa</div>
            </div>
        </button>
        <button class="rk-tech-btn" data-tech="geo-h" id="btnGeoH">
            <svg class="rk-tech-btn-icon" width="32" height="32" 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 style="text-align:center;">
                <div class="rk-tech-btn-title">Grunt / Woda</div>
                <div class="rk-tech-btn-sub">Kolektor Poziomy</div>
            </div>
        </button>
    </div>

    <div class="rk-tech-dashboard">
        <div class="rk-tech-grid">
            
            <div class="rk-kpi-card">
                <div class="rk-kpi-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 20V10M18 20V4M6 20v-4"></path></svg></div>
                <div class="rk-kpi-content">
                    <div class="rk-kpi-label">Średnioroczny SCOP (W35)</div>
                    <div class="rk-kpi-val" id="valScop">3.8 – 4.2</div>
                </div>
            </div>

            <div class="rk-kpi-card">
                <div class="rk-kpi-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-kpi-content">
                    <div class="rk-kpi-label">Koszt brutto (Dom 150 m²)</div>
                    <div class="rk-kpi-val" id="valCost">35 000 – 48 000 PLN</div>
                </div>
            </div>

            <div class="rk-kpi-card">
                <div class="rk-kpi-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>
                <div class="rk-kpi-content">
                    <div class="rk-kpi-label">Żywotność dolnego źródła</div>
                    <div class="rk-kpi-val" id="valLife">Brak zewnętrznego wymiennika</div>
                </div>
            </div>

            <div class="rk-kpi-card">
                <div class="rk-kpi-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="14 2 18 6 7 17 3 17 3 13 14 2"></polygon><line x1="3" y1="22" x2="21" y2="22"></line></svg></div>
                <div class="rk-kpi-content">
                    <div class="rk-kpi-label">Wymagania dla działki</div>
                    <div class="rk-kpi-val" id="valPlot">0 m² / Brak formalności</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-tech-details">
        <div class="rk-tech-details-inner">
            <h3>Charakterystyka dolnych źródeł pomp gruntowych</h3>
            <p>W przypadku podjęcia decyzji o stabilnym systemie gruntowym, kluczem do ochrony sprężarki jest idealnie zwymiarowany wymiennik na etapie <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>:</p>
            <ul>
                <li><strong>Sondy pionowe (Odwierty):</strong> Rury wprowadzane pionowo (U-rura), najczęściej z mocarnego tworzywa PE100 RC (32x3.0 mm lub 40x3.7 mm). Jednostkowy uzysk z metra bieżącego wynosi od <strong>40 W/m</strong> (suchy piasek) do <strong>60 W/m</strong> (wilgotny granit). <em>Konsekwencja błędów:</em> Niedoszacowanie długości odwiertu to zamrożenie gruntu w kamień i permanentna blokada pompy błędem niskiego ciśnienia.</li>
                <li><strong>Kolektory poziome:</strong> Rury układane wężownicą poniżej strefy przemarzania (1.5 - 1.8 m). Uzysk to <strong>10 – 25 W/m²</strong>. Teren ten nie może być zabetonowany ani zacieniony, ponieważ regeneracja termiczna gruntu zależy od słońca i deszczu. Wymaga to dużej i wolnej działki (często powyżej 300 m²).</li>
            </ul>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Baza danych dla poszczególnych technologii
    var techData = {
        'air': {
            scop: '3.8 – 4.2',
            cost: '35 000 – 48 000 PLN',
            life: 'Brak zewn. wymiennika',
            plot: '0 m² / Brak formalności'
        },
        'geo-v': {
            scop: '4.8 – 5.2',
            cost: '65 000 – 85 000 PLN',
            life: '50+ lat',
            plot: 'Projekt geologiczny'
        },
        'geo-h': {
            scop: '4.3 – 4.6',
            cost: '50 000 – 65 000 PLN',
            life: '30 – 40 lat',
            plot: '300 – 500 m² (Wolny teren)'
        }
    };

    // Referencje
    var btns = document.querySelectorAll('.rk-tech-btn');
    var valScop = document.getElementById('valScop');
    var valCost = document.getElementById('valCost');
    var valLife = document.getElementById('valLife');
    var valPlot = document.getElementById('valPlot');

    // Funkcja aktualizująca (BEZ operatorów logicznych zagrażających JS w WP)
    function updateDashboard(techKey) {
        var data = techData[techKey];
        if (data) {
            valScop.innerText = data.scop;
            valCost.innerText = data.cost;
            valLife.innerText = data.life;
            valPlot.innerText = data.plot;
            
            // Lekki efekt pulse dla zwrócenia uwagi
            valScop.style.opacity = '0.5';
            setTimeout(function() { valScop.style.opacity = '1'; }, 150);
        }
    }

    // Podpięcie eventów pod przyciski
    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            // Czyszczenie klasy active
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            // Pobranie klucza i aktualizacja
            var key = this.getAttribute('data-tech');
            updateDashboard(key);
        });
    }

});
</script>



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

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

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

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

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

/* Symulator interaktywny */
.rk-buf-simulator {
    padding: 40px 45px;
    background: var(--rk-buf-light);
    border-bottom: 1px solid var(--rk-buf-border);
}

.rk-buf-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

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

.rk-buf-btn:hover { background: #f1f5f9; border-color: #bae6fd; }

.rk-buf-btn.active[data-state="safe"] {
    border-color: var(--rk-buf-green);
    background: #ecfdf5;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-buf-btn.active[data-state="danger"] {
    border-color: var(--rk-buf-red);
    background: #fef2f2;
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-buf-btn-title { font-size: 16px; font-weight: 800; color: var(--rk-buf-dark); }
.rk-buf-btn-sub { font-size: 13px; font-weight: 600; color: #64748b; }

/* Diagram Wizualny */
.rk-buf-diagram {
    background: #ffffff;
    border: 1px solid var(--rk-buf-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    transition: background 0.4s, border-color 0.4s;
}

.rk-buf-diagram.state-danger {
    background: #fff1f2;
    border-color: var(--rk-buf-red);
}

.rk-buf-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    z-index: 2;
    width: 30%;
    text-align: center;
}

.rk-buf-icon-box {
    width: 64px;
    height: 64px;
    border-radius: 16px;
    background: var(--rk-buf-light);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--rk-buf-blue);
    transition: all 0.4s;
}

.state-danger .rk-buf-node.pump .rk-buf-icon-box { border-color: var(--rk-buf-red); background: #fee2e2; }
.state-danger .rk-buf-node.buffer { opacity: 0.2; filter: grayscale(100%); }
.state-danger .rk-buf-node.floor .rk-buf-icon-box { border-color: #cbd5e1; background: #f1f5f9; }

.rk-buf-node-title { font-size: 14px; font-weight: 800; color: var(--rk-buf-dark); }
.rk-buf-node-desc { font-size: 12px; color: #64748b; font-weight: 600; }

.rk-buf-flow {
    flex-grow: 1;
    height: 4px;
    background: var(--rk-buf-blue);
    position: relative;
    margin: 0 15px;
    border-radius: 2px;
    z-index: 1;
    transition: background 0.4s;
}

.rk-buf-flow::after {
    content: '';
    position: absolute;
    top: -4px; left: 50%;
    border-width: 6px;
    border-style: solid;
    border-color: transparent transparent transparent var(--rk-buf-blue);
    transform: translateX(-50%);
}

.state-danger .rk-buf-flow { background: var(--rk-buf-red); }
.state-danger .rk-buf-flow::after { border-color: transparent transparent transparent var(--rk-buf-red); }

/* Alert Box */
.rk-buf-alert {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
    transition: all 0.4s;
}

.rk-buf-alert.safe { background: #ecfdf5; color: #065f46; border-left: 4px solid var(--rk-buf-green); }
.rk-buf-alert.danger { background: #fef2f2; color: #991b1b; border-left: 4px solid var(--rk-buf-red); }

/* Detale Tekstowe */
.rk-buf-details {
    padding: 40px 45px;
    background: var(--rk-buf-bg);
}

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

.rk-buf-card {
    padding: 25px;
    border: 1px solid var(--rk-buf-border);
    border-radius: 16px;
    background: #f8fafc;
}

.rk-buf-card h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-buf-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-buf-header, .rk-buf-simulator, .rk-buf-details { padding: 30px 20px; }
    .rk-buf-title { font-size: 24px; }
    .rk-buf-controls { flex-direction: column; gap: 10px; }
    .rk-buf-diagram { flex-direction: column; gap: 20px; padding: 25px 15px; }
    .rk-buf-node { width: 100%; flex-direction: row; text-align: left; }
    .rk-buf-node-text { flex-grow: 1; }
    .rk-buf-flow { width: 4px; height: 30px; margin: 0; }
    .rk-buf-flow::after { top: 50%; left: -4px; transform: translateY(-50%); border-color: var(--rk-buf-blue) transparent transparent transparent; border-width: 6px 6px 0 6px; }
    .state-danger .rk-buf-flow::after { border-color: var(--rk-buf-red) transparent transparent transparent; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-bufor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Dlaczego bufor ciepła jest niezbędny w instalacji z pompą ciepła?",
    "description": "Techniczne omówienie konieczności stosowania bufora ciepła jako sprzęgła hydraulicznego oraz rezerwuaru energii niezbędnego do procesu odszraniania (defrostu).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-bufor",
    "name": "Analiza ryzyka i kosztów braku bufora w instalacji pompy ciepła",
    "description": "Identyfikacja punktów krytycznych układu hydraulicznego oraz kosztów napraw pogwarancyjnych wynikających z niezapewnienia minimalnego zładu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bufor ciepła do pompy ciepła",
      "schemat pompy ciepła z buforem",
      "błąd przepływu pompy ciepła",
      "zamrożony wymiennik płytowy koszty",
      "sprzęgło hydrauliczne a bufor"
    ],
    "measurementTechnique": "Określenie przepływu minimalnego (np. 1.5 m3/h) oraz czasu odszraniania (3-7 minut) w korelacji z pojemnością wodną instalacji strefowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt wymiany rozsadzonego skraplacza: powyżej 8000 PLN.",
        "Funkcja bufora: Zapewnienie energii do defrostu oraz separacja obiegów hydraulicznych.",
        "Ryzyko: Odcięcie pętli przez siłowniki powoduje nagły spadek pojemności poniżej normy bezpieczeństwa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-bufor",
    "name": "Symulator Awarii Hydraulicznej i Defrostu",
    "description": "Interaktywne narzędzie obrazujące zachowanie zładu wody i przepływów podczas procesu odszraniania z uwzględnieniem bufora oraz jego braku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-buf-wrapper">
    <div class="rk-buf-header">
        <div class="rk-buf-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Fundament Instalacji
        </div>
        <h2 class="rk-buf-title">Dlaczego bufor ciepła to Twoja polisa ubezpieczeniowa?</h2>
        <p style="font-size: 16px; color: #94a3b8; line-height: 1.6; margin: 0;">
            Zastosowanie <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color:#bae6fd;text-decoration:underline;">zbiornika buforowego</a> to nie kaprys instalatora, lecz twardy wymóg technologiczny określony przez producentów. Chroni on Twoją sprężarkę przed tzw. "zajechaniem" i rozsadzeniem wymiennika. Zobacz, co się dzieje pod obudową maszyny.
        </p>
    </div>

    <div class="rk-buf-simulator">
        <div class="rk-buf-controls">
            <button class="rk-buf-btn active" data-state="safe" id="btnSafe">
                <span class="rk-buf-btn-title">Instalacja Inżynierska</span>
                <span class="rk-buf-btn-sub">Bufor działa jako sprzęgło</span>
            </button>
            <button class="rk-buf-btn" data-state="danger" id="btnDanger">
                <span class="rk-buf-btn-title">Instalacja "Oszczędna"</span>
                <span class="rk-buf-btn-sub">Brak bufora + zamknięte pętle</span>
            </button>
        </div>

        <div class="rk-buf-diagram" id="diagramBox">
            <div class="rk-buf-node pump">
                <div class="rk-buf-icon-box">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-buf-node-text">
                    <div class="rk-buf-node-title">Pompa Ciepła</div>
                    <div class="rk-buf-node-desc">Obieg Pierwotny</div>
                </div>
            </div>
            
            <div class="rk-buf-flow"></div>
            
            <div class="rk-buf-node buffer">
                <div class="rk-buf-icon-box">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="4" y1="7" x2="20" y2="7"></line><line x1="4" y1="17" x2="20" y2="17"></line></svg>
                </div>
                <div class="rk-buf-node-text">
                    <div class="rk-buf-node-title">Bufor Ciepła</div>
                    <div class="rk-buf-node-desc">Zład: 100 Litrów</div>
                </div>
            </div>
            
            <div class="rk-buf-flow"></div>
            
            <div class="rk-buf-node floor">
                <div class="rk-buf-icon-box">
                    <svg width="32" height="32" 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-buf-node-text">
                    <div class="rk-buf-node-title">Podłogówka</div>
                    <div class="rk-buf-node-desc">Obieg Wtórny</div>
                </div>
            </div>
        </div>

        <div class="rk-buf-alert safe" id="alertBox">
            <strong>BEZPIECZEŃSTWO:</strong> Podczas mrozów pompa ciepła pobiera zmagazynowaną w buforze energię do procesu odszraniania (defrostu). Przepływ jest stabilny, a dwa obiegi hydrauliczne nie zakłócają swojej pracy.
        </div>
    </div>

    <div class="rk-buf-details">
        <div class="rk-buf-grid">
            <div class="rk-buf-card">
                <h4>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-buf-blue)" 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>
                    Zapewnienie energii do defrostu
                </h4>
                <p>Podczas wysokiej wilgotności na parowniku osadza się szron. Pompa musi odwrócić obieg – pobrać potężny ładunek ciepła z instalacji, aby stopić lód. Trwa to od 3 do 7 minut. Zapas wody w buforze gwarantuje, że proces przebiegnie płynnie bez generowania groźnych błędów przepływu.</p>
            </div>
            
            <div class="rk-buf-card">
                <h4>
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-buf-blue)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5"></path></svg>
                    Sprzęgło hydrauliczne (Separacja)
                </h4>
                <p>Pompa ciepła wymaga stałego, gigantycznego przepływu (np. 1.5 m³/h). Jeśli podłogówka posiada <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe (siłowniki)</a>, przepływ ciągle się zmienia. <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">Sprzęgło hydrauliczne</a> w postaci bufora eliminuje zakłócenia między pompami obiegowymi.</p>
            </div>

            <div class="rk-buf-card" style="border-color: var(--rk-buf-red); background: #fef2f2;">
                <h4 style="color: var(--rk-buf-red);">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Konsekwencje braku bufora
                </h4>
                <p>Rezygnacja z bufora przy jednoczesnym montażu siłowników to wyrok na instalację. Gdy zamknie się np. 7 z 10 pętli, obieg zostaje zdławiony. W trakcie mrozów, pompa próbuje wykonać defrost, jednak brak zładu wody powoduje natychmiastowe <strong>mechaniczne rozsadzenie (zamarznięcie) skraplacza</strong>. Koszt tej nieobjętej gwarancją naprawy przekracza nierzadko <strong>8 000 PLN</strong>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnSafe = document.getElementById('btnSafe');
    var btnDanger = document.getElementById('btnDanger');
    var diagramBox = document.getElementById('diagramBox');
    var alertBox = document.getElementById('alertBox');

    function triggerSafeState() {
        btnDanger.classList.remove('active');
        btnSafe.classList.add('active');
        diagramBox.classList.remove('state-danger');
        
        alertBox.className = 'rk-buf-alert safe';
        alertBox.innerHTML = '<strong>BEZPIECZEŃSTWO:</strong> Podczas mrozów pompa ciepła pobiera zmagazynowaną w buforze energię do procesu odszraniania (defrostu). Przepływ jest stabilny, a dwa obiegi hydrauliczne nie zakłócają swojej pracy.';
    }

    function triggerDangerState() {
        btnSafe.classList.remove('active');
        btnDanger.classList.add('active');
        diagramBox.classList.add('state-danger');
        
        alertBox.className = 'rk-buf-alert danger';
        alertBox.innerHTML = '<strong>AWARIA (FLOW ERROR):</strong> Siłowniki zamknęły pętle podłogówki. Przepływ zdławiony do zera. Pompa podczas mrozu próbuje rozmrozić jednostkę zewn., co przy braku bufora skutkuje trwałym rozsadzeniem płytowego wymiennika ciepła.';
    }

    // Bezpieczne przypięcie zdarzeń bez operatorów logicznych
    btnSafe.addEventListener('click', triggerSafeState);
    btnDanger.addEventListener('click', triggerDangerState);
});
</script>



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

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

/* Nagłówek */
.rk-cop-header {
    padding: 40px 45px 35px;
    background: linear-gradient(135deg, var(--rk-cop-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-cop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #38bdf8;
    padding: 6px 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-cop-title {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-cop-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja Symulatora COP */
.rk-cop-simulator {
    padding: 40px 45px;
    background: var(--rk-cop-light);
    border-bottom: 1px solid var(--rk-cop-border);
}

.rk-cop-toggle-box {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

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

.rk-cop-btn:hover {
    background: #f8fafc;
    border-color: #bae6fd;
}

.rk-cop-btn.active[data-type="eco"] {
    border-color: var(--rk-cop-green);
    background: #ecfdf5;
    color: var(--rk-cop-dark);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-cop-btn.active[data-type="bad"] {
    border-color: var(--rk-cop-red);
    background: #fef2f2;
    color: var(--rk-cop-dark);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-cop-btn-title {
    font-size: 16px;
    font-weight: 800;
}

.rk-cop-btn-sub {
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

.rk-cop-result-display {
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-cop-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-cop-score {
    text-align: center;
}

.rk-cop-score-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-cop-score-val {
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    transition: color 0.3s;
}

.rk-cop-info {
    flex: 1;
    margin-left: 30px;
    padding-left: 30px;
    border-left: 1px solid var(--rk-cop-border);
}

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

.rk-cop-info strong {
    color: var(--rk-cop-dark);
}

/* Reżim Hydrauliczny - Karty */
.rk-cop-rules {
    padding: 40px 45px;
    background: var(--rk-cop-bg);
}

.rk-cop-rules h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-cop-dark);
    margin: 0 0 25px 0;
}

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

.rk-rule-card {
    background: #f8fafc;
    border: 1px solid var(--rk-cop-border);
    border-radius: 16px;
    padding: 25px 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-rule-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 24px -8px rgba(2, 132, 199, 0.15);
    border-color: var(--rk-cop-blue);
    background: #ffffff;
}

.rk-rule-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-cop-light);
    color: var(--rk-cop-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.rk-rule-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-cop-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-cop-header, .rk-cop-simulator, .rk-cop-rules { padding: 30px 20px; }
    .rk-cop-title { font-size: 24px; }
    .rk-cop-toggle-box { flex-direction: column; gap: 10px; }
    .rk-cop-result-display { flex-direction: column; text-align: center; padding: 25px 20px; }
    .rk-cop-info { margin: 20px 0 0 0; padding: 20px 0 0 0; border-left: none; border-top: 1px solid var(--rk-cop-border); }
    .rk-rules-grid { grid-template-columns: 1fr; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-wspolpraca",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Jak pompa ciepła współpracuje z ogrzewaniem podłogowym?",
    "description": "Szczegółowa analiza wpływu temperatury zasilania na wskaźnik COP według obiegu Carnota oraz omówienie restrykcyjnego reżimu hydraulicznego dla instalacji 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-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-wspolpraca",
    "name": "Wydajność pomp ciepła a temperatura zasilania (W35 vs W55)",
    "description": "Zestawienie zależności wskaźnika COP od temperatury odbiornika oraz wymogi hydrauliczne dotyczące spadku temperatur i średnic rur magistralnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sprawność pompy ciepła cop",
      "temperatura zasilania podłogówki",
      "delta t w ogrzewaniu podłogowym",
      "średnica rur do rozdzielacza",
      "obieg carnota w pompie ciepła"
    ],
    "measurementTechnique": "Analiza porównawcza wskaźnika efektywności (COP) dla parametrów W35 vs W55 oraz weryfikacja oporów hydraulicznych dla projektowej Delty T=5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek temperatury zasilania o 1 stopień C = oszczędność prądu 2.5-3%.",
        "Wymagana Delta T dla pomp ciepła: rygorystyczne 5K wymuszające wysokie przepływy masowe.",
        "Minimalna średnica magistrali zasilającej rozdzielacz dla mocy 8 kW: wewnętrznie 26 mm (np. rura PEX 32x3.0 mm)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-wspolpraca",
    "name": "Symulator Sprawności Odbiorników W35 vs W55",
    "description": "Interaktywne zestawienie wpływu rodzaju odbiornika ciepła (podłogówka niskotemperaturowa vs grzejniki wysokotemperaturowe) na sprawność sprężarki i zużycie energii.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cop-wrapper">
    <div class="rk-cop-header">
        <div class="rk-cop-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>
            Termodynamika i Hydraulika
        </div>
        <h2 class="rk-cop-title">Jak pompa ciepła współpracuje z ogrzewaniem podłogowym?</h2>
        <p class="rk-cop-desc">
            Wodne ogrzewanie płaszczyznowe to naturalny i jedyny słuszny odbiornik dla pompy. Tajemnica tkwi w <strong>obiegu Carnota</strong> – każde obniżenie zasilania podłogówki o 1°C ścina zużycie prądu o około 2.5 – 3%.
        </p>
    </div>

    <div class="rk-cop-simulator">
        <div class="rk-cop-toggle-box">
            <button class="rk-cop-btn active" data-type="eco" id="btnW35">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--rk-cop-green);"><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>
                <span class="rk-cop-btn-title">System Zoptymalizowany</span>
                <span class="rk-cop-btn-sub">Podłogówka (Zasilanie W35)</span>
            </button>
            <button class="rk-cop-btn" data-type="bad" id="btnW55">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--rk-cop-red);"><path d="M3 3v18h18"></path><path d="M18.7 8l-5.1 5.2-2.8-2.7L7 14.3"></path></svg>
                <span class="rk-cop-btn-title">Stary System (Modernizacja)</span>
                <span class="rk-cop-btn-sub">Grzejniki (Zasilanie W55)</span>
            </button>
        </div>

        <div class="rk-cop-result-display">
            <div class="rk-cop-score">
                <div class="rk-cop-score-label">Sprawność COP</div>
                <div class="rk-cop-score-val" id="dispCop" style="color:var(--rk-cop-green);">4.5</div>
            </div>
            <div class="rk-cop-info" id="dispInfo">
                <p>
                    <strong>Idealna synergia.</strong> Pobierając 1 kW prądu, sprężarka tłoczy aż 4.5 kW energii cieplnej do budynku. Niskotemperaturowy reżim podłogówki (28-35°C) drastycznie odciąża urządzenie, co gwarantuje niskie rachunki zimą i wydłuża żywotność sprzętu.
                </p>
            </div>
        </div>
    </div>

    <div class="rk-cop-rules">
        <h3>Reżim pracy urządzeń inwerterowych</h3>
        <p style="color:var(--rk-cop-text); margin-bottom: 25px; line-height: 1.6;">Ogrzewanie podłogowe projektowane pod pompę ciepła musi bezwzględnie spełniać twarde wytyczne hydrauliczne. Inaczej urządzenie ulegnie awarii w wyniku braku odbioru mocy.</p>
        
        <div class="rk-rules-grid">
            <div class="rk-rule-card">
                <div class="rk-rule-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 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
                </div>
                <h4 class="rk-rule-title">Niski parametr zasilania</h4>
                <p class="rk-rule-text">Maksymalna temperatura zasilania przy projektowych mrozach nie może przekraczać 35°C. Perfekcyjne, zagęszczone układy <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">projektuje się na parametr 30–32°C</a>.</p>
            </div>

            <div class="rk-rule-card">
                <div class="rk-rule-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="M17 11l-5-5-5 5M17 18l-5-5-5 5"></path></svg>
                </div>
                <h4 class="rk-rule-title">Ścisła Różnica ΔT = 5K</h4>
                <p class="rk-rule-text">Projektowy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury (Delta T)</a> wynosi ściśle 5K (zasilanie 35°C / powrót 30°C). Dla kotłów gazowych było to 10–15K. Niska delta wymusza potężne przepływy masowe.</p>
            </div>

            <div class="rk-rule-card">
                <div class="rk-rule-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><circle cx="12" cy="12" r="4"></circle></svg>
                </div>
                <h4 class="rk-rule-title">Potężne średnice magistrali</h4>
                <p class="rk-rule-text">Wielki przepływ generuje opory. Główna rura zasilająca przy mocy zaledwie 8 kW musi mieć <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">minimalną średnicę wewnętrzną 26 mm</a> (np. PEX 32x3.0). Rura 20 mm zdławi przepływ.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnW35 = document.getElementById('btnW35');
    var btnW55 = document.getElementById('btnW55');
    var dispCop = document.getElementById('dispCop');
    var dispInfo = document.getElementById('dispInfo');

    function setEcoMode() {
        // Reset klas
        btnW55.classList.remove('active');
        btnW35.classList.add('active');
        
        // Zmiana danych
        dispCop.innerText = "4.5";
        dispCop.style.color = "var(--rk-cop-green)";
        dispInfo.innerHTML = "<p><strong>Idealna synergia.</strong> Pobierając 1 kW prądu, sprężarka tłoczy aż 4.5 kW energii cieplnej do budynku. Niskotemperaturowy reżim podłogówki (28-35°C) drastycznie odciąża urządzenie, co gwarantuje niskie rachunki zimą i wydłuża żywotność sprzętu.</p>";
    }

    function setBadMode() {
        // Reset klas
        btnW35.classList.remove('active');
        btnW55.classList.add('active');
        
        // Zmiana danych
        dispCop.innerText = "3.1";
        dispCop.style.color = "var(--rk-cop-red)";
        dispInfo.innerHTML = "<p><strong>Dramatyczny spadek wydajności.</strong> Zmuszenie pompy do przygotowania wody o temp. 55°C dla grzejników obniża COP do poziomu 3.1 lub mniej. Sprężarka jest ekstremalnie obciążona mechanicznie, a rachunki za prąd rosną nawet o 40% w stosunku do podłogówki.</p>";
    }

    // Bezpieczne przypisanie zdarzeń
    btnW35.addEventListener('click', setEcoMode);
    btnW55.addEventListener('click', setBadMode);
});
</script>



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

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

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

.rk-prm-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #38bdf8;
    padding: 6px 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-prm-title {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

/* Zakładki / Akordeon */
.rk-prm-content {
    padding: 35px 50px;
    background: var(--rk-prm-bg);
}

.rk-prm-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--rk-prm-border);
    padding-bottom: 15px;
}

.rk-prm-tab-btn {
    padding: 12px 20px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 12px;
    color: var(--rk-prm-text);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-prm-tab-btn.active {
    background: var(--rk-prm-blue);
    color: #ffffff;
    box-shadow: 0 8px 15px -5px rgba(2, 132, 199, 0.4);
}

.rk-prm-tab-icon {
    width: 24px;
    height: 24px;
}

/* Panele zawartości */
.rk-prm-panel {
    display: none;
    animation: fadeIn 0.5s ease;
}

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

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

.rk-prm-panel-inner {
    background: var(--rk-prm-hover);
    border: 1px solid var(--rk-prm-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-prm-panel h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-prm-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-prm-panel a {
    color: var(--rk-prm-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-prm-blue);
}

.rk-prm-highlight {
    background: var(--rk-prm-light-blue);
    padding: 15px 20px;
    border-left: 4px solid var(--rk-prm-blue);
    border-radius: 0 12px 12px 0;
    font-weight: 700;
    color: var(--rk-prm-dark);
    margin-top: 20px;
}

/* Potężne CTA Sprzedażowe */
.rk-prm-cta-box {
    margin: 0 50px 40px;
    padding: 40px;
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    border: 2px solid #bae6fd;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.15);
}

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

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

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

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

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

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

/* RWD Mobile - Zmiana na strukturę Akordeonu */
@media (max-width: 768px) {
    .rk-prm-header { padding: 35px 25px; }
    .rk-prm-title { font-size: 24px; }
    .rk-prm-content { padding: 25px; }
    
    /* Akordeon na mobile */
    .rk-prm-tabs-nav {
        flex-direction: column;
        border-bottom: none;
        gap: 15px;
        margin-bottom: 20px;
    }
    
    .rk-prm-tab-btn {
        width: 100%;
        justify-content: space-between;
        padding: 16px 20px;
        background: #f8fafc;
        border: 1px solid var(--rk-prm-border);
    }
    
    .rk-prm-tab-btn.active {
        border-radius: 12px 12px 0 0;
        margin-bottom: -15px; /* Przyciągnięcie panelu do aktywnego guzika */
        z-index: 2;
        position: relative;
    }

    .rk-prm-panel-inner {
        border-radius: 0 0 12px 12px;
        padding: 25px 20px;
    }

    .rk-prm-cta-box { margin: 0 25px 35px; padding: 30px 20px; }
    .rk-prm-cta-title { font-size: 20px; }
    .rk-btn-sell { width: 100%; padding: 18px 15px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Jak parametry pompy ciepła wpływają na projekt ogrzewania podłogowego?",
    "description": "Zrozumienie zależności między niskotemperaturowym źródłem ciepła a geometrią pętli podłogówki, grubością izolacji i wymaganiami względem zładu wody.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-parametry",
    "name": "Normatywne wytyczne projektowe dla ogrzewania podłogowego 2026",
    "description": "Zestawienie inżynierskich zasad kształtowania pętli, doboru rotametrów i izolacji EPS zgodnie z normami PN-EN 12831 oraz PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zagęszczenie rur co 10 cm podłogówka",
      "maksymalna długość pętli dla pompy ciepła",
      "grubość styropianu pod ogrzewanie podłogowe",
      "opór cieplny izolacji pn-en 1264",
      "rotametry do rozdzielacza 5 l/min"
    ],
    "measurementTechnique": "Określenie gęstości strumienia cieplnego przy temperaturze wody zasilającej 30-35 stopni.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur: Standard 10 cm, wymusza zużycie 10 mb rury na 1 m2.",
        "Maksymalna długość pętli 16x2.0: 100 mb (optymalnie 70-80 mb).",
        "Wymagany opór izolacji R-lambda: Minimum 1.25 m2K/W pod rurami grzewczymi na gruncie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-parametry",
    "name": "Nawigator Wytycznych Projektowych",
    "description": "Interaktywny moduł edukacyjny prezentujący kluczowe zależności inżynieryjne pomiędzy urządzeniem grzewczym a systemem płaszczyznowym w formie przełączanych paneli merytorycznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-prm-container" id="prm-app">
    <div class="rk-prm-header">
        <div class="rk-prm-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>
            Inżynieria w praktyce
        </div>
        <h2 class="rk-prm-title">Jak parametry pompy wymuszają zmianę projektu?</h2>
        <p class="rk-prm-desc">
            Wdrożenie pompy ciepła to całkowita rewolucja w fazie projektowej. Zapomnij o układaniu rur "na oko" co 15 cm. Projekt instalacji musi być bezpośrednią pochodną wyników obliczeń <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" style="color:#bae6fd;text-decoration:underline;">OZC (PN-EN 12831)</a>.
        </p>
    </div>

    <div class="rk-prm-content">
        <div class="rk-prm-tabs-nav" id="prmTabsNav">
            <button class="rk-prm-tab-btn active" data-target="tab-1">
                <svg class="rk-prm-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg>
                Rozstaw rur
            </button>
            <button class="rk-prm-tab-btn" data-target="tab-2">
                <svg class="rk-prm-tab-icon" 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>
                Długość pętli
            </button>
            <button class="rk-prm-tab-btn" data-target="tab-3">
                <svg class="rk-prm-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                Strefowanie
            </button>
            <button class="rk-prm-tab-btn" data-target="tab-4">
                <svg class="rk-prm-tab-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                Izolacja
            </button>
        </div>

        <div class="rk-prm-panels-container">
            
            <div class="rk-prm-panel active" id="tab-1">
                <div class="rk-prm-panel-inner">
                    <h3>Zagęszczenie rozstawu rur</h3>
                    <p>Aby uzyskać wymaganą gęstość strumienia cieplnego przy bardzo niskiej temperaturze wody (<a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">30–35°C dla pomp ciepła</a>), konieczne jest zagęszczone układanie rur grzewczych.</p>
                    <p>W pokojach mieszkalnych inżynierskim standardem staje się <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 cm</a> (zamiast tradycyjnych 15 cm). Z kolei w łazienkach, gdzie temperatura normatywna to aż +24°C, rozstaw zagęszcza się maksymalnie do 5 cm lub stosuje dodatkowe ścienne maty, aby uniknąć wymuszania wysokiego zasilania na całej maszynie.</p>
                </div>
            </div>

            <div class="rk-prm-panel" id="tab-2">
                <div class="rk-prm-panel-inner">
                    <h3>Krytyczna długość obiegów</h3>
                    <p>Gęstszy rozstaw rur co 10 cm drastycznie zwiększa ich zużycie – potrzebujemy aż 10 mb rury na każdy 1 m² podłogi. Aby nie przekroczyć granicznych oporów hydraulicznych, których wbudowana w maszynę pompa obiegowa nie pokona, musimy wytyczyć ostre ramy.</p>
                    <div class="rk-prm-highlight">
                        Pojedyncza pętla z rury o średnicy 16x2.0 mm (zasilana przez pompę ciepła) absolutnie nie może być dłuższa niż 100 m. Optymalna i bezpieczna długość pętli to 70 – 80 m.
                    </div>
                </div>
            </div>

            <div class="rk-prm-panel" id="tab-3">
                <div class="rk-prm-panel-inner">
                    <h3>Strefowanie i eliminacja dławienia</h3>
                    <p>Projekt musi z bezwzględną precyzją eliminować opory na rozdzielaczach. Przepływomierze (rotametry) na belce muszą obsługiwać wysokie przepływy o zakresie regulacji do 5 l/min.</p>
                    <p>Inżynier projektant musi tak zbalansować długości pętli, aby <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">różnice między nimi nie przekraczały 10-15%</a>. Zapobiega to patologicznej sytuacji, w której jedna krótka pętla (np. 20 m w garderobie) dosłownie "kradnie" cały zład i przepływ wody kosztem pętli długich z salonu.</p>
                </div>
            </div>

            <div class="rk-prm-panel" id="tab-4">
                <div class="rk-prm-panel-inner">
                    <h3>Opór cieplny izolacji termicznej</h3>
                    <p>Ucieczka ciepła w kierunku fundamentu to zabójstwo dla efektywności (SCOP). Zgodnie z wytycznymi normy <strong>PN-EN 1264</strong>, opór cieplny izolacji pod rurami układanymi bezpośrednio na gruncie musi wynosić minimum 1.25 m²K/W.</p>
                    <div class="rk-prm-highlight">
                        W praktyce budowlanej oznacza to bezwzględną konieczność ułożenia <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu podłogowego EPS 100</a> o grubości minimum 15 cm (przy dobrym parametrze λ) lub 20 cm standardowego EPS.
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-prm-cta-box">
        <h3 class="rk-prm-cta-title">Wyciśnij 100% sprawności ze swojej pompy ciepła</h3>
        <p class="rk-prm-cta-desc">
            Inwestujesz dziesiątki tysięcy w nowoczesne źródło ciepła? Nie psuj tego efektem "zgadywanego" montażu podłogówki. Jeden błąd w hydraulice, przewymiarowana długość pętli lub brak zbilansowania to wyrok na wysokie rachunki i przedwczesną śmierć sprężarki. Zbuduj fundament, na którym polegają profesjonaliści.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-sell">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Bezpieczny mechanizm przełączania zakładek bez znaków &&, || etc.
    var buttons = document.querySelectorAll('.rk-prm-tab-btn');
    var panels = document.querySelectorAll('.rk-prm-panel');

    function deactivateAll() {
        for (var i = 0; i < buttons.length; i++) {
            buttons[i].classList.remove('active');
        }
        for (var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('active');
        }
    }

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            var targetPanel = document.getElementById(targetId);
            
            // Tylko jeśli panel docelowy istnieje
            if (targetPanel) {
                deactivateAll();
                this.classList.add('active');
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



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

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

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

.rk-app-title {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
    border-bottom: none;
    padding-bottom: 0;
}

.rk-app-subtitle {
    font-size: 15px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Body Grid */
.rk-app-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-app-bg);
}

/* Controls (Steppers) */
.rk-app-controls {
    padding: 35px 45px;
    background: var(--rk-app-light);
    border-right: 1px solid var(--rk-app-border);
}

.rk-stepper-group {
    margin-bottom: 25px;
    background: #ffffff;
    padding: 15px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-app-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-stepper-label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-app-dark);
    margin-bottom: 15px;
    text-align: center;
}

.rk-stepper-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 5px;
}

.rk-step-btn {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: none;
    background: #ffffff;
    color: var(--rk-app-blue-dark);
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    transition: all 0.2s;
    user-select: none;
}

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

.rk-step-btn:active {
    transform: scale(0.95);
}

.rk-step-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-app-dark);
    min-width: 100px;
    text-align: center;
}

.rk-step-hint {
    font-size: 11px;
    color: #94a3b8;
    text-align: center;
    margin-top: 10px;
    display: block;
}

/* Results */
.rk-app-results {
    padding: 35px 45px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-result-card {
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-app-border);
    background: #ffffff;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: transform 0.3s, border-color 0.3s;
}

.rk-result-card:hover {
    transform: translateY(-2px);
    border-color: var(--rk-app-blue);
}

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

.rk-result-card.highlight .rk-result-icon {
    background: #ecfdf5;
    color: var(--rk-app-green);
}

.rk-result-content {
    flex-grow: 1;
}

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

.rk-result-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-app-dark);
}

.rk-app-footer {
    padding: 20px 45px;
    background: var(--rk-app-dark);
    font-size: 13px;
    color: #94a3b8;
    line-height: 1.6;
    text-align: center;
}

.rk-app-footer a {
    color: #38bdf8;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* RWD */
@media (max-width: 768px) {
    .rk-app-header { padding: 30px 20px; }
    .rk-app-title { font-size: 22px; }
    .rk-app-body { grid-template-columns: 1fr; }
    .rk-app-controls { border-right: none; border-bottom: 1px solid var(--rk-app-border); padding: 30px 20px; }
    .rk-app-results { padding: 30px 20px; }
    .rk-result-card { padding: 15px; gap: 15px; }
    .rk-result-icon { width: 42px; height: 42px; }
    .rk-result-value { font-size: 20px; }
    .rk-app-footer { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Algorytm doboru instalacji: Krok po kroku (Interaktywny Kalkulator)",
    "description": "Profesjonalny inżynierski kalkulator doboru pompy ciepła, pojemności bufora oraz projektowych przepływów instalacji ogrzewania podłogowego. Narzędzie real-time.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-kalkulator",
    "name": "Parametry Hydrauliczne Pomp Ciepła 2026",
    "description": "Zestawienie zmiennych wejściowych i wyjściowych determinujących parametry techniczne instalacji grzewczej i zładu wody na potrzeby defrostu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator doboru pompy ciepła",
      "obliczanie przepływu podłogówki",
      "dobór bufora do pompy ciepła",
      "zapotrzebowanie na ciepło cwu",
      "wzór na moc chłodniczą w ogrzewaniu"
    ],
    "measurementTechnique": "Obliczenia oparte na normach PN-EN 12831 (OZC), bilansie energii CWU według PORT PC oraz równaniach strumienia objętościowego dla niskich parametrów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ nominalny przy delcie 5K.",
        "Wymagany minimalny zład wody na potrzeby odszraniania (defrostu) 15 litrów / 1 kW.",
        "Moc szczytowa pompy z uwzględnieniem CWU 0.25 kW / osobę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-kalkulator",
    "name": "Inżynierski Kalkulator Doboru Pompy Ciepła",
    "description": "Narzędzie pozwalające na interaktywne przeliczenie zapotrzebowania cieplnego budynku na realne parametry pompy ciepła: moc szczytową, masowy przepływ wody oraz minimalną pojemność sprzęgła buforowego.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-app-wrapper">
    <div class="rk-app-header">
        <h2 class="rk-app-title">Algorytm doboru: Symulator parametrów pompy</h2>
        <p class="rk-app-subtitle">
            Wykorzystaj poniższy model smart, aby wyliczyć moce, przepływy i wielkość sprzęgła. Mechanizm oparty jest na normatywnych wzorach inżynierskich.
        </p>
    </div>

    <div class="rk-app-body">
        
        <div class="rk-app-controls">
            
            <div class="rk-stepper-group">
                <span class="rk-stepper-label">Powierzchnia grzewcza</span>
                <div class="rk-stepper-controls">
                    <button type="button" class="rk-step-btn" id="btnAreaMinus">−</button>
                    <div class="rk-step-val" id="valAreaOut">150 m²</div>
                    <button type="button" class="rk-step-btn" id="btnAreaPlus">+</button>
                </div>
            </div>

            <div class="rk-stepper-group">
                <span class="rk-stepper-label">Jednostkowe straty ciepła</span>
                <div class="rk-stepper-controls">
                    <button type="button" class="rk-step-btn" id="btnWsqmMinus">−</button>
                    <div class="rk-step-val" id="valWsqmOut">43 W/m²</div>
                    <button type="button" class="rk-step-btn" id="btnWsqmPlus">+</button>
                </div>
                <span class="rk-step-hint">WT2021: ok. 40 W/m² | Starsze domy: 70-90 W/m²</span>
            </div>

            <div class="rk-stepper-group">
                <span class="rk-stepper-label">Liczba domowników (CWU)</span>
                <div class="rk-stepper-controls">
                    <button type="button" class="rk-step-btn" id="btnPplMinus">−</button>
                    <div class="rk-step-val" id="valPplOut">4 osoby</div>
                    <button type="button" class="rk-step-btn" id="btnPplPlus">+</button>
                </div>
            </div>

            <div class="rk-stepper-group" style="margin-bottom: 0;">
                <span class="rk-stepper-label">Zład wody w otwartych pętlach</span>
                <div class="rk-stepper-controls">
                    <button type="button" class="rk-step-btn" id="btnOpenMinus">−</button>
                    <div class="rk-step-val" id="valOpenOut">45 L</div>
                    <button type="button" class="rk-step-btn" id="btnOpenPlus">+</button>
                </div>
            </div>

        </div>

        <div class="rk-app-results">
            
            <div class="rk-result-card">
                <div class="rk-result-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="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <div class="rk-result-content">
                    <div class="rk-result-label">Krok 1: Wymagana moc pompy (Q_szc)</div>
                    <div class="rk-result-value" id="resPower">7.45 kW</div>
                </div>
            </div>

            <div class="rk-result-card">
                <div class="rk-result-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 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <div class="rk-result-content">
                    <div class="rk-result-label">Krok 2: Przepływ roboczy (Dla Delty 5K)</div>
                    <div class="rk-result-value" id="resFlow">18.52 l/min</div>
                </div>
            </div>

            <div class="rk-result-card highlight">
                <div class="rk-result-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-result-content">
                    <div class="rk-result-label">Krok 3: Wymagany bufor (Sprzęgło)</div>
                    <div class="rk-result-value" id="resBuffer">75 Litrów</div>
                </div>
            </div>

        </div>
    </div>
    
    <div class="rk-app-footer">
        Algorytm wskazuje wartości szacunkowe. Gwarancją braku błędów i utrzymania gwarancji producenta jest pełny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego z przeliczeniem OZC</a> przygotowany przez inżyniera.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Stan aplikacji (Dane wejściowe)
    var state = {
        area: { val: 150, min: 50, max: 400, step: 5, unit: " m²" },
        wsqm: { val: 43, min: 20, max: 120, step: 1, unit: " W/m²" },
        ppl: { val: 4, min: 1, max: 10, step: 1, unit: " osoby" },
        open: { val: 45, min: 0, max: 200, step: 5, unit: " L" }
    };

    // Referencje UI - Wyświetlacze wartości
    var displays = {
        area: document.getElementById('valAreaOut'),
        wsqm: document.getElementById('valWsqmOut'),
        ppl: document.getElementById('valPplOut'),
        open: document.getElementById('valOpenOut')
    };

    // Referencje UI - Wyniki
    var resPower = document.getElementById('resPower');
    var resFlow = document.getElementById('resFlow');
    var resBuffer = document.getElementById('resBuffer');

    // Główny silnik obliczeniowy
    function recalculateEngine() {
        var vArea = state.area.val;
        var vWsqm = state.wsqm.val;
        var vPpl = state.ppl.val;
        var vOpen = state.open.val;

        // 1. Zapotrzebowanie (OZC + CWU)
        var qOZC = (vArea * vWsqm) / 1000; 
        var qCWU = vPpl * 0.25;
        var qSzc = qOZC + qCWU;

        // 2. Przepływ (Wzór: Q = m * cw * dT)
        var flowM3h = (qOZC * 3600) / (1000 * 4.186 * 5);
        var flowLmin = (flowM3h * 1000) / 60;

        // 3. Bufor
        var pNom = Math.ceil(qSzc);
        var vRequired = pNom * 15;
        var vBuffer = vRequired - vOpen;
        
        // Zabezpieczenie przed minusowym buforem
        if (vBuffer < 0) {
            vBuffer = 0;
        }

        // Aktualizacja interfejsu
        resPower.innerText = qSzc.toFixed(2) + " kW";
        resFlow.innerText = flowLmin.toFixed(2) + " l/min";
        
        if (vBuffer === 0) {
            resBuffer.innerText = "Zbędny (Zład OK)";
        } else {
            resBuffer.innerText = Math.ceil(vBuffer) + " Litrów";
        }
    }

    // Funkcja sterująca przyciskami (Bezpieczna logika bez znaków specjalnych)
    function handleStep(key, action) {
        var obj = state[key];
        
        if (action === 'plus') {
            if (obj.val < obj.max) {
                obj.val = obj.val + obj.step;
            }
        }
        if (action === 'minus') {
            if (obj.val > obj.min) {
                obj.val = obj.val - obj.step;
            }
        }
        
        // Odśwież widok konkretnego elementu
        displays[key].innerText = obj.val + obj.unit;
        
        // Przelicz wyniki
        recalculateEngine();
    }

    // Podpięcie zdarzeń pod przyciski PLUS
    document.getElementById('btnAreaPlus').addEventListener('click', function() { handleStep('area', 'plus'); });
    document.getElementById('btnWsqmPlus').addEventListener('click', function() { handleStep('wsqm', 'plus'); });
    document.getElementById('btnPplPlus').addEventListener('click', function() { handleStep('ppl', 'plus'); });
    document.getElementById('btnOpenPlus').addEventListener('click', function() { handleStep('open', 'plus'); });

    // Podpięcie zdarzeń pod przyciski MINUS
    document.getElementById('btnAreaMinus').addEventListener('click', function() { handleStep('area', 'minus'); });
    document.getElementById('btnWsqmMinus').addEventListener('click', function() { handleStep('wsqm', 'minus'); });
    document.getElementById('btnPplMinus').addEventListener('click', function() { handleStep('ppl', 'minus'); });
    document.getElementById('btnOpenMinus').addEventListener('click', function() { handleStep('open', 'minus'); });

    // Pierwszy rozruch
    recalculateEngine();
});
</script>



<style>
:root {
    --rk-cost-dark: #0f172a;
    --rk-cost-blue: #0284c7;
    --rk-cost-light: #f8fafc;
    --rk-cost-green: #10b981;
    --rk-cost-yellow: #f59e0b;
    --rk-cost-border: #e2e8f0;
    --rk-cost-bg: #ffffff;
    --rk-cost-text: #475569;
}

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

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

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

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

.rk-cost-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Panel Wyboru (Metraż) */
.rk-cost-selector {
    padding: 35px 45px;
    background: var(--rk-cost-light);
    border-bottom: 1px solid var(--rk-cost-border);
}

.rk-cost-selector-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cost-dark);
    text-transform: uppercase;
    margin-bottom: 15px;
    text-align: center;
}

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

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

.rk-size-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-size-btn.active {
    background: var(--rk-cost-blue);
    border-color: var(--rk-cost-blue);
    color: #ffffff;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.4);
}

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

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

.rk-size-label {
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    transition: color 0.3s;
}

.rk-size-btn.active .rk-size-label { color: #e0f2fe; }

/* Dashboard Wyników */
.rk-cost-dashboard {
    padding: 40px 45px;
    background: var(--rk-cost-bg);
}

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

.rk-stat-box {
    background: #f8fafc;
    border: 1px solid var(--rk-cost-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-stat-icon {
    width: 40px;
    height: 40px;
    background: #ffffff;
    border-radius: 10px;
    color: var(--rk-cost-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border: 1px solid var(--rk-cost-border);
}

.rk-stat-title {
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-stat-number {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cost-dark);
}

/* Główny Box Finansowy */
.rk-financial-box {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 2px solid #86efac;
    border-radius: 20px;
    padding: 35px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.15);
}

.rk-fin-left {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-fin-label {
    font-size: 15px;
    font-weight: 800;
    color: #065f46;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-fin-desc {
    font-size: 14px;
    color: #047857;
    font-weight: 600;
}

.rk-fin-right {
    text-align: right;
}

.rk-fin-amount {
    font-size: 42px;
    font-weight: 900;
    color: #064e3b;
    line-height: 1;
}

.rk-fin-currency {
    font-size: 20px;
    font-weight: 700;
    color: #059669;
}

/* Informacja techniczna */
.rk-cost-footer {
    padding: 0 45px 35px;
}

.rk-cost-note {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-cost-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cost-text);
    margin: 0;
}

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

/* RWD */
@media (max-width: 768px) {
    .rk-cost-header { padding: 30px 20px; }
    .rk-cost-title { font-size: 24px; }
    .rk-cost-selector { padding: 25px 20px; }
    .rk-cost-grid-nav { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .rk-cost-dashboard { padding: 30px 20px; }
    .rk-results-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-financial-box { flex-direction: column; text-align: center; gap: 20px; padding: 25px 20px; }
    .rk-fin-right { text-align: center; }
    .rk-fin-amount { font-size: 36px; }
    .rk-cost-footer { padding: 0 20px 30px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-koszty",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Ile naprawdę kosztuje ogrzewanie pompą ciepła? Roczne zestawienie kosztów",
    "description": "Kalkulacja rzeczywistego zużycia prądu i rocznych rachunków za ogrzewanie pompą ciepła dla domów o powierzchni 100, 150, 200 i 250 m2 w standardzie WT2021.",
    "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/",
      "jobTitle": "Ekspert HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-koszty",
    "name": "Szacunkowe Koszty Ogrzewania Pompą Ciepła (Domy 100 - 250 m2)",
    "description": "Zestawienie zapotrzebowania cieplnego (OZC), optymalnej mocy pompy, zakładanego wskaźnika SCOP oraz zużycia energii elektrycznej i kosztów w PLN dla różnych metraży.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile prądu zużywa pompa ciepła 150m2",
      "koszt ogrzewania domu 100m2 pompa ciepła",
      "dobór mocy pompy do metrażu",
      "roczne zużycie energii pompa ciepła",
      "rachunki za prąd pompa ciepła 200m2",
      "ogrzewanie pompą ciepła 250m2 koszty"
    ],
    "measurementTechnique": "Obliczenia oparte na wskaźniku jednostkowym WT2021 (~45 W/m2 uwzględniając CWU dla 4 osób), optymalnym zładzie dla instalacji podłogowej i średniej cenie prądu 1.15 PLN/kWh.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "100 m2: Zapotrzebowanie ~4.5 kW, Moc Pompy 5 kW, SCOP 4.5, Zużycie ~2200 kWh, Rachunek ~2530 PLN/rok.",
        "150 m2: Zapotrzebowanie ~7.0 kW, Moc Pompy 8 kW, SCOP 4.5, Zużycie ~3400 kWh, Rachunek ~3910 PLN/rok.",
        "200 m2: Zapotrzebowanie ~9.0 kW, Moc Pompy 10 kW, SCOP 4.4, Zużycie ~4600 kWh, Rachunek ~5290 PLN/rok.",
        "250 m2: Zapotrzebowanie ~11.5 kW, Moc Pompy 12 kW, SCOP 4.3, Zużycie ~5800 kWh, Rachunek ~6670 PLN/rok."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-koszty",
    "name": "Kalkulator Rocznych Rachunków z Pompą Ciepła",
    "description": "Narzędzie interaktywne pozwalające sprawdzić, jak metraż domu wpływa na dobór mocy urządzenia oraz generuje prognozowane koszty eksploatacji w PLN.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cost-wrapper">
    <div class="rk-cost-header">
        <div class="rk-cost-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"><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>
            Twarde Dane Finansowe
        </div>
        <h2 class="rk-cost-title">Ile naprawdę kosztuje ogrzewanie pompą ciepła?</h2>
        <p class="rk-cost-desc">
            Teoria to jedno, ale inwestorów interesuje ostateczny rachunek za prąd. Poniżej przygotowałem zestawienie dla domów w nowym standardzie izolacji (WT2021) z uwzględnieniem przygotowania ciepłej wody użytkowej (CWU) dla 4-osobowej rodziny.
        </p>
    </div>

    <div class="rk-cost-selector">
        <div class="rk-cost-selector-title">Wybierz metraż swojego domu</div>
        <div class="rk-cost-grid-nav">
            <button class="rk-size-btn" id="btn100" data-size="100">
                <span class="rk-size-val">100</span>
                <span class="rk-size-label">m²</span>
            </button>
            <button class="rk-size-btn active" id="btn150" data-size="150">
                <span class="rk-size-val">150</span>
                <span class="rk-size-label">m²</span>
            </button>
            <button class="rk-size-btn" id="btn200" data-size="200">
                <span class="rk-size-val">200</span>
                <span class="rk-size-label">m²</span>
            </button>
            <button class="rk-size-btn" id="btn250" data-size="250">
                <span class="rk-size-val">250</span>
                <span class="rk-size-label">m²</span>
            </button>
        </div>
    </div>

    <div class="rk-cost-dashboard">
        
        <div class="rk-results-grid">
            <div class="rk-stat-box">
                <div class="rk-stat-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 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-stat-title">Zapotrzebowanie (OZC)</div>
                <div class="rk-stat-number" id="valOzc">7.0 kW</div>
            </div>

            <div class="rk-stat-box">
                <div class="rk-stat-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="M5 12h14M12 5l7 7-7 7"></path></svg>
                </div>
                <div class="rk-stat-title">Wymagana Pompa</div>
                <div class="rk-stat-number" id="valPump">8.0 kW</div>
            </div>

            <div class="rk-stat-box">
                <div class="rk-stat-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-stat-title">Efektywność (SCOP)</div>
                <div class="rk-stat-number" id="valScop">4.5</div>
            </div>
        </div>

        <div class="rk-financial-box">
            <div class="rk-fin-left">
                <div class="rk-fin-label">Szacowany Koszt Roczny (CO + CWU)</div>
                <div class="rk-fin-desc" id="valKwh">Zużycie energii: ~3400 kWh / rok</div>
            </div>
            <div class="rk-fin-right">
                <span class="rk-fin-amount" id="valPln">3 910</span>
                <span class="rk-fin-currency">PLN</span>
            </div>
        </div>

    </div>

    <div class="rk-cost-footer">
        <p class="rk-cost-note">
            <strong>Ważne:</strong> Powyższe wartości zakłądają idealną współpracę z poprawnie zoptymalizowanym <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">ogrzewaniem podłogowym</a> (zasilanie max 35°C). Estymacja kosztów uśredniona dla <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">cen prądu na przełomie 2025/2026</a> (ok. 1.15 PLN / kWh). Błędy w instalacji mogą podnieść te rachunki o ponad 40%.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn100 = document.getElementById('btn100');
    var btn150 = document.getElementById('btn150');
    var btn200 = document.getElementById('btn200');
    var btn250 = document.getElementById('btn250');

    var valOzc = document.getElementById('valOzc');
    var valPump = document.getElementById('valPump');
    var valScop = document.getElementById('valScop');
    var valKwh = document.getElementById('valKwh');
    var valPln = document.getElementById('valPln');

    // Baza danych dla metraży (WT2021)
    function updateCosts(size) {
        // Reset klas
        btn100.classList.remove('active');
        btn150.classList.remove('active');
        btn200.classList.remove('active');
        btn250.classList.remove('active');

        // Bezpieczny silnik decyzyjny (bez || i &&)
        if (size === 100) {
            btn100.classList.add('active');
            valOzc.innerText = "4.5 kW";
            valPump.innerText = "5.0 kW";
            valScop.innerText = "4.5";
            valKwh.innerText = "Zużycie energii: ~2200 kWh / rok";
            valPln.innerText = "2 530";
        }
        
        if (size === 150) {
            btn150.classList.add('active');
            valOzc.innerText = "7.0 kW";
            valPump.innerText = "8.0 kW";
            valScop.innerText = "4.5";
            valKwh.innerText = "Zużycie energii: ~3400 kWh / rok";
            valPln.innerText = "3 910";
        }
        
        if (size === 200) {
            btn200.classList.add('active');
            valOzc.innerText = "9.0 kW";
            valPump.innerText = "10.0 kW";
            valScop.innerText = "4.4";
            valKwh.innerText = "Zużycie energii: ~4600 kWh / rok";
            valPln.innerText = "5 290";
        }
        
        if (size === 250) {
            btn250.classList.add('active');
            valOzc.innerText = "11.5 kW";
            valPump.innerText = "12.0 kW";
            valScop.innerText = "4.3";
            valKwh.innerText = "Zużycie energii: ~5800 kWh / rok";
            valPln.innerText = "6 670";
        }
    }

    // Podpięcie przycisków
    btn100.addEventListener('click', function() { updateCosts(100); });
    btn150.addEventListener('click', function() { updateCosts(150); });
    btn200.addEventListener('click', function() { updateCosts(200); });
    btn250.addEventListener('click', function() { updateCosts(250); });
});
</script>



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

.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.12);
    border: 1px solid var(--rk-case-blue);
    overflow: hidden;
}

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

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

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

.rk-case-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Interfejs Przełącznika */
.rk-case-controls {
    display: flex;
    padding: 30px 45px;
    background: #f1f5f9;
    border-bottom: 1px solid var(--rk-case-border);
    justify-content: center;
}

.rk-case-toggle-bg {
    display: flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 6px;
    gap: 6px;
    width: 100%;
    max-width: 600px;
}

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

.rk-case-btn.active[data-target="before"] {
    background: #ffffff;
    color: var(--rk-case-red);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.15);
}

.rk-case-btn.active[data-target="after"] {
    background: #ffffff;
    color: var(--rk-case-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

/* Kokpit Wyników */
.rk-case-dashboard {
    padding: 40px 45px;
    background: var(--rk-case-bg);
}

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

.rk-metric-card {
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #ffffff;
    transition: all 0.4s ease;
}

.rk-metric-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

.rk-metric-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #94a3b8;
    transition: all 0.4s ease;
}

.rk-metric-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
    line-height: 1.1;
    transition: all 0.4s ease;
}

.rk-metric-desc {
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
    margin-top: 5px;
    min-height: 42px;
}

/* Stany dynamiczne */
.state-before .rk-metric-card { border-color: #fecaca; background: #fff1f2; }
.state-before .rk-metric-icon { background: #fecaca; color: var(--rk-case-red); }
.state-before .rk-metric-value { color: var(--rk-case-red); }

.state-after .rk-metric-card { border-color: #a7f3d0; background: #ecfdf5; }
.state-after .rk-metric-icon { background: #a7f3d0; color: var(--rk-case-green); }
.state-after .rk-metric-value { color: var(--rk-case-green); }

/* Wnioski z Audytu */
.rk-case-summary {
    padding: 0 45px 40px;
    background: var(--rk-case-bg);
}

.rk-case-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-case-blue);
    padding: 30px;
    border-radius: 0 16px 16px 0;
}

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

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-controls, .rk-case-dashboard, .rk-case-summary { padding: 30px 20px; }
    .rk-case-title { font-size: 24px; }
    .rk-case-toggle-bg { flex-direction: column; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-metric-desc { min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Studium Przypadku: Jak obniżyliśmy rachunki za prąd z 8200 PLN na 3400 PLN rocznie",
    "description": "Audyt efektywności pompy ciepła w domu 150m2. Analiza błędów instalacyjnych, dławienia przepływów i zapowietrzenia oraz inżynierski plan naprawczy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC, Audytor",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-casestudy",
    "name": "Audyt i optymalizacja kosztów ogrzewania pompą ciepła (Dom 150m2)",
    "description": "Zestawienie parametrów hydraulicznych i termodynamicznych instalacji przed i po wykonaniu audytu efektywności energetycznej oraz zrównoważeniu przepływów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obniżyć rachunki za prąd z pompy ciepła",
      "audyt efektywności pompy ciepła",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "rzeczywiste oszczędności na kosztach ogrzewania",
      "zbyt krótka pętla podłogówki skutki",
      "poprawa sprawności ogrzewania podłogowego"
    ],
    "measurementTechnique": "Porównanie parametrów przed i po wdrożeniu projektu OZC, regulacji hydraulicznej na rotametrach oraz eliminacji błędów krzywej grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Rachunek 8200 PLN, SCOP 2.1, Taktowanie sprężarki 60x/dobę.",
        "Działania naprawcze: Równoważenie rotametrów, odpowietrzenie pętli, obniżenie Delty T do 5K.",
        "Stan docelowy: Rachunek 3400 PLN, SCOP 4.2, Płynna praca inwertera (2-3 cykle/dobę)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-casestudy",
    "name": "Symulator Audytu: Przed i Po Optymalizacji",
    "description": "Interaktywny pulpit pozwalający użytkownikowi na weryfikację krytycznych wskaźników pracy (Rachunki, SCOP, Przepływy) przed inżynierskim audytem i po jego wykonaniu.",
    "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">
            <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="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>
            Inżynierskie Studium Przypadku
        </div>
        <h2 class="rk-case-title">Jak audyt obniżył rachunki z 8200 PLN na 3400 PLN rocznie?</h2>
        <p class="rk-case-desc">
            Pan Tomasz z podkarpacia kupił pompę klasy premium do domu 150m², ale przez całą pierwszą zimę marzł, płacąc horrendalne rachunki. Montażysta rozłożył ręce. Przeanalizujmy wspólnie nasz inżynierski audyt iobaczmy, jak optymalizacja instalacji zmieniła parametry pracy.
        </p>
    </div>

    <div class="rk-case-controls">
        <div class="rk-case-toggle-bg">
            <button class="rk-case-btn active" data-target="before" id="btnBefore">
                <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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Stan pierwotny (Błąd)
            </button>
            <button class="rk-case-btn" data-target="after" id="btnAfter">
                <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Po naprawie (Inżynieria)
            </button>
        </div>
    </div>

    <div class="rk-case-dashboard" id="caseDash">
        <div class="rk-case-grid state-before" id="caseGrid">
            
            <div class="rk-metric-card">
                <div class="rk-metric-header">
                    <span class="rk-metric-label">Roczny Koszt CO + CWU</span>
                    <div class="rk-metric-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                </div>
                <div class="rk-metric-value" id="valCost">8 200 PLN</div>
                <div class="rk-metric-desc" id="descCost">Pompa pracowała głównie na wbudowanych grzałkach elektrycznych.</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-header">
                    <span class="rk-metric-label">Efektywność SCOP</span>
                    <div class="rk-metric-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="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
                </div>
                <div class="rk-metric-value" id="valScop">2.1</div>
                <div class="rk-metric-desc" id="descScop">Katastrofalna wydajność przez wymuszanie temp. zasilania 48°C w podłogówce.</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-header">
                    <span class="rk-metric-label">Cykle Sprężarki (Taktowanie)</span>
                    <div class="rk-metric-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.5 2v6h-6M2.13 15.57a10 10 0 1 0 3.43-5.54l-4.43 4.43"></path></svg></div>
                </div>
                <div class="rk-metric-value" id="valCycles">~60 / dobę</div>
                <div class="rk-metric-desc" id="descCycles">Permanentne rwanie pracy. Żywotność urządzenia skrócona o ponad połowę.</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-header">
                    <span class="rk-metric-label">Przepływy hydrauliczne</span>
                    <div class="rk-metric-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><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></div>
                </div>
                <div class="rk-metric-value" id="valFlow">Zdławione (Błędy)</div>
                <div class="rk-metric-desc" id="descFlow">Brak wyregulowanych rotametrów. Krótkie pętle kradły całą wodę i ciepło.</div>
            </div>

        </div>
    </div>

    <div class="rk-case-summary">
        <div class="rk-case-box">
            <h3>Wniosek z audytu: Instalacja to system naczyń połączonych</h3>
            <p>
                W stanie pierwotnym pompa ciepła męczyła się z morderczymi oporami tłoczenia. Dlaczego? Pętle nie były zrównoważone (wymagało to m.in. rozpoznania <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawów zapowietrzenia podłogówki</a> i korekty nastaw). Z powodu zdławienia przepływów, posadzka (tzw. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">akumulator w wylewce betonowej</a>) nie mogła przyjąć mocy, więc pompa wpadała w taktowanie i przegrzewała się, ratując się wbudowaną grzałką zasilaną z sieci 230V.
            </p>
            <p style="margin-bottom: 0;">
                Dopiero kompleksowy audyt, regulacja krzywej grzewczej i dostosowanie przepływów do wyliczeń projektowych wygenerowały u Pana Tomasza <strong><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</a></strong> rzędu niemal 5000 PLN w zaledwie jeden sezon!
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnBefore = document.getElementById('btnBefore');
    var btnAfter = document.getElementById('btnAfter');
    var caseGrid = document.getElementById('caseGrid');

    // Pola tekstowe do podmiany
    var valCost = document.getElementById('valCost');
    var descCost = document.getElementById('descCost');
    
    var valScop = document.getElementById('valScop');
    var descScop = document.getElementById('descScop');
    
    var valCycles = document.getElementById('valCycles');
    var descCycles = document.getElementById('descCycles');
    
    var valFlow = document.getElementById('valFlow');
    var descFlow = document.getElementById('descFlow');

    function showBefore() {
        btnAfter.classList.remove('active');
        btnBefore.classList.add('active');
        
        caseGrid.classList.remove('state-after');
        caseGrid.classList.add('state-before');

        valCost.innerText = "8 200 PLN";
        descCost.innerText = "Pompa pracowała głównie na wbudowanych grzałkach elektrycznych z powodu błędu wymiany ciepła.";

        valScop.innerText = "2.1";
        descScop.innerText = "Katastrofalna wydajność przez wymuszanie temp. zasilania 48°C w podłogówce (krzywa grzewcza).";

        valCycles.innerText = "~60 / dobę";
        descCycles.innerText = "Permanentne rwanie pracy (taktowanie). Żywotność urządzenia skrócona o ponad połowę.";

        valFlow.innerText = "Zdławione (Błędy)";
        descFlow.innerText = "Brak wyregulowanych rotametrów. Krótkie pętle np. w łazience kradły całą wodę i blokowały resztę domu.";
    }

    function showAfter() {
        btnBefore.classList.remove('active');
        btnAfter.classList.add('active');
        
        caseGrid.classList.remove('state-before');
        caseGrid.classList.add('state-after');

        valCost.innerText = "3 400 PLN";
        descCost.innerText = "Ogromny spadek rachunków. System pracuje wyłącznie na napędzie sprężarkowym (bez grzałek).";

        valScop.innerText = "4.2";
        descScop.innerText = "Sprawność wzrosła dwukrotnie dzięki optymalizacji przepływów i obniżeniu zasilania do stabilnych 32°C.";

        valCycles.innerText = "2 - 3 / dobę";
        descCycles.innerText = "Długie, spokojne i miarowe cykle pracy sprężarki (inwerter) to gwarancja bezawaryjności przez 20 lat.";

        valFlow.innerText = "19.5 l/min (Delta 5K)";
        descFlow.innerText = "Instalacja precyzyjnie odpowietrzona i zbilansowana wedle audytu. Podłogówka odbiera 100% produkowanej mocy.";
    }

    // Bezpieczne zdarzenia
    btnBefore.addEventListener('click', showBefore);
    btnAfter.addEventListener('click', showAfter);
});
</script>



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

.rk-auth-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border: 2px solid var(--rk-auth-dark);
    border-radius: 0; /* Surowy, techniczny styl bez zaokrągleń */
}

/* Header */
.rk-auth-header {
    padding: 30px 40px;
    background: var(--rk-auth-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-auth-blue);
}

.rk-auth-badge {
    display: inline-block;
    background: var(--rk-auth-blue);
    color: #ffffff;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-auth-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    line-height: 1.2;
}

/* Profil Eksperta */
.rk-auth-profile {
    display: flex;
    padding: 40px;
    gap: 40px;
    background: var(--rk-auth-bg);
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-photo-box {
    flex-shrink: 0;
    width: 200px;
}

.rk-auth-photo {
    width: 100%;
    height: auto;
    display: block;
    border: 4px solid var(--rk-auth-border);
}

.rk-auth-info {
    flex-grow: 1;
}

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

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

.rk-auth-main-quote {
    font-size: 18px;
    font-weight: 600;
    font-style: italic;
    color: var(--rk-auth-text);
    line-height: 1.6;
    margin: 0 0 25px 0;
    padding-left: 20px;
    border-left: 4px solid var(--rk-auth-blue);
}

/* Linki Social */
.rk-auth-social {
    display: flex;
    gap: 15px;
}

.rk-auth-social a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: var(--rk-auth-light);
    color: var(--rk-auth-dark);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    border: 1px solid var(--rk-auth-border);
}

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

/* Interaktywny Panel Zasad */
.rk-auth-interactive {
    background: var(--rk-auth-light);
    padding: 40px;
}

.rk-auth-nav {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.rk-auth-tab {
    flex: 1;
    padding: 15px;
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    color: var(--rk-auth-text);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer;
    text-align: center;
}

.rk-auth-tab:hover {
    background: #e2e8f0;
}

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

.rk-auth-content-box {
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    padding: 30px;
    min-height: 150px;
}

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

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

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-auth-header { padding: 25px 20px; }
    .rk-auth-title { font-size: 22px; }
    .rk-auth-profile { flex-direction: column; padding: 25px 20px; gap: 25px; align-items: center; text-align: center; }
    .rk-auth-main-quote { padding-left: 0; border-left: none; border-top: 4px solid var(--rk-auth-blue); padding-top: 20px; font-size: 16px; }
    .rk-auth-social { flex-direction: column; width: 100%; }
    .rk-auth-social a { justify-content: center; }
    .rk-auth-interactive { padding: 25px 20px; }
    .rk-auth-nav { flex-direction: column; }
    .rk-auth-tab { text-align: left; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o najważniejszych zasadach instalacji pomp ciepła",
    "description": "Autorskie, inżynierskie podsumowanie kluczowych błędów i dobrych praktyk przy projektowaniu oraz montażu systemów z pompą ciepła. Wiedza z ponad 1000 projektów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC, CEO",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-ekspert",
    "name": "Złote Zasady Inżynierskie: Pompy Ciepła 2026",
    "description": "Zbiór autorskich wytycznych technicznych dotyczących efektywności ogrzewania płaszczyznowego, błędów doboru buforów oraz znaczenia projektów OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania",
      "opinie eksperta pompa ciepła",
      "błędy instalatorów pomp ciepła",
      "czy warto robić projekt ozc",
      "taktowanie sprężarki ekspert hvac"
    ],
    "measurementTechnique": "Empiryczne wnioski wyciągnięte na podstawie audytów i projektów ponad 1000 instalacji podłogowych współpracujących z pompami ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak bufora to najczęstsza przyczyna mechanicznej śmierci skraplacza w pompach powietrznych.",
        "Przewymiarowanie urządzenia to główny powód taktowania sprężarki i gigantycznych rachunków za prąd wiosną.",
        "Efektywność urządzenia w 80% zależy od prawidłowo wykonanej, niskotemperaturowej wylewki podłogowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-ekspert",
    "name": "Interaktywny Asystent Porad Inżynierskich",
    "description": "Moduł umożliwiający błyskawiczny przegląd najważniejszych, autorskich porad instalacyjnych z podziałem na krytyczne sekcje robocze.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-wrapper">
    <div class="rk-auth-header">
        <span class="rk-auth-badge">Komentarz Autorski</span>
        <h2 class="rk-auth-title">Zdaniem specjalisty: Robert Kucharski o twardych realiach montażu pomp ciepła</h2>
    </div>

    <div class="rk-auth-profile">
        <div class="rk-auth-photo-box">
            <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">
        </div>
        <div class="rk-auth-info">
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-role">CEO &amp; Specjalista HVAC</div>
            <p class="rk-auth-main-quote">
                "Pompa ciepła to nie jest magiczne pudełko, które samo z siebie wygeneruje niskie rachunki. Jej sprawność rodzi się w posadzce Twojego domu, a o sukcesie decyduje wyłącznie brutalna matematyka w postaci precyzyjnego projektu OZC i doboru przepływów."
            </p>
            <div class="rk-auth-social">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer">
                    <svg width="18" height="18" 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>
                    Śledź na Facebooku
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="18" height="18" 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>
                    Profil LinkedIn
                </a>
            </div>
        </div>
    </div>

    <div class="rk-auth-interactive">
        <div class="rk-auth-nav">
            <button class="rk-auth-tab active" id="btnTab1" data-target="0">Najdroższy Błąd</button>
            <button class="rk-auth-tab" id="btnTab2" data-target="1">Znaczenie Projektu</button>
            <button class="rk-auth-tab" id="btnTab3" data-target="2">Rola Bufora</button>
        </div>

        <div class="rk-auth-content-box">
            <div class="rk-auth-panel active" id="panel0">
                <h3>Błąd Przewymiarowania</h3>
                <p>Wielu amatorów kupuje pompę ciepła z "zapasem", bo boją się, że maszyna nie poradzi sobie przy -20°C. To najdroższy błąd inwestycyjny. Przewymiarowana sprężarka wiosną i jesienią zaczyna taktować (często się włączać na krótko). Generuje to olbrzymie rachunki za prąd i prowadzi do śmierci mechanicznej urządzenia często już po 4 latach. Dobieraj urządzenie w punkt na bazie OZC.</p>
            </div>
            <div class="rk-auth-panel" id="panel1">
                <h3>Wylewka nie wybacza</h3>
                <p>Ogrzewanie podłogowe układane "na pamięć" z rozstawem co 15 cm to relikt przeszłości. Pompa ciepła wymaga niskiej temperatury zasilania (30-35°C) i idealnego zbalansowania oporów pętli. Jeśli nie zrobisz tego na etapie projektu, żadna, nawet najdroższa automatyka pokojowa nie uratuje Twojego systemu po zalaniu betonem.</p>
            </div>
            <div class="rk-auth-panel" id="panel2">
                <h3>Bufor to Twoja polisa</h3>
                <p>Próby zaoszczędzenia 2000 zł na wyrzuceniu bufora ciepła z instalacji strefowej kończą się tragicznie. Gdy siłowniki na rozdzielaczach zamkną przepływ, a pompa wejdzie w tryb odszraniania (defrostu), brak odpowiedniego zładu wody spowoduje momentalne zamrożenie i rozsadzenie wymiennika płytowego. To awaria, której ubezpieczyciel ani gwarant nie uznają.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = [
        document.getElementById('btnTab1'),
        document.getElementById('btnTab2'),
        document.getElementById('btnTab3')
    ];
    
    var panels = [
        document.getElementById('panel0'),
        document.getElementById('panel1'),
        document.getElementById('panel2')
    ];

    function openExpertPanel(index) {
        // Reset (Surowy kod bez płynnych przejść)
        for (var i = 0; i < 3; i++) {
            tabs[i].classList.remove('active');
            panels[i].classList.remove('active');
        }
        
        // Aktywacja
        tabs[index].classList.add('active');
        panels[index].classList.add('active');
    }

    // Bezpieczne podpinanie listenerów
    tabs[0].addEventListener('click', function() { openExpertPanel(0); });
    tabs[1].addEventListener('click', function() { openExpertPanel(1); });
    tabs[2].addEventListener('click', function() { openExpertPanel(2); });
});
</script>



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

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

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

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

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    line-height: 1.3;
    border-bottom: none;
    padding-bottom: 0;
}

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

/* Lista Akordeonowa */
.rk-faq-list {
    padding: 30px 50px;
    background: var(--rk-faq-bg);
}

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

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

.rk-faq-question {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background 0.3s ease;
}

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

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-light-blue);
}

.rk-faq-question h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    margin: 0;
    padding-right: 20px;
    line-height: 1.4;
    border-bottom: none;
}

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

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

.rk-faq-answer-wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

.rk-faq-answer-content {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    border-left: 4px solid var(--rk-faq-blue);
    margin-left: 25px;
    margin-bottom: 20px;
}

.rk-faq-answer-content a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-faq-blue);
    transition: color 0.3s;
}

.rk-faq-answer-content a:hover {
    color: var(--rk-faq-green);
    border-bottom-color: var(--rk-faq-green);
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 25px; }
    .rk-faq-list { padding: 25px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-question { padding: 18px 20px; }
    .rk-faq-question h3 { font-size: 15px; }
    .rk-faq-answer-content { padding: 0 20px 20px 20px; margin-left: 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "FAQ: Najczęstsze pytania inwestorów o pompy ciepła",
    "description": "Zbiór najważniejszych technicznych pytań i odpowiedzi dotyczących działania, doboru, zużycia prądu oraz czynników chłodniczych pomp ciepła w 2026 roku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#faq-schema",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy powietrzna pompa ciepła ogrzeje dom samodzielnie podczas silnych mrozów?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, nowoczesne pompy ciepła klasy premium (szczególnie pracujące na czynniku R290) zachowują pełną zdolność grzewczą do temperatury zewnętrznej -25°C. Poniżej wyznaczonego w projekcie punktu biwalentnego (zwykle między -5°C a -8°C) automatyka urządzenia bezgłośnie uruchamia wbudowane grzałki elektryczne, które wspomagają układ w pokryciu szczytowych strat ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Ile prądu w skali roku zużywa pompa ciepła w domu 150 m²?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W dobrze izolowanym budynku o powierzchni 150 m² (standard WT2021, zapotrzebowanie na ciepło ok. 6 kW przy -20°C) wyposażonym w ogrzewanie podłogowe, roczne zużycie energii elektrycznej na cele CO i CWU wynosi średnio od 2500 kWh do 3500 kWh. Przy średniej cenie prądu w 2026 roku, przekłada się to na roczny koszt eksploatacji w przedziale 2800 – 4200 PLN."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różni się pompa ciepła typu Split od wersji Monoblok?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pompa typu Monoblok posiada cały układ chłodniczy hermetycznie zamknięty w jednej obudowie stojącej na zewnątrz budynku, a do domu wchodzą rury z wodą grzewczą, co eliminuje ryzyko wycieku f-gazów, ale wymaga zabezpieczenia przed zamarznięciem w razie braku zasilania. Wersja Split jest rozdzielona na jednostkę zewnętrzną (parownik, sprężarka) i wewnętrzną (skraplacz), które połączone są rurami z czynnikiem chłodniczym, co eliminuje ryzyko zamarznięcia wody na zewnątrz, ale wymaga montażu przez instalatora z uprawnieniami F-Gaz."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki czynnik chłodniczy jest najlepszy i bezpieczny przy zakupie pompy w 2026 roku?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najbardziej przyszłościowym i ekologicznym wyborem jest naturalny czynnik chłodniczy R290 (Czysty Propan), którego wskaźnik GWP (Global Warming Potential) wynosi zaledwie 3. Pompy na propanie osiągają wyższe temperatury zasilania (do 70°C) bez spadku sprawności i nie są objęte restrykcyjnymi unijnymi przepisami dotyczącymi f-gazów oraz obowiązkowych, płatnych kontroli szczelności."
        }
      },
      {
        "@type": "Question",
        "name": "Czy podłogówkę z pompą ciepła można zalać zwykłą wodą z kranu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zdecydowanie nie, surowa woda wodociągowa powoduje odkładanie się kamienia kotłowego na wymienniku pompy ciepła oraz wywołuje korozję galwaniczną elementów metalowych. Instalację grzewczą z pompą ciepła należy bezwzględnie napełnić wodą demineralizowaną uzdatnioną chemicznym inhibitorem korozji, co gwarantuje pełną ochronę antykorozyjną i zachowanie przewodności termicznej układu zgodnie z normą VDI 2035."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-faq",
    "name": "Baza Wiedzy Inwestora: Parametry Pomp Ciepła 2026",
    "description": "Zestawienie najczęściej wyszukiwanych parametrów techniczno-eksploatacyjnych pomp ciepła, w tym estymacje kosztów rocznych oraz specyfikacje czynników chłodniczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie prądu przez pompę ciepła 150m2",
      "różnica między pompą split a monoblok",
      "punkt biwalentny pompy ciepła",
      "pompa ciepła na czynniku r290 propan",
      "woda demineralizowana w podłogówce"
    ],
    "measurementTechnique": "Analiza danych empirycznych z instalacji domów jednorodzinnych WT2021 oraz wytyczne normy VDI 2035.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt eksploatacji dom 150m2: 2800-4200 PLN rocznie.",
        "Zdolność grzewcza pomp premium: stabilna do -25 stopni Celsjusza.",
        "Zabezpieczenie instalacji: wymóg stosowania wody zdemineralizowanej z inhibitorem korozji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy HVAC",
    "description": "Moduł dynamicznych odpowiedzi technicznych pozwalający użytkownikom na błyskawiczne weryfikowanie kluczowych parametrów i rozwiewanie mitów dotyczących systemów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-section-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Baza Wiedzy
        </div>
        <h2 class="rk-faq-title">FAQ: Najczęstsze pytania inwestorów o pompy ciepła</h2>
        <p class="rk-faq-desc">
            Bez ogródek o mitach, kosztach i instalacyjnych pułapkach. Kliknij poniższe pytania, aby poznać inżynierskie, oparte na liczbach odpowiedzi.
        </p>
    </div>

    <div class="rk-faq-list">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy powietrzna pompa ciepła ogrzeje dom samodzielnie podczas silnych mrozów?</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-wrapper">
                <div class="rk-faq-answer-content">
                    Tak, nowoczesne pompy ciepła klasy premium (szczególnie pracujące na czynniku R290) zachowują pełną zdolność grzewczą do temperatury zewnętrznej -25°C. Poniżej wyznaczonego w projekcie punktu biwalentnego (zwykle między -5°C a -8°C) automatyka urządzenia bezgłośnie uruchamia wbudowane grzałki elektryczne, które wspomagają <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">układ ogrzewania podłogowego</a> w pokryciu szczytowych strat ciepła.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Ile prądu w skali roku zużywa pompa ciepła w domu 150 m²?</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-wrapper">
                <div class="rk-faq-answer-content">
                    W dobrze izolowanym budynku o powierzchni 150 m² (standard WT2021, zapotrzebowanie na ciepło ok. 6 kW przy -20°C) wyposażonym w ogrzewanie podłogowe, roczne zużycie energii elektrycznej na cele CO i CWU wynosi średnio od 2500 kWh do 3500 kWh. Przy dzisiejszych stawkach, przekłada się to na <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">roczny koszt eksploatacji</a> w przedziale 2800 – 4200 PLN.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czym różni się pompa ciepła typu Split od wersji Monoblok?</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-wrapper">
                <div class="rk-faq-answer-content">
                    Pompa typu Monoblok posiada cały układ chłodniczy hermetycznie zamknięty w jednej obudowie stojącej na zewnątrz budynku, a do domu wchodzą rury z wodą grzewczą, co eliminuje ryzyko wycieku f-gazów, ale wymaga zabezpieczenia przed zamarznięciem w razie braku zasilania. Wersja Split jest rozdzielona na jednostkę zewnętrzną i wewnętrzną, które połączone są rurami z czynnikiem chłodniczym, co eliminuje ryzyko zamarznięcia, ale wymaga montażu przez instalatora z uprawnieniami F-Gaz.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Jaki czynnik chłodniczy jest najlepszy i bezpieczny przy zakupie pompy w 2026 roku?</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-wrapper">
                <div class="rk-faq-answer-content">
                    Najbardziej przyszłościowym i ekologicznym wyborem jest naturalny czynnik chłodniczy R290 (Czysty Propan), którego wskaźnik GWP (Global Warming Potential) wynosi zaledwie 3. Pompy na propanie osiągają wyższe temperatury zasilania (do 70°C) bez spadku sprawności i nie są objęte restrykcyjnymi unijnymi przepisami dotyczącymi f-gazów oraz obowiązkowych, płatnych kontroli szczelności.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy podłogówkę z pompą ciepła można zalać zwykłą wodą z kranu?</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-wrapper">
                <div class="rk-faq-answer-content">
                    Zdecydowanie nie, surowa woda wodociągowa powoduje odkładanie się kamienia kotłowego na wymienniku pompy ciepła oraz wywołuje korozję galwaniczną elementów metalowych. Instalację należy bezwzględnie zalać <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wodą demineralizowaną z inhibitorem korozji</a>, co gwarantuje pełną ochronę antykorozyjną i zachowanie przewodności termicznej układu zgodnie z rygorystyczną normą VDI 2035.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Bezpieczny kod bez użycia znaków zagrażających parsowaniu
    var items = document.querySelectorAll('.rk-faq-item');
    
    for (var i = 0; i < items.length; i++) {
        var questionBtn = items[i].querySelector('.rk-faq-question');
        
        questionBtn.addEventListener('click', function() {
            var parentItem = this.parentElement;
            var isAlreadyActive = parentItem.classList.contains('active');
            
            // Zamknięcie wszystkich elementów
            for (var j = 0; j < items.length; j++) {
                items[j].classList.remove('active');
                var wrapperToClose = items[j].querySelector('.rk-faq-answer-wrapper');
                wrapperToClose.style.maxHeight = null;
                items[j].querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            }
            
            // Otwarcie klikniętego elementu, o ile nie był wcześniej otwarty
            if (isAlreadyActive === false) {
                parentItem.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                var activeWrapper = parentItem.querySelector('.rk-faq-answer-wrapper');
                activeWrapper.style.maxHeight = activeWrapper.scrollHeight + "px";
            }
        });
    }
});
</script>



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

.rk-dl-wrapper {
    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);
}

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

.rk-dl-badge {
    display: inline-block;
    background: var(--rk-dl-blue);
    color: #ffffff;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

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

.rk-dl-desc {
    font-size: 16px;
    color: #94a3b8;
    line-height: 1.6;
    margin: 0;
}

/* Sekcja Główna */
.rk-dl-body {
    display: flex;
    background: var(--rk-dl-bg);
}

/* Kolumna Miniatury */
.rk-dl-preview {
    width: 40%;
    padding: 40px;
    background: var(--rk-dl-light);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumbnail-box {
    width: 100%;
    border: 4px solid var(--rk-dl-border);
    background: #ffffff;
    padding: 5px;
    cursor: pointer;
}

.rk-dl-thumbnail-box:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-thumbnail {
    width: 100%;
    height: auto;
    display: block;
}

.rk-dl-thumb-label {
    margin-top: 15px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-dl-text);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Kolumna Akcji */
.rk-dl-actions {
    width: 60%;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl-features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}

.rk-dl-features li {
    font-size: 15px;
    color: var(--rk-dl-text);
    margin-bottom: 10px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 600;
}

.rk-dl-features svg {
    flex-shrink: 0;
    color: var(--rk-dl-green);
    margin-top: 2px;
}

/* Przyciski */
.rk-dl-btn-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

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

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

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

.rk-btn-secondary:hover {
    background: var(--rk-dl-light);
}

/* Stopka / Prawa Autorskie */
.rk-dl-footer {
    padding: 20px 40px;
    background: #f1f5f9;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    line-height: 1.6;
    color: #64748b;
    text-align: center;
    font-weight: 600;
}

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

/* Modal (Lightbox) */
.rk-modal-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

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

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

.rk-modal-img {
    max-width: 100%;
    max-height: 90vh;
    border: 4px solid #ffffff;
}

.rk-modal-close {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 40px;
    height: 40px;
    background: var(--rk-dl-red);
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: 900;
    border: 2px solid #ffffff;
}

/* RWD */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-title { font-size: 24px; }
    .rk-dl-body { flex-direction: column; }
    .rk-dl-preview { width: 100%; padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-actions { width: 100%; padding: 30px 20px; }
    .rk-dl-footer { padding: 20px; }
    .rk-modal-close { top: -15px; right: -10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Pompa Ciepła w pigułce: Pobierz darmową infografikę i raport",
    "description": "Zestawienie kluczowych zasad inżynierskich, najdroższych błędów oraz bilansu COP w formie czytelnej, autorskiej infografiki. Pobierz plik PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Pompa-Ciepla.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-infografika",
    "name": "Baza Wiedzy Inwestora: Raport Ekspercki Pompy Ciepła",
    "description": "Skondensowane dane dotyczące 4 filarów niskich rachunków, analizy błędów wykonawczych oraz czynników wpływających na żywotność sprężarki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika pompa ciepła",
      "schemat pompy ciepła pdf",
      "podsumowanie kosztów i błędów pompa ciepła",
      "ściąga dla inwestora ogrzewanie podłogowe",
      "robert kucharski poradnik instalatora pdf"
    ],
    "measurementTechnique": "Wizualizacja twardych danych audytowych, m.in. spadek COP przy zasilaniu 50°C+, skutki braku bufora oraz optymalny OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "4 Filary: OZC, Podłogówka, Hydraulika, Bufor.",
        "Najdroższe Błędy: Pompa dobrana z zapasem, brak OZC, brak bufora.",
        "Dostępność: Materiał dostępny w formacie interaktywnym WEBP oraz do druku w PDF."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-infografika",
    "name": "Eksperckie Centrum Pobierania (Resource Library)",
    "description": "Moduł umożliwiający pełnoekranowy podgląd infografiki edukacyjnej w formie cyfrowej oraz bezpieczne pobranie pliku PDF ze strukturą instalacyjną.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-wrapper">
    <div class="rk-dl-header">
        <div class="rk-dl-badge">Materiały do pobrania</div>
        <h2 class="rk-dl-title">Zabierz tę wiedzę na budowę</h2>
        <p class="rk-dl-desc">
            W gąszczu informacji łatwo o pomyłkę, a każda pomyłka hydrauliczna to tysiące złotych strat rocznie. Skondensowałem całą wiedzę inżynierską w jedną, czytelną ściągę dla Inwestora.
        </p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview">
            <div class="rk-dl-thumbnail-box" id="btnPreviewThumb">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Pompa-Ciepla.webp" alt="Infografika Pompa Ciepła Robert Kucharski" class="rk-dl-thumbnail">
            </div>
            <div class="rk-dl-thumb-label">Kliknij miniaturę, aby powiększyć</div>
        </div>

        <div class="rk-dl-actions">
            <h3>Raport Ekspercki: Pompa Ciepła w pigułce</h3>
            
            <ul class="rk-dl-features">
                <li>
                    <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    <span>4 Filary niskich rachunków w jednym miejscu.</span>
                </li>
                <li>
                    <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    <span>Lista najdroższych błędów do uniknięcia na budowie.</span>
                </li>
                <li>
                    <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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    <span>Format idealny do wydruku (PDF A4) lub zapisu na telefonie.</span>
                </li>
            </ul>

            <div class="rk-dl-btn-group">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Pompa-Ciepla.pdf" target="_blank" class="rk-dl-btn rk-btn-primary" rel="noopener noreferrer">
                    <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 raport (PDF)
                </a>
                
                <button type="button" class="rk-dl-btn rk-btn-secondary" id="btnPreviewFull">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    Zobacz pełny obraz na ekranie
                </button>
            </div>
        </div>
    </div>

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

<div class="rk-modal-overlay" id="rkLightbox">
    <div class="rk-modal-content">
        <div class="rk-modal-close" id="btnCloseLightbox">✕</div>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Pompa-Ciepla.webp" alt="Pełna Infografika Pompa Ciepła" class="rk-modal-img">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPreviewThumb = document.getElementById('btnPreviewThumb');
    var btnPreviewFull = document.getElementById('btnPreviewFull');
    var btnCloseLightbox = document.getElementById('btnCloseLightbox');
    var rkLightbox = document.getElementById('rkLightbox');

    function openLightbox() {
        rkLightbox.className = 'rk-modal-overlay active';
        document.body.style.overflow = 'hidden'; // Blokada scrollowania pod spodem
    }

    function closeLightbox() {
        rkLightbox.className = 'rk-modal-overlay';
        document.body.style.overflow = 'auto'; // Odblokowanie scrollowania
    }

    // Otwieranie (Klik w miniaturę lub guzik)
    if(btnPreviewThumb) { btnPreviewThumb.addEventListener('click', openLightbox); }
    if(btnPreviewFull) { btnPreviewFull.addEventListener('click', openLightbox); }

    // Zamykanie (Klik w X)
    if(btnCloseLightbox) { btnCloseLightbox.addEventListener('click', closeLightbox); }

    // Zamykanie przez kliknięcie w tło
    if(rkLightbox) {
        rkLightbox.addEventListener('click', function(e) {
            if (e.target === rkLightbox) {
                closeLightbox();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-syn-dark: #0f172a;
    --rk-syn-blue: #0ea5e9;
    --rk-syn-blue-dark: #0284c7;
    --rk-syn-light: #f8fafc;
    --rk-syn-green: #10b981;
    --rk-syn-red: #ef4444;
    --rk-syn-orange: #f97316;
    --rk-syn-border: #cbd5e1;
    --rk-syn-bg: #ffffff;
}

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

/* Sekcja Nagłówkowa */
.rk-syn-header {
    padding: 40px 45px;
    background: linear-gradient(135deg, var(--rk-syn-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-syn-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #ffffff;
    border-bottom: none;
    padding-bottom: 0;
}

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

.rk-syn-text strong {
    color: #38bdf8;
    font-weight: 700;
}

/* Interaktywny Panel */
.rk-syn-interactive {
    padding: 35px 45px;
    background: var(--rk-syn-light);
    border-bottom: 1px solid var(--rk-syn-border);
}

.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-syn-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-toggle-label {
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

.rk-toggle-label.active-pro { color: var(--rk-syn-green); }
.rk-toggle-label.active-ama { color: var(--rk-syn-red); }

/* Switch CSS */
.rk-switch {
    position: relative;
    display: inline-block;
    width: 68px;
    height: 36px;
}

.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-syn-green);
    transition: .4s;
    border-radius: 36px;
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 28px;
    width: 28px;
    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-syn-red); }
input:checked + .rk-slider:before { transform: translateX(32px); }

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

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

.rk-stat-icon {
    height: 50px;
    margin-bottom: 15px;
}

.rk-stat-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
    font-weight: 700;
    margin: 0 0 10px 0;
}

.rk-stat-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-syn-dark);
}

/* Tagi SEO */
.rk-syn-tags {
    padding: 25px 45px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    background: #f0f9ff;
    color: var(--rk-syn-blue-dark);
    border: 1px solid #bae6fd;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-syn-blue-dark);
    color: #ffffff;
}

/* CTA */
.rk-syn-cta {
    padding: 40px 45px;
    background: var(--rk-syn-dark);
    text-align: center;
}

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

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

.rk-btn-epic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: linear-gradient(135deg, var(--rk-syn-blue) 0%, var(--rk-syn-blue-dark) 100%);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.5);
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-btn-epic:hover {
    transform: scale(1.03) translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.6);
}

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

.rk-btn-epic:hover svg {
    transform: translateX(8px);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-syn-header, .rk-syn-interactive, .rk-syn-tags, .rk-syn-cta {
        padding: 30px 20px;
    }
    .rk-stats-grid {
        grid-template-columns: 1fr; /* Pionowy układ dla mobile */
        gap: 15px;
    }
    .rk-toggle-wrapper {
        flex-direction: column;
        gap: 15px;
    }
    .rk-btn-epic {
        width: 100%;
        padding: 18px 20px;
        font-size: 16px;
    }
    .rk-syn-title { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/"
    },
    "headline": "Podsumowanie: Bezkompromisowa synergia technologii pompy ciepła",
    "description": "Kluczem do niskich rachunków i bezawaryjnej pracy pompy ciepła przez dekady jest bezbłędna hydraulika, projekt OZC i idealnie dobrany bufor ciepła. Zobacz zestawienie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-20",
    "dateModified": "2026-06-20"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#dataset-podsumowanie",
    "name": "Wskaźnik efektywności systemu z pompą ciepła",
    "description": "Zestawienie techniczne porównujące kluczowe parametry eksploatacyjne pompy ciepła w zależności od jakości wykonania projektu hydraulicznego i zładu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rachunki za prąd z pompą ciepła",
      "żywotność sprężarki",
      "błędy przy montażu pompy ciepła",
      "projekt ozc dla pompy ciepła",
      "bufor ciepła jako sprzęgło"
    ],
    "measurementTechnique": "Porównanie kosztów eksploatacji i żywotności podzespołów (sprężarki) w systemie zbilansowanym vs system dławiony bez bufora.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System zoptymalizowany: Projekt OZC, pętle poniżej 100m, sprzęgło/bufor dobrane idealnie = żywotność 20-25 lat.",
        "System losowy: Dławienie przepływów, pętle losowe = usterka w ciągu 5-7 lat, wysokie rachunki na grzałkach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-ciepla/#webapp-podsumowanie",
    "name": "Symulator Synergii Pompy Ciepła",
    "description": "Interaktywny przełącznik demonstrujący drastyczny wpływ błędów projektowych i braku sprzęgła hydraulicznego na żywotność oraz rachunki za energię.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-syn-container" id="syn-app-box">
    <div class="rk-syn-header">
        <h2 class="rk-syn-title">Podsumowanie: Bezkompromisowa synergia technologii</h2>
        <p class="rk-syn-text">
            Pompa ciepła to urządzenie, które nie wybacza błędów wykonawczych i projektowych. Kluczem do uzyskania <strong>niskich rachunków za prąd i bezawaryjnej pracy przez 20-25 lat</strong> nie jest marka samego urządzenia, lecz rygorystyczne podejście do hydrauliki całego systemu. Maksymalna efektywność energetyczna rodzi się na styku źródła ciepła i odbiornika – bez precyzyjnie przeliczonego projektu OZC, idealnie zbalansowanych pętli ogrzewania podłogowego o długości poniżej 100 m oraz właściwie dobranego <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" style="color: #38bdf8; text-decoration: underline;">bufora pełniącego funkcję sprzęgła</a>, nawet najdroższa pompa ciepła stanie się drogim w utrzymaniu grzejnikiem elektrycznym.
        </p>
    </div>

    <div class="rk-syn-interactive">
        <div class="rk-toggle-wrapper">
            <span class="rk-toggle-label active-pro" id="labelPro">Zgodnie ze sztuką (Projekt OZC)</span>
            <label class="rk-switch">
                <input type="checkbox" id="synergyToggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="labelAma">Wykonawstwo "na oko"</span>
        </div>

        <div class="rk-stats-grid">
            <div class="rk-stat-card" id="cardLife">
                <svg class="rk-stat-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-syn-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="iconLife">
                    <polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline>
                </svg>
                <h4 class="rk-stat-title">Żywotność sprężarki</h4>
                <div class="rk-stat-value" id="valLife">20 - 25 lat</div>
            </div>
            
            <div class="rk-stat-card" id="cardBills">
                <svg class="rk-stat-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-syn-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="iconBills">
                    <path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path>
                </svg>
                <h4 class="rk-stat-title">Roczne rachunki (COP)</h4>
                <div class="rk-stat-value" id="valBills">Minimalne</div>
            </div>

            <div class="rk-stat-card" id="cardError">
                <svg class="rk-stat-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-syn-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" id="iconError">
                    <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 class="rk-stat-title">Ryzyko zamrożenia wymiennika</h4>
                <div class="rk-stat-value" id="valError">0% (Bezpieczeństwo)</div>
            </div>
        </div>
    </div>

    <div class="rk-syn-tags">
        <span class="rk-mat-tag"># pompa ciepła z podłogówką</span>
        <span class="rk-mat-tag"># błędy przy montażu pompy ciepła</span>
        <span class="rk-mat-tag"># rachunki za prąd z pompą ciepła</span>
        <span class="rk-mat-tag"># projekt ozc dla pompy ciepła</span>
        <span class="rk-mat-tag"># optymalna długość pętli podłogówki</span>
        <span class="rk-mat-tag"># bufor ciepła jako sprzęgło</span>
        <span class="rk-mat-tag"># efektywność energetyczna domu</span>
        <span class="rk-mat-tag"># zład wody w instalacji co</span>
    </div>

    <div class="rk-syn-cta">
        <h3>Świadoma inwestycja to jedyna droga do sukcesu</h3>
        <p>
            Nie dopuść, by brak wiedzy instalatora kosztował Cię tysiące złotych. Świadoma inwestycja w inżynierię to fundament energooszczędnego domu. Odwiedź bazę wiedzy i <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color: #cbd5e1; text-decoration: underline;">ucz się na cudzych, a nie własnych błędach</a>.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-epic">
            WEJDŹ DO STREFY EKSPERTA HVAC
            <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>
document.addEventListener('DOMContentLoaded', function() {
    const toggle = document.getElementById('synergyToggle');
    const labelPro = document.getElementById('labelPro');
    const labelAma = document.getElementById('labelAma');

    // Elementy do aktualizacji
    const valLife = document.getElementById('valLife');
    const valBills = document.getElementById('valBills');
    const valError = document.getElementById('valError');
    
    // Ikony
    const iconLife = document.getElementById('iconLife');
    const iconBills = document.getElementById('iconBills');
    const iconError = document.getElementById('iconError');

    // Karty
    const cards = document.querySelectorAll('.rk-stat-card');

    toggle.addEventListener('change', function() {
        if (this.checked) {
            // Stan: Błędy i Amatorszczyzna
            labelPro.classList.remove('active-pro');
            labelAma.classList.add('active-ama');

            valLife.innerHTML = '5 - 7 lat (Taktowanie)';
            valBills.innerHTML = 'Ekstremalne (+300%)';
            valError.innerHTML = 'Krytyczne (Brak zładu)';

            cards.forEach(function(card) {
                card.style.borderColor = 'var(--rk-syn-red)';
                card.style.background = '#fef2f2';
            });

            // Zmiana ikon na błąd/alert
            iconLife.setAttribute('stroke', 'var(--rk-syn-red)');
            iconBills.setAttribute('stroke', 'var(--rk-syn-red)');
            iconError.setAttribute('stroke', 'var(--rk-syn-red)');
            iconError.innerHTML = '<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>';

        } else {
            // Stan: Synergia Inżynierska
            labelPro.classList.add('active-pro');
            labelAma.classList.remove('active-ama');

            valLife.innerHTML = '20 - 25 lat';
            valBills.innerHTML = 'Minimalne';
            valError.innerHTML = '0% (Bezpieczeństwo)';

            cards.forEach(function(card) {
                card.style.borderColor = 'var(--rk-syn-border)';
                card.style.background = '#ffffff';
            });

            // Zmiana ikon na poprawne
            iconLife.setAttribute('stroke', 'var(--rk-syn-green)');
            iconBills.setAttribute('stroke', 'var(--rk-syn-green)');
            iconError.setAttribute('stroke', 'var(--rk-syn-green)');
            iconError.innerHTML = '<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>';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa Ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
