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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa pompy ec - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/pompy-ec/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pompa obiegowa w instalacji ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 15 Dec 2025 10:42:46 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Hydraulika budowlana]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy obiegowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[auto adapt]]></category>
		<category><![CDATA[dobór pompy]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika instalacji]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[pompy cyrkulacyjne]]></category>
		<category><![CDATA[pompy ec]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2943</guid>

					<description><![CDATA[<p>Pompa obiegowa w instalacji ogrzewania podłogowego to element, który w praktyce decyduje o tym, czy cały system będzie działał cicho, oszczędnie i równomiernie. Choć często traktowana jako detal techniczny, jej dobór ma bezpośredni wpływ na komfort cieplny, zużycie energii elektrycznej oraz trwałość instalacji. W artykule szczegółowo wyjaśniamy, jak działa pompa obiegowa w instalacji ogrzewania podłogowego, jakie parametry mają kluczowe znaczenie, czym różnią się nowoczesne pompy EC od starszych modeli oraz dlaczego projekt hydrauliczny jest fundamentem prawidłowej pracy całego systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa w instalacji ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-start-dark: #0f172a;
    --rk-start-slate: #475569;
    --rk-start-bg: #f8fafc;
    --rk-start-card: #ffffff;
    --rk-start-border: #e2e8f0;
    
    /* Kolory funkcyjne */
    --rk-start-blue: #2563eb;
    --rk-start-blue-light: #eff6ff;
    --rk-start-green: #059669;
    --rk-start-gold: #d97706;
}

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

/* Sekcja Nagłówka i Hooka */
.rk-start-hero {
    background: linear-gradient(135deg, var(--rk-start-dark) 0%, #1e293b 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
}

.rk-start-hero h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.25;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-hook-box {
    font-size: 17px;
    line-height: 1.6;
    color: #cbd5e1;
    margin-bottom: 30px;
    padding-left: 20px;
    border-left: 4px solid var(--rk-start-gold);
}

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

/* Szybka Odpowiedź (Quick Answer) */
.rk-qa-box {
    background: #ffffff;
    border-radius: 16px;
    padding: 25px 30px;
    color: var(--rk-start-dark);
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}

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

.rk-qa-icon {
    width: 28px;
    height: 28px;
    background: #dcfce7;
    color: var(--rk-start-green);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-qa-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-start-green);
}

.rk-qa-content {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    font-weight: 500;
}

.rk-qa-content strong {
    color: var(--rk-start-blue);
}

/* Kafelkowy Spis Treści (Zamiast Mapy) */
.rk-start-body {
    padding: 40px;
    background: var(--rk-start-bg);
}

.rk-body-heading {
    font-size: 13px;
    font-weight: 900;
    color: var(--rk-start-slate);
    text-transform: uppercase;
    margin-bottom: 25px;
    text-align: center;
}

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

.rk-start-tile {
    background: #ffffff;
    border: 1px solid var(--rk-start-border);
    border-radius: 16px;
    padding: 25px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-start-tile:hover {
    border-color: var(--rk-start-blue);
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.1);
}

.rk-start-tile.active {
    background: var(--rk-start-blue-light);
    border-color: var(--rk-start-blue);
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.2);
}

.rk-tile-icon {
    width: 40px;
    height: 40px;
    margin-bottom: 15px;
    color: var(--rk-start-blue);
}

.rk-tile-num {
    font-size: 11px;
    font-weight: 900;
    color: var(--rk-start-slate);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.rk-start-tile.active .rk-tile-num { color: var(--rk-start-blue); }

.rk-tile-text {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-start-dark);
    margin: 0;
}

/* Obszar Treści Pod Kafelkami */
.rk-content-group {
    background: #ffffff;
    border: 1px solid var(--rk-start-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

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

.rk-panel-badge {
    display: inline-block;
    padding: 6px 12px;
    background: var(--rk-start-bg);
    color: var(--rk-start-blue);
    font-size: 12px;
    font-weight: 900;
    border-radius: 6px;
    text-transform: uppercase;
    margin-bottom: 15px;
    border: 1px solid var(--rk-start-border);
}

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

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

.rk-content-panel p:last-child { margin-bottom: 0; }

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

/* Baner Informacyjny na dole */
.rk-start-footer {
    background: var(--rk-start-blue);
    padding: 20px 40px;
    display: flex;
    align-items: center;
    gap: 15px;
    color: #ffffff;
}

.rk-footer-icon {
    flex-shrink: 0;
}

.rk-footer-text {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 800px) {
    .rk-start-hero { padding: 35px 25px; }
    .rk-start-tiles { grid-template-columns: 1fr; gap: 15px; }
    .rk-start-body { padding: 25px; }
    .rk-intro-content { padding: 25px; }
    .rk-qa-box { padding: 20px; }
    .rk-start-footer { flex-direction: column; text-align: center; padding: 20px; }
}
</style>

<div class="rk-start-container" id="rkStartModule">
    
    <div class="rk-start-hero">
        <h2>Pompa obiegowa w instalacji ogrzewania podłogowego – Kompleksowy przewodnik</h2>
        
        <div class="rk-hook-box">
            Większość inwestorów skupia się na wyborze kotła czy pompy ciepła, całkowicie ignorując urządzenie, które fizycznie dystrybuuje energię. <strong>Złe wbudowanie pompy obiegowej w instalacji ogrzewania podłogowego to najkrótsza droga do niedogrzanej łazienki, hałasu w rurach i rachunków wyższych o kilkaset złotych rocznie.</strong> Przejmij kontrolę nad sercem swojego układu grzewczego.
        </div>

        <div class="rk-qa-box">
            <div class="rk-qa-header">
                <div class="rk-qa-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
                <h3>Szybka Odpowiedź</h3>
            </div>
            <p class="rk-qa-content">
                <strong>Pompa obiegowa w instalacji ogrzewania podłogowego</strong> to niewielkie urządzenie węzłowe (bezdławnicowe), montowane zazwyczaj przy rozdzielaczu. Jej kluczowym zadaniem jest wymuszenie ciągłego przepływu wody poprzez pokonanie wysokich oporów hydraulicznych wężownicy (rzadziej 16×2 mm). Prawidłowo dobrany model elektroniczny (EC) pracujący w trybie stałociśnieniowym (CP) zużywa <strong>zaledwie od 5 do 22 W</strong> energii elektrycznej.
            </p>
        </div>
    </div>

    <div class="rk-start-body">
        <div class="rk-body-heading">Interaktywny Przewodnik (Wybierz Zagadnienie)</div>
        
        <div class="rk-start-tiles">
            <div class="rk-start-tile active" data-target="mod-calc">
                <div class="rk-tile-num">Część 1</div>
                <h4 class="rk-tile-text">Inżynierski dobór</h4>
                <div class="rk-tile-icon" style="margin-top: 10px;">
                    <svg 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"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
                </div>
            </div>
            <div class="rk-start-tile" data-target="mod-mode">
                <div class="rk-tile-num">Część 2</div>
                <h4 class="rk-tile-text">Elektronika i Tryby</h4>
                <div class="rk-tile-icon" style="margin-top: 10px;">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
                </div>
            </div>
            <div class="rk-start-tile" data-target="mod-err">
                <div class="rk-tile-num">Część 3</div>
                <h4 class="rk-tile-text">Błędy w montażu</h4>
                <div class="rk-tile-icon" style="margin-top: 10px;">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
                </div>
            </div>
        </div>

        <div class="rk-content-group">
            
            <div class="rk-content-panel active" id="mod-calc">
                <span class="rk-panel-badge">Obliczenia Q/H</span>
                <h4>Jak poprawnie obliczyć przepływ i wysokość podnoszenia?</h4>
                <p>Odrzucamy instalatorskie mity o dobieraniu pompy &#8222;na oko&#8221; lub &#8222;na metry kwadratowe&#8221;. Wodne <strong>ogrzewanie podłogowe charakteryzuje się bardzo dużą pojemnością wodną (zładem) oraz wysokimi oporami wewnętrznymi.</strong> Rola pompy polega na pokonaniu tych oporów.</p>
                <p>W tej sekcji poznasz dokładne wzory inżynierskie bazujące na <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normie PN-EN 1264</a>, które pozwolą Ci wyliczyć wymagany przepływ masowy (Q) i wysokość podnoszenia (H) dla Twojej pętli krytycznej.</p>
            </div>

            <div class="rk-content-panel" id="mod-mode">
                <span class="rk-panel-badge">Konfiguracja pompy</span>
                <h4>Zasady działania i tryby pracy pompy EC</h4>
                <p>Nawet najlepsza <strong>pompa obiegowa w instalacji ogrzewania podłogowego</strong> ulegnie przyspieszonemu zużyciu, jeśli zostanie źle skonfigurowana. Elektronika nowoczesnych modeli EC wybacza znacznie mniej niż stare pompy AC.</p>
                <p>Wyjaśniamy, dlaczego tryb proporcjonalny (PP) to błąd w sztuce w płaszczyznowym ogrzewaniu. Dowiesz się, jak tryb stałociśnieniowy (CP) optymalizuje pracę układu i dlaczego funkcja AUTOADAPT może być pułapką, jeśli nie rozumiesz krzywych charakterystyki.</p>
            </div>

            <div class="rk-content-panel" id="mod-err">
                <span class="rk-panel-badge">Praktyka na Budowie</span>
                <h4>Katalog krytycznych błędów instalacyjnych</h4>
                <p>Przenosimy się z kotłowni na plac budowy. Dowiesz się, gdzie dokładnie powinna być zamontowana pompa (za lub przed <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworem mieszającym (3D/4D)</a>) i jakie są techniczne konsekwencje nieprzestrzegania instrukcji.</p>
                <p>Opisujemy katastrofalne skutki pracy wirnika w osi pionowej (co niszczy ceramiczne poduszki wodne łożysk) oraz zagrożenia wynikające z braku separatora magnetycznego (siatka min. 500 µm) przy silnikach z magnesem neodymowym.</p>
            </div>

        </div>
    </div>

    <div class="rk-start-footer">
        <div class="rk-footer-icon">
            <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="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
        </div>
        <p class="rk-start-footer-text">
            <strong>Narzędzia premium wewnątrz artykułu:</strong> W dalszej części tekstu udostępniłem dla Ciebie interaktywne kalkulatory doboru, symulatory hydrauliczne oraz twarde tabele inżynierskie, które pomogą Ci podjąć bezbłędną decyzję inwestycyjną.
        </p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tiles = document.querySelectorAll('.rk-start-tile');
    const panels = document.querySelectorAll('.rk-content-panel');

    tiles.forEach(tile => {
        tile.addEventListener('click', function() {
            // Reset active states
            tiles.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Pompa obiegowa w instalacji ogrzewania podłogowego – Kompleksowy przewodnik",
    "description": "Poradnik o pompach obiegowych w podłogówce. HOOK, Szybka Odpowiedź, parametry wydajnościowe, tryby pracy (CP/PP) oraz najczęstsze błędy montażowe.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Wprowadzenie i parametry startowe pomp w podłogówce",
    "description": "Baza informacji startowych kategoryzująca kluczowe parametry doboru i diagnostyki pomp obiegowych w układach niskotemperaturowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pompa obiegowa w instalacji ogrzewania podłogowego",
      "szybka odpowiedź ogrzewanie podłogowe pompa",
      "obliczenia hydrauliczne podłogówki wzory",
      "tryb stałociśnieniowy cp vs proporcjonalny pp",
      "zatarte łożyska pompy ceramiczne"
    ],
    "measurementTechnique": "Kategoryzacja parametrów inżynierskich na podstawie podziału treści na trzy moduły tematyczne: dobór, elektronika, montaż.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obliczenia Q i H dla pętli krytycznej wg normy PN-EN 1264.",
        "Analiza trybów pracy pompy EC i energooszczędności.",
        "Diagnostyka błędów instalacyjnych i zanieczyszczeń magnetycznych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-spis-tresci",
    "name": "Kafelkowy Spis Treści (Statyczny)",
    "description": "Interfejs w formie kafelków na górze artykułu, pozwalający na statyczne (bez animacji) przełączanie informacji o tematyce trzech głównych sekcji poradnika.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-stat-dark: #0f172a;
    --rk-stat-slate: #475569;
    --rk-stat-bg: #f8fafc;
    --rk-stat-card: #ffffff;
    --rk-stat-border: #e2e8f0;
    
    /* Kolory akcentujące */
    --rk-stat-blue: #2563eb;
    --rk-stat-red: #ef4444;
    --rk-stat-green: #10b981;
}

.rk-stat-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-stat-card);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(37, 99, 235, 0.1);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
}

/* Tagi Long Tail */
.rk-stat-tags {
    padding: 25px 40px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: var(--rk-stat-card);
}

.rk-mat-tag {
    background: var(--rk-stat-bg);
    color: var(--rk-stat-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    border: 1px solid var(--rk-stat-border);
    transition: all 0.3s;
}

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

/* Nagłówek */
.rk-stat-header {
    padding: 25px 40px 30px;
    background: var(--rk-stat-card);
    color: var(--rk-stat-dark);
}

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

.rk-stat-header p {
    font-size: 15px;
    color: var(--rk-stat-slate);
    margin: 0;
    line-height: 1.7;
    max-width: 800px;
}

/* Układ główny - Tło dla całej sekcji nawigacji i paneli */
.rk-stat-body {
    background: var(--rk-stat-bg);
    border-top: 1px solid var(--rk-stat-border);
    padding: 35px 40px;
}

/* Menu Nawigacyjne Poziome (Tab Bar) */
.rk-stat-nav-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 35px;
}

.rk-stat-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-stat-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-stat-btn:hover {
    border-color: var(--rk-stat-blue);
}

.rk-stat-btn.active {
    background: var(--rk-stat-blue);
    border-color: var(--rk-stat-blue);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.2);
}

.rk-stat-btn.active[data-target="panel2"],
.rk-stat-btn.active[data-target="panel3"] {
    background: var(--rk-stat-red);
    border-color: var(--rk-stat-red);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.2);
}

.rk-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--rk-stat-slate);
    transition: all 0.2s;
}

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

.rk-btn-text {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-stat-dark);
    margin: 0;
    transition: all 0.2s;
}

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

/* Prawa Kolumna - Treść i SVG (Statyczne) */
.rk-stat-panel {
    display: none;
    animation: fadeInPanel 0.3s ease-out;
}

.rk-stat-panel.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

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

/* Obszar grafiki SVG */
.rk-svg-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-stat-border);
    border-radius: 16px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-static-svg {
    width: 100%;
    max-width: 320px;
    height: auto;
}

/* Obszar tekstu */
.rk-text-wrapper h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-stat-dark);
    margin: 0 0 15px 0;
}

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

.rk-text-wrapper strong {
    color: var(--rk-stat-dark);
}

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

.rk-consequence-box {
    background: #fef2f2;
    border-left: 4px solid var(--rk-stat-red);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-consequence-box h4 {
    margin: 0 0 8px 0;
    color: var(--rk-stat-red);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-consequence-box p {
    margin: 0;
    font-size: 14px;
    color: #991b1b;
    font-weight: 500;
}

@media (max-width: 768px) {
    .rk-stat-nav-bar { grid-template-columns: 1fr; gap: 10px; }
    .rk-stat-panel.active { grid-template-columns: 1fr; gap: 20px; }
    .rk-stat-body { padding: 25px 20px; }
    .rk-stat-header { padding: 25px 20px 20px; }
    .rk-stat-tags { padding: 20px 20px 0; }
    .rk-stat-header h2 { font-size: 24px; }
    .rk-svg-wrapper { padding: 20px; }
}
</style>

<div class="rk-stat-container" id="rkStaticApp">
    
    <div class="rk-stat-tags">
        <span class="rk-mat-tag"># zasada działania pompy obiegowej</span>
        <span class="rk-mat-tag"># montaż pompy na powrocie</span>
        <span class="rk-mat-tag"># zatarte łożyska ceramiczne</span>
        <span class="rk-mat-tag"># filtr magnetyczny 500 µm</span>
    </div>

    <div class="rk-stat-header">
        <h2>Jak działa pompa obiegowa i gdzie powinna być zamontowana?</h2>
        <p>Pompa obiegowa w instalacji ogrzewania podłogowego działa na zasadzie wymuszenia przepływu hydraulicznego w zamkniętym układzie, a miejscem jej montażu – zgodnie z dobrą praktyką inżynierską i normą PN-EN 1264-4 – powinien być układ mieszająco-pompowy.</p>
    </div>

    <div class="rk-stat-body">
        <div class="rk-stat-nav-bar">
            <button class="rk-stat-btn active" data-target="panel1">
                <div class="rk-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                <span class="rk-btn-text">Zasada Działania</span>
            </button>
            
            <button class="rk-stat-btn" data-target="panel2">
                <div class="rk-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <span class="rk-btn-text">Błąd: Oś Pionowa</span>
            </button>
            
            <button class="rk-stat-btn" data-target="panel3">
                <div class="rk-btn-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <span class="rk-btn-text">Błąd: Brak Filtra</span>
            </button>
        </div>

        <div class="rk-stat-content-area">
            
            <div class="rk-stat-panel active" id="panel1">
                <div class="rk-svg-wrapper">
                    <svg class="rk-static-svg" viewBox="0 0 350 200">
                        <rect x="20" y="20" width="60" height="160" rx="8" fill="#e2e8f0" />
                        <text x="50" y="100" fill="#475569" font-size="12" font-weight="bold" text-anchor="middle" transform="rotate(-90 50 100)">Rozdzielacz</text>
                        
                        <path d="M 80 50 L 250 50" fill="none" stroke="#ef4444" stroke-width="12" stroke-linecap="round"/>
                        <path d="M 80 150 L 250 150" fill="none" stroke="#3b82f6" stroke-width="12" stroke-linecap="round"/>
                        <path d="M 180 50 L 180 150" fill="none" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>

                        <circle cx="180" cy="150" r="16" fill="#f59e0b" />
                        <text x="180" y="185" fill="#f59e0b" font-size="11" font-weight="bold" text-anchor="middle">Zawór Mieszający</text>

                        <rect x="150" y="30" width="60" height="40" rx="8" fill="#1e293b" />
                        <circle cx="180" cy="50" r="14" fill="#334155" />
                        <path d="M 170 50 L 190 50 M 180 40 L 180 60" stroke="#10b981" stroke-width="4" stroke-linecap="round"/>
                        <text x="180" y="18" fill="#1e293b" font-size="11" font-weight="bold" text-anchor="middle">Oś Pozioma (OK)</text>

                        <polygon points="120,44 130,50 120,56" fill="#ffffff" />
                        <polygon points="220,44 230,50 220,56" fill="#ffffff" />
                        <polygon points="230,144 220,150 230,156" fill="#ffffff" />
                        <polygon points="174,100 180,90 186,100" fill="#ffffff" />
                    </svg>
                </div>
                <div class="rk-text-wrapper">
                    <h3>Pojemność i opory hydrauliczne</h3>
                    <p>Wodne ogrzewanie podłogowe charakteryzuje się bardzo dużą pojemnością wodną (zładem) oraz wysokimi oporami wewnętrznymi. Rola pompy polega na przetłoczeniu masy wody przez pętle o małym przekroju (np. rura 16×2 mm posiada prześwit zaledwie 12 mm).</p>
                    <p>Montaż pompy za zaworem mieszającym pozwala na obniżenie temperatury zasilającego czynnika grzewczego z parametrów wysokich (np. 55°C) do bezpiecznych dla <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu</a>, czyli <strong>30–45°C</strong>.</p>
                </div>
            </div>

            <div class="rk-stat-panel" id="panel2">
                <div class="rk-svg-wrapper">
                    <svg class="rk-static-svg" viewBox="0 0 350 200">
                        <path d="M 80 100 L 250 100" fill="none" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>
                        
                        <rect x="145" y="60" width="40" height="80" rx="8" fill="#1e293b" />
                        <circle cx="165" cy="100" r="14" fill="#334155" />
                        <path d="M 155 100 L 175 100 M 165 90 L 165 110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                        
                        <circle cx="210" cy="60" r="16" fill="#ef4444" />
                        <path d="M 205 55 L 215 65 M 215 55 L 205 65" stroke="#ffffff" stroke-width="3" stroke-linecap="round"/>
                        <text x="165" y="165" fill="#ef4444" font-size="11" font-weight="bold" text-anchor="middle">Oś Pionowa (BŁĄD)</text>
                    </svg>
                </div>
                <div class="rk-text-wrapper">
                    <h3>Orientacja wału wirnika</h3>
                    <p>Zgodnie z wymogami producentów i fizyką działania pomp bezdławnicowych, urządzenie musi pracować wyłącznie w osi poziomej wału wirnika. Woda instalacyjna pełni w tym układzie funkcję smarującą i chłodzącą dla precyzyjnych elementów ruchomych.</p>
                    <div class="rk-consequence-box">
                        <h4>Konsekwencje błędu</h4>
                        <p>Brak zachowania poziomej orientacji wału skutkuje pracą w warunkach suchego startu i zapowietrzeniem komory. Niszczy to ceramiczne poduszki wodne łożysk w czasie krótszym niż 1 sezon grzewczy.</p>
                    </div>
                </div>
            </div>

            <div class="rk-stat-panel" id="panel3">
                <div class="rk-svg-wrapper">
                    <svg class="rk-static-svg" viewBox="0 0 350 200">
                        <path d="M 80 100 L 250 100" fill="none" stroke="#cbd5e1" stroke-width="12" stroke-linecap="round"/>
                        
                        <circle cx="100" cy="100" r="3" fill="#475569"/>
                        <circle cx="115" cy="98" r="4" fill="#475569"/>
                        <circle cx="125" cy="103" r="2" fill="#475569"/>
                        
                        <rect x="150" y="80" width="60" height="40" rx="8" fill="#1e293b" />
                        <circle cx="180" cy="100" r="14" fill="#334155" />
                        <path d="M 170 100 L 190 100 M 180 90 L 180 110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"/>
                        
                        <circle cx="175" cy="95" r="3" fill="#000000"/>
                        <circle cx="185" cy="105" r="4" fill="#000000"/>

                        <path d="M 140 70 L 140 130" stroke="#ef4444" stroke-width="3" stroke-dasharray="4 4" />
                        <text x="140" y="60" fill="#ef4444" font-size="11" font-weight="bold" text-anchor="middle">Brak Filtra!</text>
                    </svg>
                </div>
                <div class="rk-text-wrapper">
                    <h3>Zabezpieczenie magnetyczne</h3>
                    <p>Nowoczesne pompy cyrkulacyjne (silniki EC) posiadają w wirniku niezwykle silne magnesy neodymowe. Zjawisko to sprawia, że pompa naturalnie przyciąga z instalacji wszelkie metaliczne zanieczyszczenia i rdzę.</p>
                    <div class="rk-consequence-box">
                        <h4>Konsekwencje błędu</h4>
                        <p>Montaż bez filtra z wkładem magnetycznym o gęstości siatki minimum 500 µm naraża wirnik na zablokowanie przez cząstki magnetytu. Trwałe zablokowanie obrotu wału w 90% przypadków doprowadza do przepalenia stojana.</p>
                    </div>
                </div>
            </div>

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

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

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Remove active classes
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Add active class to clicked button and target panel
            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-dzialanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jak działa pompa obiegowa w instalacji ogrzewania podłogowego i gdzie powinna być zamontowana?",
    "description": "Zasady działania i wymogi montażowe (PN-EN 1264-4) pompy obiegowej w układzie mieszającym. Dowiedz się, dlaczego orientacja wału i filtr magnetyczny są krytyczne.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-montaz-pompy",
    "name": "Wytyczne Montażowe i Parametry Pracy Pompy Obiegowej 2026",
    "description": "Zestawienie statycznych zaleceń inżynierskich dotyczących pozycjonowania pomp bezdławnicowych oraz konieczności filtracji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zasada działania pompy obiegowej",
      "montaż pompy na powrocie",
      "zatarte łożyska ceramiczne",
      "filtr magnetyczny 500 µm"
    ],
    "measurementTechnique": "Analiza schematyczna błędów instalacyjnych powodujących pracę na sucho lub blokadę wirnika przez zanieczyszczenia magnetyczne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Oś pozioma wału: Wymagana dla zachowania żywotności łożysk ceramicznych (zapobieganie suchemu startowi).",
        "Zabezpieczenie magnetyczne: Filtr z siatką min. 500 µm jako ochrona przed zatarciem silnika EC magnetytem z instalacji.",
        "Miejsce montażu: Przy układzie mieszającym w celu redukcji parametrów zasilania z 55°C do 30-45°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-diagnostyka",
    "name": "Interaktywny Przewodnik Montażowy",
    "description": "Statyczny interfejs diagnostyczny z zakładkami, ilustrujący poprawne zasady wbudowania pompy obiegowej oraz techniczne konsekwencje nieprzestrzegania instrukcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-char-dark: #0f172a;
    --rk-char-slate: #475569;
    --rk-char-bg: #f8fafc;
    --rk-char-card: #ffffff;
    --rk-char-border: #e2e8f0;
    
    /* Kolory funkcyjne */
    --rk-char-blue: #2563eb;
    --rk-char-blue-light: #eff6ff;
    --rk-char-green: #10b981;
    --rk-char-red: #ef4444;
    --rk-char-orange: #f59e0b;
}

.rk-char-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-char-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(37, 99, 235, 0.1);
    border: 1px solid rgba(37, 99, 235, 0.2);
    overflow: hidden;
}

/* Nagłówek i Teoria (Układ jednowymiarowy pionowy) */
.rk-char-theory-grid {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid var(--rk-char-border);
}

.rk-char-text-part {
    padding: 40px;
    background: linear-gradient(145deg, var(--rk-char-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-char-text-part h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-char-text-part p {
    font-size: 15px;
    color: #cbd5e1;
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-char-text-part a {
    color: #93c5fd;
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 700;
}

/* Kontenery parametrów ustawione obok siebie na desktopie */
.rk-param-boxes-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
}

.rk-param-box {
    background: rgba(255,255,255,0.05);
    border-left: 3px solid var(--rk-char-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    line-height: 1.6;
}

.rk-param-box strong {
    color: #60a5fa;
    display: block;
    margin-bottom: 8px;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Ilustracja Q i H (SVG) - Wyśrodkowana na pełnej szerokości */
.rk-char-illustration {
    background: #ffffff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    border-top: 1px solid var(--rk-char-border);
}

.rk-illu-title {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-char-dark);
    text-transform: uppercase;
    margin-bottom: 30px;
    letter-spacing: 1px;
}

/* Interaktywne Porównanie Pomp */
.rk-char-compare-sec {
    padding: 40px;
    background: var(--rk-char-bg);
}

.rk-comp-header {
    text-align: center;
    margin-bottom: 30px;
}

.rk-comp-header h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-char-dark);
    margin: 0 0 10px 0;
}

/* Zakładki (Tabs) */
.rk-tabs-nav {
    display: flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 6px;
    max-width: 700px;
    margin: 0 auto 35px;
    position: relative;
}

.rk-tab-btn {
    flex: 1;
    text-align: center;
    padding: 14px 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-char-slate);
    cursor: pointer;
    border: none;
    background: transparent;
    border-radius: 12px;
    transition: all 0.3s;
    position: relative;
    z-index: 2;
}

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

.rk-tab-glider {
    position: absolute;
    top: 6px; left: 6px;
    height: calc(100% - 12px);
    width: calc(33.333% - 4px);
    background: var(--rk-char-blue);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    z-index: 1;
}

/* Kafelki z danymi (zamiast tabeli) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-data-card {
    background: var(--rk-char-card);
    border: 1px solid var(--rk-char-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-data-icon {
    margin: 0 auto 12px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-char-blue);
    transition: color 0.3s;
}

.rk-data-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-char-dark);
    margin-bottom: 6px;
    transition: color 0.3s;
}

.rk-data-lbl {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-char-slate);
    text-transform: uppercase;
}

/* Animacja i status dla wybranej technologii */
.rk-tech-visual {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-char-border);
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}

.rk-tech-desc {
    flex: 1;
}

.rk-tech-badge {
    display: inline-flex;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 15px;
    transition: all 0.3s;
}

.rk-tech-desc p {
    font-size: 14px;
    color: var(--rk-char-slate);
    line-height: 1.6;
    margin: 0;
}

/* SVG Animacje globalne */
.rk-anim-flow { stroke-dasharray: 10; animation: pipeFlow 2s linear infinite; }
@keyframes pipeFlow { to { stroke-dashoffset: -20; } }

/* Dynamiczne stany dla technologii */
.state-ac .rk-data-val { color: var(--rk-char-red); }
.state-ac .rk-data-icon { color: var(--rk-char-red); }
.state-ac .rk-tech-badge { background: #fee2e2; color: var(--rk-char-red); }
.state-ac .svg-ring { stroke: var(--rk-char-red); }

.state-ec-const .rk-data-val { color: var(--rk-char-orange); }
.state-ec-const .rk-data-icon { color: var(--rk-char-orange); }
.state-ec-const .rk-tech-badge { background: #fef3c7; color: #b45309; }
.state-ec-const .svg-ring { stroke: var(--rk-char-orange); }

.state-ec-auto .rk-data-val { color: var(--rk-char-green); }
.state-ec-auto .rk-data-icon { color: var(--rk-char-green); }
.state-ec-auto .rk-tech-badge { background: #dcfce7; color: var(--rk-char-green); }
.state-ec-auto .svg-ring { stroke: var(--rk-char-green); }

@media (max-width: 768px) {
    .rk-param-boxes-wrapper { grid-template-columns: 1fr; gap: 15px; }
    .rk-char-text-part, .rk-char-illustration, .rk-char-compare-sec { padding: 25px 20px; }
    .rk-data-grid { grid-template-columns: 1fr 1fr; }
    .rk-tech-visual { flex-direction: column; text-align: center; gap: 20px; }
    .rk-tab-btn { font-size: 12px; padding: 12px 5px; }
}

@media (max-width: 480px) {
    .rk-data-grid { grid-template-columns: 1fr; }
}
</style>

<div class="rk-char-container" id="rkCharApp">
    
    <div class="rk-char-theory-grid">
        <div class="rk-char-text-part">
            <h2>Jak dobrać parametry pompy obiegowej i jak czytać jej charakterystykę?</h2>
            <p>Prawidłowy dobór pompy obiegowej do ogrzewania podłogowego wymaga określenia dwóch punktów roboczych: wydajności <strong>Q</strong> wyrażonej w m³/h oraz wysokości podnoszenia <strong>H</strong> wyrażonej w m H₂O (lub kPa), zgodnie z procedurą projektową <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normy PN-EN 1264</a>.</p>
            <p>Punkt pracy instalacji musi przecinać się z krzywą charakterystyki pompy w obszarze jej najwyższej sprawności, czyli w środkowej 1/3 części wykresu.</p>
            
            <div class="rk-param-boxes-wrapper">
                <div class="rk-param-box">
                    <strong>Wydajność (Q)</strong>
                    Określa strumień objętościowy wody, jaki musi przepłynąć w ciągu godziny, aby dostarczyć moc cieplną przy założonym schłodzeniu czynnika (optymalne ΔT wynosi 5 K).
                </div>
                
                <div class="rk-param-box" style="border-color: #a78bfa;">
                    <strong style="color: #c4b5fd;">Wysokość podnoszenia (H)</strong>
                    Parametr określający zdolność pompy do pokonania sumarycznych strat ciśnienia (tarcia) w <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">najdłuższej pętli grzewczej</a>. Nie jest to fizyczna wysokość budynku! Ciśnienie statyczne się równoważy.
                </div>
            </div>
        </div>
        
        <div class="rk-char-illustration">
            <div class="rk-illu-title">Fizyka układu zamkniętego</div>
            <svg viewBox="0 0 200 250" style="width: 100%; max-width: 250px; height: auto;">
                <path d="M 20 100 L 100 30 L 180 100 L 180 230 L 20 230 Z" fill="none" stroke="#cbd5e1" stroke-width="3" stroke-dasharray="4 4"/>
                <line x1="20" y1="160" x2="180" y2="160" stroke="#cbd5e1" stroke-width="2" stroke-dasharray="4 4"/>
                
                <rect x="70" y="70" width="60" height="130" rx="10" fill="none" stroke="#e2e8f0" stroke-width="12"/>
                <path d="M 70 200 L 70 70 A 10 10 0 0 1 80 60 L 120 60 A 10 10 0 0 1 130 70 L 130 200" fill="none" stroke="#3b82f6" stroke-width="6" class="rk-anim-flow"/>
                
                <circle cx="100" cy="200" r="18" fill="#1e293b"/>
                <circle cx="100" cy="200" r="10" fill="#334155"/>
                
                <path d="M 145 100 L 145 140 M 140 135 L 145 140 L 150 135" fill="none" stroke="#10b981" stroke-width="2"/>
                <text x="155" y="125" font-size="11" fill="#10b981" font-weight="bold">ΔH = 0</text>
                
                <path d="M 55 140 L 55 100 M 50 105 L 55 100 L 60 105" fill="none" stroke="#ef4444" stroke-width="2"/>
                
                <text x="100" y="130" font-size="11" fill="#f59e0b" font-weight="bold" text-anchor="middle">Tarcie (H)</text>
            </svg>
            <p style="font-size: 14px; color: var(--rk-char-slate); text-align: center; margin-top: 25px; max-width: 600px; font-weight: 500; line-height: 1.6;">
                W zamkniętym układzie podłogówki siły grawitacji się znoszą. Pompa pokonuje wyłącznie opory tarcia rur (H).
            </p>
        </div>
    </div>

    <div class="rk-char-compare-sec" id="rkCompareStage">
        <div class="rk-comp-header">
            <h3>Porównanie technologii pomp obiegowych</h3>
            <p style="font-size: 14px; color: var(--rk-char-slate);">Wybierz technologię, aby sprawdzić jej parametry eksploatacyjne i koszty energii.</p>
        </div>

        <div class="rk-tabs-nav">
            <button class="rk-tab-btn active" data-index="0" data-type="ac">Pompa AC (Starszy typ)</button>
            <button class="rk-tab-btn" data-index="1" data-type="ec-const">Pompa EC (Biegi stałe)</button>
            <button class="rk-tab-btn" data-index="2" data-type="ec-auto">Pompa EC (AUTOADAPT)</button>
            <div class="rk-tab-glider" id="rkTabGlider"></div>
        </div>

        <div class="rk-data-grid" id="rkDataGrid">
            <div class="rk-data-card">
                <div class="rk-data-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg></div>
                <div class="rk-data-val" id="valPow">45-90 W</div>
                <div class="rk-data-lbl">Pobór Mocy</div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                <div class="rk-data-val" id="valEei">≥ 0,40</div>
                <div class="rk-data-lbl">Wskaźnik EEI</div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-data-val" id="valReg" style="font-size: 16px;">Manualna (3 biegi)</div>
                <div class="rk-data-lbl">Regulacja</div>
            </div>
            <div class="rk-data-card">
                <div class="rk-data-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <div class="rk-data-val" id="valCost">~288 PLN</div>
                <div class="rk-data-lbl">Roczny Koszt Energii</div>
            </div>
        </div>

        <div class="rk-tech-visual state-ac" id="rkTechVisualArea">
            <div style="width: 120px; height: 120px; position: relative;">
                <svg viewBox="0 0 100 100" width="100%" height="100%">
                    <circle cx="50" cy="50" r="45" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <circle cx="50" cy="50" r="35" fill="none" stroke-width="4" class="svg-ring"/>
                    <circle cx="50" cy="50" r="12" fill="#1e293b"/>
                </svg>
            </div>
            <div class="rk-tech-desc">
                <div class="rk-tech-badge" id="descBadge">Technologia Przestarzała</div>
                <p id="descText">Pompa asynchroniczna pracująca ze stałą, wysoką prędkością. Zużywa maksymalną ilość energii niezależnie od tego, czy zawory termostatyczne są otwarte czy zamknięte. Niezgodna z obecną dyrektywą ErP.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-tab-btn');
    const glider = document.getElementById('rkTabGlider');
    const visualArea = document.getElementById('rkTechVisualArea');
    const dataGrid = document.getElementById('rkDataGrid');
    
    // Data Elements
    const valPow = document.getElementById('valPow');
    const valEei = document.getElementById('valEei');
    const valReg = document.getElementById('valReg');
    const valCost = document.getElementById('valCost');
    const descBadge = document.getElementById('descBadge');
    const descText = document.getElementById('descText');

    const pumpData = {
        "ac": {
            pow: "45-90 W", eei: "≥ 0,40", reg: "Manualna (3 biegi)", cost: "144-288 PLN",
            badge: "Technologia Przestarzała",
            desc: "Pompa asynchroniczna pracująca ze stałą, wysoką prędkością. Zużywa maksymalną ilość energii niezależnie od tego, czy zawory termostatyczne są otwarte czy zamknięte. Niezgodna z obecną dyrektywą ErP."
        },
        "ec-const": {
            pow: "12-45 W", eei: "≤ 0,23", reg: "Proporcjonalna", cost: "38-144 PLN",
            badge: "Standard Rynkowy",
            desc: "Pompa z silnikiem elektronicznie komutowanym (EC). Oferuje ręczną zmianę charakterystyki pracy. Jest znacznie oszczędniejsza, ale wymaga ręcznego dopasowania krzywej do instalacji."
        },
        "ec-auto": {
            pow: "4-25 W", eei: "≤ 0,20", reg: "Automatyczna (ADAPT)", cost: "12-80 PLN",
            badge: "Najwyższa Efektywność",
            desc: "Inteligentna pompa z silnikiem EC, która automatycznie analizuje opory instalacji. Sama dobiera minimalne wymagane ciśnienie i przepływ, gwarantując najniższe możliwe zużycie prądu i ciszę."
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Glider positioning
            const index = this.getAttribute('data-index');
            let transformVal = 0;
            
            // Calculating transform based on index and viewport width
            if (window.innerWidth <= 768) {
                transformVal = index * 100;
                glider.style.transform = `translateX(calc(${transformVal}% + ${index * 4}px))`;
            } else {
                transformVal = index * 100;
                glider.style.transform = `translateX(calc(${transformVal}% + ${index * 4}px))`;
            }

            // Colors update
            let color = '';
            const type = this.getAttribute('data-type');
            if(type === 'ac') color = '#ef4444';
            if(type === 'ec-const') color = '#f59e0b';
            if(type === 'ec-auto') color = '#10b981';
            glider.style.backgroundColor = color;

            // Active Class
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Data Population
            const d = pumpData[type];
            valPow.textContent = d.pow;
            valEei.textContent = d.eei;
            valReg.textContent = d.reg;
            valCost.textContent = d.cost;
            descBadge.textContent = d.badge;
            descText.textContent = d.desc;

            // Visual State Update
            visualArea.className = `rk-tech-visual state-${type}`;
            dataGrid.className = `rk-data-grid state-${type}`;
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-dobor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jak dobrać parametry pompy obiegowej do podłogówki i jak czytać jej charakterystykę?",
    "description": "Poradnik wyjaśniający inżynieryjne parametry przepływu (Q) i wysokości podnoszenia (H) w pompach obiegowych. Porównanie technologii AC, EC i AUTOADAPT.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-technologie",
    "name": "Porównanie technologii pomp obiegowych (AC vs EC) 2026",
    "description": "Zestawienie parametrów technicznych i kosztów eksploatacji dla 3 generacji pomp cyrkulacyjnych stosowanych w instalacjach ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry pompy obiegowej do podłogówki",
      "wydajność pompy obiegowej",
      "wysokość podnoszenia pompy co to jest",
      "wskaźnik eei w pompach",
      "koszt energii pompy obiegowej"
    ],
    "measurementTechnique": "Analiza wskaźników zużycia energii elektrycznej i krzywych pracy dla pomp asynchronicznych oraz elektronicznie komutowanych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa AC: 45-90W, Koszt ~288 PLN/rok",
        "Pompa EC (Stała): 12-45W, Koszt ~144 PLN/rok",
        "Pompa EC (Autoadapt): 4-25W, Koszt ~80 PLN/rok"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-technologie",
    "name": "Kalkulator Oszczędności Technologii Pomp",
    "description": "Interaktywny moduł edukacyjny z zakładkami, pozwalający inwestorowi porównać roczne koszty poboru mocy oraz efektywność energetyczną różnych typów pomp obiegowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-calc-dark: #1e1b4b; /* Deep Indigo */
    --rk-calc-primary: #6366f1; /* Indigo */
    --rk-calc-primary-light: #e0e7ff;
    --rk-calc-accent: #f97316; /* Orange */
    --rk-calc-bg: #f8fafc;
    --rk-calc-card: #ffffff;
    --rk-calc-text: #475569;
    --rk-calc-border: #e2e8f0;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-card);
    border-radius: 24px;
    box-shadow: 0 20px 50px -10px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-calc-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #312e81 100%);
    color: #ffffff;
    text-align: center;
}

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

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

/* Interaktywny Kalkulator - Layout */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-bottom: 1px solid var(--rk-calc-border);
    background: var(--rk-calc-bg);
}

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

.rk-ctrl-box {
    margin-bottom: 30px;
}

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

.rk-ctrl-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-ctrl-val-box {
    background: var(--rk-calc-primary-light);
    color: var(--rk-calc-primary);
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

/* Styl suwaka */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #cbd5e1;
    border-radius: 3px;
    outline: none;
}

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

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

.rk-range-desc {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
}

/* Prawa Kolumna - Wyniki i Wykres SVG */
.rk-calc-visual {
    padding: 35px;
    display: flex;
    flex-direction: column;
}

.rk-result-row {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-res-card {
    flex: 1;
    background: var(--rk-calc-card);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 15px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

.rk-res-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
    background: var(--rk-calc-primary);
}

.rk-res-card:nth-child(2)::before { background: var(--rk-calc-accent); }

.rk-res-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin-bottom: 4px;
    font-variant-numeric: tabular-nums;
}

.rk-res-lbl {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-calc-text);
    text-transform: uppercase;
}

.rk-graph-box {
    flex: 1;
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
}

.rk-graph-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    text-align: center;
    margin-bottom: 15px;
}

/* Wyjaśnienie Krok po Kroku */
.rk-steps-area {
    padding: 40px;
    background: #ffffff;
}

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

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

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

.rk-step-badge {
    width: 28px;
    height: 28px;
    background: var(--rk-calc-primary);
    color: white;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 900;
}

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

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

.rk-math-block {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-left: 4px solid var(--rk-calc-primary);
    padding: 12px 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-calc-dark);
    margin: 15px 0;
    overflow-x: auto;
}

.rk-math-block strong {
    color: var(--rk-calc-primary);
    font-size: 15px;
}

.rk-step-card ul {
    margin: 0 0 15px 0;
    padding-left: 20px;
    font-size: 13px;
    color: var(--rk-calc-text);
    line-height: 1.6;
}

.rk-step-card li { margin-bottom: 4px; }

@media (max-width: 768px) {
    .rk-calc-app, .rk-step-grid { grid-template-columns: 1fr; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); padding: 25px; }
    .rk-calc-visual, .rk-steps-area, .rk-calc-header { padding: 25px; }
    .rk-calc-header h2 { font-size: 24px; }
}
</style>

<div class="rk-calc-container" id="rkPumpCalculatorApp">
    
    <div class="rk-calc-header">
        <h2>Jak obliczyć wydajność i wysokość podnoszenia pompy obiegowej? Kalkulator krok po kroku</h2>
        <p>Obliczenie parametrów pompy obiegowej opiera się na matematycznym wyznaczeniu przepływu masowego oraz sumy strat ciśnienia liniowego i miejscowego. Sprawdź parametry interaktywnie.</p>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            
            <div class="rk-ctrl-box">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Moc instalacji (Φ)</span>
                    <span class="rk-ctrl-val-box" id="valPhiOut">12 kW</span>
                </div>
                <input type="range" id="rkInpPhi" class="rk-range" min="4" max="25" step="1" value="12">
                <span class="rk-range-desc">Projektowe obciążenie cieplne na podstawie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a>.</span>
            </div>

            <div class="rk-ctrl-box">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Różnica temp. (ΔT)</span>
                    <span class="rk-ctrl-val-box" id="valDtOut">5 K</span>
                </div>
                <input type="range" id="rkInpDt" class="rk-range" min="3" max="10" step="1" value="5">
                <span class="rk-range-desc"><a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">Spadek temperatury (ΔT)</a> między zasilaniem a powrotem.</span>
            </div>

            <div class="rk-ctrl-box">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Najdłuższa pętla (l)</span>
                    <span class="rk-ctrl-val-box" id="valLenOut">100 m</span>
                </div>
                <input type="range" id="rkInpLen" class="rk-range" min="50" max="150" step="5" value="100">
                <span class="rk-range-desc">Krytyczna <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długość pętli ogrzewania podłogowego</a> generująca największe opory.</span>
            </div>

        </div>

        <div class="rk-calc-visual">
            <div class="rk-result-row">
                <div class="rk-res-card">
                    <div class="rk-res-val" id="resQ">2.06</div>
                    <div class="rk-res-lbl">Wydajność (Q) [m³/h]</div>
                </div>
                <div class="rk-res-card">
                    <div class="rk-res-val" id="resH">2.21</div>
                    <div class="rk-res-lbl">Wys. podnoszenia (H) [m]</div>
                </div>
            </div>

            <div class="rk-graph-box">
                <div class="rk-graph-title">Wykres Punktu Pracy Pompy</div>
                <svg viewBox="0 0 300 150" style="width: 100%; height: auto; display: block; overflow: visible;">
                    <line x1="20" y1="130" x2="280" y2="130" stroke="#cbd5e1" stroke-width="1" />
                    <line x1="20" y1="10" x2="20" y2="130" stroke="#cbd5e1" stroke-width="1" />
                    <text x="280" y="145" font-size="10" fill="#64748b" text-anchor="end">Q (Przepływ)</text>
                    <text x="5" y="15" font-size="10" fill="#64748b" text-anchor="start">H</text>

                    <path d="M 20 20 Q 150 20 280 130" fill="none" stroke="#e2e8f0" stroke-width="4" stroke-dasharray="5 5" />
                    
                    <path id="svgSystemCurve" d="M 20 130 Q 80 130 150 70" fill="none" stroke="#f97316" stroke-width="3" />
                    
                    <line id="svgLineX" x1="20" y1="70" x2="150" y2="70" stroke="#6366f1" stroke-width="1" stroke-dasharray="3 3" />
                    <line id="svgLineY" x1="150" y1="130" x2="150" y2="70" stroke="#6366f1" stroke-width="1" stroke-dasharray="3 3" />
                    
                    <circle id="svgDot" cx="150" cy="70" r="6" fill="#6366f1" />
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-steps-area">
        <div class="rk-step-grid">
            
            <div class="rk-step-card">
                <h3><div class="rk-step-badge">1</div> Obliczenie wydajności (Q)</h3>
                <p>Do wyznaczenia przepływu stosujemy podstawowe równanie wymiany ciepła przekształcone do postaci strumienia objętości.</p>
                
                <div class="rk-math-block">Q = Φ / (1,163 × ΔT)</div>
                
                <ul>
                    <li><strong>Q</strong> – wydajność pompy [m³/h]</li>
                    <li><strong>Φ</strong> – obciążenie cieplne instalacji [kW]</li>
                    <li><strong>ΔT</strong> – różnica temperatur zasilanie/powrót [K]</li>
                    <li><strong>1,163</strong> – stała gęstości/ciepła wody</li>
                </ul>

                <p style="font-size: 13px; margin-top: 15px;"><strong>Przykład dla ustalonego suwaka:</strong><br>
                Dla <span id="txtPhi">12</span> kW i ΔT = <span id="txtDt">5</span> K:</p>
                <div class="rk-math-block" style="border-left-color: #cbd5e1; background: #f8fafc;">
                    Q = <span id="txtPhi2">12</span> / (1,163 × <span id="txtDt2">5</span>)<br>
                    Q ≈ <strong id="txtResQ">2.06</strong> m³/h
                </div>
            </div>

            <div class="rk-step-card">
                <h3><div class="rk-step-badge">2</div> Wyznaczenie podnoszenia (H)</h3>
                <p>Wysokość podnoszenia obliczamy z sumy strat ciśnienia najdłuższego obiegu (pętli krytycznej).</p>
                
                <div class="rk-math-block">
                    Δp<sub>tot</sub> = (R × l + Δp<sub>m</sub>) × 1,3<br>
                    H = Δp<sub>tot</sub> / 10000
                </div>

                <ul>
                    <li><strong>R</strong> – opór rury (założono 120 Pa/m)</li>
                    <li><strong>l</strong> – długość najdłuższej pętli [m]</li>
                    <li><strong>Δp<sub>m</sub></strong> – opory miejscowe (założono 5000 Pa)</li>
                    <li><strong>1,3</strong> – współczynnik bezpieczeństwa</li>
                </ul>

                <p style="font-size: 13px; margin-top: 15px;"><strong>Przykład dla pętli <span id="txtLen">100</span> m:</strong></p>
                <div class="rk-math-block" style="border-left-color: #cbd5e1; background: #f8fafc;">
                    Δp<sub>tot</sub> = (120 × <span id="txtLen2">100</span> + 5000) × 1,3<br>
                    Δp<sub>tot</sub> = <span id="txtPa">22100</span> Pa<br>
                    H = <span id="txtPa2">22100</span> / 10000 = <strong id="txtResH">2.21</strong> m H₂O
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Input elements
    const inpPhi = document.getElementById('rkInpPhi');
    const inpDt = document.getElementById('rkInpDt');
    const inpLen = document.getElementById('rkInpLen');

    // UI Value Output elements
    const valPhiOut = document.getElementById('valPhiOut');
    const valDtOut = document.getElementById('valDtOut');
    const valLenOut = document.getElementById('valLenOut');

    // Result elements
    const resQ = document.getElementById('resQ');
    const resH = document.getElementById('resH');

    // Text replacement elements
    const txtPhi = document.getElementById('txtPhi');
    const txtPhi2 = document.getElementById('txtPhi2');
    const txtDt = document.getElementById('txtDt');
    const txtDt2 = document.getElementById('txtDt2');
    const txtResQ = document.getElementById('txtResQ');
    
    const txtLen = document.getElementById('txtLen');
    const txtLen2 = document.getElementById('txtLen2');
    const txtPa = document.getElementById('txtPa');
    const txtPa2 = document.getElementById('txtPa2');
    const txtResH = document.getElementById('txtResH');

    // SVG elements
    const svgSystemCurve = document.getElementById('svgSystemCurve');
    const svgDot = document.getElementById('svgDot');
    const svgLineX = document.getElementById('svgLineX');
    const svgLineY = document.getElementById('svgLineY');

    // Graph configuration
    const graphWidth = 260; // 280 - 20
    const graphHeight = 120; // 130 - 10
    const maxQ = 6; // max m3/h on graph
    const maxH = 6; // max m H2O on graph

    function updateCalculator() {
        const phi = parseFloat(inpPhi.value);
        const dt = parseFloat(inpDt.value);
        const len = parseFloat(inpLen.value);

        // UI Updates
        valPhiOut.textContent = phi + ' kW';
        valDtOut.textContent = dt + ' K';
        valLenOut.textContent = len + ' m';

        // Calculations
        const qVal = phi / (1.163 * dt);
        
        const R = 120; // Pa/m fixed for simulation
        const pm = 5000; // Pa fixed local resistance
        const pTot = (R * len + pm) * 1.3;
        const hVal = pTot / 10000;

        // Set Results
        resQ.textContent = qVal.toFixed(2);
        resH.textContent = hVal.toFixed(2);

        // Update Text Logic block
        txtPhi.textContent = phi; txtPhi2.textContent = phi;
        txtDt.textContent = dt; txtDt2.textContent = dt;
        txtResQ.textContent = qVal.toFixed(2);
        
        txtLen.textContent = len; txtLen2.textContent = len;
        txtPa.textContent = pTot.toFixed(0); txtPa2.textContent = pTot.toFixed(0);
        txtResH.textContent = hVal.toFixed(2);

        // Update SVG Graph
        // Calculate coordinates (Origin is at 20, 130)
        let cx = 20 + (qVal / maxQ) * graphWidth;
        let cy = 130 - (hVal / maxH) * graphHeight;

        // Clamp values for visual sanity if they exceed graph
        if(cx > 280) cx = 280;
        if(cy < 10) cy = 10;

        // Update Dot and Lines
        svgDot.setAttribute('cx', cx);
        svgDot.setAttribute('cy', cy);
        
        svgLineX.setAttribute('x2', cx);
        svgLineX.setAttribute('y1', cy);
        svgLineX.setAttribute('y2', cy);
        
        svgLineY.setAttribute('x1', cx);
        svgLineY.setAttribute('x2', cx);
        svgLineY.setAttribute('y1', 130);
        svgLineY.setAttribute('y2', cy);

        // Draw parabolic system curve
        // Parabola equation: H = k * Q^2 -> passing through origin (20,130) and point (cx,cy)
        // Control point for quadratic bezier to approximate parabola:
        const cpX = 20 + (cx - 20) / 2;
        const cpY = 130; 
        svgSystemCurve.setAttribute('d', `M 20 130 Q ${cpX} ${cpY} ${cx} ${cy}`);
    }

    // Listeners
    inpPhi.addEventListener('input', updateCalculator);
    inpDt.addEventListener('input', updateCalculator);
    inpLen.addEventListener('input', updateCalculator);

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jak obliczyć wydajność i wysokość podnoszenia pompy obiegowej? Kalkulator krok po kroku",
    "description": "Zestawienie inżynierskich wzorów na przepływ i straty ciśnienia w podłogówce. Interaktywny algorytm wyliczający punkt pracy pompy obiegowej.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-algorytm",
    "name": "Algorytm doboru parametrów Q i H pompy obiegowej 2026",
    "description": "Matematyczny model obliczeniowy strat ciśnienia i przepływu objętościowego dla pętli ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenie wydajności pompy obiegowej",
      "wysokość podnoszenia pompy wzór",
      "kalkulator doboru pompy obiegowej",
      "opory miejscowe i liniowe podłogówka",
      "punkt pracy pompy wykres"
    ],
    "measurementTechnique": "Równanie wymiany ciepła oraz sumowanie strat ciśnienia liniowego (120 Pa/m) i miejscowego z współczynnikiem 1.3.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Q [m3/h] = Moc [kW] / (1.163 * Delta T)",
        "H [m H2O] = (Opory rur + Opory zaworów) * 1.3 / 10000"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-kalkulator",
    "name": "Kalkulator Punktu Pracy Pompy Obiegowej",
    "description": "Narzędzie inżynierskie pozwalające na dynamiczne wyliczenie parametrów Q i H oraz narysowanie charakterystyki instalacji na podstawie suwaków.",
    "applicationCategory": "TechnicalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-mod-dark: #0f172a;
    --rk-mod-slate: #334155;
    --rk-mod-bg: #f8fafc;
    --rk-mod-card: #ffffff;
    --rk-mod-border: #e2e8f0;
    
    /* Temat kolorystyczny - Techniczny Teal */
    --rk-mod-teal: #0d9488;
    --rk-mod-teal-light: #ccfbf1;
    --rk-mod-teal-dark: #115e59;
    --rk-mod-red: #ef4444;
    --rk-mod-red-light: #fee2e2;
}

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

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

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

.rk-mod-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    max-width: 800px;
    line-height: 1.6;
}

/* Układ główny */
.rk-mod-layout {
    display: grid;
    grid-template-columns: 380px 1fr;
    border-bottom: 1px solid var(--rk-mod-border);
}

/* Panel Sterowania */
.rk-mod-controls {
    padding: 35px;
    background: var(--rk-mod-bg);
    border-right: 1px solid var(--rk-mod-border);
}

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

.rk-ctrl-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-mod-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Mode Switch (CP vs PP) */
.rk-mode-switch {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
}

.rk-mode-switch input { display: none; }

.rk-mode-label {
    flex: 1;
    text-align: center;
    padding: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-mod-slate);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    z-index: 2;
}

.rk-mode-switch input:checked + .rk-mode-label {
    color: #ffffff;
}

.rk-mode-glider {
    position: absolute;
    top: 4px; left: 4px;
    height: calc(100% - 8px);
    width: calc(50% - 4px);
    background: var(--rk-mod-teal);
    border-radius: 8px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    z-index: 1;
}

#rkModePP:checked ~ .rk-mode-glider {
    transform: translateX(100%);
    background: var(--rk-mod-red);
}

/* Termostaty (Checkbox) */
.rk-thermo-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px;
    background: var(--rk-mod-card);
    border: 1px solid var(--rk-mod-border);
    border-radius: 12px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.2s;
}

.rk-thermo-box:hover { border-color: var(--rk-mod-teal); }

.rk-thermo-info {
    display: flex;
    flex-direction: column;
}

.rk-thermo-name { font-size: 15px; font-weight: 700; color: var(--rk-mod-dark); }
.rk-thermo-status { font-size: 12px; color: var(--rk-mod-teal); font-weight: 600; transition: color 0.3s; }

.rk-switch-sm {
    position: relative;
    width: 44px; height: 24px;
}

.rk-switch-sm input { display: none; }
.rk-slider-sm {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-mod-teal);
    border-radius: 24px;
    transition: .3s;
}
.rk-slider-sm:before {
    position: absolute;
    content: "";
    height: 18px; width: 18px;
    left: 3px; bottom: 3px;
    background-color: white;
    border-radius: 50%;
    transition: .3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.rk-switch-sm input:checked + .rk-slider-sm { background-color: #cbd5e1; }
.rk-switch-sm input:checked + .rk-slider-sm:before { transform: translateX(20px); }

/* Wizualizator */
.rk-mod-visual {
    padding: 35px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

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

.rk-dash-metric {
    flex: 1;
    background: var(--rk-mod-bg);
    border: 1px solid var(--rk-mod-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
}

.rk-dash-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-mod-dark);
    font-variant-numeric: tabular-nums;
    transition: color 0.3s;
}

.rk-dash-lbl {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-mod-slate);
    text-transform: uppercase;
    margin-top: 4px;
}

.rk-svg-wrapper {
    flex: 1;
    background: var(--rk-mod-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-mod-border);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* SVG Animations */
.rk-pipe { stroke: #cbd5e1; stroke-width: 8; fill: none; stroke-linecap: round; }
.rk-water { stroke: var(--rk-mod-teal); stroke-width: 4; fill: none; stroke-linecap: round; stroke-dasharray: 10 15; transition: stroke 0.3s, opacity 0.3s; }
.rk-valve { transition: transform 0.3s; transform-origin: center; }

.flow-active { animation: waterFlow 1s linear infinite; }
.flow-slow { animation: waterFlow 3s linear infinite; stroke: var(--rk-mod-red); }
.flow-stopped { opacity: 0; }

@keyframes waterFlow { to { stroke-dashoffset: -25; } }

.rk-status-alert {
    position: absolute;
    bottom: 20px; right: 20px;
    padding: 8px 16px;
    background: var(--rk-mod-teal-light);
    color: var(--rk-mod-teal-dark);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    transition: all 0.3s;
    opacity: 1;
}

/* Kontent Opisowy */
.rk-mod-content {
    padding: 40px;
    background: #ffffff;
}

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

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

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

.rk-grid-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-top: 25px;
}

.rk-text-box {
    padding: 20px;
    background: var(--rk-mod-bg);
    border-radius: 12px;
    border-left: 4px solid var(--rk-mod-teal);
}

.rk-text-box.box-error {
    border-left-color: var(--rk-mod-red);
}

@media (max-width: 768px) {
    .rk-mod-layout { grid-template-columns: 1fr; }
    .rk-mod-controls { border-right: none; border-bottom: 1px solid var(--rk-mod-border); padding: 25px; }
    .rk-grid-text { grid-template-columns: 1fr; gap: 15px; }
    .rk-mod-visual, .rk-mod-content, .rk-mod-header { padding: 25px; }
    .rk-dashboard { flex-wrap: wrap; }
    .rk-dash-metric { min-width: 40%; }
}
</style>

<div class="rk-mod-container" id="rkPumpModeApp">
    <div class="rk-mod-header">
        <h2>Jaki tryb pracy pompy elektronicznej wybrać: Stałociśnieniowy (CP) czy Proporcjonalny (PP)?</h2>
        <p>W systemach płaszczyznowych, gdzie pętle zamykane są strefowo przez termostaty, wybór trybu determinuje komfort cieplny. Zobacz na żywo, jak błędny tryb &#8222;odcina&#8221; najdalsze pokoje.</p>
    </div>

    <div class="rk-mod-layout">
        <div class="rk-mod-controls">
            
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Ustawienie Pompy (Algorytm)
                </div>
                <div class="rk-mode-switch">
                    <input type="radio" name="pumpMode" id="rkModeCP" value="CP" checked="">
                    <label for="rkModeCP" class="rk-mode-label">Tryb Stałociśnieniowy (CP)</label>
                    
                    <input type="radio" name="pumpMode" id="rkModePP" value="PP">
                    <label for="rkModePP" class="rk-mode-label">Tryb Proporcjonalny (PP)</label>
                    
                    <div class="rk-mode-glider"></div>
                </div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Termostaty Pokojowe
                </div>

                <label class="rk-thermo-box" id="boxT1">
                    <div class="rk-thermo-info">
                        <span class="rk-thermo-name">Salon (Pętla 1)</span>
                        <span class="rk-thermo-status" id="statT1">Grzeje (Zawór otwarty)</span>
                    </div>
                    <div class="rk-switch-sm">
                        <input type="checkbox" id="rkToggle1">
                        <span class="rk-slider-sm"></span>
                    </div>
                </label>

                <label class="rk-thermo-box" id="boxT2">
                    <div class="rk-thermo-info">
                        <span class="rk-thermo-name">Sypialnia (Pętla 2)</span>
                        <span class="rk-thermo-status" id="statT2">Grzeje (Zawór otwarty)</span>
                    </div>
                    <div class="rk-switch-sm">
                        <input type="checkbox" id="rkToggle2">
                        <span class="rk-slider-sm"></span>
                    </div>
                </label>
                
                <div style="font-size: 12px; color: #64748b; margin-top: 10px; text-align: center;">
                    Pętla 3 (Łazienka) jest zawsze otwarta na potrzeby symulacji.
                </div>
            </div>
        </div>

        <div class="rk-mod-visual">
            <div class="rk-dashboard">
                <div class="rk-dash-metric">
                    <div class="rk-dash-val" id="valPress">2.5 m</div>
                    <div class="rk-dash-lbl">Ciśnienie (H)</div>
                </div>
                <div class="rk-dash-metric">
                    <div class="rk-dash-val" id="valPow">22 W</div>
                    <div class="rk-dash-lbl">Pobór Mocy</div>
                </div>
            </div>

            <div class="rk-svg-wrapper">
                <svg viewBox="0 0 300 200" style="width: 100%; height: auto;">
                    <path d="M 50 100 L 100 100" class="rk-pipe"></path>
                    <path d="M 50 100 L 100 100" class="rk-water flow-active" id="flowMain"></path>

                    <circle cx="50" cy="100" r="25" fill="#1e293b"></circle>
                    <circle cx="50" cy="100" r="15" fill="#334155"></circle>

                    <rect x="100" y="40" width="20" height="120" fill="#cbd5e1" rx="4"></rect>

                    <path d="M 120 60 L 250 60" class="rk-pipe"></path>
                    <path d="M 120 60 L 250 60" class="rk-water flow-active" id="flowP1"></path>
                    <circle cx="140" cy="60" r="8" fill="#0d9488" class="rk-valve" id="valve1"></circle>
                    <text x="260" y="64" font-size="12" font-weight="bold" fill="#334155">Salon</text>

                    <path d="M 120 100 L 250 100" class="rk-pipe"></path>
                    <path d="M 120 100 L 250 100" class="rk-water flow-active" id="flowP2"></path>
                    <circle cx="140" cy="100" r="8" fill="#0d9488" class="rk-valve" id="valve2"></circle>
                    <text x="260" y="104" font-size="12" font-weight="bold" fill="#334155">Sypialnia</text>

                    <path d="M 120 140 L 250 140" class="rk-pipe"></path>
                    <path d="M 120 140 L 250 140" class="rk-water flow-active" id="flowP3"></path>
                    <circle cx="140" cy="140" r="8" fill="#0d9488"></circle>
                    <text x="260" y="144" font-size="12" font-weight="bold" fill="#334155">Łazienka</text>
                </svg>

                <div class="rk-status-alert" id="statusAlert">System zbilansowany</div>
            </div>
        </div>
    </div>

    <div class="rk-mod-content">
        <h3>Dlaczego Tryb Stałociśnieniowy (CP) to jedyny wybór?</h3>
        <p>Dla instalacji ogrzewania podłogowego jedynym prawidłowym trybem pracy pompy elektronicznej jest tryb stałociśnieniowy (oznaczany jako <strong>CP – Constant Pressure</strong>). Urządzenie utrzymuje w nim stałą wysokość podnoszenia (ciśnienie) niezależnie od zmian natężenia przepływu, które są naturalnie wywoływane zamykaniem się <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> na rozdzielaczu.</p>
        
        <div class="rk-grid-text">
            <div class="rk-text-box">
                <h4 style="margin: 0 0 10px 0; color: var(--rk-mod-teal);">Mechanika w Trybie CP (Prawidłowa)</h4>
                <p style="font-size: 14px; margin: 0;">Gdy <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat pokojowy</a> zamknie obieg nagrzanego salonu, pompa natychmiast wyczuwa wzrost oporów. Zmniejsza swoje obroty i pobór prądu (np. do 6W), ale <strong>utrzymuje zadane ciśnienie</strong>. Woda płynie z pełną prędkością przez łazienkę.</p>
            </div>
            <div class="rk-text-box box-error">
                <h4 style="margin: 0 0 10px 0; color: var(--rk-mod-red);">Mechanika w Trybie PP (Błąd)</h4>
                <p style="font-size: 14px; margin: 0;">Wybór trybu proporcjonalnego (PP) jest błędem. Gdy salon się zamyka, pompa sztucznie obniża ciśnienie hydrauliczne w całym układzie. Prowadzi to do drastycznego spowolnienia przepływu i wychłodzenia podłogi np. w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Controls
    const modeRadios = document.querySelectorAll('input[name="pumpMode"]');
    const toggle1 = document.getElementById('rkToggle1');
    const toggle2 = document.getElementById('rkToggle2');
    
    // Status Text
    const stat1 = document.getElementById('statT1');
    const stat2 = document.getElementById('statT2');
    const alertBox = document.getElementById('statusAlert');
    
    // Metrics
    const valPress = document.getElementById('valPress');
    const valPow = document.getElementById('valPow');
    
    // SVG Elements
    const flowMain = document.getElementById('flowMain');
    const flowP1 = document.getElementById('flowP1');
    const flowP2 = document.getElementById('flowP2');
    const flowP3 = document.getElementById('flowP3');
    const valve1 = document.getElementById('valve1');
    const valve2 = document.getElementById('valve2');

    function updateSim() {
        const mode = document.querySelector('input[name="pumpMode"]:checked').value;
        const v1Closed = toggle1.checked;
        const v2Closed = toggle2.checked;
        
        let openCount = 3;
        if(v1Closed) openCount--;
        if(v2Closed) openCount--;

        // UI Updates for Toggles
        if(v1Closed) {
            stat1.textContent = 'Zamknięty (Osiągnięto temp.)';
            stat1.style.color = '#64748b';
            valve1.style.transform = 'scale(0.3)';
            valve1.style.fill = '#ef4444';
            flowP1.className.baseVal = 'rk-water flow-stopped';
        } else {
            stat1.textContent = 'Grzeje (Zawór otwarty)';
            stat1.style.color = '#0d9488';
            valve1.style.transform = 'scale(1)';
            valve1.style.fill = '#0d9488';
            flowP1.className.baseVal = 'rk-water flow-active';
        }

        if(v2Closed) {
            stat2.textContent = 'Zamknięty (Osiągnięto temp.)';
            stat2.style.color = '#64748b';
            valve2.style.transform = 'scale(0.3)';
            valve2.style.fill = '#ef4444';
            flowP2.className.baseVal = 'rk-water flow-stopped';
        } else {
            stat2.textContent = 'Grzeje (Zawór otwarty)';
            stat2.style.color = '#0d9488';
            valve2.style.transform = 'scale(1)';
            valve2.style.fill = '#0d9488';
            flowP2.className.baseVal = 'rk-water flow-active';
        }

        // Core Simulation Logic
        if(openCount === 3) {
            valPress.textContent = '2.5 m';
            valPress.style.color = '#0f172a';
            valPow.textContent = '22 W';
            flowP3.className.baseVal = 'rk-water flow-active';
            flowMain.className.baseVal = 'rk-water flow-active';
            
            alertBox.textContent = 'Układ zbilansowany (Wszystko otwarte)';
            alertBox.style.background = 'var(--rk-mod-teal-light)';
            alertBox.style.color = 'var(--rk-mod-teal-dark)';
        } 
        else if (mode === 'CP') {
            // Constant Pressure Mode
            valPress.textContent = '2.5 m'; // Stays constant
            valPress.style.color = '#0f172a';
            valPow.textContent = openCount === 2 ? '14 W' : '6 W'; // Power drops adaptively
            flowP3.className.baseVal = 'rk-water flow-active'; // Łazienka still gets full flow
            flowMain.className.baseVal = 'rk-water flow-active';
            
            alertBox.textContent = 'CP: Łazienka dogrzewana poprawnie';
            alertBox.style.background = 'var(--rk-mod-teal-light)';
            alertBox.style.color = 'var(--rk-mod-teal-dark)';
        }
        else if (mode === 'PP') {
            // Proportional Pressure Mode
            valPress.textContent = openCount === 2 ? '1.5 m' : '0.8 m'; // Pressure drops!
            valPress.style.color = '#ef4444';
            valPow.textContent = openCount === 2 ? '10 W' : '4 W'; 
            
            // Flow in remaining loop suffers
            if(openCount === 1) {
                flowP3.className.baseVal = 'rk-water flow-slow';
                flowMain.className.baseVal = 'rk-water flow-slow';
                alertBox.textContent = 'BŁĄD PP: Łazienka niedogrzana! (Spadek ciśnienia)';
                alertBox.style.background = 'var(--rk-mod-red-light)';
                alertBox.style.color = 'var(--rk-mod-red)';
            } else {
                flowP3.className.baseVal = 'rk-water flow-active';
                flowMain.className.baseVal = 'rk-water flow-active';
                alertBox.textContent = 'PP: Spadek ciśnienia. Słabszy przepływ.';
                alertBox.style.background = '#fef3c7';
                alertBox.style.color = '#b45309';
            }
        }
    }

    // Event Listeners
    modeRadios.forEach(r => r.addEventListener('change', updateSim));
    toggle1.addEventListener('change', updateSim);
    toggle2.addEventListener('change', updateSim);

    // Init
    updateSim();
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-tryby-pracy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jaki tryb pracy pompy elektronicznej wybrać: Stałociśnieniowy (CP) czy Proporcjonalny (PP)?",
    "description": "Techniczne porównanie trybów pracy pomp obiegowych (CP vs PP). Dowiedz się, dlaczego tryb proporcjonalny powoduje niedogrzewanie pomieszczeń ze sterowaniem strefowym.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-tryby-pracy",
    "name": "Charakterystyki Pracy Pomp Obiegowych (CP vs PP) 2026",
    "description": "Zestawienie parametrów ciśnienia i przepływu dla inteligentnych pomp obiegowych w układach z dławieniem termostatycznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tryb stałociśnieniowy pompy",
      "tryb proporcjonalny podłogówka",
      "zamykanie siłowników termoelektrycznych",
      "spadek ciśnienia w instalacji",
      "niedogrzana łazienka"
    ],
    "measurementTechnique": "Symulacja zmian ciśnienia tłoczenia [m H2O] i poboru mocy [W] w zależności od ilości otwartych zaworów na belce rozdzielacza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Tryb CP (Constant Pressure): Utrzymuje stałe ciśnienie przy zmniejszonym przepływie, idealny dla podłogówki.",
        "Tryb PP (Proportional Pressure): Redukuje ciśnienie wraz ze spadkiem przepływu, powodując zaburzenia hydrauliczne i niedogrzewanie pętli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-tryby-pracy",
    "name": "Symulator Hydrauliczny Trybów CP/PP",
    "description": "Narzędzie interaktywne ilustrujące wpływ zamykania siłowników termoelektrycznych na parametry przepływu i ciśnienia w zależności od zadanego algorytmu pompy.",
    "applicationCategory": "TechnicalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-con-dark: #0f172a;
    --rk-con-text: #334155;
    --rk-con-bg: #f8fafc;
    --rk-con-surface: #ffffff;
    --rk-con-border: #e2e8f0;
    
    /* State Colors */
    --rk-state-weak: #0284c7;   /* Niebieski - niedogrzanie */
    --rk-state-opt: #10b981;    /* Zielony - idealnie */
    --rk-state-strong: #ef4444; /* Czerwony - przeciążenie */
}

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

/* Tagi SEO */
.rk-con-tags {
    padding: 25px 40px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
    transition: all 0.3s;
}

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

/* Nagłówek */
.rk-con-header {
    padding: 25px 40px 30px;
    text-align: center;
    border-bottom: 1px solid var(--rk-con-border);
}

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

.rk-con-header p {
    font-size: 16px;
    color: var(--rk-con-text);
    margin: 0 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Interaktywny Symulator - Obszar Roboczy */
.rk-con-app-area {
    background: linear-gradient(180deg, var(--rk-con-bg) 0%, #ffffff 100%);
    padding: 40px;
}

/* Suwak (Slider) */
.rk-sim-slider-box {
    max-width: 600px;
    margin: 0 auto 40px;
    background: var(--rk-con-surface);
    padding: 25px 35px;
    border-radius: 20px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-con-border);
    text-align: center;
}

.rk-slider-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-con-dark);
    margin-bottom: 25px;
}

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

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-state-opt);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    border: 4px solid #ffffff;
    transition: background 0.3s, transform 0.1s;
}

.rk-range-input::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-state-opt);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    border: 4px solid #ffffff;
    transition: background 0.3s, transform 0.1s;
}

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

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

/* Wizualizacja SVG */
.rk-con-visual {
    position: relative;
    width: 100%;
    max-width: 400px;
    height: 180px;
    margin: 0 auto 40px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-con-border);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rk-vis-status-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #ffffff;
    transition: background-color 0.3s;
}

/* Animacje SVG zależne od stanu */
.rk-svg-pipe { stroke: #cbd5e1; stroke-width: 12; stroke-linecap: round; fill: none; transition: stroke 0.3s; }
.rk-svg-flow { stroke-width: 6; stroke-linecap: round; fill: none; stroke-dasharray: 15 15; transition: stroke 0.3s; }

/* Stany Wizualizatora */
.state-1 .rk-vis-status-badge { background: var(--rk-state-weak); }
.state-1 .rk-svg-pipe { stroke: #e0f2fe; }
.state-1 .rk-svg-flow { stroke: var(--rk-state-weak); animation: flowAnim 4s linear infinite; }
.state-1 .rk-svg-crack { opacity: 1; stroke-dasharray: 100; animation: drawCrack 2s forwards; }
.state-1 .rk-svg-wave { opacity: 0; }

.state-2 .rk-vis-status-badge { background: var(--rk-state-opt); }
.state-2 .rk-svg-pipe { stroke: #dcfce7; }
.state-2 .rk-svg-flow { stroke: var(--rk-state-opt); animation: flowAnim 1.5s linear infinite; }
.state-2 .rk-svg-crack { opacity: 0; }
.state-2 .rk-svg-wave { opacity: 0; }

.state-3 .rk-vis-status-badge { background: var(--rk-state-strong); }
.state-3 .rk-svg-pipe { stroke: #fee2e2; animation: shakePipe 0.5s infinite; }
.state-3 .rk-svg-flow { stroke: var(--rk-state-strong); animation: flowAnim 0.3s linear infinite; }
.state-3 .rk-svg-crack { opacity: 0; }
.state-3 .rk-svg-wave { opacity: 1; animation: pulseWave 0.5s infinite; }

@keyframes flowAnim { to { stroke-dashoffset: -60; } }
@keyframes drawCrack { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes shakePipe { 0%, 100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 75% { transform: translateY(2px); } }
@keyframes pulseWave { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* Karty Konsekwencji - Kafelki Grid */
.rk-con-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-con-card {
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-con-border);
    border-top: 4px solid var(--rk-state-opt); /* Dynamiczny kolor */
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.rk-con-card.fade-in {
    animation: cardFadeIn 0.4s ease-out forwards;
}

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

.rk-card-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    background: #f1f5f9;
    color: var(--rk-con-dark);
    transition: all 0.3s;
}

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

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

.rk-con-card a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media (max-width: 768px) {
    .rk-con-cards { grid-template-columns: 1fr; }
    .rk-con-header { padding: 25px 20px; }
    .rk-con-header h2 { font-size: 24px; }
    .rk-con-app-area { padding: 25px 20px; }
    .rk-sim-slider-box { padding: 20px; }
}
</style>

<div class="rk-con-container" id="rkConsequenceApp">
    <div class="rk-con-tags">
        <span class="rk-mat-tag"># skutki przewymiarowania pompy</span>
        <span class="rk-mat-tag"># taktowanie pompy ciepła</span>
        <span class="rk-mat-tag"># niedogrzewanie strefowe</span>
        <span class="rk-mat-tag"># kawitacja w instalacji</span>
    </div>

    <div class="rk-con-header">
        <h2>Czym grozi zły dobór pompy obiegowej?</h2>
        <p>Konsekwencje błędnego doboru pompy obiegowej przekładają się bezpośrednio na straty finansowe, uciążliwy hałas w domu oraz drastyczne skrócenie żywotności samej wylewki i armatury. Przesuń suwak i zobacz skutki.</p>
    </div>

    <div class="rk-con-app-area">
        
        <div class="rk-sim-slider-box">
            <div class="rk-slider-title">Wydajność Pompy Obiegowej</div>
            <input type="range" min="1" max="3" step="1" value="2" class="rk-range-input" id="rkPumpSlider">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-state-weak);">Za słaba</span>
                <span style="color: var(--rk-state-opt);">Optymalna</span>
                <span style="color: var(--rk-state-strong);">Za mocna</span>
            </div>
        </div>

        <div class="rk-con-visual state-2" id="rkSvgStage">
            <div class="rk-vis-status-badge" id="rkStatusBadge">Zrównoważona</div>
            <svg width="250" height="100" viewBox="0 0 250 100">
                <path d="M 20 50 Q 125 20 230 50" class="rk-svg-pipe" id="rkPipeLine"/>
                <path d="M 20 50 Q 125 20 230 50" class="rk-svg-flow" id="rkWaterFlow"/>
                
                <path d="M 110 10 L 120 30 L 115 45 L 125 60" stroke="#0f172a" stroke-width="2" fill="none" class="rk-svg-crack" opacity="0"/>
                
                <path d="M 125 0 A 20 20 0 0 1 145 20 M 125 -10 A 30 30 0 0 1 155 20" stroke="#ef4444" stroke-width="2" fill="none" class="rk-svg-wave" opacity="0" transform="translate(0, 15)"/>
            </svg>
        </div>

        <div class="rk-con-cards" id="rkCardsGrid">
            <div class="rk-con-card" id="rkCard1" style="border-top-color: var(--rk-state-opt);">
                <div class="rk-card-icon" id="rkIcon1" style="background: #dcfce7; color: var(--rk-state-opt);">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h3 id="rkTitle1">Idealny przepływ</h3>
                <p id="rkText1">Przepływy na rotametrach stabilne (1,5 &#8211; 2,5 l/min). Równomierne oddawanie ciepła w każdym pomieszczeniu.</p>
            </div>

            <div class="rk-con-card" id="rkCard2" style="border-top-color: var(--rk-state-opt);">
                <div class="rk-card-icon" id="rkIcon2" style="background: #dcfce7; color: var(--rk-state-opt);">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h3 id="rkTitle2">Bezpieczna wylewka</h3>
                <p id="rkText2">Prawidłowa Delta T zapobiega naprężeniom termicznym. Jastrych pracuje bezpiecznie wzdłuż wyznaczonych dylatacji.</p>
            </div>

            <div class="rk-con-card" id="rkCard3" style="border-top-color: var(--rk-state-opt);">
                <div class="rk-card-icon" id="rkIcon3" style="background: #dcfce7; color: var(--rk-state-opt);">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3 id="rkTitle3">Wysoka sprawność (COP)</h3>
                <p id="rkText3">Źródło ciepła pracuje w optymalnych, długich cyklach. Niskie rachunki za energię elektryczną.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('rkPumpSlider');
    const svgStage = document.getElementById('rkSvgStage');
    const statusBadge = document.getElementById('rkStatusBadge');
    
    // Elementy Kart
    const cards = [document.getElementById('rkCard1'), document.getElementById('rkCard2'), document.getElementById('rkCard3')];
    const icons = [document.getElementById('rkIcon1'), document.getElementById('rkIcon2'), document.getElementById('rkIcon3')];
    const titles = [document.getElementById('rkTitle1'), document.getElementById('rkTitle2'), document.getElementById('rkTitle3')];
    const texts = [document.getElementById('rkText1'), document.getElementById('rkText2'), document.getElementById('rkText3')];

    // Baza danych dla stanów (Invisible Data logic)
    const simData = {
        "1": {
            color: "#0284c7",
            bg: "#e0f2fe",
            badge: "Niedowymiarowana",
            iconSvg: '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            content: [
                { title: "Zjawisko niedogrzewania", text: "Przepływ na rotametrach spada poniżej projektowych 1,0 l/min. Najdalsze pokoje i łazienki pozostają niedogrzane." },
                { title: "Szok termiczny wylewki", text: 'Wzrost <a href="https://projekt-ogrzewania.pl/spadek-temperatury-dt-roznica-miedzy-temperatura-zasilania-a-powrotu/">delty temperatur ponad krytyczne 10 K</a> wywołuje potężne naprężenia termiczne i pękanie wylewki.' },
                { title: "Taktowanie pompy ciepła", text: "Zbyt mały przepływ uniemożliwia oddanie mocy. Pompa ciepła zgłasza błąd wysokiego ciśnienia (HP) i co chwilę się wyłącza." }
            ]
        },
        "2": {
            color: "#10b981",
            bg: "#dcfce7",
            badge: "Zrównoważona",
            iconSvg: '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>',
            content: [
                { title: "Idealny przepływ", text: "Przepływy na rotametrach stabilne (1,5 - 2,5 l/min). Równomierne oddawanie ciepła w każdym pomieszczeniu." },
                { title: "Bezpieczna wylewka", text: 'Prawidłowa Delta T zapobiega naprężeniom. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">Jastrych betonowy</a> pracuje bezpiecznie wzdłuż wyznaczonych dylatacji.' },
                { title: "Wysoka sprawność (COP)", text: "Źródło ciepła pracuje w optymalnych, długich cyklach bez wywoływania błędów. Gwarancja niskich rachunków." }
            ]
        },
        "3": {
            color: "#ef4444",
            bg: "#fee2e2",
            badge: "Przewymiarowana",
            iconSvg: '<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            content: [
                { title: "Kawitacja i uciążliwy hałas", text: "Przekroczenie prędkości 0,6 m/s generuje głośne szumy i buczenie w szafkach rozdzielaczowych. Brak komfortu akustycznego." },
                { title: "Erozja ścierna rur PEX", text: 'Potężna turbulencja zrywa gniazda zaworów i powoduje wymywanie <a href="https://projekt-ogrzewania.pl/rura-z-bariera-antydyfuzyjna-evoh/">wewnętrznej warstwy EVOH</a> w rurach.' },
                { title: "Finansowe marnotrawstwo", text: "Za duża pompa pobiera stale o 40–60 W więcej energii niż powinna, co generuje stratę rzędu 120 PLN rocznie na samym prądzie." }
            ]
        }
    };

    function updateSimulation(val) {
        const data = simData[val];
        
        // Aktualizacja SVG Stage
        svgStage.className = `rk-con-visual state-${val}`;
        statusBadge.textContent = data.badge;
        
        // Aktualizacja Kolorów Suwaka (dynamiczny thumb zrealizowany w CSS root variables logicznie, tu wymuszamy styl)
        slider.style.background = `linear-gradient(to right, ${data.color} 0%, ${data.color} ${(val-1)*50}%, #cbd5e1 ${(val-1)*50}%, #cbd5e1 100%)`;

        // Aktualizacja Kart z efektem Fade
        cards.forEach((card, index) => {
            // Restart animacji
            card.classList.remove('fade-in');
            void card.offsetWidth; // trigger reflow
            
            // Wgrywanie danych
            card.style.borderTopColor = data.color;
            icons[index].style.background = data.bg;
            icons[index].style.color = data.color;
            icons[index].innerHTML = data.iconSvg;
            titles[index].textContent = data.content[index].title;
            texts[index].innerHTML = data.content[index].text; // innerHTML bo mamy linki
            
            // Odpal animację
            card.classList.add('fade-in');
        });
    }

    slider.addEventListener('input', (e) => {
        updateSimulation(e.target.value);
    });

    // Inicjalizacja
    updateSimulation(slider.value);
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-konsekwencje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Czym grozi zły dobór pompy obiegowej? Konsekwencje niedowymiarowania i przewymiarowania",
    "description": "Zrozum hydrauliczne i finansowe skutki instalacji zbyt słabej (niedogrzewanie) lub zbyt mocnej (kawitacja) pompy w układzie ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-konsekwencje",
    "name": "Parametry Krytyczne Pracy Pompy Obiegowej 2026",
    "description": "Dane opisujące wpływ skrajnych nastaw wydajności pompy obiegowej na fizykę zładu grzewczego i żywotność podzespołów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki przewymiarowania pompy",
      "taktowanie pompy ciepła",
      "prędkość przepływu w rurach pex",
      "niedogrzewanie strefowe podłogówki",
      "kawitacja w instalacji grzewczej"
    ],
    "measurementTechnique": "Modelowanie wpływu niedoboru przepływu (<1.0 l/min) i nadmiaru przepływu (>0.6 m/s) na strukturę wylewki, warstwę EVOH i pobór energii.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Niedowymiarowanie: Skutkuje deltą T > 10K, pękaniem jastrychu i błędami HP pompy ciepła.",
        "Przewymiarowanie: Generuje przepływ powyżej 0.6 m/s, prowadząc do kawitacji, erozji warstwy EVOH i strat rzędu 120 PLN/rok."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-konsekwencje",
    "name": "Symulator Skutków Doboru Pompy",
    "description": "Aplikacja edukacyjna z interaktywnym suwakiem, pozwalająca symulować i w czasie rzeczywistym odczytywać skutki instalacji nieodpowiedniej pompy w obwodach płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-slate: #334155;
    --rk-err-bg: #f8fafc;
    --rk-err-card: #ffffff;
    --rk-err-danger: #ef4444;
    --rk-err-danger-light: #fef2f2;
    --rk-err-warn: #f59e0b;
    --rk-err-border: #e2e8f0;
    --rk-err-blue: #0284c7;
    --rk-err-blue-light: #f0f9ff;
}

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

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

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

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

/* Layout Górny (Grid) */
.rk-err-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
}

/* Kolumna Lewa - Menu Błędów */
.rk-err-menu {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-right: 1px solid var(--rk-err-border);
    background: var(--rk-err-card);
}

.rk-err-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 16px;
    border: 2px solid transparent;
    border-radius: 16px;
    background: var(--rk-err-bg);
    cursor: pointer;
    text-align: left;
    transition: all 0.3s;
}

.rk-err-btn:hover {
    background: var(--rk-err-blue-light);
}

.rk-err-btn.active {
    background: var(--rk-err-danger-light);
    border-color: var(--rk-err-danger);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
}

.rk-err-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: #e2e8f0;
    color: var(--rk-err-slate);
    flex-shrink: 0;
    transition: all 0.3s;
}

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

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

.rk-err-btn.active .rk-err-title {
    color: var(--rk-err-danger);
}

/* Kolumna Prawa - Wizualizator SVG */
.rk-err-visual {
    padding: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #ffffff;
    min-height: 250px;
}

.rk-svg-stage {
    width: 100%;
    max-width: 320px;
    height: auto;
}

/* Animacje SVG */
.rk-anim-fast { animation: spinRotor 0.3s linear infinite; stroke: var(--rk-err-danger); }
.rk-anim-jammed { animation: shakeRotor 0.5s ease-in-out infinite; stroke: var(--rk-err-slate); }
.rk-anim-friction { animation: spinRotor 2s linear infinite; stroke: var(--rk-err-warn); filter: drop-shadow(0 0 8px rgba(245, 158, 11, 0.6)); }

@keyframes spinRotor { 100% { transform: rotate(360deg); } }
@keyframes shakeRotor { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 75% { transform: rotate(-10deg); } }
@keyframes flowDirt { 0% { transform: translateX(0); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateX(120px); opacity: 0; } }

.rk-dirt-particle { opacity: 0; }
.show-dirt .rk-dirt-particle { animation: flowDirt 1.5s linear infinite; fill: #78350f; }
.show-dirt .rk-dirt-particle:nth-child(2) { animation-delay: 0.5s; }
.show-dirt .rk-dirt-particle:nth-child(3) { animation-delay: 1s; }

.rk-valve-indicator { opacity: 0; transition: opacity 0.3s; }
.show-valves-missing .rk-valve-indicator { opacity: 1; }

.rk-friction-ring { opacity: 0; transform-origin: 150px 75px; }
.show-friction .rk-friction-ring { opacity: 1; animation: pulseRing 1s ease-out infinite; stroke: var(--rk-err-warn); }
@keyframes pulseRing { 0% { transform: scale(0.8); opacity: 0.8; } 100% { transform: scale(1.5); opacity: 0; } }

/* Treść Detalu - PEŁNA SZEROKOŚĆ (zmiana strukturalna) */
.rk-err-content-box {
    padding: 40px;
    background: var(--rk-err-bg);
    border-top: 1px solid var(--rk-err-border);
}

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

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

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

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

.rk-err-panel h3::before {
    content: '!';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    background: var(--rk-err-danger);
    color: white;
    font-size: 15px;
    border-radius: 6px;
}

.rk-err-panel p {
    font-size: 15px;
    color: var(--rk-err-slate);
    line-height: 1.7;
    margin: 0 0 15px 0;
    max-width: 850px; /* Optymalizacja czytelności na pełnej szerokości */
}

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

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

.rk-consequence {
    margin-top: 25px;
    padding: 18px 25px;
    background: #ffffff;
    border-left: 4px solid var(--rk-err-danger);
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    max-width: 850px;
}

.rk-consequence strong {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    color: var(--rk-err-danger);
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-consequence span {
    font-size: 15px;
    color: var(--rk-err-dark);
    font-weight: 600;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .rk-err-grid { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); flex-direction: row; flex-wrap: wrap; }
    .rk-err-btn { flex: 1 1 calc(50% - 5px); padding: 12px; gap: 10px; }
    .rk-err-icon { width: 32px; height: 32px; }
    .rk-err-title { font-size: 12px; }
    .rk-err-header { padding: 25px 20px; }
    .rk-err-header h2 { font-size: 22px; }
    .rk-err-content-box { padding: 30px 20px; }
    .rk-err-visual { padding: 20px; min-height: 200px; }
}
</style>

<div class="rk-err-container" id="rkErrorSimulator">
    
    <div class="rk-err-header">
        <h2>Jakie są najczęstsze błędy instalatorów przy montażu i konfiguracji pomp obiegowych?</h2>
        <p>Najczęstsze awarie pomp obiegowych wynikają z braku weryfikacji parametrów hydraulicznych oraz ignorowania podstawowych zasad czystości zładu wodnego. Wybierz symulację i zobacz konsekwencje.</p>
    </div>

    <div class="rk-err-grid">
        <div class="rk-err-menu">
            <button class="rk-err-btn active" data-target="err-gear">
                <div class="rk-err-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></div>
                <h4 class="rk-err-title">Fabryczny bieg 3</h4>
            </button>
            <button class="rk-err-btn" data-target="err-valves">
                <div class="rk-err-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg></div>
                <h4 class="rk-err-title">Brak zaworów odcinających</h4>
            </button>
            <button class="rk-err-btn" data-target="err-dirt">
                <div class="rk-err-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg></div>
                <h4 class="rk-err-title">Zabrudzony zład wodny</h4>
            </button>
            <button class="rk-err-btn" data-target="err-air">
                <div class="rk-err-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg></div>
                <h4 class="rk-err-title">Brak odpowietrzenia</h4>
            </button>
        </div>

        <div class="rk-err-visual">
            <svg class="rk-svg-stage" viewBox="0 0 300 150" preserveAspectRatio="xMidYMid meet" id="svgStage">
                <rect x="20" y="60" width="260" height="30" fill="#cbd5e1" rx="4"></rect>
                <rect x="20" y="60" width="260" height="4" fill="#94a3b8"></rect>
                
                <g class="rk-valve-indicator">
                    <line x1="60" y1="40" x2="80" y2="110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></line>
                    <line x1="80" y1="40" x2="60" y2="110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></line>
                    <line x1="220" y1="40" x2="240" y2="110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></line>
                    <line x1="240" y1="40" x2="220" y2="110" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></line>
                </g>

                <g class="rk-dirt-group">
                    <circle cx="30" cy="75" r="4" class="rk-dirt-particle"></circle>
                    <circle cx="20" cy="80" r="3" class="rk-dirt-particle"></circle>
                    <circle cx="10" cy="70" r="5" class="rk-dirt-particle"></circle>
                </g>

                <circle cx="150" cy="75" r="45" fill="#1e293b"></circle>
                <circle cx="150" cy="75" r="35" fill="#334155"></circle>
                
                <circle cx="150" cy="75" r="20" fill="none" stroke-width="4" class="rk-friction-ring"></circle>
                <circle cx="150" cy="75" r="30" fill="none" stroke-width="2" class="rk-friction-ring" style="animation-delay: 0.3s;"></circle>

                <g style="transform-origin: 150px 75px;" id="svgRotor" class="rk-anim-fast">
                    <line x1="150" y1="45" x2="150" y2="105" stroke-width="8" stroke-linecap="round"></line>
                    <line x1="120" y1="75" x2="180" y2="75" stroke-width="8" stroke-linecap="round"></line>
                    <circle cx="150" cy="75" r="8" fill="#ffffff"></circle>
                </g>

                <rect x="135" y="125" width="30" height="20" rx="4" fill="#0f172a"></rect>
                <text x="150" y="139" fill="#ef4444" font-size="12" font-family="monospace" font-weight="bold" text-anchor="middle" id="svgDisplay">45W</text>
            </svg>
        </div>
    </div>

    <div class="rk-err-content-box">
        <div class="rk-err-panel active" id="err-gear">
            <h3>Zostawienie fabrycznego biegu (Bieg 3)</h3>
            <p>Instalatorzy po montażu uruchamiają pompę na maksymalnych obrotach, aby szybko odpowietrzyć układ, zapominając o przełączeniu urządzenia w tryb <strong>AUTO</strong> lub <strong>Stałociśnieniowy</strong>.</p>
            <p>Skutkuje to ciągłym poborem maksymalnej mocy przez urządzenie, ignorując całkowicie zalety silników adaptacyjnych.</p>
            <div class="rk-consequence">
                <strong>Skutek techniczny</strong>
                <span>Ciągły pobór np. 45 W zamiast 8 W przez cały rok. Generowanie szumów w <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">instalacji podłogowej</a>.</span>
            </div>
        </div>

        <div class="rk-err-panel" id="err-valves">
            <h3>Montaż pompy bez odcinających zaworów</h3>
            <p>Brak zaworów kulowych ze śrubunkami tuż przed i tuż za pompą obiegową. Jest to oszczędność rzędu kilkudziesięciu złotych, która mści się przy pierwszej konserwacji.</p>
            <p>Uniemożliwia to szybki demontaż urządzenia lub czyszczenie filtra siatkowego bez integracji w zład całej instalacji.</p>
            <div class="rk-consequence">
                <strong>Skutek techniczny</strong>
                <span>Konieczność spuszczania kilkuset litrów <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">wody demineralizowanej z inhibitorem korozji</a> z całego układu, aby wyczyścić filtr lub wymienić pompę.</span>
            </div>
        </div>

        <div class="rk-err-panel" id="err-dirt">
            <h3>Uruchomienie w brudnej instalacji</h3>
            <p>Zaniechanie płukania zładu przed rozruchem to proszenie się o kłopoty. Pozostałości po montażu, takie jak opiłki tworzywa sztucznego z kalibratora rur PEX czy resztki pakuł uszczelniających, trafiają swobodnie do obiegu.</p>
            <p>Zanieczyszczenia są następnie zasysane prosto do precyzyjnej komory wirnika nowej pompy.</p>
            <div class="rk-consequence">
                <strong>Skutek techniczny</strong>
                <span>Permanentne zablokowanie mechaniczne i przepalenie stojana przy pierwszym uruchomieniu pompy. Błąd ten automatycznie skutkuje odmową naprawy gwarancyjnej.</span>
            </div>
        </div>

        <div class="rk-err-panel" id="err-air">
            <h3>Brak odpowietrzenia przed startem</h3>
            <p>Nowoczesne pompy posiadają wprawdzie funkcję automatycznego odpowietrzania, jednak przy całkowicie pierwszym napełnianiu ręczne poluzowanie śruby czołowej wału jest absolutnie kluczowe.</p>
            <p>Woda stanowi naturalną poduszkę poślizgową dla ceramicznych łożysk w pompach bezdławnicowych. Jej brak to destrukcja mechaniczna.</p>
            <div class="rk-consequence">
                <strong>Skutek techniczny</strong>
                <span>Tarcie suchych łożysk powodujące ich natychmiastowe uszkodzenie, zablokowanie urządzenia oraz głośne <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia</a>.</span>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errorBtns = document.querySelectorAll('.rk-err-btn');
    const panels = document.querySelectorAll('.rk-err-panel');
    const svgStage = document.getElementById('svgStage');
    const svgRotor = document.getElementById('svgRotor');
    const svgDisplay = document.getElementById('svgDisplay');

    function resetSVG() {
        svgStage.classList.remove('show-valves-missing', 'show-dirt', 'show-friction');
        svgRotor.className.baseVal = '';
        svgDisplay.textContent = '--W';
        svgDisplay.setAttribute('fill', '#94a3b8');
    }

    errorBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            errorBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const targetId = this.getAttribute('data-target');
            panels.forEach(p => p.classList.remove('active'));
            document.getElementById(targetId).classList.add('active');

            resetSVG();
            
            if (targetId === 'err-gear') {
                svgRotor.className.baseVal = 'rk-anim-fast';
                svgDisplay.textContent = '45W';
                svgDisplay.setAttribute('fill', '#ef4444');
            } 
            else if (targetId === 'err-valves') {
                svgStage.classList.add('show-valves-missing');
                svgRotor.className.baseVal = 'rk-anim-fast';
                svgRotor.style.stroke = '#38bdf8';
                svgDisplay.textContent = '8W';
                svgDisplay.setAttribute('fill', '#38bdf8');
            }
            else if (targetId === 'err-dirt') {
                svgStage.classList.add('show-dirt');
                svgRotor.className.baseVal = 'rk-anim-jammed';
                svgDisplay.textContent = 'ERR';
                svgDisplay.setAttribute('fill', '#f59e0b');
            }
            else if (targetId === 'err-air') {
                svgStage.classList.add('show-friction');
                svgRotor.className.baseVal = 'rk-anim-friction';
                svgDisplay.textContent = '12W';
                svgDisplay.setAttribute('fill', '#f59e0b');
            }
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jakie są najczęstsze błędy instalatorów przy montażu i konfiguracji pomp obiegowych?",
    "description": "Zestawienie najgroźniejszych błędów wykonawczych: od braku odpowietrzenia, przez złe nastawy biegów, po brak płukania instalacji. Zobacz interaktywną diagnostykę.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Wskaźnik Awaryjności Pomp Obiegowych 2026",
    "description": "Klasyfikacja uszkodzeń pomp obiegowych wynikająca z zaniedbań montażowych i braku weryfikacji hydraulicznej zładu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy przy montażu ogrzewania podłogowego",
      "ustawienie pompy obiegowej na 3 bieg",
      "brak zaworów przy pompie",
      "płukanie instalacji podłogówki",
      "odpowietrzanie pompy obiegowej"
    ],
    "measurementTechnique": "Analiza wpływu zanieczyszczeń mechanicznych, braku armatury odcinającej oraz błędnych nastaw sterownika na żywotność urządzenia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciągła praca na 3 biegu (straty 45W).",
        "Brak zaworów - konieczność zrzutu wody demineralizowanej.",
        "Opiłki i pakuły blokujące precyzyjny wirnik.",
        "Suche łożyska z powodu zaniechania odpowietrzenia ręcznego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-bledy",
    "name": "Symulator Diagnostyczny Błędów Pompy",
    "description": "Interaktywne narzędzie wizualizujące fizyczne skutki braku płukania zładu, zastosowania niewłaściwych nastaw i braku zaworów odcinających w układzie hydraulicznym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-prj-dark: #0f172a;
    --rk-prj-blue: #2563eb;
    --rk-prj-light: #eff6ff;
    --rk-prj-accent: #f59e0b;
    --rk-prj-green: #059669;
    --rk-prj-border: #cbd5e1;
    --rk-prj-bg: #ffffff;
    --rk-prj-text: #334155;
}

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

/* Tagi Długi Ogon */
.rk-prj-tags {
    padding: 25px 35px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
}

.rk-mat-tag {
    background: var(--rk-prj-light);
    color: var(--rk-prj-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    border: 1px solid rgba(37, 99, 235, 0.2);
    text-transform: lowercase;
}

/* Nagłówek */
.rk-prj-header {
    padding: 25px 35px;
}

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

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

/* Sekcja Interaktywna - Podział 2 kolumny */
.rk-prj-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-top: 1px solid var(--rk-prj-border);
    border-bottom: 1px solid var(--rk-prj-border);
}

/* Lewa Kolumna - Schemat zależności */
.rk-prj-flow {
    padding: 35px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-prj-border);
}

.rk-prj-flow h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-prj-dark);
    margin: 0 0 25px 0;
}

.rk-flow-step {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 25px;
    position: relative;
}

.rk-flow-step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 17px;
    top: 40px;
    bottom: -20px;
    width: 2px;
    background: var(--rk-prj-blue);
    opacity: 0.2;
}

.rk-flow-number {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--rk-prj-blue);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 16px;
    flex-shrink: 0;
    z-index: 1;
}

.rk-flow-content h4 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-prj-dark);
}

.rk-flow-content p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-prj-text);
    line-height: 1.5;
}

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

.rk-flow-result {
    margin-top: 30px;
    padding: 15px;
    background: var(--rk-prj-dark);
    border-radius: 12px;
    color: white;
    display: flex;
    align-items: center;
    gap: 15px;
}

/* Prawa Kolumna - Symulator */
.rk-prj-simulator {
    padding: 35px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
}

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

/* Custom Controls */
.rk-sim-control {
    margin-bottom: 25px;
}

.rk-sim-label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-prj-text);
    margin-bottom: 10px;
}

.rk-radio-group {
    display: flex;
    gap: 10px;
}

.rk-radio-btn {
    flex: 1;
    position: relative;
}

.rk-radio-btn input {
    display: none;
}

.rk-radio-label {
    display: block;
    text-align: center;
    padding: 12px;
    background: var(--rk-prj-light);
    border: 2px solid transparent;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-prj-text);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-radio-btn input:checked + .rk-radio-label {
    background: white;
    border-color: var(--rk-prj-blue);
    color: var(--rk-prj-blue);
    box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.1);
}

/* SVG Animacja */
.rk-sim-visual {
    margin-top: auto;
    padding: 20px;
    background: var(--rk-prj-light);
    border-radius: 16px;
    text-align: center;
    border: 1px solid rgba(37, 99, 235, 0.1);
}

.rk-live-stats {
    display: flex;
    justify-content: space-around;
    margin-bottom: 15px;
}

.rk-stat-box {
    text-align: center;
}

.rk-stat-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-prj-blue);
    font-variant-numeric: tabular-nums;
}

.rk-stat-lbl {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-prj-text);
    text-transform: uppercase;
}

/* SVG Pipe */
.rk-pipe-svg {
    width: 100%;
    height: 60px;
}

.rk-pipe-path {
    stroke-dasharray: 10;
    animation: flowAnim 2s linear infinite;
}

@keyframes flowAnim {
    to { stroke-dashoffset: -20; }
}

/* Tekst podsumowujący */
.rk-prj-summary {
    padding: 30px 35px;
    background: #ffffff;
}

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

.rk-prj-summary strong {
    color: var(--rk-prj-dark);
}

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

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

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

.rk-btn-project {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-prj-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-project:hover {
    transform: translateY(-4px) scale(1.02);
    background: #1d4ed8;
    box-shadow: 0 20px 35px -5px rgba(37, 99, 235, 0.6);
}

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

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

@media (max-width: 768px) {
    .rk-prj-grid { grid-template-columns: 1fr; }
    .rk-prj-flow { border-right: none; border-bottom: 1px solid var(--rk-prj-border); padding: 25px; }
    .rk-prj-simulator, .rk-prj-header, .rk-prj-summary, .rk-prj-cta-box, .rk-prj-tags { padding: 25px; }
    .rk-btn-project { width: 100%; padding: 18px 20px; font-size: 16px; }
    .rk-prj-header h2 { font-size: 24px; }
}
</style>

<div class="rk-prj-container" id="rkProjectIntegrator">
    <div class="rk-prj-tags">
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego z pompą ciepła</span>
        <span class="rk-mat-tag"># obliczenia strat ciśnienia</span>
        <span class="rk-mat-tag"># rozstaw rur a wydajność pompy</span>
        <span class="rk-mat-tag"># dobór pompy obiegowej do podłogówki</span>
    </div>

    <div class="rk-prj-header">
        <h2>Jak dobór pompy wpływa na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Wybór i parametry pompy obiegowej są ściśle powiązane z kluczowymi elementami dokumentacji technicznej. Pompa nie istnieje w próżni – jej punkt pracy jest bezpośrednią wypadkową konkretnych, twardych wyliczeń inżynierskich dla Twojego budynku.</p>
    </div>

    <div class="rk-prj-grid">
        <div class="rk-prj-flow">
            <h3>Architektura profesjonalnego doboru</h3>
            
            <div class="rk-flow-step">
                <div class="rk-flow-number">1</div>
                <div class="rk-flow-content">
                    <h4><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Obliczenia OZC (PN-EN 12831)</a></h4>
                    <p>Definiują całkowite zapotrzebowanie na moc grzewczą [kW]. To fundament do określenia ilości ciepła, jaką woda musi dostarczyć.</p>
                </div>
            </div>

            <div class="rk-flow-step">
                <div class="rk-flow-number">2</div>
                <div class="rk-flow-content">
                    <h4><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">Rozstaw rur w pętlach</a></h4>
                    <p>Decyduje o wymaganej temperaturze zasilania i bezpośrednio przekłada się na wielkość przepływów (l/min) na rotametrach.</p>
                </div>
            </div>

            <div class="rk-flow-step">
                <div class="rk-flow-number">3</div>
                <div class="rk-flow-content">
                    <h4>Geometria i układ pętli</h4>
                    <p>Długość rur i ilość zagięć generuje sumaryczne opory w Paskalach (Pa). To one wymuszają wysokość podnoszenia pompy.</p>
                </div>
            </div>

            <div class="rk-flow-result">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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 style="font-weight: 800; font-size: 15px;">WYNIK: Optymalny punkt roboczy (Q i H)</div>
            </div>
        </div>

        <div class="rk-prj-simulator">
            <h3 class="rk-sim-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
                Symulator Zależności Projektowych
            </h3>

            <div class="rk-sim-control">
                <span class="rk-sim-label">Rozstaw rur (gęstość):</span>
                <div class="rk-radio-group">
                    <label class="rk-radio-btn">
                        <input type="radio" name="rk-spacing" value="10" checked>
                        <span class="rk-radio-label">Co 10 cm (Gęsto)</span>
                    </label>
                    <label class="rk-radio-btn">
                        <input type="radio" name="rk-spacing" value="15">
                        <span class="rk-radio-label">Co 15 cm (Rzadko)</span>
                    </label>
                </div>
            </div>

            <div class="rk-sim-control">
                <span class="rk-sim-label">Okładzina podłogowa (Opór cieplny R):</span>
                <div class="rk-radio-group">
                    <label class="rk-radio-btn">
                        <input type="radio" name="rk-floor" value="tiles" checked>
                        <span class="rk-radio-label">Płytki (0,02 m2K/W)</span>
                    </label>
                    <label class="rk-radio-btn">
                        <input type="radio" name="rk-floor" value="laminate">
                        <span class="rk-radio-label">Panele (0,08 m2K/W)</span>
                    </label>
                </div>
            </div>

            <div class="rk-sim-visual">
                <div class="rk-live-stats">
                    <div class="rk-stat-box">
                        <div class="rk-stat-lbl">Opory hydrauliczne</div>
                        <div class="rk-stat-val" id="rk-out-h">2.4 m</div>
                    </div>
                    <div class="rk-stat-box">
                        <div class="rk-stat-lbl">Przepływ na rotametrze</div>
                        <div class="rk-stat-val" id="rk-out-q">1.8 l/min</div>
                    </div>
                </div>
                <svg class="rk-pipe-svg" viewBox="0 0 300 60" preserveAspectRatio="none">
                    <path d="M10,30 Q75,10 150,30 T290,30" fill="none" stroke="#cbd5e1" stroke-width="8" stroke-linecap="round"/>
                    <path d="M10,30 Q75,10 150,30 T290,30" fill="none" stroke="#2563eb" stroke-width="4" stroke-linecap="round" class="rk-pipe-path" id="rk-svg-flow"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-prj-summary">
        <p>Gęstość rozstawu rur (np. co 10 cm w strefach brzegowych i łazienkach, co 15 cm w salonach) determinuje łączną długość rur, a tym samym bezpośrednio wpływa na opory hydrauliczne, które pompa musi pokonać.</p>
        <p>Projektant, znając opór cieplny okładziny podłogowej (np. płytki ceramiczne o <strong>R = 0,02 m2K/W</strong> lub panele o <strong>R = 0,08 m2K/W</strong>) oraz planowaną <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">grubość wylewki jastrychowej</a> (np. 65 mm), precyzyjnie wylicza wymaganą temperaturę zasilania.</p>
        <p>Te dane pozwalają na określenie optymalnego przepływu cząstkowego, co daje końcową wartość wydajności pompy. <strong>Projekt instalacji eliminuje zgubne dobieranie pompy „na oko”</strong> i chroni Inwestora przed kosztownym przewymiarowaniem lub brakiem komfortu cieplnego zimą.</p>
    </div>

    <div class="rk-prj-cta-box">
        <h3 class="rk-prj-cta-title">Przestań zgadywać. Zainwestuj w inżynierię.</h3>
        <p class="rk-prj-cta-text">Złe wyliczenia to zimna podłoga i pompa pobierająca 400% więcej prądu niż powinna. Zamów kompletny projekt i zyskaj gwarancję perfekcyjnie zbilansowanego układu hydraulicznego na dekady.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-project">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const spaceRadios = document.querySelectorAll('input[name="rk-spacing"]');
    const floorRadios = document.querySelectorAll('input[name="rk-floor"]');
    const outH = document.getElementById('rk-out-h');
    const outQ = document.getElementById('rk-out-q');
    const svgFlow = document.getElementById('rk-svg-flow');

    function calculateSimulation() {
        let spaceVal = document.querySelector('input[name="rk-spacing"]:checked').value;
        let floorVal = document.querySelector('input[name="rk-floor"]:checked').value;

        let resH = 2.0; // Base head
        let resQ = 1.5; // Base flow
        let animSpeed = 2; // SVG animation duration in seconds

        // Logika obliczeniowa symulatora
        if (spaceVal === "10") {
            // Gęsty rozstaw = więcej rur = większe opory, ale niższa temperatura i mniejszy przepływ na obieg
            resH += 0.8;
            resQ -= 0.3;
        } else if (spaceVal === "15") {
            // Rzadszy rozstaw = mniejsze opory, ale wymaga większego przepływu by oddać moc
            resH -= 0.4;
            resQ += 0.5;
        }

        if (floorVal === "laminate") {
            // Panele izolują, więc układ potrzebuje znacznie większego przepływu i wyższej delty/temperatury
            resQ += 0.8;
            resH += 0.3;
            animSpeed = 0.8; // Fast flow required
        } else {
            // Płytki dobrze przewodzą
            animSpeed = 2.0; // Normal flow
        }

        // Formatowanie i aktualizacja UI
        outH.textContent = resH.toFixed(1) + " m";
        outQ.textContent = resQ.toFixed(1) + " l/min";
        svgFlow.style.animationDuration = animSpeed + "s";
    }

    spaceRadios.forEach(r => r.addEventListener('change', calculateSimulation));
    floorRadios.forEach(r => r.addEventListener('change', calculateSimulation));
    
    // Initial calculate
    calculateSimulation();
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Jak dobór pompy wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zrozumienie ścisłej korelacji pomiędzy obliczeniami OZC, rozstawem rur grzewczych a wymaganymi parametrami pompy obiegowej w nowoczesnej podłogówce.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Wpływ parametrów projektu na dobór pompy obiegowej 2026",
    "description": "Zestawienie relacji hydraulicznych pomiędzy gęstością rozstawu rur, oporem cieplnym okładzin podłogowych a ostatecznym przepływem i oporem pompy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "obliczenia strat ciśnienia",
      "rozstaw rur a wydajność pompy",
      "opór cieplny paneli a podłogówka",
      "dobór pompy obiegowej do podłogówki"
    ],
    "measurementTechnique": "Algorytm inżynierski wyznaczający przepływy i straty ciśnienia na podstawie wytycznych normy PN-EN 12831 oraz oporów R posadzki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obliczenia OZC jako fundament określenia mocy grzewczej [kW].",
        "Rozstaw rur kształtujący opory hydrauliczne pętli.",
        "Wpływ okładziny: płytki ceramiczne (0,02 m2K/W) vs panele (0,08 m2K/W) na przepływy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Symulator Zależności Projektowych Podłogówki",
    "description": "Narzędzie interaktywne ilustrujące zmiany oporów hydraulicznych (m H2O) i przepływu (l/min) w zależności od wybranego rozstawu rur oraz zastosowanej okładziny podłogowej.",
    "applicationCategory": "TechnicalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-slate: #475569;
    --rk-case-bg: #f8fafc;
    --rk-case-card: #ffffff;
    --rk-case-border: #e2e8f0;
    
    /* Kolory funkcyjne */
    --rk-case-blue: #0ea5e9;
    --rk-case-blue-light: #e0f2fe;
    --rk-case-red: #ef4444;
    --rk-case-red-light: #fee2e2;
    --rk-case-green: #10b981;
    --rk-case-green-light: #dcfce7;
    --rk-case-gold: #f59e0b;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-card);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.2);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Tagi Long Tail */
.rk-case-tags {
    padding: 25px 40px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: var(--rk-case-dark);
}

.rk-mat-tag {
    background: rgba(255,255,255,0.1);
    color: var(--rk-case-blue-light);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(224, 242, 254, 0.2);
    transition: all 0.3s;
}

.rk-mat-tag:hover {
    background: var(--rk-case-blue-light);
    color: var(--rk-case-dark);
}

/* Nagłówek */
.rk-case-header {
    padding: 25px 40px 30px;
    background: var(--rk-case-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-gold);
}

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

.rk-case-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.7;
    max-width: 800px;
}

/* Ekspert Block */
.rk-case-expert {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 25px 40px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-expert-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--rk-case-blue);
    flex-shrink: 0;
}

.rk-expert-quote {
    position: relative;
}

.rk-expert-quote p {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-case-dark);
    font-style: italic;
    margin: 0 0 8px 0;
    line-height: 1.5;
}

.rk-expert-name {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Symulator - Przełącznik Przed/Po */
.rk-case-simulator {
    padding: 40px;
    background: var(--rk-case-bg);
}

.rk-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

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

.rk-state-toggle input { display: none; }

.rk-toggle-lbl {
    flex: 1;
    text-align: center;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-slate);
    cursor: pointer;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.rk-state-toggle input:checked + .rk-toggle-lbl {
    color: #ffffff;
}

.rk-toggle-glider {
    position: absolute;
    top: 6px; left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-case-red);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    z-index: 1;
}

#stateAfter:checked ~ .rk-toggle-glider {
    transform: translateX(100%);
    background: var(--rk-case-green);
}

/* Grid Danych */
.rk-data-tiles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-tile {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.4s ease;
}

.rk-tile-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-case-slate);
    text-transform: uppercase;
    margin-bottom: 10px;
}

.rk-tile-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-case-dark);
    transition: color 0.4s;
}

.rk-tile-desc {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 5px;
    font-weight: 500;
}

/* Wizualizacja SVG */
.rk-case-visual {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    transition: border-color 0.4s;
}

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

.rk-case-story {
    flex: 1;
}

.rk-case-story h3 {
    font-size: 20px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: var(--rk-case-dark);
    transition: color 0.4s;
}

.rk-case-story p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-case-slate);
    margin: 0;
}

/* Stany Wizualne - Dynamiczne klasy */
.state-before .rk-tile-val.dynamic { color: var(--rk-case-red); }
.state-before .rk-case-visual { border-top: 4px solid var(--rk-case-red); }
.state-before .svg-dial { stroke: var(--rk-case-red); stroke-dasharray: 100 100; transition: stroke-dasharray 1s ease-in-out; }
.state-before .svg-waves { stroke: var(--rk-case-red); opacity: 1; animation: pulseWave 0.5s infinite; }

.state-after .rk-tile-val.dynamic { color: var(--rk-case-green); }
.state-after .rk-case-visual { border-top: 4px solid var(--rk-case-green); }
.state-after .svg-dial { stroke: var(--rk-case-green); stroke-dasharray: 20 180; transition: stroke-dasharray 1s ease-in-out; }
.state-after .svg-waves { stroke: var(--rk-case-green); opacity: 0; }

@keyframes pulseWave {
    0% { transform: scale(0.9); opacity: 0.5; }
    50% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(0.9); opacity: 0.5; }
}

@media (max-width: 800px) {
    .rk-data-tiles { grid-template-columns: 1fr 1fr; }
    .rk-case-visual { flex-direction: column; text-align: center; }
    .rk-case-expert { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
    .rk-data-tiles { grid-template-columns: 1fr; }
    .rk-toggle-lbl { font-size: 13px; padding: 12px 10px; }
}
</style>

<div class="rk-case-container" id="rkCaseApp">
    
    <div class="rk-case-tags">
        <span class="rk-mat-tag"># modernizacja ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># wymiana pompy obiegowej w starym domu</span>
        <span class="rk-mat-tag"># opory hydrauliczne w starych rurach</span>
        <span class="rk-mat-tag"># zużycie prądu przez pompę obiegową</span>
    </div>

    <div class="rk-case-header">
        <h2>Case Study: 140 m² z lat 70. – Dlaczego nowa podłogówka nie grzała?</h2>
        <p>Poznaj historię Pana Dawida z Poznania, który zmodernizował dom, wyrzucił grzejniki, wylał nowe jastrychy, ale zostawił &#8222;dobrą, starą pompę&#8221; z kotłowni. Zobacz, jak wyliczenia hydrauliczne uratowały tę inwestycję.</p>
    </div>

    <div class="rk-case-expert">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Audyt Instalacji" class="rk-expert-photo">
        <div class="rk-expert-quote">
            <p>&#8222;To klasyczny błąd przy termomodernizacjach. Inwestorzy ładują dziesiątki tysięcy w pompę ciepła i nową wylewkę, ale zostawiają starą pompę 3-biegową, bo 'przecież działa&#8217;. Stara pompa nie radzi sobie z ogromnymi oporami gęsto ułożonych rur podłogówki, dławi przepływ i zżera prąd.&#8221;</p>
            <div class="rk-expert-name">Robert Kucharski – Audyt i Projekt OZC</div>
        </div>
    </div>

    <div class="rk-case-simulator">
        
        <div class="rk-toggle-wrapper">
            <div class="rk-state-toggle">
                <input type="radio" name="caseState" id="stateBefore" value="before" checked>
                <label for="stateBefore" class="rk-toggle-lbl">Przed Audytem Roberta</label>
                
                <input type="radio" name="caseState" id="stateAfter" value="after">
                <label for="stateAfter" class="rk-toggle-lbl">Po Doborze Inżynierskim</label>
                
                <div class="rk-toggle-glider"></div>
            </div>
        </div>

        <div class="rk-data-tiles state-before" id="rkTileGroup">
            <div class="rk-tile">
                <div class="rk-tile-title">Pompa Obiegowa</div>
                <div class="rk-tile-val" id="valPump" style="font-size: 18px;">Stary Typ (AC)</div>
                <div class="rk-tile-desc" id="descPump">3 biegi stałe</div>
            </div>
            <div class="rk-tile">
                <div class="rk-tile-title">Pobór Mocy</div>
                <div class="rk-tile-val dynamic" id="valPower">85 W</div>
                <div class="rk-tile-desc" id="descPower">Praca ciągła</div>
            </div>
            <div class="rk-tile">
                <div class="rk-tile-title">Koszty Energii (Rok)</div>
                <div class="rk-tile-val dynamic" id="valCost">~326 PLN</div>
                <div class="rk-tile-desc">Sezon grzewczy</div>
            </div>
            <div class="rk-tile">
                <div class="rk-tile-title">Komfort Cieplny</div>
                <div class="rk-tile-val dynamic" id="valComfort" style="font-size: 18px;">Niedogrzanie</div>
                <div class="rk-tile-desc" id="descComfort">Chłodna łazienka</div>
            </div>
        </div>

        <div class="rk-case-visual state-before" id="rkVisualBox">
            <div class="rk-svg-box">
                <!-- SVG Dashboard Pompy -->
                <svg viewBox="0 0 100 100" width="100%" height="100%">
                    <!-- Tło i obudowa -->
                    <circle cx="50" cy="50" r="45" fill="#f8fafc" stroke="#e2e8f0" stroke-width="2"/>
                    
                    <!-- Skala mocy -->
                    <path d="M 20 80 A 40 40 0 1 1 80 80" fill="none" stroke="#cbd5e1" stroke-width="8" stroke-linecap="round"/>
                    <path d="M 20 80 A 40 40 0 1 1 80 80" fill="none" class="svg-dial" stroke-width="8" stroke-linecap="round"/>
                    
                    <!-- Fale dźwiękowe (Hałas/Kawitacja) -->
                    <g class="svg-waves" style="transform-origin: 50px 50px;">
                        <path d="M 10 50 Q -10 50 10 30" fill="none" stroke-width="3" stroke-linecap="round"/>
                        <path d="M 90 50 Q 110 50 90 30" fill="none" stroke-width="3" stroke-linecap="round"/>
                    </g>
                    
                    <text x="50" y="55" font-family="monospace" font-weight="bold" font-size="20" text-anchor="middle" fill="#0f172a" id="svgWattText">85W</text>
                    <text x="50" y="70" font-family="sans-serif" font-weight="bold" font-size="8" text-anchor="middle" fill="#64748b" id="svgStatusText">HAŁAS</text>
                </svg>
            </div>
            
            <div class="rk-case-story">
                <h3 id="storyTitle">Hałas w rurach i zimne strefy brzegowe</h3>
                <p id="storyText">Pan Dawid pozostawił starą pompę węzłową. Urządzenie tłoczyło wodę na sztywnym 3 biegu, pobierając aż 85W. Z powodu wysokich oporów hydraulicznych gęstej podłogówki (rury układane co 10 cm), pompa nie dawała rady &#8222;przepchnąć&#8221; wody do najdalszej dobudówki, a wysoka prędkość w pobliżu rozdzielacza powodowała irytujący szum kawitacyjny nocą.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const radios = document.querySelectorAll('input[name="caseState"]');
    
    // UI Elements
    const tileGroup = document.getElementById('rkTileGroup');
    const visualBox = document.getElementById('rkVisualBox');
    
    // Data Elements
    const valPump = document.getElementById('valPump');
    const descPump = document.getElementById('descPump');
    const valPower = document.getElementById('valPower');
    const descPower = document.getElementById('descPower');
    const valCost = document.getElementById('valCost');
    const valComfort = document.getElementById('valComfort');
    const descComfort = document.getElementById('descComfort');
    
    const storyTitle = document.getElementById('storyTitle');
    const storyText = document.getElementById('storyText');
    
    const svgWattText = document.getElementById('svgWattText');
    const svgStatusText = document.getElementById('svgStatusText');

    const stateData = {
        before: {
            pump: "Stary Typ (AC)", dPump: "3 biegi stałe",
            power: "85 W", dPower: "Praca ciągła",
            cost: "~326 PLN",
            comfort: "Niedogrzanie", dComfort: "Zimna dobudówka",
            title: "Hałas w rurach i zimne strefy brzegowe",
            text: "Pan Dawid pozostawił starą pompę węzłową. Urządzenie tłoczyło wodę na sztywnym 3 biegu, pobierając aż 85W. Z powodu wysokich oporów hydraulicznych gęstej podłogówki (rury układane co 10 cm), pompa nie dawała rady przepchnąć czynnika do najdalszej dobudówki, a nadmiar ciśnienia przy rozdzielaczu powodował irytujący szum kawitacyjny nocą.",
            svgW: "85W", svgS: "HAŁAS"
        },
        after: {
            pump: "Nowy Typ (EC)", dPump: "AUTOADAPT",
            power: "12 W", dPower: "Praca adaptacyjna",
            cost: "~46 PLN",
            comfort: "Idealny", dComfort: "Równe temperatury",
            title: "Cisza, oszczędność i równomierne ciepło",
            text: "Po audycie, wyliczyliśmy dokładne opory hydrauliczne instalacji (H) oraz wymagany przepływ (Q). Wymiana na nowoczesną pompę z silnikiem EC i trybem stałociśnieniowym (CP) całkowicie wyeliminowała szumy. Pompa adaptuje się do zamykających się termostatów, pobierając zaledwie 12W prądu, a woda w końcu dociera do każdego pomieszczenia.",
            svgW: "12W", svgS: "AUTO"
        }
    };

    radios.forEach(radio => {
        radio.addEventListener('change', function() {
            const state = this.value;
            const data = stateData[state];

            // Change Classes for Colors/Animations
            tileGroup.className = `rk-data-tiles state-${state}`;
            visualBox.className = `rk-case-visual state-${state}`;

            // Update Data
            valPump.textContent = data.pump;
            descPump.textContent = data.dPump;
            valPower.textContent = data.power;
            descPower.textContent = data.dPower;
            valCost.textContent = data.cost;
            valComfort.textContent = data.comfort;
            descComfort.textContent = data.dComfort;
            
            storyTitle.textContent = data.title;
            storyText.textContent = data.text;
            
            svgWattText.textContent = data.svgW;
            svgStatusText.textContent = data.svgS;
        });
    });
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: 140 m² z lat 70. – Dlaczego nowa podłogówka nie grzała?",
    "description": "Praktyczne studium przypadku (modernizacja domu 140m2 w Poznaniu). Zobacz, jak inżynierski dobór i wymiana starej pompy AC na energooszczędną pompę EC rozwiązały problem niedogrzania i wysokich rachunkó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": "Ekspert HVAC",
      "sameAs": [
        "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Porównanie parametrów po termomodernizacji (Pompa AC vs EC)",
    "description": "Zestawienie empirycznych danych eksploatacyjnych po audycie inżynierskim. Wymiana nieefektywnego urządzenia węzłowego na model adaptacyjny w domu 140m2.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "modernizacja ogrzewania podłogowego",
      "wymiana pompy obiegowej w starym domu",
      "opory hydrauliczne w starych rurach",
      "zużycie prądu przez pompę obiegową",
      "pompa energooszczędna do podłogówki"
    ],
    "measurementTechnique": "Pomiary poboru mocy elektrycznej oraz identyfikacja stref niedogrzania spowodowanych spadkiem ciśnienia w pętli krytycznej przed i po montażu nowej armatury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przed audytem: Pompa AC pobierała 85W, roczny koszt ~326 PLN, brak dopływu czynnika do stref brzegowych.",
        "Po audycie: Pompa EC z autoadaptacją pobiera 12W, roczny koszt ~46 PLN, pełne zrównoważenie hydrauliczne."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Symulator Efektów Termomodernizacji",
    "description": "Interaktywny interfejs pozwalający na przełączanie między stanami 'przed' i 'po' wymianie pompy obiegowej, ilustrujący bezpośrednie korzyści finansowe i akustyczne.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-panel: #1e293b;
    --rk-auth-bg: #ffffff;
    --rk-auth-surface: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    
    --rk-auth-blue: #0284c7;
    --rk-auth-gold: #eab308;
    --rk-auth-fb: #1877F2;
    --rk-auth-li: #0A66C2;
}

.rk-auth-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 24px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-auth-border);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Header Area */
.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-auth-gold);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.rk-auth-header-text h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 8px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-auth-header-text p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    font-weight: 500;
}

.rk-auth-trust-badge {
    background: rgba(234, 179, 8, 0.15);
    border: 1px solid rgba(234, 179, 8, 0.3);
    color: var(--rk-auth-gold);
    padding: 10px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    flex-shrink: 0;
}

/* Main Layout Grid */
.rk-auth-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-auth-bg);
}

/* Left Sidebar: Profile */
.rk-auth-profile {
    background: var(--rk-auth-surface);
    padding: 40px 30px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-photo-wrap {
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-auth-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

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

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

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

.rk-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    border-radius: 12px;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.rk-social-btn.fb { background: var(--rk-auth-fb); }
.rk-social-btn.fb:hover { background: #166fe5; }
.rk-social-btn.li { background: var(--rk-auth-li); }
.rk-social-btn.li:hover { background: #0959aa; }

/* Right Content Area */
.rk-auth-content {
    display: flex;
    flex-direction: column;
}

/* Cytat (Hook) */
.rk-auth-quote-box {
    padding: 35px 40px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-quote-mark {
    font-size: 60px;
    color: var(--rk-auth-blue);
    line-height: 0;
    opacity: 0.2;
    margin-bottom: -15px;
    display: block;
    font-family: serif;
}

.rk-auth-quote-text {
    font-size: 19px;
    font-weight: 700;
    color: var(--rk-auth-dark);
    line-height: 1.5;
    margin: 0;
    font-style: italic;
}

/* Navigation Tabs */
.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
    background: var(--rk-auth-surface);
}

.rk-auth-tab {
    flex: 1;
    padding: 18px 10px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-auth-muted);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.rk-auth-tab:hover {
    color: var(--rk-auth-dark);
    background: #f1f5f9;
}

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

/* Tab Panels */
.rk-auth-panel {
    padding: 40px;
    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 0 15px 0;
}

.rk-auth-panel p:last-child { margin-bottom: 0; }

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

.rk-auth-panel a:hover {
    border-color: var(--rk-auth-blue);
}

/* Stats Grid in Panel 2 */
.rk-auth-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 25px;
}

.rk-stat-box {
    background: var(--rk-auth-surface);
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

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

.rk-stat-info { display: flex; flex-direction: column; }

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    line-height: 1.2;
}

.rk-stat-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    text-transform: uppercase;
}

/* Mobile */
@media (max-width: 850px) {
    .rk-auth-grid { grid-template-columns: 1fr; }
    .rk-auth-header { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-auth-trust-badge { width: 100%; justify-content: center; }
    .rk-auth-profile { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 25px; }
    .rk-auth-socials { flex-direction: row; }
    .rk-auth-tabs { flex-direction: column; background: #ffffff; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; padding: 15px 25px; }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; background: var(--rk-auth-surface); }
    .rk-auth-quote-box { padding: 25px; }
    .rk-auth-panel { padding: 30px 25px; }
    .rk-auth-stats { grid-template-columns: 1fr; }
}
</style>

<div class="rk-auth-container">
    
    <div class="rk-auth-header">
        <div class="rk-auth-header-text">
            <h2>Ekspert HVAC Robert Kucharski: Dobór pompy to inżynieria, nie zgadywanka</h2>
            <p>Nie powielam instalatorskich mitów. Zobacz, kto odpowiada za wiedzę techniczną i obliczenia w tym artykule.</p>
        </div>
        <div class="rk-auth-trust-badge">
            <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="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Weryfikacja HVAC
        </div>
    </div>

    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo-wrap">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-auth-photo">
            </div>
            
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Inżynier &amp; Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn fb">
                    <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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Projekt Ogrzewania
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn li">
                    <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="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            
            <div class="rk-auth-quote-box">
                <span class="rk-auth-quote-mark">&#8222;</span>
                <p class="rk-auth-quote-text">
                    Nigdy nie kupuj pompy obiegowej &#8222;na zapas&#8221;. Przewymiarowana pompa to hałas, kawitacja i marnowanie prądu. Niedowymiarowana to zimna podłoga. Matematyka układu wybacza znacznie mniej niż wylewka betonowa – tutaj liczą się twarde obliczenia oporów, a nie przypuszczenia instalatora.
                </p>
            </div>

            <div class="rk-auth-tabs">
                <button class="rk-auth-tab active" data-panel="omnie">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                    O Mnie
                </button>
                <button class="rk-auth-tab" data-panel="liczby">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Fakty i Liczby
                </button>
                <button class="rk-auth-tab" data-panel="filozofia">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
                    Filozofia Projektowa
                </button>
            </div>

            <div class="rk-auth-panel active" id="panel-omnie">
                <h3>Praktyka wygrywa z teorią</h3>
                <p>
                    Projektowanie systemów ogrzewania to czysta matematyka i hydraulika. Od lat doradzam inwestorom, audytuję błędy wykonawcze na placach budowy i optymalizuję pracę źródeł ciepła. Oprócz działalności projektowej, zarządzam również portalami remont.biz.pl oraz <a sobir.pl, gdzie dzielę się konkretną, twardą wiedzą.
                </p>
                <p>
                    Wiem dokładnie, ile kosztuje inwestora niewiedza. W swoich projektach łączę rygorystyczne normy inżynierskie z bezkompromisowym pragmatyzmem, udowadniając, że odpowiednio zbilansowany zład wody to gwarancja spokoju na dekady.
                </p>
            </div>

            <div class="rk-auth-panel" id="panel-liczby">
                <h3>Instalacje oparte na twardych danych</h3>
                <p>Każdy opór hydrauliczny w rurze, każdy zakręt i przepływ na rotametrze mają gigantyczne znaczenie dla żywotności pompy. Moje podejście opiera się wyłącznie na wyliczeniach.</p>
                
                <div class="rk-auth-stats">
                    <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="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-stat-info">
                            <div class="rk-stat-val">1000+</div>
                            <div class="rk-stat-label">Wykonanych Projektów OZC</div>
                        </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="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-info">
                            <div class="rk-stat-val">3700+</div>
                            <div class="rk-stat-label">Aktywnych Obserwatorów</div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-auth-panel" id="panel-filozofia">
                <h3>Bezbłędny system zaczyna się na papierze</h3>
                <p>
                    Odrzucam dobieranie urządzeń na zasadzie &#8222;zawsze tak montujemy i działa&#8221;. Brak analizy krzywych ciśnienia (H) i wydajności (Q) to najczęstsza przyczyna awarii silników EC i głośnej pracy instalacji.
                </p>
                <p>
                    Wszystkie algorytmy i artykuły techniczne, które znajdziesz na tej stronie, bazują na obowiązujących normach projektowych (m.in. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a> i PN-EN 12831). Zapewnia to pełną zgodność prawną i maksymalizuje sprawność energetyczną Twojego domu.
                </p>
            </div>

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

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

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

            // Add active class to clicked tab
            this.classList.add('active');

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-autor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Ekspert HVAC Robert Kucharski: Dobór pompy to inżynieria, nie zgadywanka",
    "description": "Profil ekspercki Roberta Kucharskiego, inżyniera HVAC weryfikującego błędy hydrauliczne oraz dobór parametrów ciśnienia i przepływu w instalacjach płaszczyznowych.",
    "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": "Specjalista HVAC",
      "sameAs": [
        "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-autor",
    "name": "Baza kompetencji inżynierskich HVAC - Robert Kucharski",
    "description": "Zestawienie twardych statystyk i doświadczenia w zakresie normatywnego projektowania hydrauliki instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy obiegowej",
      "obliczenia oporów hydraulicznych",
      "norma PN-EN 1264 podłogówka",
      "inżynier hvac robert kucharski",
      "audyt instalacji grzewczej"
    ],
    "measurementTechnique": "Weryfikacja doświadczenia na bazie ponad 1000 zrealizowanych i zoptymalizowanych projektów OZC oraz sieci zaufania online.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zrealizowane projekty instalacji płaszczyznowych i doborów hydraulicznych: 1000+",
        "Społeczność ekspercka: Zaufanie ponad 3700 obserwatorów.",
        "Metodologia: Odrzucenie dobierania sprzętu na zapas na rzecz rygorystycznych obliczeń strat ciśnienia i przepływu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-autor",
    "name": "Statyczny Profil E-E-A-T Autora",
    "description": "Moduł weryfikujący autorytet inżynierski twórcy artykułu, integrujący bezpośredni cytat (hook), portfolio oraz potwierdzenie zastosowania norm technicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>



<style>
:root {
    --rk-faq-dark: #1e293b;
    --rk-faq-primary: #3b82f6;
    --rk-faq-accent: #8b5cf6;
    --rk-faq-bg: #ffffff;
    --rk-faq-surface: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-danger: #ef4444;
}

.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 10px 30px -10px rgba(59, 130, 246, 0.15);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-faq-top {
    padding: 40px 50px;
    background: linear-gradient(145deg, var(--rk-faq-surface) 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-faq-border);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

.rk-faq-top p {
    font-size: 16px;
    color: var(--rk-faq-text);
    margin: 0;
    max-width: 750px;
    line-height: 1.6;
}

/* Master Switch */
.rk-faq-master-control {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-faq-bg);
    padding: 12px 24px;
    border-radius: 12px;
    border: 1px solid var(--rk-faq-border);
    align-self: flex-start;
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: border-color 0.3s;
}

.rk-faq-master-control:hover {
    border-color: var(--rk-faq-primary);
}

.rk-faq-master-label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-faq-dark);
}

.rk-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.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: #cbd5e1;
    transition: .4s;
    border-radius: 24px;
}

.rk-slider:before {
    position: absolute;
    content: "";
    height: 18px; width: 18px;
    left: 3px; bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

input:checked + .rk-slider { background-color: var(--rk-faq-primary); }
input:checked + .rk-slider:before { transform: translateX(20px); }

/* Lista FAQ */
.rk-faq-list {
    padding: 20px 50px 40px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-primary);
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.1);
}

.rk-faq-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    cursor: pointer;
    user-select: none;
    background: transparent;
    transition: background 0.3s;
}

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

.rk-faq-question-box {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-faq-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--rk-faq-surface);
    color: var(--rk-faq-primary);
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-faq-item.active .rk-faq-icon {
    background: var(--rk-faq-primary);
    color: #ffffff;
}

.rk-faq-item.active .rk-faq-icon.danger-icon {
    background: var(--rk-faq-danger);
    color: #ffffff;
}

.rk-faq-header h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-faq-chevron {
    color: #94a3b8;
    transition: transform 0.3s;
}

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

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

.rk-faq-content {
    padding: 0 25px 25px 82px; /* Wyrównanie do tekstu, ominięcie ikony */
}

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

.rk-faq-content a {
    color: var(--rk-faq-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: border-color 0.2s;
}

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

@media (max-width: 768px) {
    .rk-faq-top { padding: 30px 20px; }
    .rk-faq-top h2 { font-size: 26px; }
    .rk-faq-list { padding: 15px 20px 30px; gap: 10px; }
    .rk-faq-header { padding: 15px; }
    .rk-faq-content { padding: 0 15px 20px 15px; }
    .rk-faq-question-box { gap: 12px; }
    .rk-faq-header h3 { font-size: 15px; }
}
</style>

<div class="rk-faq-container" id="rkFaqApp">
    <div class="rk-faq-top">
        <h2>FAQ – Najczęściej zadawane pytania dotyczące pomp obiegowych</h2>
        <p>Baza wiedzy diagnostycznej. Eksperckie, techniczne odpowiedzi na najczęstsze problemy z przepływem, trybami pracy i integracją pomp cyrkulacyjnych w płaszczyznowych systemach grzewczych.</p>
        
        <label class="rk-faq-master-control">
            <span class="rk-faq-master-label">Rozwiń wszystkie odpowiedzi</span>
            <div class="rk-switch">
                <input type="checkbox" id="rkToggleAllFaq">
                <span class="rk-slider"></span>
            </div>
        </label>
    </div>

    <div class="rk-faq-list">
        
        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <div class="rk-faq-question-box">
                    <div class="rk-faq-icon danger-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <h3>Czy pompa obiegowa do podłogówki może pracować na trybie proporcjonalnym (PP)?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content">
                    <p><strong>Nie, praca pompy w trybie proporcjonalnym (PP) jest kardynalnym błędem wykonawczym.</strong> W tym trybie zamknięcie części pętli grzewczych powoduje obniżenie ciśnienia przez pompę, co skutkuje drastycznym spadkiem przepływów w pozostałych, otwartych obiegach i niedogrzaniem pomieszczeń.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <div class="rk-faq-question-box">
                    <div class="rk-faq-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    </div>
                    <h3>Jaki przepływ na rotametrach powinna zapewnić pompa obiegowa?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content">
                    <p>Prawidłowy przepływ dla standardowych pętli o długości 70–90 metrów wynosi <strong>od 1,5 do 2,5 litra na minutę (l/min)</strong>. Wartości te muszą wynikać bezpośrednio z projektu hydraulicznego i być precyzyjnie wyregulowane na belce rozdzielacza za pomocą <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <div class="rk-faq-question-box">
                    <div class="rk-faq-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
                    </div>
                    <h3>Dlaczego pompa obiegowa podłogówki buczy i głośno pracuje?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content">
                    <p>Główną przyczyną głośnej pracy jest <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">zapowietrzenie układu</a> lub zjawisko kawitacji wywołane zbyt niskim ciśnieniem statycznym w instalacji (poniżej 1,0 bar). Innym powodem może być zablokowanie wirnika przez osad magnetyczny w wyniku braku filtra magnetycznego w układzie.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <div class="rk-faq-question-box">
                    <div class="rk-faq-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h4l2-9 4 18 2-9h4"></path><path d="M12 2v2"></path><path d="M12 20v2"></path></svg>
                    </div>
                    <h3>Czy pompa wbudowana w pompę ciepła wystarczy do obsłużenia podłogówki?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content">
                    <p>W budynkach o powierzchni do 120 m² ze sprzyjającą architekturą hydrauliczną <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> ze zintegrowaną pompą cyrkulacyjną zazwyczaj jest wystarczająca. Przy większych metrażach lub skomplikowanych układach kaskadowych konieczne jest zastosowanie <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgła hydraulicznego</a> i zewnętrznej pompy obiegowej.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <div class="rk-faq-header">
                <div class="rk-faq-question-box">
                    <div class="rk-faq-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    </div>
                    <h3>Jak sprawdzić, czy elektroniczna pompa obiegowa działa prawidłowo?</h3>
                </div>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </div>
            <div class="rk-faq-body">
                <div class="rk-faq-content">
                    <p>Prawidłowe działanie poznasz po stabilnym wskazaniu aktualnego poboru mocy (wyrażonego w Watach na wyświetlaczu) oraz braku drgań. Dodatkowo rura zasilająca za pompą powinna osiągnąć temperaturę zgodną z nastawą na <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworze mieszającym</a> w czasie kilkunastu minut od startu.</p>
                </div>
            </div>
        </div>

    </div>
</div>

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

    // Obsługa pojedynczych akordeonów
    faqItems.forEach(item => {
        const header = item.querySelector('.rk-faq-header');
        const body = item.querySelector('.rk-faq-body');

        header.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            if (isActive) {
                item.classList.remove('active');
                body.style.maxHeight = '0px';
            } else {
                item.classList.add('active');
                body.style.maxHeight = body.scrollHeight + "px";
            }
            updateMasterSwitchState();
        });
    });

    // Obsługa przełącznika "Rozwiń wszystkie"
    toggleAllCheckbox.addEventListener('change', function() {
        const isChecked = this.checked;
        
        faqItems.forEach(item => {
            const body = item.querySelector('.rk-faq-body');
            if (isChecked) {
                item.classList.add('active');
                body.style.maxHeight = body.scrollHeight + "px";
            } else {
                item.classList.remove('active');
                body.style.maxHeight = '0px';
            }
        });
    });

    // Funkcja aktualizująca stan przełącznika głównego
    function updateMasterSwitchState() {
        const allActive = Array.from(faqItems).every(item => item.classList.contains('active'));
        toggleAllCheckbox.checked = allActive;
    }
});
</script>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące pomp obiegowych",
    "description": "Eksperckie odpowiedzi na najczęstsze problemy z pompami obiegowymi w systemach ogrzewania podłogowego. Diagnostyka, tryby pracy i ustawienia.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-faq",
    "name": "Baza Diagnostyczna Pomp Obiegowych 2026",
    "description": "Zbiór typowych awarii, optymalnych parametrów przepływu i konfiguracji hydraulicznych dla układów płaszczyznowych ogrzewania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tryb proporcjonalny a stałociśnieniowy",
      "przepływ na rotametrach podłogówki",
      "dlaczego pompa obiegowa buczy",
      "pompa obiegowa a pompa ciepła",
      "diagnostyka pompy ogrzewania podłogowego"
    ],
    "measurementTechnique": "Analiza objawów akustycznych i termicznych w odniesieniu do nastaw hydraulicznych na rozdzielaczu podłogowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja trybu PP (błąd) vs CP (prawidłowy)",
        "Kontrola przepływów nominalnych (1,5 - 2,5 l/min)",
        "Diagnostyka kawitacji i zapowietrzenia zładu",
        "Zależność wbudowanej pompy obiegowej od powierzchni budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Asystent Diagnostyki Pomp",
    "description": "Moduł typu Accordion FAQ pozwalający użytkownikowi na szybkie filtrowanie i odczytywanie rozwiązań najczęstszych problemów hydraulicznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#faq-schema",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy pompa obiegowa do podłogówki może pracować na trybie proporcjonalnym (PP)?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, praca pompy w trybie proporcjonalnym (PP) jest kardynalnym błędem wykonawczym. W tym trybie zamknięcie części pętli grzewczych powoduje obniżenie ciśnienia przez pompę, co skutkuje drastycznym spadkiem przepływów w pozostałych, otwartych obiegach i niedogrzaniem pomieszczeń."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki przepływ na rotametrach powinna zapewnić pompa obiegowa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Prawidłowy przepływ dla standardowych pętli o długości 70–90 metrów wynosi od 1,5 do 2,5 litra na minutę (l/min). Wartości te muszą wynikać bezpośrednio z projektu hydraulicznego i być precyzyjnie wyregulowane na belce rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego pompa obiegowa podłogówki buczy i głośno pracuje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Główną przyczyną głośnej pracy jest zapowietrzenie układu lub zjawisko kawitacji wywołane zbyt niskim ciśnieniem statycznym w instalacji (poniżej 1,0 bar). Innym powodem może być zablokowanie wirnika przez osad magnetyczny w wyniku braku filtra."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa wbudowana w pompę ciepła wystarczy do obsłużenia podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W budynkach o powierzchni do 120 m² ze sprzyjającą architekturą hydrauliczną pompa fabryczna zazwyczaj jest wystarczająca. Przy większych metrażach lub skomplikowanych układach kaskadowych konieczne jest zastosowanie sprzęgła hydraulicznego i zewnętrznej pompy."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy elektroniczna pompa obiegowa działa prawidłowo?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Prawidłowe działanie poznasz po stabilnym wskazaniu aktualnego poboru mocy (wyrażonego w Watach na wyświetlaczu) oraz braku drgań. Dodatkowo rura zasilająca za pompą powinna osiągnąć zadaną temperaturę w czasie kilkunastu minut od startu."
        }
      }
    ]
  }
]
</script>



<style>
:root {
    --rk-pmp-dark: #1e293b;
    --rk-pmp-blue: #0284c7;
    --rk-pmp-accent: #38bdf8;
    --rk-pmp-green: #10b981;
    --rk-pmp-red: #ef4444;
    --rk-pmp-gray: #64748b;
    --rk-pmp-bg: #f8fafc;
    --rk-pmp-card: #ffffff;
    --rk-pmp-border: #e2e8f0;
}

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

/* Tagi Długi Ogon */
.rk-tags-row {
    padding: 20px 30px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: rgba(2, 132, 199, 0.08);
    color: var(--rk-pmp-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(2, 132, 199, 0.15);
    transition: all 0.3s;
}

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

/* Nagłówek i Wstęp */
.rk-pmp-header {
    padding: 30px 40px;
    text-align: center;
    border-bottom: 1px solid var(--rk-pmp-border);
}

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

.rk-pmp-header p {
    font-size: 16px;
    color: var(--rk-pmp-gray);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Interaktywny Panel */
.rk-pmp-dashboard {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--rk-pmp-bg);
    border-bottom: 1px solid var(--rk-pmp-border);
}

.rk-pmp-controls {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--rk-pmp-card);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-pmp-border);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-toggle-row:hover {
    border-color: var(--rk-pmp-accent);
}

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

/* Switch CSS */
.rk-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 28px;
}
.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: #cbd5e1;
    transition: .4s;
    border-radius: 34px;
}
.rk-slider:before {
    position: absolute;
    content: "";
    height: 20px; width: 20px;
    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-pmp-green); }
input:checked + .rk-slider:before { transform: translateX(22px); }

/* SVG Visualizer */
.rk-pmp-visual {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-left: 1px solid var(--rk-pmp-border);
    background: linear-gradient(135deg, #ffffff 0%, #f1f5f9 100%);
}

.rk-pmp-svg-box {
    position: relative;
    width: 160px;
    height: 160px;
    margin-bottom: 25px;
}

.rk-svg-rotor {
    transform-origin: center;
    transition: all 0.5s ease;
}

.anim-spin-slow { animation: pmpSpin 8s linear infinite; }
.anim-spin-fast { animation: pmpSpin 1.5s linear infinite; }
.color-off { stroke: #94a3b8; }
.color-on { stroke: var(--rk-pmp-green); filter: drop-shadow(0 0 8px rgba(16, 185, 129, 0.4)); }

@keyframes pmpSpin { 100% { transform: rotate(360deg); } }

.rk-status-badge {
    padding: 8px 24px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: #e2e8f0;
    color: var(--rk-pmp-gray);
    transition: all 0.3s;
}

.rk-status-badge.status-ready {
    background: var(--rk-pmp-green);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
}

/* Grid Detali */
.rk-pmp-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 40px;
}

.rk-detail-card {
    background: var(--rk-pmp-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-pmp-border);
}

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

.rk-detail-card h3 svg { color: var(--rk-pmp-blue); }

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

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

.rk-detail-card a:hover { border-color: var(--rk-pmp-blue); }

@media (max-width: 768px) {
    .rk-pmp-dashboard { grid-template-columns: 1fr; }
    .rk-pmp-visual { border-left: none; border-top: 1px solid var(--rk-pmp-border); padding: 30px; }
    .rk-pmp-details { grid-template-columns: 1fr; padding: 25px; gap: 15px; }
    .rk-pmp-controls { padding: 25px; }
    .rk-pmp-header { padding: 25px 20px; }
    .rk-pmp-header h2 { font-size: 24px; }
}
</style>

<div class="rk-pmp-container" id="pmp-configurator-app">
    
    <div class="rk-tags-row">
        <span class="rk-mat-tag"># dobór pompy obiegowej do podłogówki</span>
        <span class="rk-mat-tag"># współczynnik efektywności energetycznej eei</span>
        <span class="rk-mat-tag"># tryb stałociśnieniowy pompy</span>
        <span class="rk-mat-tag"># straty ciśnienia w instalacji</span>
    </div>

    <div class="rk-pmp-header">
        <h2>Podsumowanie – Kryteria wyboru niezawodnej pompy obiegowej</h2>
        <p>Wybór pompy obiegowej do instalacji ogrzewania podłogowego musi być podyktowany wyłącznie rzetelną analizą inżynierską, a nie pozorną oszczędnością przy zakupie. Uruchom weryfikator i sprawdź kluczowe parametry.</p>
    </div>

    <div class="rk-pmp-dashboard">
        <div class="rk-pmp-controls">
            <label class="rk-toggle-row">
                <span class="rk-toggle-label">Zgodność z dyrektywą ErP (EEI ≤ 0,20)</span>
                <div class="rk-switch">
                    <input type="checkbox" class="pmp-req-check">
                    <span class="rk-slider"></span>
                </div>
            </label>
            <label class="rk-toggle-row">
                <span class="rk-toggle-label">Tryb stałociśnieniowy (CP) i wyświetlacz</span>
                <div class="rk-switch">
                    <input type="checkbox" class="pmp-req-check">
                    <span class="rk-slider"></span>
                </div>
            </label>
            <label class="rk-toggle-row">
                <span class="rk-toggle-label">Korpus z żeliwa i wał ceramiczny</span>
                <div class="rk-switch">
                    <input type="checkbox" class="pmp-req-check">
                    <span class="rk-slider"></span>
                </div>
            </label>
            <label class="rk-toggle-row">
                <span class="rk-toggle-label">Zgodność z projektem hydraulicznym</span>
                <div class="rk-switch">
                    <input type="checkbox" class="pmp-req-check">
                    <span class="rk-slider"></span>
                </div>
            </label>
        </div>

        <div class="rk-pmp-visual">
            <div class="rk-pmp-svg-box">
                <svg viewBox="0 0 100 100" fill="none">
                    <circle cx="50" cy="50" r="45" stroke="#cbd5e1" stroke-width="4" fill="#ffffff"/>
                    <circle cx="50" cy="50" r="35" stroke="#e2e8f0" stroke-width="8" />
                    <g class="rk-svg-rotor anim-spin-slow color-off" id="pmpRotor">
                        <line x1="50" y1="15" x2="50" y2="85" stroke-width="6" stroke-linecap="round"/>
                        <line x1="15" y1="50" x2="85" y2="50" stroke-width="6" stroke-linecap="round"/>
                        <circle cx="50" cy="50" r="8" fill="currentColor" />
                    </g>
                    <rect x="35" y="40" width="30" height="20" rx="4" fill="#1e293b" />
                    <text x="50" y="54" fill="#38bdf8" font-size="10" font-family="monospace" font-weight="bold" text-anchor="middle" id="pmpWattage">&#8212; W</text>
                </svg>
            </div>
            <div class="rk-status-badge" id="pmpStatusText">Urządzenie amatorskie</div>
        </div>
    </div>

    <div class="rk-pmp-details">
        <div class="rk-detail-card">
            <h3>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                Zgodność z dyrektywą ErP
            </h3>
            <p>Urządzenie musi posiadać współczynnik efektywności energetycznej <strong>EEI ≤ 0,20</strong>. Spełnienie tego warunku gwarantuje minimalny pobór prądu na poziomie zaledwie kilku watów podczas inteligentnej pracy adaptacyjnej.</p>
        </div>
        <div class="rk-detail-card">
            <h3>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                Wielofunkcyjność elektroniki
            </h3>
            <p>Solidna pompa musi oferować dedykowany tryb stałociśnieniowy (<strong>CP</strong>), niezbędny przy sterowaniu strefowym, oraz czytelny wyświetlacz informujący o aktualnym przepływie [m³/h] i poborze mocy [W].</p>
        </div>
        <div class="rk-detail-card">
            <h3>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                Wysoka jakość materiałowa
            </h3>
            <p>Korpus wykonany z ciężkiego żeliwa z powłoką kataforetyczną oraz precyzyjny wał ceramiczny z nowoczesnymi łożyskami. To zestawienie gwarantuje cichą i bezawaryjną pracę przez minimum <strong>10–15 lat</strong>.</p>
        </div>
        <div class="rk-detail-card">
            <h3>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Oparcie na dokumentacji
            </h3>
            <p>Zakup musi być bezwzględnie potwierdzony obliczeniami za pomocą <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a>, w oparciu o wyliczone <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">zapotrzebowanie cieplne OZC</a>. Eliminuje to ryzyko błędów hydraulicznych.</p>
        </div>
    </div>
</div>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie – Kryteria wyboru niezawodnej pompy obiegowej",
    "description": "Zestawienie rygorystycznych kryteriów inżynierskich doboru energooszczędnej pompy obiegowej do ogrzewania podłogowego. Sprawdź parametry techniczne przed zakupem.",
    "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-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-podsumowanie",
    "name": "Standardy Techniczne Pomp Obiegowych 2026",
    "description": "Specyfikacja techniczna i minimalne wymogi materiałowo-elektroniczne dla pomp cyrkulacyjnych w płaszczyznowych systemach grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy obiegowej do podłogówki",
      "współczynnik efektywności energetycznej eei",
      "tryb stałociśnieniowy cp pompy",
      "obliczenia strat ciśnienia w instalacji",
      "jakość pompy obiegowej"
    ],
    "measurementTechnique": "Analiza wskaźnika EEI z dyrektywy ErP, krzywych podnoszenia oraz oporów hydraulicznych rurociągów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "EEI ≤ 0,20 - gwarancja energooszczędności",
        "Tryb CP (Constant Pressure) - dla systemów ze sterowaniem strefowym",
        "Żeliwo kataforetyczne i wał ceramiczny - żywotność 10-15 lat",
        "Weryfikacja mocy w odniesieniu do projektu OZC"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-podsumowanie",
    "name": "Interaktywny Weryfikator Klasy Pompy Obiegowej",
    "description": "Narzędzie symulacyjne pozwalające na ocenę jakości wybranej pompy obiegowej poprzez weryfikację czterech kluczowych kryteriów inżynierskich.",
    "applicationCategory": "TechnicalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const checkboxes = document.querySelectorAll('.pmp-req-check');
    const rotor = document.getElementById('pmpRotor');
    const statusText = document.getElementById('pmpStatusText');
    const wattageDisplay = document.getElementById('pmpWattage');

    function updatePumpStatus() {
        let checkedCount = 0;
        checkboxes.forEach(cb => { if(cb.checked) checkedCount++; });

        if (checkedCount === 0) {
            statusText.textContent = 'Urządzenie amatorskie';
            statusText.className = 'rk-status-badge';
            rotor.className.baseVal = 'rk-svg-rotor anim-spin-slow color-off';
            wattageDisplay.textContent = '-- W';
            wattageDisplay.setAttribute('fill', '#64748b');
        } else if (checkedCount > 0 && checkedCount < 4) {
            statusText.textContent = `Weryfikacja: ${checkedCount}/4 kryteriów`;
            statusText.className = 'rk-status-badge';
            rotor.className.baseVal = 'rk-svg-rotor anim-spin-slow color-on';
            wattageDisplay.textContent = `${45 - (checkedCount * 10)} W`;
            wattageDisplay.setAttribute('fill', '#38bdf8');
        } else if (checkedCount === 4) {
            statusText.textContent = 'Klasa: Inżynierska (Zatwierdzona)';
            statusText.className = 'rk-status-badge status-ready';
            rotor.className.baseVal = 'rk-svg-rotor anim-spin-fast color-on';
            wattageDisplay.textContent = '6 W';
            wattageDisplay.setAttribute('fill', '#10b981');
        }
    }

    checkboxes.forEach(cb => {
        cb.addEventListener('change', updatePumpStatus);
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-slate: #475569;
    --rk-dl-bg: #f8fafc;
    --rk-dl-card: #ffffff;
    --rk-dl-border: #e2e8f0;
    
    /* Kolory Akcentujące */
    --rk-dl-blue: #2563eb;
    --rk-dl-pdf: #ef4444; /* Czerwony dla PDF */
    --rk-dl-img: #10b981; /* Zielony dla WebP */
}

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

/* Tagi Long Tail */
.rk-dl-tags {
    padding: 25px 40px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: var(--rk-dl-card);
}

.rk-mat-tag {
    background: var(--rk-dl-bg);
    color: var(--rk-dl-slate);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    border: 1px solid var(--rk-dl-border);
    transition: all 0.3s;
}

.rk-mat-tag:hover {
    background: var(--rk-dl-slate);
    color: #ffffff;
}

/* Nagłówek */
.rk-dl-header {
    padding: 25px 40px 30px;
    background: var(--rk-dl-card);
    color: var(--rk-dl-dark);
    border-bottom: 1px solid var(--rk-dl-border);
}

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

.rk-dl-header p {
    font-size: 15px;
    color: var(--rk-dl-slate);
    margin: 0;
    line-height: 1.6;
    max-width: 800px;
}

/* Układ główny - Grid */
.rk-dl-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-dl-bg);
}

/* Lewa Kolumna - Podgląd Infografiki */
.rk-dl-preview-area {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--rk-dl-border);
}

.rk-preview-box {
    width: 100%;
    max-width: 320px;
    background: #ffffff;
    border: 8px solid #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    overflow: hidden;
    position: relative;
}

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

.rk-preview-label {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 900;
    color: var(--rk-dl-slate);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa Kolumna - Przyciski Pobierania */
.rk-dl-actions-area {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

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

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

.rk-btn-card {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-dl-border);
    border-radius: 16px;
    text-decoration: none;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-btn-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-btn-card.pdf:hover { border-color: var(--rk-dl-pdf); }
.rk-btn-card.img:hover { border-color: var(--rk-dl-img); }

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

.rk-btn-card.pdf .rk-btn-icon { background: #fef2f2; color: var(--rk-dl-pdf); }
.rk-btn-card.img .rk-btn-icon { background: #f0fdf4; color: var(--rk-dl-img); }

.rk-btn-content {
    display: flex;
    flex-direction: column;
}

.rk-btn-headline {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 4px 0;
}

.rk-btn-sub {
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-dl-slate);
    margin: 0;
}

/* Stopka z Copyright */
.rk-dl-footer {
    background: #ffffff;
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 40px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.rk-footer-shield {
    color: var(--rk-dl-slate);
    margin-top: 2px;
    flex-shrink: 0;
}

.rk-footer-copy {
    font-size: 12px;
    font-weight: 500;
    color: var(--rk-dl-slate);
    line-height: 1.6;
    margin: 0;
}

.rk-footer-copy strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-dl-layout { grid-template-columns: 1fr; }
    .rk-dl-preview-area { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 30px 20px; }
    .rk-dl-actions-area { padding: 30px 20px; }
    .rk-dl-header { padding: 25px 20px; }
    .rk-dl-tags { padding: 20px 20px 0; }
    .rk-dl-footer { padding: 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<div class="rk-dl-container">
    
    <div class="rk-dl-tags">
        <span class="rk-mat-tag"># schemat podłączenia pompy obiegowej pdf</span>
        <span class="rk-mat-tag"># infografika instalacja ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># instrukcja montażu pompy obiegowej do pobrania</span>
        <span class="rk-mat-tag"># układ mieszający podłogówki schemat</span>
    </div>

    <div class="rk-dl-header">
        <h2>Materiały techniczne do pobrania</h2>
        <p>Pobierz przygotowaną przeze mnie infografikę w wysokiej rozdzielczości. Zawiera ona przekrój najważniejszych wytycznych projektowych i montażowych dla pomp obiegowych.</p>
    </div>

    <div class="rk-dl-layout">
        <div class="rk-dl-preview-area">
            <div class="rk-preview-box">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego.webp" alt="Infografika - Pompa obiegowa w instalacji ogrzewania podłogowego" loading="lazy">
            </div>
            <div class="rk-preview-label">Podgląd Dokumentu</div>
        </div>

        <div class="rk-dl-actions-area">
            <h3 class="rk-action-title">Wybierz format pliku</h3>
            <p class="rk-action-desc">Dokumentacja jest dostępna w formacie wektorowym (PDF do druku) oraz w lekkim formacie graficznym (WebP do podglądu na telefonie).</p>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego.pdf" target="_blank" class="rk-btn-card pdf">
                <div class="rk-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M12 18v-6"></path><path d="M9 15l3 3 3-3"></path></svg>
                </div>
                <div class="rk-btn-content">
                    <h4 class="rk-btn-headline">Pobierz plik PDF</h4>
                    <p class="rk-btn-sub">Wysoka jakość • Wersja do druku</p>
                </div>
            </a>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego.webp" target="_blank" class="rk-btn-card img">
                <div class="rk-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                </div>
                <div class="rk-btn-content">
                    <h4 class="rk-btn-headline">Wyświetl obraz WebP</h4>
                    <p class="rk-btn-sub">Lekki plik • Podgląd w przeglądarce</p>
                </div>
            </a>
        </div>
    </div>

    <div class="rk-dl-footer">
        <div class="rk-footer-shield">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
        </div>
        <p class="rk-footer-copy">
            <strong>© 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong> Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku. Chronione prawem autorskim.
        </p>
    </div>

</div>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/"
    },
    "headline": "Materiały techniczne do pobrania: Schematy i wytyczne pomp obiegowych",
    "description": "Pobierz darmową infografikę w formacie PDF oraz WebP zawierającą techniczne zasady doboru, trybów pracy oraz montażu pompy obiegowej w ogrzewaniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-09",
    "dateModified": "2026-06-09"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Infografika techniczna: Pompa obiegowa w podłogówce",
    "description": "Zestawienie graficzne schematów montażowych, wzorów obliczeniowych (Q i H) oraz charakterystyk trybów pracy (CP/PP) do pobrania w formacie PDF i WebP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "schemat podłączenia pompy obiegowej pdf",
      "infografika instalacja ogrzewania podłogowego",
      "instrukcja montażu pompy obiegowej do pobrania",
      "układ mieszający podłogówki schemat",
      "jak podłączyć pompę podłogówki pdf"
    ],
    "measurementTechnique": "Synteza wiedzy inżynierskiej z normy PN-EN 1264 zaprezentowana w formie zoptymalizowanej infografiki 2D.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik PDF: Format wektorowy przeznaczony do wydruku przez instalatorów (Infografika-Pompa-obiegowa-w-instalacji-ogrzewania-podlogowego.pdf).",
        "Plik WebP: Skompresowany format rastrowy do podglądu bezpośrednio w przeglądarkach na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/#webapp-repozytorium",
    "name": "Interfejs Repozytorium Dokumentacji HVAC",
    "description": "Statyczny interfejs graficzny ułatwiający użytkownikom szybki podgląd i pobieranie dokumentacji technicznej w preferowanym formacie z zachowaniem ochrony praw autorskich.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa w instalacji ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
