<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Normy budowlane - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/normy-budowlane/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/normy-budowlane/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Mon, 07 Sep 2026 10:14:19 +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 Normy budowlane - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/normy-budowlane/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC: Dlaczego błąd o jedną strefę klimatyczną kosztuje Cię 6000 zł rocznie?</title>
		<link>https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 01 Aug 2026 10:12:32 +0000</pubDate>
				<category><![CDATA[Bilans energetyczny budynku]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZC]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Strefy klimatyczne]]></category>
		<category><![CDATA[dobór mocy pompy ciepła]]></category>
		<category><![CDATA[norma pn-en 12831]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc budynku]]></category>
		<category><![CDATA[projektowa temperatura zewnętrzna]]></category>
		<category><![CDATA[przepływ masowy czynnika]]></category>
		<category><![CDATA[rozstaw rur podłogówki]]></category>
		<category><![CDATA[straty ciepła przez przenikanie]]></category>
		<category><![CDATA[strefa brzegowa podłogówki]]></category>
		<category><![CDATA[strefy klimatyczne w polsce]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6932</guid>

					<description><![CDATA[<p>Planujesz budowę domu lub wymianę instalacji grzewczej i rozważasz zakup uniwersalnego projektu z internetu? Uważaj na pułapki techniczne, które mogą zrujnować Twój budżet eksploatacyjny. Prawidłowo skalkulowane strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC to absolutny fundament, od którego zależy nie tylko komfort cieplny w czasie siarczystych mrozów, ale także sprawność i żywotność Twojej pompy ciepła. W tym kompleksowym opracowaniu inżynierskim poddajemy szczegółowej analizie wszystkie normy budowlane (PN-EN 12831 oraz PN-82/B-02403), pokazujemy bezlitosne wyliczenia hydrauliczne, algorytmy przepływu masowego oraz udostępniamy interaktywne kalkulatory, które uchronią Cię przed koszmarnymi błędami wykonawczymi.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC: Dlaczego błąd o jedną strefę klimatyczną kosztuje Cię 6000 zł rocznie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-sky: #e0f2fe;
    --rk-intro-red: #ef4444;
    --rk-intro-red-light: #fef2f2;
    --rk-intro-green: #10b981;
    --rk-intro-gray: #64748b;
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #cbd5e1;
    --rk-intro-gold: #f59e0b;
}

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

/* Sekcja Hooka - Mocne Otwarcie */
.rk-intro-hero {
    background: var(--rk-intro-dark);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-red);
}

.rk-intro-badge-alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-red);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

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

.rk-intro-hero-lead {
    font-size: 18px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0;
    border-left: 4px solid var(--rk-intro-blue);
    padding-left: 20px;
}

.rk-intro-hero-lead strong {
    color: var(--rk-intro-gold);
}

/* Szybka Odpowiedź (Featured Snippet Box) */
.rk-intro-quick-answer {
    background: var(--rk-intro-sky);
    padding: 30px 50px;
    border-bottom: 1px solid var(--rk-intro-border);
}

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

.rk-intro-qa-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-dark);
    font-weight: 700;
    margin: 0;
}

.rk-intro-qa-text a {
    color: var(--rk-intro-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

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

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

.rk-intro-decision-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-intro-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s;
}

.rk-intro-btn.active[data-type="bad"] {
    background: var(--rk-intro-red-light);
    border-color: var(--rk-intro-red);
}

.rk-intro-btn.active[data-type="good"] {
    background: var(--rk-intro-sky);
    border-color: var(--rk-intro-blue);
}

.rk-intro-btn-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
    background: #f1f5f9;
    color: var(--rk-intro-gray);
    transition: all 0.3s;
}

.rk-intro-btn.active[data-type="bad"] .rk-intro-btn-icon { background: var(--rk-intro-red); color: #ffffff; }
.rk-intro-btn.active[data-type="good"] .rk-intro-btn-icon { background: var(--rk-intro-blue); color: #ffffff; }

.rk-intro-btn h3 { margin: 0 0 5px 0; font-size: 16px; font-weight: 900; color: var(--rk-intro-dark); }
.rk-intro-btn p { margin: 0; font-size: 13px; color: var(--rk-intro-gray); }

/* Panele Wynikowe */
.rk-intro-panel {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 8px;
    padding: 30px;
}

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

.rk-intro-panel-content {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-intro-panel-content strong {
    color: var(--rk-intro-dark);
}

.rk-intro-alert-box {
    margin-top: 20px;
    padding: 15px 20px;
    background: var(--rk-intro-red-light);
    border-left: 4px solid var(--rk-intro-red);
    color: var(--rk-intro-red);
    font-weight: 800;
    font-size: 14px;
}

/* Zmodyfikowana Informacja o narzędziach (HooK) */
.rk-intro-tools-notice {
    background: #1e293b;
    color: #ffffff;
    padding: 25px 50px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    border-top: 2px solid var(--rk-intro-blue);
}

.rk-intro-tools-icon {
    color: var(--rk-intro-gold);
    background: rgba(245, 158, 11, 0.1);
    padding: 10px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-intro-tools-text {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.6;
    color: #cbd5e1;
}

.rk-intro-tools-text span {
    display: block;
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-intro-tools-text strong {
    color: var(--rk-intro-sky);
    font-weight: 800;
}

@media (max-width: 768px) {
    .rk-intro-hero, .rk-intro-quick-answer, .rk-intro-interactive, .rk-intro-tools-notice { padding: 30px 20px; }
    .rk-intro-hero h2 { font-size: 26px; }
    .rk-intro-decision-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-intro-tools-notice { flex-direction: column; text-align: center; align-items: center; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC: Dlaczego błąd o jedną strefę kosztuje Cię 6000 zł rocznie?",
    "description": "Zrozumienie podziału na 5 stref klimatycznych Polski według norm PN-82/B-02403 i PN-EN 12831. Sprawdź, jak błędna lokalizacja projektu niszczy OZC i podbija rachunki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-wstep",
    "name": "Wpływ błędu strefy klimatycznej na parametry ogrzewania",
    "description": "Zestawienie porównawcze strat ciepła i kosztów dla błędnego przypisania strefy klimatycznej w dokumentacji projektowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefy klimatyczne w Polsce mapa",
      "zapotrzebowanie na moc grzewczą OZC",
      "norma PN-EN 12831 projektowa temperatura",
      "źle dobrana pompa ciepła koszty",
      "uniwersalny projekt domu wady ogrzewanie"
    ],
    "measurementTechnique": "Określenie wpływu zmiany strefy klimatycznej (np. strefa II vs strefa V) na zaniżenie mocy urządzenia grzewczego i wzrost kosztów prądu o 6000 zł rocznie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Różnica w obliczeniach dla Poznania (strefa II) i Suwałk (strefa V) wynosi 6 K.",
        "Zignorowanie różnicy powoduje zaniżenie zapotrzebowania OZC o 18-25%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-wstep",
    "name": "Kalkulator Ryzyka Inwestycyjnego",
    "description": "Interaktywny moduł ostrzegawczy na starcie artykułu prezentujący finansowe konsekwencje kopiowania gotowych projektów bez adaptacji klimatycznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rkIntroHero">
    
    <!-- Hero / Hook -->
    <div class="rk-intro-hero">
        <div class="rk-intro-badge-alert">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Błąd wart tysiące złotych
        </div>
        <h2>Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC: Dlaczego błąd o jedną strefę kosztuje Cię 6000 zł rocznie?</h2>
        <p class="rk-intro-hero-lead">
            Każdy inwestor budujący dom staje przed dramatycznym wyborem: zaprojektować instalację rzetelnie pod realną lokalizację czy zdać się na &#8222;uniwersalny&#8221; projekt z katalogu. Jako specjalista z <strong>ponad 1000 zrealizowanych projektów</strong> pokażę Ci bezlitosną matematykę, która demaskuje największe kłamstwo branży instalacyjnej.
        </p>
    </div>

    <!-- Szybka Odpowiedź -->
    <div class="rk-intro-quick-answer">
        <div class="rk-intro-qa-title">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            Szybka odpowiedź specjalisty
        </div>
        <p class="rk-intro-qa-text">
            Strefy klimatyczne w Polsce to urzędowy podział terytorium kraju na <strong>5 stref</strong> (według norm PN-82/B-02403 oraz <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831</a>), określający minimalne temperatury projektowe z zewnątrz (od -16 st. C do -24 st. C). Bezpośrednio decydują one o mocy źródła ciepła (OZC) oraz wymuszają odpowiednią gęstość układu rur w posadzce.
        </p>
    </div>

    <!-- Interaktywny Moduł Zrozumienia -->
    <div class="rk-intro-interactive">
        <div class="rk-intro-interactive-title">Symulacja Ostrzegawcza: Poznań vs Suwałki</div>
        
        <div class="rk-intro-decision-grid">
            <button class="rk-intro-btn active" data-target="panel-bad" data-type="bad">
                <div class="rk-intro-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                </div>
                <h3>Gotowiec z internetu</h3>
                <p>Dom budowany &#8222;w ciemno&#8221;</p>
            </button>
            <button class="rk-intro-btn" data-target="panel-good" data-type="good">
                <div class="rk-intro-btn-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h3>Rzetelna inżynieria</h3>
                <p>Audyt strefy lokalnej</p>
            </button>
        </div>

        <div class="rk-intro-panel active" id="panel-bad">
            <div class="rk-intro-panel-content">
                Gdy kupujesz projekt wykonany dla łagodnej strefy II (-18 st. C), a budujesz dom na Suwalszczyźnie w strefie V (-24 st. C), różnica temperatury obliczeniowej wynosi <strong>aż 6 K</strong>.
                <div class="rk-intro-alert-box">
                    Zapotrzebowanie na moc grzewczą (OZC) zostaje natychmiast zaniżone o 18% do 25%. Zimą pompa ciepła nie daje rady, włącza drogą grzałkę, a Ty płacisz wyższe rachunki o 6000 zł rocznie.
                </div>
            </div>
        </div>

        <div class="rk-intro-panel" id="panel-good">
            <div class="rk-intro-panel-content">
                Wykonywanie precyzyjnego obliczenia strefowego sprawia, że rury układane są w odpowiednim zagęszczeniu (często co 10 cm, a nie uniwersalne 15 cm), a <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">wynik z kalkulatora strat ciepła</a> idealnie dobiera moc kompresora. Dom zużywa minimum prądu nawet przy siarczystych mrozach.
            </div>
        </div>
    </div>

    <!-- Informacja Nawigacyjna (Mocny Hook Dół) -->
    <div class="rk-intro-tools-notice">
        <div class="rk-intro-tools-icon">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 9.36l-7.1 7.1a1 1 0 0 1-1.4 0l-2.83-2.83a1 1 0 0 1 0-1.4l7.1-7.1a6 6 0 0 1 9.36-7.94l-3.77 3.77z"></path></svg>
        </div>
        <div class="rk-intro-tools-text">
            <span>🔥 BONUS NA SAMYM DOLE ARTYKUŁU</span>
            Przygotowaliśmy dla Ciebie unikalną <strong>Wyszukiwarkę Miejscowości</strong>. Przewiń ten poradnik do samego końca, wpisz swoje miasto i natychmiast sprawdź dedykowaną strefę klimatyczną, zalecany rozstaw rur, dokładne OZC oraz rekomendację dla Twojego projektu instalacji. Nie przegap tego!
        </div>
    </div>

</div>

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

    // Brak operatorów logicznych and/or w pętlach i logice
    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var target = this.getAttribute('data-target');

            // Usuwanie klas active
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Dodawanie klas active (natychmiastowe zmiany widoczności)
            this.classList.add('active');
            
            var targetPanel = document.getElementById(target);
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-map-dark: #0f172a;
    --rk-map-blue: #0284c7;
    --rk-map-sky: #e0f2fe;
    --rk-map-ice: #bae6fd;
    --rk-map-cold: #3b82f6;
    --rk-map-freeze: #1e3a8a;
    --rk-map-bg: #f8fafc;
    --rk-map-border: #cbd5e1;
    --rk-map-text: #475569;
}

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

.rk-map-header {
    background: var(--rk-map-dark);
    padding: 35px 45px;
    border-bottom: 4px solid var(--rk-map-cold);
    text-align: center;
}

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

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

/* Układ główny - Sidebar na desktopie, pionowo na mobile */
.rk-map-dashboard {
    display: grid;
    grid-template-columns: 280px 1fr;
    background: var(--rk-map-bg);
}

/* Lewa kolumna: Lista stref */
.rk-map-sidebar {
    background: #ffffff;
    padding: 25px;
    border-right: 1px solid var(--rk-map-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

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

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

.rk-map-btn.active {
    background: var(--rk-map-cold);
    border-color: var(--rk-map-cold);
    color: #ffffff;
    box-shadow: 0 8px 15px -3px rgba(59, 130, 246, 0.3);
}

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

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

.rk-map-btn-temp {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-map-cold);
    background: var(--rk-map-ice);
    padding: 4px 10px;
    border-radius: 6px;
    transition: all 0.3s;
}

.rk-map-btn.active .rk-map-btn-temp {
    background: #ffffff;
    color: var(--rk-map-cold);
}

/* Prawa kolumna: Dynamiczny Content */
.rk-map-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-map-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 30px -5px rgba(0,0,0,0.06);
    border: 1px solid var(--rk-map-border);
    position: relative;
    overflow: hidden;
}

.rk-map-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: var(--rk-map-cold);
    transition: background 0.4s;
}

.rk-map-card-top {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-map-border);
}

.rk-map-thermometer {
    width: 50px;
    height: 50px;
    background: var(--rk-map-sky);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-map-cold);
    flex-shrink: 0;
}

.rk-map-card-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-map-text);
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-map-card-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-map-dark);
}

.rk-map-card-value span {
    font-size: 16px;
    color: var(--rk-map-text);
}

.rk-map-details {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-map-text);
}

.rk-map-details strong {
    color: var(--rk-map-dark);
}

.rk-map-warning {
    margin-top: 25px;
    padding: 20px;
    background: var(--rk-map-sky);
    border-left: 4px solid var(--rk-map-cold);
    border-radius: 0 8px 8px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-map-dark);
}

.rk-map-warning a {
    color: var(--rk-map-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-map-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-map-dashboard { grid-template-columns: 1fr; }
    .rk-map-sidebar { border-right: none; border-bottom: 1px solid var(--rk-map-border); padding: 20px; }
    .rk-map-content { padding: 20px; }
    .rk-map-header { padding: 25px 20px; }
    .rk-map-header h2 { font-size: 22px; }
    .rk-map-card { padding: 25px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-5-stref",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "5 stref klimatycznych w Polsce według norm PN-82/B-02403 i PN-EN 12831",
    "description": "Interaktywny wykaz 5 stref klimatycznych Polski przypisujących projektowe temperatury zewnętrzne od -16 do -24 st. C do poszczególnych regionów geograficznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-5-stref",
    "name": "Tabela 5 stref klimatycznych Polski (PN-EN 12831)",
    "description": "Baza temperatur zewnętrznych używana do projektowania bilansu cieplnego budynków w Polsce, oparta na historycznych i obecnych normach zharmonizowanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podział Polski na strefy klimatyczne normy",
      "projektowa temperatura zewnętrzna PN-EN 12831",
      "temperatura obliczeniowa dla strefy górskiej",
      "strefy klimatyczne a projekt ogrzewania podłogowego",
      "polski biegun zimna OZC"
    ],
    "measurementTechnique": "Klasyfikacja terytorialna na 5 pasów temperaturowych służąca do wymiarowania mocy urządzeń grzewczych (pompy ciepła, kotły).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa I: -16 st. C (obszar nadmorski)",
        "Strefa II: -18 st. C (niziny zachodnie)",
        "Strefa III: -20 st. C (Polska centralna i wschodnia)",
        "Strefa IV: -22 st. C (tereny podwyższone)",
        "Strefa V: -24 st. C (obszary górskie i Suwalszczyzna)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-5-stref",
    "name": "Interaktywny Wykaz Stref Klimatycznych",
    "description": "Moduł inżynierski umożliwiający szybką lokalizację regionalnej temperatury projektowej bez konieczności wertowania wielostronicowych tabel normatywnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-map-container" id="rkMapZones">
    <div class="rk-map-header">
        <h2>5 stref klimatycznych w Polsce według norm PN-82/B-02403 i PN-EN 12831</h2>
        <p>Zgodnie z normami technicznymi, terytorium Polski zostało podzielone w zależności od ostrości zimy i uwarunkowań geograficznych. Każdej strefie przypisana jest konkretna projektowa temperatura zewnętrzna, która stanowi absolutną bazę do obliczeń bilansu mocy.</p>
    </div>

    <div class="rk-map-dashboard">
        
        <!-- Lewa kolumna: Nawigacja -->
        <div class="rk-map-sidebar" id="rkZoneNav">
            <button class="rk-map-btn active" data-z="1">
                <span class="rk-map-btn-name">Strefa I</span>
                <span class="rk-map-btn-temp">-16 st. C</span>
            </button>
            <button class="rk-map-btn" data-z="2">
                <span class="rk-map-btn-name">Strefa II</span>
                <span class="rk-map-btn-temp">-18 st. C</span>
            </button>
            <button class="rk-map-btn" data-z="3">
                <span class="rk-map-btn-name">Strefa III</span>
                <span class="rk-map-btn-temp">-20 st. C</span>
            </button>
            <button class="rk-map-btn" data-z="4">
                <span class="rk-map-btn-name">Strefa IV</span>
                <span class="rk-map-btn-temp">-22 st. C</span>
            </button>
            <button class="rk-map-btn" data-z="5">
                <span class="rk-map-btn-name">Strefa V</span>
                <span class="rk-map-btn-temp">-24 st. C</span>
            </button>
        </div>

        <!-- Prawa kolumna: Dynamiczny ekran -->
        <div class="rk-map-content">
            <div class="rk-map-card" id="rkZoneCard">
                <div class="rk-map-card-top">
                    <div class="rk-map-thermometer">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div>
                        <div class="rk-map-card-title">Projektowa temperatura zewnętrzna</div>
                        <div class="rk-map-card-value" id="zValue">-16 <span>st. C</span></div>
                    </div>
                </div>
                
                <div class="rk-map-details">
                    <strong>Przykładowe regiony / charakterystyka:</strong><br>
                    <span id="zRegion">Obszar nadmorski (np. Świnoujście, Kołobrzeg, Gdańsk – pas pobrzeża). Najłagodniejsze warunki projektowe w Polsce wynikające z bliskości ocieplających mas powietrza znad Bałtyku.</span>
                </div>

                <div class="rk-map-warning">
                    Pominięcie precyzyjnego przypisania budynku do odpowiedniej z tych 5 stref skutkuje fundamentalnym błędem w inżynierskich wyliczeniach i wypacza cały <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt instalacji</a>.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Słownik danych - bez użycia zagrażających znaków JS
    var strefy = {
        "1": {
            temp: "-16",
            region: "Obszar nadmorski (np. Świnoujście, Kołobrzeg, Gdańsk – pas pobrzeża). Najłagodniejsze warunki projektowe w Polsce wynikające z bliskości ocieplających mas powietrza znad Bałtyku.",
            color: "#3b82f6"
        },
        "2": {
            temp: "-18",
            region: "Niziny zachodnie i centralno-zachodnie (np. Szczecin, Poznań, Wrocław). Tereny o relatywnie krótkich zimach, gdzie sprawdzają się uniwersalne projekty gotowe.",
            color: "#2563eb"
        },
        "3": {
            temp: "-20",
            region: "Obszary centralne oraz część wschodnia (np. Warszawa, Łódź, Kraków, Podkarpacie – w zależności od lokalizacji nizinnej). Typowe polskie warunki uśrednione.",
            color: "#1d4ed8"
        },
        "4": {
            temp: "-22",
            region: "Tereny podwyższone i wschodnie krańce Polski (np. Białystok, Lublin, Kielce). Obszary narażone na kontynentalne fronty atmosferyczne i silniejsze mrozy.",
            color: "#1e40af"
        },
        "5": {
            temp: "-24",
            region: "Obszary górskie oraz Suwalszczyzna (tzw. polski biegun zimna, np. Suwałki, Zakopane). Ekstremalne warunki wymagające najwyższej precyzji przy projektowaniu OZC i zagęszczaniu pętli.",
            color: "#1e3a8a"
        }
    };

    var buttons = document.querySelectorAll('.rk-map-btn');
    var elValue = document.getElementById('zValue');
    var elRegion = document.getElementById('zRegion');
    var card = document.getElementById('rkZoneCard');

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var zoneKey = this.getAttribute('data-z');
            var data = strefy[zoneKey];

            // Czyszczenie klas aktywnych
            for (var j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            
            // Dodawanie aktywacji
            this.classList.add('active');

            // Aktualizacja treści z bezpiecznym sprawdzeniem
            if (data !== undefined) {
                elValue.innerHTML = data.temp + ' <span>st. C</span>';
                elRegion.innerHTML = data.region;
                
                // Wizualna zmiana "mrozu" na belce
                card.style.setProperty('--rk-map-cold', data.color);
            }
        });
    }
});
</script>



<style>
:root {
    --rk-impact-dark: #0f172a;
    --rk-impact-blue: #0ea5e9;
    --rk-impact-sky: #e0f2fe;
    --rk-impact-red: #ef4444;
    --rk-impact-red-light: #fef2f2;
    --rk-impact-gray: #64748b;
    --rk-impact-bg: #f8fafc;
    --rk-impact-border: #e2e8f0;
}

.rk-impact-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-impact-sky);
    overflow: hidden;
}

.rk-impact-header {
    background: linear-gradient(135deg, var(--rk-impact-dark), #1e293b);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-impact-blue);
    text-align: center;
}

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

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

.rk-impact-dashboard {
    padding: 35px 45px;
    background: var(--rk-impact-bg);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Panel sterowania suwakiem */
.rk-impact-control-panel {
    background: #ffffff;
    border: 1px solid var(--rk-impact-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

.rk-impact-label span {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-impact-dark);
    text-transform: uppercase;
}

.rk-impact-current-zone {
    background: var(--rk-impact-blue);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 16px;
}

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

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

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

.rk-impact-ticks {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    padding: 0 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-impact-gray);
}

/* Kafelki z dynamicznymi wynikami */
.rk-impact-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-impact-card {
    background: #ffffff;
    border: 1px solid var(--rk-impact-border);
    border-radius: 12px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Wymusza elastyczny układ, koniec z nakładaniem się */
}

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

.rk-impact-card.warning::before {
    background: var(--rk-impact-red);
}

.rk-impact-card.warning {
    background: var(--rk-impact-red-light);
    border-color: #fca5a5;
}

.rk-impact-card-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-impact-gray);
    margin-bottom: 15px;
    /* Usunięto sztywne height: 32px; - tekst naturalnie rośnie */
}

.rk-impact-card.warning .rk-impact-card-title {
    color: var(--rk-impact-red);
}

.rk-impact-card-val {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-impact-dark);
    margin-bottom: 5px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 5px;
}

.rk-impact-card.warning .rk-impact-card-val {
    color: var(--rk-impact-red);
}

.rk-impact-card-unit {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-impact-gray);
}

.rk-impact-card.warning .rk-impact-card-unit {
    color: var(--rk-impact-red);
}

/* Obszar opisowy pod spodem */
.rk-impact-desc {
    background: #ffffff;
    border-left: 4px solid var(--rk-impact-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-impact-desc strong {
    color: var(--rk-impact-dark);
}

.rk-impact-desc a {
    color: var(--rk-impact-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-impact-blue);
}

@media (max-width: 768px) {
    .rk-impact-header { padding: 30px 20px; text-align: left; }
    .rk-impact-header h2 { font-size: 22px; }
    .rk-impact-dashboard { padding: 25px 20px; gap: 20px; }
    .rk-impact-control-panel { padding: 25px 20px; }
    .rk-impact-cards { grid-template-columns: 1fr; gap: 15px; }
    .rk-impact-card { padding: 20px; flex-direction: row; align-items: center; text-align: left; }
    .rk-impact-card-title { margin-bottom: 0; font-size: 12px; max-width: 50%; }
    .rk-impact-card-val { font-size: 28px; margin-bottom: 0; }
    .rk-impact-desc { padding: 20px; }
    .rk-impact-ticks { display: none; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Jak strefa klimatyczna wpływa na obliczeniowe zapotrzebowanie na ciepło OZC budynku?",
    "description": "Symulacja wpływu surowości klimatu na moc pompy ciepła i dodatkowe koszty inwestycyjne. Przejście ze strefy I do V podnosi straty ciepła o ponad 22%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-wplyw",
    "name": "Wpływ strefy klimatycznej na moc OZC i koszty pompy ciepła (dom 150 m2)",
    "description": "Dane referencyjne pokazujące wzrost zapotrzebowania na moc grzewczą w skrajnych strefach temperaturowych Polski.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wpływ strefy klimatycznej na OZC",
      "dobór mocy pompy ciepła do OZC",
      "koszt pompy ciepła a zapotrzebowanie",
      "straty ciepła przez przenikanie",
      "obliczeniowe zapotrzebowanie na ciepło budynku 150m2"
    ],
    "measurementTechnique": "Analiza porównawcza szczytowego obciążenia cieplnego dla budynku 150 m2 przy założeniu stałej temperatury wewnętrznej +20 st. C i zmiennej zewnętrznej od -16 do -24 st. C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzrost mocy z 6.1 kW do 7.9 kW powodujący zmianę typoszeregu źródła ciepła (z 6 kW na 9 kW) i wzrost kosztu inwestycji o 4500 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-wplyw",
    "name": "Symulator Wzrostu Kosztów OZC",
    "description": "Interaktywne narzędzie prezentujące skokowe koszty modernizacji i przewymiarowania źródła ciepła wraz ze spadkiem temperatury strefowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-impact-container" id="rkSymulatorWplywu">
    <div class="rk-impact-header">
        <h2>Jak strefa klimatyczna wpływa na obliczeniowe zapotrzebowanie na ciepło OZC budynku?</h2>
        <p>Wpływ strefy na straty ciepła ma charakter geometryczny. Przesuń suwak i sprawdź, jak spadek temperatury w referencyjnym domu 150 m2 błyskawicznie podnosi moc urządzenia oraz wyciąga pieniądze z Twojego portfela.</p>
    </div>

    <div class="rk-impact-dashboard">
        
        <!-- Panel Sterowania -->
        <div class="rk-impact-control-panel">
            <div class="rk-impact-label">
                <span>Wybierz mróz (Strefy I - V)</span>
                <div class="rk-impact-current-zone" id="uiZoneName">Strefa I (-16 st. C)</div>
            </div>
            <input type="range" class="rk-impact-slider" id="uiZoneSlider" min="1" max="5" step="1" value="1">
            <div class="rk-impact-ticks">
                <span>Nadmorska</span>
                <span>Niziny</span>
                <span>Centralna</span>
                <span>Wschód</span>
                <span>Suwalszczyzna</span>
            </div>
        </div>

        <!-- Wyniki Dynamiczne -->
        <div class="rk-impact-cards">
            <div class="rk-impact-card">
                <div class="rk-impact-card-title">Różnica Temp.<br>(Delta T)</div>
                <div class="rk-impact-card-val" id="uiDelta">36 <span class="rk-impact-card-unit">K</span></div>
            </div>
            
            <div class="rk-impact-card">
                <div class="rk-impact-card-title">Szczytowe<br>Zapotrzebowanie</div>
                <div class="rk-impact-card-val" id="uiOzc">6.1 <span class="rk-impact-card-unit">kW</span></div>
            </div>

            <div class="rk-impact-card" id="uiCostCard">
                <div class="rk-impact-card-title">Dopłata do<br>typoszeregu pompy</div>
                <div class="rk-impact-card-val" id="uiCost">+0 <span class="rk-impact-card-unit">PLN</span></div>
            </div>
        </div>

        <!-- Analiza Opisowa -->
        <div class="rk-impact-desc" id="uiDesc">
            Przejście ze strefy I (-16 st. C) do skrajnej strefy V (-24 st. C) przy utrzymaniu temperatury we wnętrzu +20 st. C zwiększa różnicę temperatur do 44 K. <strong>Straty ciepła rosną o ponad 22%.</strong> To wymusza błyskawiczną zmianę <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> z jednostki 6 kW na wariant 9 kW, generując ogromne różnice podczas <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksowej wyceny ogrzewania podłogowego</a>. Precyzyjne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> uchroni Cię przed zamrożeniem instalacji.
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('uiZoneSlider');
    var elZoneName = document.getElementById('uiZoneName');
    var elDelta = document.getElementById('uiDelta');
    var elOzc = document.getElementById('uiOzc');
    var elCost = document.getElementById('uiCost');
    var elCostCard = document.getElementById('uiCostCard');

    // Baza danych dla stref (bez użycia zagrażających znaków logicznych w funkcjach)
    var impactData = {
        "1": { name: "Strefa I (-16 st. C)", delta: "36", ozc: "6.1", cost: "0" },
        "2": { name: "Strefa II (-18 st. C)", delta: "38", ozc: "6.5", cost: "1500" },
        "3": { name: "Strefa III (-20 st. C)", delta: "40", ozc: "6.8", cost: "3000" },
        "4": { name: "Strefa IV (-22 st. C)", delta: "42", ozc: "7.3", cost: "3000" },
        "5": { name: "Strefa V (-24 st. C)", delta: "44", ozc: "7.9", cost: "4500" }
    };

    function updateImpactDashboard() {
        var val = slider.value;
        var data = impactData[val];

        elZoneName.innerText = data.name;
        elDelta.innerHTML = data.delta + ' <span class="rk-impact-card-unit">K</span>';
        elOzc.innerHTML = data.ozc + ' <span class="rk-impact-card-unit">kW</span>';
        elCost.innerHTML = '+' + data.cost + ' <span class="rk-impact-card-unit">PLN</span>';

        // Efekty wizualne ostrzeżeń finansowych
        if (data.cost === "0") {
            elCostCard.classList.remove('warning');
        }
        if (data.cost !== "0") {
            elCostCard.classList.add('warning');
        }
    }

    slider.addEventListener('input', updateImpactDashboard);
    
    // Inicjalizacja przy pierwszym załadowaniu
    updateImpactDashboard();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-sky: #e0f2fe;
    --rk-calc-green: #10b981;
    --rk-calc-green-light: #d1fae5;
    --rk-calc-gray: #64748b;
    --rk-calc-bg: #f8fafc;
    --rk-calc-border: #cbd5e1;
}

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

.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark), #1e293b);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-blue);
    text-align: center;
}

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

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

/* Główny obszar dashboardu */
.rk-calc-dashboard {
    padding: 35px 45px;
    background: var(--rk-calc-bg);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Siatka kontrolek 2x2 na desktopie */
.rk-calc-controls-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    background: #ffffff;
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.02);
}

.rk-control-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-control-value {
    background: var(--rk-calc-sky);
    color: var(--rk-calc-blue);
    padding: 5px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 14px;
}

/* Wybór strefy - przyciski poziome */
.rk-zone-selector {
    display: flex;
    gap: 8px;
    width: 100%;
}

.rk-zone-opt {
    flex: 1;
    padding: 10px 0;
    text-align: center;
    background: var(--rk-calc-bg);
    border: 1px solid var(--rk-calc-border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-calc-gray);
    transition: all 0.2s;
}

.rk-zone-opt:hover {
    border-color: var(--rk-calc-blue);
}

.rk-zone-opt.active {
    background: var(--rk-calc-blue);
    color: #ffffff;
    border-color: var(--rk-calc-blue);
}

/* Suwaki */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    outline: none;
    margin-top: 8px;
}

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

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

/* Siatka wyników pośrednich (3 kolumny) */
.rk-calc-steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    overflow: hidden;
}

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

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

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

.rk-step-val span {
    font-size: 16px;
    color: var(--rk-calc-gray);
    font-weight: 700;
}

/* Wynik końcowy OZC (pełna szerokość) */
.rk-final-card {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 35px;
    text-align: center;
    color: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    position: relative;
    overflow: hidden;
}

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

.rk-final-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-final-value {
    font-size: 48px;
    font-weight: 900;
    color: var(--rk-calc-green-light);
}

.rk-final-value span {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-calc-green);
}

.rk-final-desc {
    font-size: 14px;
    color: #94a3b8;
    margin-top: 15px;
    line-height: 1.6;
}

.rk-final-desc a {
    color: var(--rk-calc-sky);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dotted var(--rk-calc-sky);
}

/* Responsywność - układ pionowy na mobile */
@media (max-width: 768px) {
    .rk-calc-header { padding: 30px 20px; text-align: left; }
    .rk-calc-header h2 { font-size: 22px; }
    .rk-calc-dashboard { padding: 25px 20px; gap: 20px; }
    .rk-calc-controls-grid { grid-template-columns: 1fr; gap: 25px; padding: 20px; }
    .rk-calc-steps-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-zone-selector { flex-wrap: wrap; }
    .rk-zone-opt { min-width: 30%; }
    .rk-final-card { padding: 25px 20px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Jak obliczyć OZC dla wybranej strefy klimatycznej krok po kroku według algorytmu inżynierskiego?",
    "description": "Interaktywny algorytm obliczeniowy prezentujący wpływ strefy klimatycznej, izolacji i wentylacji na szczytowe zapotrzebowanie na ciepło (OZC) budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-kalkulator",
    "name": "Algorytm i parametry wejściowe do obliczeń OZC",
    "description": "Baza zmiennych projektowych wykorzystywana do wyznaczania strat ciepła przez przenikanie oraz wentylację w oparciu o normy PN-EN.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczeniowe zapotrzebowanie na ciepło kalkulator",
      "jak obliczyć ozc budynku",
      "straty ciepła przez przenikanie",
      "współczynnik przenikania ciepła u",
      "zapotrzebowanie energetyczne budynku wzór"
    ],
    "measurementTechnique": "Dynamiczna kalkulacja strat ciepła wykorzystująca parametry strefowe (Delta T), współczynniki izolacyjności (U) oraz straty na wentylacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wyznaczenie różnicy temperatur (wewnątrz +20 st. C, zewnątrz zależnie od strefy).",
        "Krok 2: Obliczenie strat przez przegrody bazując na powierzchni i izolacyjności.",
        "Krok 3: Wyliczenie strat wentylacyjnych.",
        "Krok 4: Bilans końcowy ze współczynnikiem narzutu na rozruch 1.10."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Algorytmu OZC",
    "description": "Narzędzie inżynierskie umożliwiające inwestorom samodzielną symulację zapotrzebowania na moc grzewczą w czasie rzeczywistym, poprzez manipulację parametrami przegród i strefą klimatyczną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rkKalkulatorOZC">
    <div class="rk-calc-header">
        <h2>Jak obliczyć OZC dla wybranej strefy klimatycznej krok po kroku według algorytmu inżynierskiego?</h2>
        <p>Zapotrzebowanie na ciepło (OZC) dla budynku jednorodzinnego w oparciu o strefę wyznacza się za pomocą ścisłego algorytmu. Przesuń suwaki poniżej i zobacz, jak parametry budynku reagują na surowszy klimat w czasie rzeczywistym.</p>
    </div>

    <div class="rk-calc-dashboard">
        
        <!-- Sekcja Górna: Panele Sterowania 2x2 -->
        <div class="rk-calc-controls-grid">
            
            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>1. Wybierz strefę (Temp. zewn.)</span>
                </div>
                <div class="rk-zone-selector" id="rkZoneSelect">
                    <div class="rk-zone-opt" data-temp="-16">I (-16)</div>
                    <div class="rk-zone-opt" data-temp="-18">II (-18)</div>
                    <div class="rk-zone-opt" data-temp="-20">III (-20)</div>
                    <div class="rk-zone-opt active" data-temp="-22">IV (-22)</div>
                    <div class="rk-zone-opt" data-temp="-24">V (-24)</div>
                </div>
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>2. Powierzchnia Przegród (A)</span>
                    <span class="rk-control-value" id="valAreaOut">200 m2</span>
                </div>
                <input type="range" class="rk-slider" id="inpArea" min="100" max="400" step="10" value="200">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>3. Średni Współczynnik (U)</span>
                    <span class="rk-control-value" id="valUOut">0.18 W/m2K</span>
                </div>
                <input type="range" class="rk-slider" id="inpU" min="0.10" max="0.30" step="0.01" value="0.18">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>4. Strumień Wentylacji</span>
                    <span class="rk-control-value" id="valVentOut">150 m3/h</span>
                </div>
                <input type="range" class="rk-slider" id="inpVent" min="50" max="300" step="10" value="150">
            </div>

        </div>

        <!-- Sekcja Środkowa: Wyniki Pośrednie -->
        <div class="rk-calc-steps-grid">
            <div class="rk-step-card">
                <div class="rk-step-title">Krok 1: Różnica (Delta T)</div>
                <div class="rk-step-val" id="resDeltaT">42 <span>K</span></div>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-title">Krok 2: Straty Przenikania</div>
                <div class="rk-step-val" id="resPhiT">1512 <span>W</span></div>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-title">Krok 3: Straty Wentylacji</div>
                <div class="rk-step-val" id="resPhiV">2142 <span>W</span></div>
            </div>
        </div>

        <!-- Sekcja Dolna: Wynik Końcowy -->
        <div class="rk-final-card">
            <div class="rk-final-title">Krok 4: Bilans Końcowy OZC (Szczytowy)</div>
            <div class="rk-final-value" id="resFinalKw">4.02 <span>kW</span></div>
            <div class="rk-final-desc">
                Z uwzględnieniem normowego narzutu +10% na ogrzewanie przejściowe po obniżeniu temperatury. Koniecznie sprawdź również <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">zaawansowany kalkulator strat ciepła budynku</a> dla pełnej weryfikacji.
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje do elementów DOM
    var optsZone = document.querySelectorAll('.rk-zone-opt');
    var inpArea = document.getElementById('inpArea');
    var inpU = document.getElementById('inpU');
    var inpVent = document.getElementById('inpVent');

    var valAreaOut = document.getElementById('valAreaOut');
    var valUOut = document.getElementById('valUOut');
    var valVentOut = document.getElementById('valVentOut');

    var resDeltaT = document.getElementById('resDeltaT');
    var resPhiT = document.getElementById('resPhiT');
    var resPhiV = document.getElementById('resPhiV');
    var resFinalKw = document.getElementById('resFinalKw');

    // Zmienna przechowująca temperaturę zewnętrzną (domyślnie -22 dla strefy IV)
    var currentTempZewn = -22;

    // Funkcja obliczająca OZC
    function calculateOZC() {
        var area = parseFloat(inpArea.value);
        var uValue = parseFloat(inpU.value);
        var vent = parseFloat(inpVent.value);

        // Aktualizacja etykiet nad suwakami
        valAreaOut.innerText = area + " m2";
        valUOut.innerText = uValue.toFixed(2) + " W/m2K";
        valVentOut.innerText = vent + " m3/h";

        // Krok 1: Różnica temperatur (wewnątrz stałe 20 st. C)
        var deltaT = 20 - currentTempZewn;
        resDeltaT.innerHTML = deltaT + " <span>K</span>";

        // Krok 2: Przenikanie
        var phiT = Math.round(uValue * area * deltaT);
        resPhiT.innerHTML = phiT + " <span>W</span>";

        // Krok 3: Wentylacja (0.34 to przybliżone ciepło właściwe powietrza)
        var phiV = Math.round(vent * 0.34 * deltaT);
        resPhiV.innerHTML = phiV + " <span>W</span>";

        // Krok 4: Bilans z zapasem 10%
        var totalW = Math.round((phiT + phiV) * 1.10);
        var totalKW = (totalW / 1000).toFixed(2);
        resFinalKw.innerHTML = totalKW + " <span>kW</span>";
    }

    // Bezpieczne nasłuchiwanie kliknięć stref (brak zagrażających znaków logicznych)
    for (var i = 0; i < optsZone.length; i++) {
        optsZone[i].addEventListener('click', function() {
            var selectedTemp = parseFloat(this.getAttribute('data-temp'));
            
            // Usuwanie klasy active ze wszystkich przycisków
            for (var j = 0; j < optsZone.length; j++) {
                optsZone[j].classList.remove('active');
            }
            
            this.classList.add('active');
            currentTempZewn = selectedTemp;
            
            // Przelicz układ
            calculateOZC();
        });
    }

    // Nasłuchiwanie na suwaki
    inpArea.addEventListener('input', calculateOZC);
    inpU.addEventListener('input', calculateOZC);
    inpVent.addEventListener('input', calculateOZC);

    // Inicjalne uruchomienie
    calculateOZC();
});
</script>



<style>
:root {
    --rk-zone-dark: #0f172a;
    --rk-zone-blue: #0284c7;
    --rk-zone-sky: #e0f2fe;
    --rk-zone-red: #ef4444;
    --rk-zone-gray: #64748b;
    --rk-zone-light: #f8fafc;
    --rk-zone-border: #cbd5e1;
}

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

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

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

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

.rk-zone-interactive {
    padding: 40px 45px;
    background: var(--rk-zone-light);
}

/* Przełączniki stref - pionowe na mobile */
.rk-zone-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 40px;
}

.rk-zone-btn {
    flex: 1;
    padding: 18px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-zone-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-zone-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
}

.rk-zone-btn.active {
    background: var(--rk-zone-sky);
    border-color: var(--rk-zone-blue);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.15);
    transform: translateY(0);
}

.rk-zone-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #f1f5f9;
    color: var(--rk-zone-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    flex-shrink: 0;
    transition: all 0.3s;
}

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

.rk-zone-btn-text h3 {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-zone-dark);
}

.rk-zone-btn-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-zone-gray);
}

/* Dashboard z danymi parametrycznymi */
.rk-zone-dashboard {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-zone-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

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

.rk-metric-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-zone-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.rk-metric-value {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-zone-dark);
    margin-bottom: 5px;
    transition: color 0.3s ease;
}

.rk-metric-unit {
    font-size: 16px;
    color: var(--rk-zone-gray);
    font-weight: 700;
}

.rk-metric-desc {
    font-size: 14px;
    line-height: 1.5;
    color: #475569;
    margin-top: 10px;
}

.rk-metric-desc a {
    color: var(--rk-zone-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-zone-blue);
}

/* Podsumowanie analityczne */
.rk-zone-summary {
    margin-top: 25px;
    padding: 20px 25px;
    background: var(--rk-zone-dark);
    border-radius: 12px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-summary-icon {
    width: 48px;
    height: 48px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-zone-sky);
    flex-shrink: 0;
}

.rk-summary-text {
    font-size: 15px;
    line-height: 1.6;
}

.rk-summary-text strong {
    color: var(--rk-zone-sky);
}

/* Widok mobilny */
@media (max-width: 768px) {
    .rk-zone-header, .rk-zone-interactive { padding: 30px 20px; }
    .rk-zone-controls { flex-direction: column; gap: 10px; margin-bottom: 30px; }
    .rk-zone-btn { padding: 15px; }
    .rk-zone-dashboard { grid-template-columns: 1fr; gap: 15px; }
    .rk-metric-card { padding: 20px; }
    .rk-zone-summary { flex-direction: column; text-align: center; gap: 15px; padding: 25px 20px; }
    .rk-zone-header h2 { font-size: 22px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-roznice",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Jakie są parametryczne różnice w obciążeniu cieplnym między strefą I, III a V w Polsce?",
    "description": "Interaktywny panel zestawiający zmiany parametrów projektowych, takich jak projektowa temperatura zewnętrzna, różnica temperatur (Delta T), moc OZC oraz maksymalna temperatura zasilania podłogówki dla stref klimatycznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-roznice",
    "name": "Tabela różnic parametrycznych stref klimatycznych w Polsce",
    "description": "Cyfrowe zestawienie wartości wejściowych do projektowania wodnego ogrzewania podłogowego. Dane wykazują zmiany od strefy I do V, w tym skok mocy OZC i temperatury hydraulicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowa temperatura zewnętrzna",
      "szczytowa moc OZC budynku 150m2",
      "maksymalna temperatura zasilania podłogówki",
      "różnica temperatur w strefach klimatycznych",
      "obciążenie cieplne a strefa w Polsce"
    ],
    "measurementTechnique": "Algorytmiczne obliczenia bilansu ciepła oparte na normach budowlanych, określające parametry hydrauliczne dla poszczególnych rejonów kraju.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa I: Temp -16 st. C, Moc OZC 6.1 kW, Zasilanie max 33 st. C",
        "Strefa III: Temp -20 st. C, Moc OZC 6.8 kW, Zasilanie max 36 st. C",
        "Strefa V: Temp -24 st. C, Moc OZC 7.9 kW, Zasilanie max 41 st. C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-roznice",
    "name": "Interaktywny Symulator Parametrów Klimatycznych",
    "description": "Widżet pozwalający użytkownikowi na żywo zmieniać strefy klimatyczne i obserwować w czasie rzeczywistym, jak zmienia się projektowe obciążenie budynku i temperatura źródła ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-zone-container" id="rkZoneParams">
    <div class="rk-zone-header">
        <h2>Jakie są parametryczne różnice w obciążeniu cieplnym między strefą I, III a V w Polsce?</h2>
        <p>Poniższe zestawienie parametrów projektowych dla skrajnych i środkowych stref klimatycznych obnaża brutalną prawdę inżynierską – to geografia w głównej mierze decyduje o rozmiarach Twojej instalacji grzewczej i portfelu.</p>
    </div>

    <div class="rk-zone-interactive">
        
        <!-- Przełączniki (układ pionowy na mobile) -->
        <div class="rk-zone-controls" id="rkZoneTabs">
            <button class="rk-zone-btn active" data-zone="z1">
                <div class="rk-zone-icon">I</div>
                <div class="rk-zone-btn-text">
                    <h3>Strefa Nadmorska</h3>
                    <p>Względnie łagodna zima</p>
                </div>
            </button>
            <button class="rk-zone-btn" data-zone="z3">
                <div class="rk-zone-icon">III</div>
                <div class="rk-zone-btn-text">
                    <h3>Centralna Polska</h3>
                    <p>Typowe mrozy (np. Podkarpacie nizinne)</p>
                </div>
            </button>
            <button class="rk-zone-btn" data-zone="z5">
                <div class="rk-zone-icon">V</div>
                <div class="rk-zone-btn-text">
                    <h3>Góry / Suwalszczyzna</h3>
                    <p>Ekstremalne uderzenia chłodu</p>
                </div>
            </button>
        </div>

        <!-- Dashboard Wartości Parametrycznych -->
        <div class="rk-zone-dashboard">
            
            <div class="rk-metric-card">
                <div class="rk-metric-label">Projektowa Temp. Zewnętrzna</div>
                <div class="rk-metric-value" id="valTemp">-16 <span class="rk-metric-unit">st. C</span></div>
                <div class="rk-metric-desc">Baza do startu obliczeń zapotrzebowania w danym rejonie kraju.</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-label">Różnica Temperatur (Delta T)</div>
                <div class="rk-metric-value" id="valDiff">36 <span class="rk-metric-unit">K</span></div>
                <div class="rk-metric-desc">Zakładając we wnętrzu komfortowe 20 st. C. Zobacz jak powstaje <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budynku</a>.</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-label">Moc OZC (dla 150 m2)</div>
                <div class="rk-metric-value" id="valOzc" style="color: var(--rk-zone-blue);">6.1 <span class="rk-metric-unit">kW</span></div>
                <div class="rk-metric-desc">Szczytowa wielkość źródła ciepła (wartość dla budynku w standardzie energooszczędnym).</div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-label">Max. Temperatura Zasilania</div>
                <div class="rk-metric-value" id="valFlow">33 <span class="rk-metric-unit">st. C</span></div>
                <div class="rk-metric-desc">Sprawdź dlaczego optymalizacja pod <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalną temperaturę zasilania</a> jest kluczowa dla żywotności wylewki.</div>
            </div>

        </div>

        <!-- Dynamiczne Wnioski -->
        <div class="rk-zone-summary">
            <div class="rk-summary-icon">
                <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            </div>
            <div class="rk-summary-text" id="valSummary">
                W strefie I mamy optymalne środowisko dla pomp ciepła i niskich parametrów hydraulicznych. Przepływy są swobodne, a zapotrzebowanie budynku umiarkowane. Zgodnie z normą <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" style="color:#e0f2fe; text-decoration:underline;">PN-EN 1264</a>, system pracuje w najbezpieczniejszym cyklu.
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Słownik danych dla poszczególnych stref (brak konieczności użycia && w logice)
    var zoneData = {
        z1: {
            temp: "-16",
            diff: "36",
            ozc: "6.1",
            flow: "33",
            color: "var(--rk-zone-blue)",
            summary: "W strefie I mamy optymalne środowisko dla pomp ciepła i niskich parametrów hydraulicznych. Przepływy są swobodne, a zapotrzebowanie budynku umiarkowane. Zgodnie z normą <a href=\"https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/\" style=\"color:#e0f2fe; text-decoration:underline;\">PN-EN 1264</a>, system pracuje w najbezpieczniejszym cyklu."
        },
        z3: {
            temp: "-20",
            diff: "40",
            ozc: "6.8",
            flow: "36",
            color: "#f59e0b", // pomarańczowy
            summary: "W strefie III temperatura zasilania rośnie. Większa strata ciepła (40 K różnicy) wymusza rzetelne obliczenia przepływów. Urządzenie grzewcze musi pracować stabilnie, by wyrównać utratę energii emitowanej przez przegrody zewnętrzne."
        },
        z5: {
            temp: "-24",
            diff: "44",
            ozc: "7.9",
            flow: "41",
            color: "var(--rk-zone-red)",
            summary: "Analiza dla strefy V pokazuje powagę sytuacji: <strong>maksymalna temperatura zasilania podłogówki wzrasta tu aż o 8 stopni w stosunku do strefy I</strong>. To konieczne, aby w czasie -24 st. C mrozów dostarczyć wymaganą gęstość strumienia ciepła z tej samej powierzchni posadzki."
        }
    };

    var buttons = document.querySelectorAll('.rk-zone-btn');
    var elTemp = document.getElementById('valTemp');
    var elDiff = document.getElementById('valDiff');
    var elOzc = document.getElementById('valOzc');
    var elFlow = document.getElementById('valFlow');
    var elSum = document.getElementById('valSummary');

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var selectedId = this.getAttribute('data-zone');
            var data = zoneData[selectedId];

            // Czyszczenie aktywacji
            for (var j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            
            // Ustawienie aktualnego elementu
            this.classList.add('active');

            // Nadpisanie wartości
            elTemp.innerHTML = data.temp + ' <span class="rk-metric-unit">st. C</span>';
            elDiff.innerHTML = data.diff + ' <span class="rk-metric-unit">K</span>';
            
            elOzc.style.color = data.color;
            elOzc.innerHTML = data.ozc + ' <span class="rk-metric-unit">kW</span>';
            
            elFlow.innerHTML = data.flow + ' <span class="rk-metric-unit">st. C</span>';
            elSum.innerHTML = data.summary;
        });
    }
});
</script>



<style>
:root {
    --rk-space-dark: #0f172a;
    --rk-space-blue: #0284c7;
    --rk-space-light-blue: #e0f2fe;
    --rk-space-red: #ef4444;
    --rk-space-red-light: #fef2f2;
    --rk-space-gray: #64748b;
    --rk-space-bg: #f8fafc;
    --rk-space-border: #cbd5e1;
}

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

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

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

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

.rk-space-interactive {
    padding: 40px 45px;
    background: var(--rk-space-bg);
}

/* Przełącznik stref (Toggle) */
.rk-space-toggles {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-radius: 12px;
    padding: 6px;
    margin-bottom: 35px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

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

.rk-space-toggle:hover {
    color: var(--rk-space-dark);
}

.rk-space-toggle.active {
    background: var(--rk-space-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px -2px rgba(2, 132, 199, 0.4);
}

/* Panel Danych */
.rk-space-view {
    display: none;
    animation: fadeInSlide 0.4s ease forwards;
}

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

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

.rk-space-visual {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

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

/* Rysunek rur SVG */
.rk-pipe-pattern {
    width: 100%;
    height: 140px;
    background-color: #f1f5f9;
    border-radius: 8px;
    margin-bottom: 20px;
    position: relative;
}

.rk-pipe-line {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 12px;
    background: linear-gradient(90deg, #ef4444, #fca5a5);
    border-radius: 6px;
    box-shadow: 2px 0 5px rgba(239, 68, 68, 0.2);
}

/* Gęstość rur sterowana klasami */
.pipes-sparse .rk-pipe-line:nth-child(1) { left: 20%; }
.pipes-sparse .rk-pipe-line:nth-child(2) { left: 50%; }
.pipes-sparse .rk-pipe-line:nth-child(3) { left: 80%; }
.pipes-sparse .rk-pipe-line:nth-child(4), .pipes-sparse .rk-pipe-line:nth-child(5) { display: none; }

.pipes-dense .rk-pipe-line:nth-child(1) { left: 10%; }
.pipes-dense .rk-pipe-line:nth-child(2) { left: 30%; }
.pipes-dense .rk-pipe-line:nth-child(3) { left: 50%; }
.pipes-dense .rk-pipe-line:nth-child(4) { left: 70%; }
.pipes-dense .rk-pipe-line:nth-child(5) { left: 90%; }

.rk-space-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-space-dark);
}

.rk-space-val span {
    font-size: 16px;
    color: var(--rk-space-gray);
    font-weight: 700;
}

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

.rk-stat-box {
    background: #ffffff;
    border: 1px solid var(--rk-space-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-stat-box.warning {
    background: var(--rk-space-red-light);
    border-color: #fca5a5;
}

.rk-stat-label {
    font-size: 13px;
    color: var(--rk-space-gray);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 5px;
}

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

.rk-stat-box.warning .rk-stat-value, .rk-stat-box.warning .rk-stat-label {
    color: var(--rk-space-red);
}

.rk-stat-desc {
    font-size: 14px;
    color: #475569;
    margin-top: 8px;
    line-height: 1.5;
}

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

@media (max-width: 768px) {
    .rk-space-header, .rk-space-interactive { padding: 30px 20px; }
    .rk-space-toggles { flex-direction: column; max-width: 100%; border-radius: 12px; }
    .rk-space-toggle { padding: 16px; }
    .rk-space-view.active { grid-template-columns: 1fr; gap: 20px; }
    .rk-space-header h2 { font-size: 22px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-rozstaw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Jak strefa klimatyczna wymusza zmianę rozstawu rur i gęstości pętli w ogrzewaniu podłogowym?",
    "description": "Interaktywna analiza wpływu surowości stref klimatycznych na zagęszczenie rur instalacji podłogowej, gęstość strumienia cieplnego oraz parametry pracy pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-rozstaw",
    "name": "Zależność rozstawu rur od strefy klimatycznej i zapotrzebowania na moc",
    "description": "Zestawienie gęstości strumienia cieplnego i skoku rur w ogrzewaniu płaszczyznowym, definiujące optymalne warunki wymiany ciepła dla różnych rejonów Polski.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur ogrzewania podłogowego",
      "strefy klimatyczne a gęstość pętli",
      "moc cieplna z m2 podłogówki",
      "temperatura zasilania pompy ciepła",
      "strefa brzegowa podłogówki rozstaw"
    ],
    "measurementTechnique": "Symulacja zmian zapotrzebowania na ciepło W/m2 w skrajnych strefach klimatycznych wg normowych temperatur zewnętrznych, przy utrzymaniu max. temp. posadzki 29 st. C.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa I: Średnie zapotrzebowanie 45 W/m2, optymalny rozstaw 15 cm.",
        "Strefa V: Zapotrzebowanie szczytowe 62 W/m2, rozstaw zagęszczony do 10 cm, w strefach brzegowych do 7,5 cm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-rozstaw",
    "name": "Symulator Rozstawu Rur Podłogówki wg Strefy",
    "description": "Wizualizacja zagęszczenia pętli grzewczych i wpływu na wydajność SCOP w zależności od lokalizacji inwestycji na mapie Polski (skrajne warunki OZC).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-space-container" id="rkRozstawSymulator">
    <div class="rk-space-header">
        <h2>Jak strefa klimatyczna wymusza zmianę rozstawu rur i gęstości pętli w ogrzewaniu podłogowym?</h2>
        <p>Podział na 5 stref klimatycznych bezpośrednio decyduje o zagęszczeniu skoku rur podłogówki. W rejonach o surowszych zimach posadzka musi wyemitować znacznie większą moc cieplną z każdego metra kwadratowego, bez przekraczania bezpiecznej dla zdrowia temperatury powierzchni.</p>
    </div>

    <div class="rk-space-interactive">
        <div class="rk-space-toggles">
            <button class="rk-space-toggle active" data-zone="1">Strefa I (Nadmorska)</button>
            <button class="rk-space-toggle" data-zone="5">Strefa V (Górska / Suwałki)</button>
        </div>

        <!-- Widok dla Strefy I -->
        <div class="rk-space-view active" id="zone-1">
            <div class="rk-space-visual">
                <div class="rk-space-visual-title">Gęstość układania rur</div>
                <div class="rk-pipe-pattern pipes-sparse">
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                </div>
                <div class="rk-space-val">15 <span>cm</span></div>
                <div class="rk-stat-desc">Komfortowy i ekonomiczny układ dla łagodnych zim.</div>
            </div>
            
            <div class="rk-space-stats">
                <div class="rk-stat-box">
                    <div class="rk-stat-label">Strumień cieplny (q)</div>
                    <div class="rk-stat-value">~45 W/m2</div>
                    <div class="rk-stat-desc">Standardowe zapotrzebowanie salonu na ciepło. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">Zobacz zasady układania</a>.</div>
                </div>
                <div class="rk-stat-box">
                    <div class="rk-stat-label">Efektywność i Bilans</div>
                    <div class="rk-stat-value" style="color: #059669;">Wysoki SCOP</div>
                    <div class="rk-stat-desc">Układ bez problemu osiąga bilans przy bardzo niskiej i bezpiecznej dla pompy temperaturze zasilania. Powierzchnia utrzymana poniżej 29 st. C.</div>
                </div>
            </div>
        </div>

        <!-- Widok dla Strefy V -->
        <div class="rk-space-view" id="zone-5">
            <div class="rk-space-visual" style="border-color: #fca5a5;">
                <div class="rk-space-visual-title">Zagęszczenie układania rur</div>
                <div class="rk-pipe-pattern pipes-dense">
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                    <div class="rk-pipe-line"></div>
                </div>
                <div class="rk-space-val">10 <span>cm</span></div>
                <div class="rk-stat-desc">Konieczność przy mrozach sięgających -24 st. C.</div>
            </div>
            
            <div class="rk-space-stats">
                <div class="rk-stat-box">
                    <div class="rk-stat-label">Strumień cieplny (q)</div>
                    <div class="rk-stat-value">~62 W/m2</div>
                    <div class="rk-stat-desc">Drastyczny wzrost zapotrzebowania, wymagający uwzględnienia specyficznych <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">stref brzegowych</a> ze skokiem rur co 7,5 cm.</div>
                </div>
                <div class="rk-stat-box warning">
                    <div class="rk-stat-label">Ryzyko Katalogowego Błędu</div>
                    <div class="rk-stat-value">Spadek wydajności źródła</div>
                    <div class="rk-stat-desc">Zastosowanie gotowego rozstawu 15 cm uniemożliwi bilans cieplny przy niskim parametrze. Zmusi to użytkownika do podbicia krzywej grzewczej i drastycznego pogorszenia wskaźnika SCOP.</div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggles = document.querySelectorAll('.rk-space-toggle');
    var views = document.querySelectorAll('.rk-space-view');

    for (var i = 0; i < toggles.length; i++) {
        toggles[i].addEventListener('click', function() {
            var targetZone = this.getAttribute('data-zone');

            // Czyszczenie aktywnych klas (kod bezpieczny)
            for (var j = 0; j < toggles.length; j++) {
                toggles[j].classList.remove('active');
            }
            for (var k = 0; k < views.length; k++) {
                views[k].classList.remove('active');
            }

            // Aktywacja wybranych elementów
            this.classList.add('active');
            var activeView = document.getElementById('zone-' + targetZone);
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-bg: #f8fafc;
    --rk-err-border: #e2e8f0;
}

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

.rk-err-header {
    background: var(--rk-err-dark);
    padding: 35px 45px;
    border-bottom: 4px solid var(--rk-err-red);
    text-align: center;
}

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

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

/* Nowa Nawigacja Górna (Siatka 2x2) */
.rk-err-top-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    padding: 35px 45px 0;
    background: var(--rk-err-bg);
}

.rk-err-tab-btn {
    width: 100%;
    text-align: left;
    padding: 20px;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-err-tab-btn:hover {
    border-color: #cbd5e1;
    transform: translateY(-2px);
}

.rk-err-tab-btn.active {
    background: var(--rk-err-red-light);
    border: 1px solid #fca5a5;
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
    transform: translateY(0);
}

.rk-err-tab-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

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

.rk-err-tab-text {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-dark);
    line-height: 1.3;
}

/* Panel Wyświetlania Contentu (Pełna szerokość) */
.rk-err-content-panel {
    padding: 35px 45px 45px;
    background: var(--rk-err-bg);
}

.rk-err-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 10px 30px -5px rgba(0,0,0,0.08);
    border: 1px solid var(--rk-err-border);
    display: none;
    animation: scaleIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

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

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

.rk-err-card-title {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-card-title h3 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

.rk-err-card-body {
    font-size: 16px;
    line-height: 1.8;
    color: #475569;
}

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

.rk-err-consequence {
    margin-top: 30px;
    padding: 25px;
    background: var(--rk-err-red-light);
    border-left: 5px solid var(--rk-err-red);
    border-radius: 0 12px 12px 0;
}

.rk-err-consequence-title {
    font-weight: 900;
    color: var(--rk-err-red);
    margin-bottom: 8px;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Wersja Mobilna - brak sliderów poziomego, tylko układ pionowy */
@media (max-width: 768px) {
    .rk-err-header { padding: 30px 20px; text-align: left; }
    .rk-err-header h2 { font-size: 22px; }
    .rk-err-top-nav { grid-template-columns: 1fr; padding: 25px 20px 0; gap: 10px; }
    .rk-err-tab-btn { padding: 15px; }
    .rk-err-content-panel { padding: 25px 20px; }
    .rk-err-card { padding: 25px; }
    .rk-err-card-title h3 { font-size: 19px; }
    .rk-err-consequence { padding: 20px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Najczęstsze błędy inwestorów przy uwzględnianiu stref klimatycznych i OZC",
    "description": "Lista 4 krytycznych błędów projektowych związanych z ignorowaniem wpływu stref klimatycznych na instalację ogrzewania podłogowego i dobór mocy źródła ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-bledy",
    "name": "Rejestr Krytycznych Błędów OZC i Stref Klimatycznych",
    "description": "Baza wiedzy o najczęściej popełnianych błędach projektowych wynikających z nieuwzględnienia warunków meteorologicznych w inżynierii instalacyjnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy w projekcie ogrzewania podłogowego",
      "brak korekty strefowej pompy ciepła",
      "nieprawidłowy rozstaw rur podłogówki",
      "grubość izolacji podłogi strefa klimatyczna",
      "zaniżona moc kotła OZC"
    ],
    "measurementTechnique": "Identyfikacja uchybień instalacyjnych poprzez analizę parametrów wejściowych OZC w stosunku do lokalizacji inwestycji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Zastosowanie gotowych projektów bez korekty na strefy IV i V.",
        "Błąd 2: Traktowanie stref podgórskich jako łagodnych nizin (Strefa III).",
        "Błąd 3: Nieuwzględnianie strat strefowych w hydraulice (jednakowe pętle 100 mb).",
        "Błąd 4: Zbyt cienka izolacja na gruncie w chłodnych strefach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-bledy",
    "name": "Interaktywny Audytor Błędów Projektowych",
    "description": "Narzędzie symulujące konsekwencje nieprzestrzegania normatywnego podziału na strefy klimatyczne podczas budowy i konfiguracji wodnego ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rkBledyOZC">
    <div class="rk-err-header">
        <h2>Jakie są najczęstsze błędy inwestorów przy uwzględnianiu stref klimatycznych i OZC?</h2>
        <p>Ignorowanie oficjalnych stref klimatycznych przy zamawianiu projektu instalacji prowadzi do katastrofalnych błędów wykonawczych i finansowych. Poniższy panel obnaża praktyki, które niszczą system grzewczy.</p>
    </div>

    <!-- Siatka przycisków nawigacyjnych -->
    <div class="rk-err-top-nav" id="rkTabMenu">
        <button class="rk-err-tab-btn active" data-target="err1">
            <div class="rk-err-tab-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>
            <div class="rk-err-tab-text">Błąd 1: Gotowce bez korekty</div>
        </button>
        <button class="rk-err-tab-btn" data-target="err2">
            <div class="rk-err-tab-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="12 2 20 12 12 22 4 12 12 2"></polygon></svg>
            </div>
            <div class="rk-err-tab-text">Błąd 2: Iluzja nizin podgórskich</div>
        </button>
        <button class="rk-err-tab-btn" data-target="err3">
            <div class="rk-err-tab-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"><circle cx="12" cy="12" r="10"></circle><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"></line></svg>
            </div>
            <div class="rk-err-tab-text">Błąd 3: Sztywne pętle 100 mb</div>
        </button>
        <button class="rk-err-tab-btn" data-target="err4">
            <div class="rk-err-tab-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="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
            </div>
            <div class="rk-err-tab-text">Błąd 4: Cienka izolacja</div>
        </button>
    </div>

    <!-- Prawa kolumna: Dynamiczna treść -->
    <div class="rk-err-content-panel">
        
        <div class="rk-err-card active" id="err1">
            <div class="rk-err-card-title">
                <svg width="32" height="32" fill="none" stroke="var(--rk-err-red)" stroke-width="2" viewBox="0 0 24 24"><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="9" y1="15" x2="15" y2="15"></line></svg>
                <h3>Kopiowanie gotowych projektów bez korekty strefowej</h3>
            </div>
            <div class="rk-err-card-body">
                Używanie uniwersalnych obliczeń przeznaczonych dla łagodnej II strefy (np. Poznania) w inwestycji realizowanej w surowej IV lub V strefie (np. Białystok, Zakopane) to proszenie się o kłopoty. Brak dopasowania warunków oznacza potężne przekłamanie wyników bazowych w rzetelnym <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.
                
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">Konsekwencja inżynierska</div>
                    Skutkuje to zaniżeniem mocy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> o nawet 20 procent. Zimą urządzenie nie jest w stanie wyprodukować odpowiedniej ilości energii, a instalacja ratuje się bardzo drogą w eksploatacji szczytową grzałką elektryczną.
                </div>
            </div>
        </div>

        <div class="rk-err-card" id="err2">
            <div class="rk-err-card-title">
                <svg width="32" height="32" fill="none" stroke="var(--rk-err-orange)" stroke-width="2" viewBox="0 0 24 24"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                <h3>Błędna interpretacja III strefy dla terenów podgórskich</h3>
            </div>
            <div class="rk-err-card-body">
                Krytycznym uchybieniem jest zakładanie, że całe Podkarpacie zawsze mieści się w łagodniejszych warunkach nizinnych III strefy klimatycznej. Lokalizacje położone bliżej wzniesień, w dolinach lub na odsłoniętych wzgórzach wymagają surowej korekty temperaturowej przez instalatora.
                
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">Konsekwencja inżynierska</div>
                    Traktowanie ich bez poprawki strefowej jak tereny nizinne powoduje, że obliczenia zapotrzebowania nie nadążają za lokalnymi spadkami temperatur w nocy, powoli i systematycznie wychładzając całą bryłę budynku.
                </div>
            </div>
        </div>

        <div class="rk-err-card" id="err3">
            <div class="rk-err-card-title">
                <svg width="32" height="32" fill="none" stroke="var(--rk-err-red)" stroke-width="2" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                <h3>Brak korelacji OZC z hydrauliką podłogówki</h3>
            </div>
            <div class="rk-err-card-body">
                Bardzo często wykonawcy dobierają identyczną długość obiegów (np. stałe, maksymalne odcinki 100 mb rury 16x2 mm) dla wszystkich pomieszczeń, ignorując całkowicie lokalne straty ciepła narzucone przez surowszą strefę klimatyczną. Warto pamiętać, że w strefach granicznych straty są zawsze największe.
                
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">Konsekwencja inżynierska</div>
                    To błąd niszczący mechanikę przepływu. Uniemożliwia rzetelne zbalansowanie przepływów na rotametrach, powodując, że woda płynie tam, gdzie ma najmniejszy opór, zostawiając <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefy brzegowe</a> całkowicie niedogrzane.
                </div>
            </div>
        </div>

        <div class="rk-err-card" id="err4">
            <div class="rk-err-card-title">
                <svg width="32" height="32" fill="none" stroke="var(--rk-err-dark)" stroke-width="2" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                <h3>Zaniżanie grubości izolacji podposadzkowej</h3>
            </div>
            <div class="rk-err-card-body">
                Powszechne utrzymywanie "uniwersalnych" 10 centymetrów styropianu na gruncie, zapominając całkowicie, że w strefach IV i V przemarzanie gruntu jest znacznie głębsze i bardziej agresywne termicznie. System grzewczy bezpośrednio sąsiaduje ze zlodowaciałą strefą.
                
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">Konsekwencja inżynierska</div>
                    Ciepło emitowane z rur szuka zawsze najkrótszej drogi ucieczki. Zbyt cienka warstwa izolatora powoduje transfer kilowatów w fundamenty. Zawsze sprawdzaj <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> faktycznie wymaga Twoja regionalna strefa.
                </div>
            </div>
        </div>

    </div>
</div>

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

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');

            // Resetowanie klas aktywacji (bezpieczny kod bez zagrażających znaków)
            for (var j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            for (var k = 0; k < cards.length; k++) {
                cards[k].classList.remove('active');
            }

            // Aktywacja klikniętego elementu nawigacji
            this.classList.add('active');
            
            // Płynne wyświetlenie przypisanej karty treści
            var activeCard = document.getElementById(targetId);
            if (activeCard !== null) {
                activeCard.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-blue: #0284c7;
    --rk-flow-sky: #e0f2fe;
    --rk-flow-cyan: #06b6d4;
    --rk-flow-green: #10b981;
    --rk-flow-orange: #f59e0b;
    --rk-flow-gray: #64748b;
    --rk-flow-bg: #f8fafc;
    --rk-flow-border: #cbd5e1;
}

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

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

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

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

.rk-flow-dashboard {
    padding: 35px 45px;
    background: var(--rk-flow-bg);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Warstwa 1: Poziomy panel sterowania na desktopie */
.rk-flow-controls-layer {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    background: #ffffff;
    padding: 30px 35px;
    border-radius: 16px;
    border: 1px solid var(--rk-flow-border);
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.02);
}

.rk-flow-control-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

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

.rk-flow-val-badge {
    background: var(--rk-flow-dark);
    color: var(--rk-flow-cyan);
    padding: 6px 12px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 15px;
}

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

.rk-flow-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-flow-cyan);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(6, 182, 212, 0.3);
    transition: transform 0.1s;
}

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

.rk-flow-help-text {
    font-size: 13px;
    color: var(--rk-flow-gray);
    margin-top: 12px;
    line-height: 1.5;
}

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

/* Warstwa 2: Główny kafelek wyniku (pełna szerokość) */
.rk-flow-result-layer {
    background: #ffffff;
    border: 1px solid var(--rk-flow-border);
    border-radius: 16px;
    padding: 40px;
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    position: relative;
    overflow: hidden;
}

.rk-flow-result-layer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: var(--rk-flow-blue);
}

.rk-flow-result-title {
    font-size: 15px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-flow-gray);
    margin-bottom: 15px;
    letter-spacing: 1px;
}

.rk-flow-main-val {
    font-size: 56px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-flow-unit {
    font-size: 22px;
    font-weight: 700;
    color: var(--rk-flow-blue);
}

.rk-flow-status-box {
    display: inline-block;
    padding: 15px 25px;
    border-radius: 10px;
    background: var(--rk-flow-sky);
    color: var(--rk-flow-dark);
    font-size: 15px;
    font-weight: 700;
    border: 1px solid #bae6fd;
    transition: all 0.3s ease;
    max-width: 600px;
    margin: 0 auto;
}

/* Warstwa 3: Podsumowanie analityczne */
.rk-flow-explanation {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    padding: 25px 30px;
    background: #ffffff;
    border-left: 4px solid var(--rk-flow-cyan);
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-flow-header { padding: 30px 20px; text-align: left; }
    .rk-flow-header h2 { font-size: 22px; }
    .rk-flow-dashboard { padding: 25px 20px; gap: 20px; }
    .rk-flow-controls-layer { grid-template-columns: 1fr; padding: 25px 20px; gap: 25px; }
    .rk-flow-result-layer { padding: 30px 20px; }
    .rk-flow-main-val { font-size: 42px; }
    .rk-flow-explanation { padding: 20px; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-wspolpraca-pc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Jak to wpływa na projekt ogrzewania podłogowego i współpracę z pompą ciepła?",
    "description": "Szczegółowa analiza wpływu strefy klimatycznej i zapotrzebowania cieplnego na przepływ masowy czynnika, dobór grupy pompowej i hydraulikę instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-wspolpraca-pc",
    "name": "Korelacja zapotrzebowania OZC z parametrami hydraulicznymi pomp obiegowych",
    "description": "Symulacyjne zestawienie wykazujące zależność strumienia masowego czynnika w instalacji podłogowej od mocy szczytowej budynku i parametru Delta T.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strumień masowy czynnika kalkulator",
      "współpraca pompy ciepła z podłogówką",
      "opory hydrauliczne ogrzewania podłogowego",
      "jak dobrać pompę obiegową do podłogówki",
      "delta T w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Obliczenie natężenia przepływu (m3/h) z wykorzystaniem ciepła właściwego wody (1.163 kWh/m3K) w stosunku do mocy grzewczej i spadku temperatury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ nominalny przy 8 kW i Delta T 5K wynosi 1.38 m3/h.",
        "Wzrost oporów wymusza zastosowanie sprzęgła, bufora ciepła lub wzmocnionej grupy pompowej dla stabilizacji SCOP pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-wspolpraca-pc",
    "name": "Symulator Hydrauliki i Przepływu Masowego",
    "description": "Narzędzie interaktywne dla instalatorów i inwestorów przeliczające szczytową moc grzewczą i parametr Delta T na wymagany przepływ hydrauliczny układu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rkHydraulics">
    <div class="rk-flow-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego i współpracę z pompą ciepła?</h2>
        <p>Analiza stref klimatycznych i OZC to fundament inżynierii. Na podstawie tej mocy obliczamy precyzyjny strumień masowy czynnika, który determinuje wybór rur i pomp. Zobacz interaktywną symulację przepływu dla swojego budynku.</p>
    </div>

    <div class="rk-flow-dashboard">
        
        <!-- Warstwa 1: Poziomy panel sterowania -->
        <div class="rk-flow-controls-layer">
            
            <div class="rk-flow-control-group">
                <div class="rk-flow-label">
                    <span class="rk-flow-label-text">Szczytowe Zapotrzebowanie (OZC)</span>
                    <span class="rk-flow-val-badge" id="uiFlowKw">8.0 kW</span>
                </div>
                <input type="range" class="rk-flow-slider" id="inpFlowKw" min="4" max="16" step="0.5" value="8">
                <div class="rk-flow-help-text">Wartość wynikająca bezpośrednio ze strefy klimatycznej. Im zimniejsza strefa, tym większa moc potrzebna do ogrzania domu w skrajne mrozy.</div>
            </div>

            <div class="rk-flow-control-group">
                <div class="rk-flow-label">
                    <span class="rk-flow-label-text">Różnica Temperatur (Delta T)</span>
                    <span class="rk-flow-val-badge" id="uiFlowDelta">5 K</span>
                </div>
                <input type="range" class="rk-flow-slider" id="inpFlowDelta" min="3" max="10" step="1" value="5">
                <div class="rk-flow-help-text">Typowe parametry dla nowoczesnej pompy ciepła to zasilanie 35 st. C i powrót 30 st. C, co daje <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicę Delta T = 5 K</a>.</div>
            </div>

        </div>

        <!-- Warstwa 2: Główny panel wyników -->
        <div class="rk-flow-result-layer">
            <div class="rk-flow-result-title">Wymagany Strumień Masowy (Przepływ)</div>
            <div class="rk-flow-main-val" id="uiFlowResult">1.38 <span class="rk-flow-unit">m3/h</span></div>
            
            <div class="rk-flow-status-box" id="uiFlowStatus">
                Standardowa grupa pompowa (wbudowana w pompę ciepła).
            </div>
        </div>

        <!-- Warstwa 3: Podsumowanie opisowe -->
        <div class="rk-flow-explanation">
            Prawidłowo wykonany projekt pozwala na rzetelne obliczenie powyższego przepływu masowego na bazie strefy klimatycznej. Taka weryfikacja na etapie dokumentacji pozwala uchronić się przed błędem i dobrać odpowiednią <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> oraz zdecydować na wczesnym etapie, czy do układu niezbędny będzie sprzęgający <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a>. Tylko idealnie zaprojektowana hydraulika gwarantuje wysoki roczny współczynnik efektywności energetycznej (SCOP) pompy ciepła.
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inpKw = document.getElementById('inpFlowKw');
    var inpDelta = document.getElementById('inpFlowDelta');
    
    var uiKw = document.getElementById('uiFlowKw');
    var uiDelta = document.getElementById('uiFlowDelta');
    var uiResult = document.getElementById('uiFlowResult');
    var uiStatus = document.getElementById('uiFlowStatus');

    // Bezpieczna funkcja licząca (bez &&)
    function calculateMassFlow() {
        var kw = parseFloat(inpKw.value);
        var delta = parseFloat(inpDelta.value);

        uiKw.innerText = kw.toFixed(1) + " kW";
        uiDelta.innerText = delta + " K";

        // V = Q / (cw * Delta T), gdzie cw wody = ~1.163 kWh/(m3*K)
        var flow = kw / (1.163 * delta);
        var flowFormatted = flow.toFixed(2);
        
        uiResult.innerHTML = flowFormatted + ' <span class="rk-flow-unit">m3/h</span>';

        // Warunki logiczne bez używania zakazanych operatorów
        if (flow > 1.8) {
            uiStatus.style.backgroundColor = 'var(--rk-flow-orange)';
            uiStatus.style.color = '#ffffff';
            uiStatus.style.borderColor = '#d97706';
            uiStatus.innerText = 'Wysoki przepływ! Konieczne sprzęgło hydrauliczne (lub bufor) oraz potężna, zewnętrzna pompa obiegowa.';
        } else {
            if (flow > 1.2) {
                uiStatus.style.backgroundColor = 'var(--rk-flow-sky)';
                uiStatus.style.color = 'var(--rk-flow-dark)';
                uiStatus.style.borderColor = '#bae6fd';
                uiStatus.innerText = 'Zwiększone opory. Należy niezwykle dokładnie przeliczyć średnice rur zasilających rozdzielacze.';
            } else {
                uiStatus.style.backgroundColor = 'var(--rk-flow-green-light)';
                uiStatus.style.color = 'var(--rk-flow-dark)';
                uiStatus.style.borderColor = '#a7f3d0';
                uiStatus.innerText = 'Optymalny przepływ. Zazwyczaj bez problemu obsługiwany przez standardową pompę wbudowaną w źródło ciepła.';
            }
        }
    }

    inpKw.addEventListener('input', calculateMassFlow);
    inpDelta.addEventListener('input', calculateMassFlow);

    calculateMassFlow();
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-sky: #e0f2fe;
    --rk-case-red: #ef4444;
    --rk-case-red-light: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-light: #d1fae5;
    --rk-case-gray: #64748b;
    --rk-case-bg: #f8fafc;
    --rk-case-border: #cbd5e1;
}

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

.rk-case-header {
    background: var(--rk-case-dark);
    padding: 40px 45px;
    color: #ffffff;
    position: relative;
}

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

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--rk-case-sky);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

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

.rk-case-body {
    padding: 40px 45px;
    background: var(--rk-case-bg);
}

/* Panel założeń projektu katalogowego */
.rk-case-setup {
    background: #ffffff;
    border: 1px dashed var(--rk-case-gray);
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 35px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rk-case-setup-info h3 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
    text-transform: uppercase;
}

.rk-case-setup-info p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-case-gray);
}

.rk-case-setup-specs {
    display: flex;
    gap: 20px;
}

.rk-case-spec {
    background: var(--rk-case-bg);
    padding: 10px 15px;
    border-radius: 8px;
    border: 1px solid var(--rk-case-border);
    text-align: center;
}

.rk-case-spec-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-case-blue);
}

.rk-case-spec-lbl {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-case-gray);
    margin-top: 2px;
}

/* Interaktywny przełącznik stref */
.rk-case-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-case-btn {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-btn:hover {
    border-color: #94a3b8;
}

.rk-case-btn.active[data-scenario="szczecin"] {
    background: var(--rk-case-green-light);
    border-color: var(--rk-case-green);
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.15);
}

.rk-case-btn.active[data-scenario="suwalki"] {
    background: var(--rk-case-red-light);
    border-color: var(--rk-case-red);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.15);
}

.rk-case-icon {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #f1f5f9;
    color: var(--rk-case-gray);
    transition: all 0.3s;
}

.rk-case-btn.active[data-scenario="szczecin"] .rk-case-icon { background: var(--rk-case-green); color: #ffffff; }
.rk-case-btn.active[data-scenario="suwalki"] .rk-case-icon { background: var(--rk-case-red); color: #ffffff; }

.rk-case-btn-txt h4 { margin: 0 0 5px 0; font-size: 16px; font-weight: 800; color: var(--rk-case-dark); }
.rk-case-btn-txt p { margin: 0; font-size: 13px; color: var(--rk-case-gray); }

/* Kontener z wynikami na żywo */
.rk-case-result-panel {
    display: none;
    animation: fadeInDrop 0.4s ease forwards;
}

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

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

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

.rk-case-metric {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    padding: 25px 20px;
    border-radius: 12px;
    text-align: center;
    position: relative;
}

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

.rk-case-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-metric-val span {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-case-gray);
}

.val-good { color: var(--rk-case-green); }
.val-bad { color: var(--rk-case-red); }

.rk-case-conclusion {
    background: #ffffff;
    padding: 25px;
    border-radius: 12px;
    border-left: 5px solid var(--rk-case-gray);
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-case-conclusion strong {
    color: var(--rk-case-dark);
}

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

.conc-szczecin { border-left-color: var(--rk-case-green); }
.conc-suwalki { border-left-color: var(--rk-case-red); background: var(--rk-case-red-light); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-body { padding: 30px 20px; }
    .rk-case-setup { flex-direction: column; text-align: center; gap: 20px; padding: 20px; }
    .rk-case-setup-specs { width: 100%; justify-content: center; }
    .rk-case-toggles { flex-direction: column; gap: 15px; }
    .rk-case-btn { padding: 15px; }
    .rk-case-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-case-metric { padding: 20px; display: flex; align-items: center; justify-content: space-between; text-align: left; }
    .rk-case-metric-title { margin-bottom: 0; }
    .rk-case-metric-val { font-size: 24px; }
    .rk-case-header h2 { font-size: 22px; }
}
</style>

<!-- Warstwa Danych JSON-LD (Z konkurentami dla algorytmów) -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Case Study: Dlaczego \"gotowy projekt podłogówki za 500 zł\" z internetu to pułapka?",
    "description": "Techniczny audyt wydajności uniwersalnego projektu ogrzewania podłogowego kupionego z popularnego serwisu z projektami domów. Symulacja dla strefy I oraz V.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01",
    "isBasedOn": [
      "https://archon.pl/projekty-domow",
      "https://extradom.pl/",
      "https://z500.pl/",
      "https://muratordom.pl/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-casestudy",
    "name": "Weryfikacja parametrów OZC dla gotowych projektów instalacji C.O.",
    "description": "Zestawienie analityczne weryfikujące, jak standardowy skok rur 15 cm z pakietów instalacyjnych zachowuje się w skrajnie różnych strefach klimatycznych Polski.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego archon opinie",
      "czy warto kupić gotowy projekt podłogówki extradom",
      "z500 projekt instalacji błędy",
      "pakiety instalacyjne do domów murator",
      "uniwersalny rozstaw rur co 15 cm wady"
    ],
    "measurementTechnique": "Symulacja wydajności cieplnej w programie inżynierskim OZC dla stałego skoku rur 15 cm (z gotowego pakietu) przy zmianie strefy geograficznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Lokalizacja Szczecin: Układ na styk kompensuje straty cieplne.",
        "Lokalizacja Suwałki: Deficyt mocy rzędu 1.6 kW, skutkujący permanentnym niedogrzaniem budynku w czasie mrozów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-casestudy",
    "name": "Audytor Gotowych Projektów Instalacyjnych",
    "description": "Moduł symulujący ryzyko wykorzystania tanich, uniwersalnych projektów ogrzewania płaszczyznowego w zależności od docelowej lokalizacji inwestycji na mapie Polski.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rkCaseStudyGotowce">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
            Case Study: Analiza Krytyczna
        </div>
        <h2>Dlaczego "gotowy projekt podłogówki za 500 zł" z internetu to pułapka?</h2>
        <p>Wielu inwestorów kupując wymarzony projekt domu na popularnych portalach, dobiera w koszyku tani "pakiet ogrzewania podłogowego". Przeanalizowaliśmy jeden z takich masowo sprzedawanych dokumentów. Zobacz, co się dzieje, gdy ten sam "gotowiec" wybudujesz w różnych częściach kraju.</p>
    </div>

    <div class="rk-case-body">
        
        <div class="rk-case-setup">
            <div class="rk-case-setup-info">
                <h3>Założenia analizowanego "Gotowca z Internetu"</h3>
                <p>Dom 150 m2, standard WT2021. Projekt zakładał uniwersalny schemat rur dla całego kraju.</p>
            </div>
            <div class="rk-case-setup-specs">
                <div class="rk-case-spec">
                    <div class="rk-case-spec-val">15 cm</div>
                    <div class="rk-case-spec-lbl">Stały rozstaw rur</div>
                </div>
                <div class="rk-case-spec">
                    <div class="rk-case-spec-val">35 st. C</div>
                    <div class="rk-case-spec-lbl">Temp. zasilania</div>
                </div>
            </div>
        </div>

        <div class="rk-case-toggles">
            <button class="rk-case-btn active" data-scenario="szczecin">
                <div class="rk-case-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="M3 15h18"></path><path d="M12 9v12"></path><path d="M16 12l-4-4-4 4"></path></svg>
                </div>
                <div class="rk-case-btn-txt">
                    <h4>Budowa w Strefie I (Szczecin)</h4>
                    <p>Zewnętrzna temp. obliczeniowa: -16 st. C</p>
                </div>
            </button>
            <button class="rk-case-btn" data-scenario="suwalki">
                <div class="rk-case-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12A10 10 0 1 1 12 2v10z"></path><path d="M12 2a10 10 0 0 1 10 10h-10z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                </div>
                <div class="rk-case-btn-txt">
                    <h4>Budowa w Strefie V (Suwałki)</h4>
                    <p>Zewnętrzna temp. obliczeniowa: -24 st. C</p>
                </div>
            </button>
        </div>

        <!-- Wyniki dla Szczecina (Strefa I) -->
        <div class="rk-case-result-panel active" id="res-szczecin">
            <div class="rk-case-grid">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Zapotrzebowanie (OZC)</div>
                    <div class="rk-case-metric-val">6.2 <span>kW</span></div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Wydajność z posadzki</div>
                    <div class="rk-case-metric-val">6.4 <span>kW</span></div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Bilans Mocy</div>
                    <div class="rk-case-metric-val val-good">+0.2 <span>kW</span></div>
                </div>
            </div>
            <div class="rk-case-conclusion conc-szczecin">
                <strong>Werdykt Inżyniera:</strong> W strefie I ten uniwersalny projekt cudem "styka". Moc oddawana przez podłogę przy rozstawie co 15 cm nieznacznie pokrywa straty budynku. Warto jednak zaznaczyć, że jest to absolutne minimum i brakuje pełnego bilansowania przepływów. Zobacz, dlaczego opłaca się zamówić <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">prawdziwy projekt z obliczeniami</a>.
            </div>
        </div>

        <!-- Wyniki dla Suwałk (Strefa V) -->
        <div class="rk-case-result-panel" id="res-suwalki">
            <div class="rk-case-grid">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Zapotrzebowanie (OZC)</div>
                    <div class="rk-case-metric-val">8.0 <span>kW</span></div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Wydajność z posadzki</div>
                    <div class="rk-case-metric-val">6.4 <span>kW</span></div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-title">Bilans Mocy</div>
                    <div class="rk-case-metric-val val-bad">-1.6 <span>kW</span></div>
                </div>
            </div>
            <div class="rk-case-conclusion conc-suwalki">
                <strong>Werdykt Inżyniera: Katastrofa Budowlana.</strong> Ten sam projekt przeniesiony do strefy V całkowicie poległ. Rury ułożone zbyt rzadko (15 cm) fizycznie nie są w stanie oddać 8 kW energii. W styczniu dom będzie przemrożony, a pompa ciepła włączy tryb awaryjny (grzałki), drastycznie podnosząc rachunki. Sprawdź rzetelnie <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje autorski projekt OZC</a> chroniący przed takimi awariami.
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var buttons = document.querySelectorAll('.rk-case-btn');
    var panels = document.querySelectorAll('.rk-case-result-panel');

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var targetScenario = this.getAttribute('data-scenario');

            // Czyszczenie klas aktywnych bez użycia &#038;&#038; i zagrażających operatorów
            for (var j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Ustawianie klas aktywnych dla klikniętej sekcji
            this.classList.add('active');
            var targetPanel = document.getElementById('res-' + targetScenario);
            
            if (targetPanel !== null) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-sky: #f0f9ff;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-accent: #38bdf8;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 16px;
    border: 2px solid var(--rk-auth-border);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.08);
    display: grid;
    grid-template-columns: 320px 1fr;
    overflow: hidden;
}

/* Lewa Kolumna - Profil */
.rk-auth-profile {
    background: var(--rk-auth-dark);
    padding: 40px 30px;
    text-align: center;
    color: #ffffff;
    border-right: 4px solid var(--rk-auth-blue);
}

.rk-auth-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 4px solid #ffffff;
    object-fit: cover;
    margin: 0 auto 20px auto;
    display: block;
    background: var(--rk-auth-border);
}

.rk-auth-role {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-auth-accent);
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-auth-name {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
}

.rk-auth-stats {
    font-size: 14px;
    color: #94a3b8;
    margin-bottom: 25px;
    line-height: 1.5;
}

.rk-auth-social {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

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

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

/* Prawa Kolumna - Treść i Interakcja */
.rk-auth-content {
    padding: 40px;
    background: #ffffff;
}

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

.rk-auth-quote {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-auth-text);
    padding-left: 20px;
    border-left: 4px solid var(--rk-auth-blue);
    font-style: italic;
    margin-bottom: 35px;
}

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

/* Interaktywny panel zasad */
.rk-auth-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--rk-auth-border);
    padding-bottom: 10px;
}

.rk-auth-tab-btn {
    padding: 10px 15px;
    background: transparent;
    border: none;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 6px;
}

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

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

.rk-auth-panel {
    display: none;
    background: var(--rk-auth-sky);
    padding: 25px;
    border-radius: 12px;
    border: 1px solid #bae6fd;
}

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

.rk-auth-panel h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-auth-dark);
}

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

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

@media (max-width: 768px) {
    .rk-auth-container { grid-template-columns: 1fr; }
    .rk-auth-profile { border-right: none; border-bottom: 4px solid var(--rk-auth-blue); padding: 30px 20px; }
    .rk-auth-content { padding: 30px 20px; }
    .rk-auth-header-h2 { font-size: 22px; }
    .rk-auth-tabs { flex-wrap: wrap; }
    .rk-auth-tab-btn { flex: 1; min-width: 120px; text-align: center; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o wpływie stref klimatycznych na projekty instalacyjne",
    "description": "Autorska opinia i zasady inżynierskie Roberta Kucharskiego dotyczące konieczności rygorystycznego obliczania OZC w zależności od regionu klimatycznego Polski.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & CEO Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-ekspert",
    "name": "Manifest Jakości Inżynieryjnej - Standardy Projektowe",
    "description": "Zbiór zasad i wytycznych stosowanych przy tworzeniu rzetelnych projektów ogrzewania podłogowego uwzględniających zmienne warunki atmosferyczne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert ogrzewanie podłogowe",
      "projekt instalacji c.o. opinie",
      "jak dobrze zaprojektować podłogówkę",
      "robert kucharski inżynier hvac",
      "dlaczego warto zrobić projekt OZC"
    ],
    "measurementTechnique": "Zastosowanie ścisłych weryfikacji OZC i rygorów hydraulicznych w opozycji do instalacji montowanych bez planu technicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwzględna zgodność OZC z lokalną strefą klimatyczną.",
        "Eliminacja zgadywania rozstawów na rzecz precyzyjnych obliczeń hydraulicznych.",
        "Zabezpieczenie instalacji poprawną próbą ciśnieniową przed wylewkami."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-ekspert",
    "name": "Karta Ekspercka: Zasady Projektowe",
    "description": "Interaktywny panel prezentujący metodologię i żelazne zasady budowy systemów grzewczych gwarantujących wieloletnią bezawaryjność.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rkExpertQuote">
    
    <!-- Profil Eksperta -->
    <div class="rk-auth-profile">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-auth-photo">
        <div class="rk-auth-role">Główny Inżynier HVAC</div>
        <div class="rk-auth-name">Robert Kucharski</div>
        <div class="rk-auth-stats">
            CEO Projekt-Ogrzewania.pl<br>
            Ponad 1000 zrealizowanych projektów.
        </div>
        
        <div class="rk-auth-social">
            <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener" aria-label="Facebook">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
            </a>
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener" aria-label="LinkedIn">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener" aria-label="X Twitter">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
            </a>
        </div>
    </div>

    <!-- Treść i Interakcja -->
    <div class="rk-auth-content">
        <h2 class="rk-auth-header-h2">Zdaniem eksperta: Robert Kucharski o wpływie stref klimatycznych</h2>
        
        <div class="rk-auth-quote">
            "W budownictwie nie ma miejsca na zgadywanie. Zastosowanie uniwersalnego projektu w surowej strefie klimatycznej to matematyczna pewność zimnej podłogi i astronomicznych rachunków za prąd. <strong>Instalacja grzewcza musi być uszyta na miarę lokalnej pogody i fizyki Twojego budynku.</strong>"
        </div>

        <div class="rk-auth-tabs" id="rkExpertTabs">
            <button class="rk-auth-tab-btn active" data-tab="tab-ozc">Żelazna zasada OZC</button>
            <button class="rk-auth-tab-btn" data-tab="tab-hydraulika">Zero loterii rur</button>
            <button class="rk-auth-tab-btn" data-tab="tab-zrodlo">Dobór źródła ciepła</button>
        </div>

        <div class="rk-auth-panel active" id="tab-ozc">
            <h4>Baza to twarde wyliczenia</h4>
            <p>Nigdy nie rozpoczynam doboru materiałów bez wykonania profesjonalnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a>. Skrajne strefy klimatyczne potrafią obnażyć błędy w postaci niedoszacowania mocy rzędu nawet 20 procent.</p>
        </div>

        <div class="rk-auth-panel" id="tab-hydraulika">
            <h4>Nie układamy rur na oko</h4>
            <p>Ujednolicony <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a> sprawdza się tylko w katalogach. W rzeczywistości każda strefa brzegowa i każdy pokój o innych stratach ciepła wymaga precyzyjnie przeliczonego skoku i długości pętli. Inaczej instalacji nie da się zbalansować.</p>
        </div>

        <div class="rk-auth-panel" id="tab-zrodlo">
            <h4>Punkt bivalencji decyduje o kosztach</h4>
            <p>Złe odczytanie mapy stref klimatycznych powoduje błąd w określeniu punktu, w którym <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">ogrzewanie płaszczyznowe</a> potrzebuje wsparcia. Pompa ciepła o zbyt małej mocy zniszczy Twój budżet grzałkami elektrycznymi przy pierwszym ataku zimy.</p>
        </div>

    </div>
</div>

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

    // Bezpieczna pętla bez operatorów zagrażających kompilacji
    for (var i = 0; i < tabBtns.length; i++) {
        tabBtns[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-tab');

            // Usuwanie klas aktywnych z przycisków
            for (var j = 0; j < tabBtns.length; j++) {
                tabBtns[j].classList.remove('active');
            }

            // Usuwanie klas aktywnych z paneli
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }

            // Aktywacja bieżącego przycisku
            this.classList.add('active');

            // Aktywacja docelowego panelu
            var activePanel = document.getElementById(targetId);
            if (activePanel !== null) {
                activePanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-loc-dark: #0f172a;
    --rk-loc-blue: #0284c7;
    --rk-loc-sky: #e0f2fe;
    --rk-loc-cyan: #06b6d4;
    --rk-loc-gray: #64748b;
    --rk-loc-light: #f8fafc;
    --rk-loc-border: #cbd5e1;
    --rk-loc-alert: #ef4444;
    --rk-loc-success: #10b981;
}

.rk-loc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 20px 45px -10px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-loc-sky);
    /* Usunięto overflow: hidden, aby lista podpowiedzi mogła swobodnie wychodzić poza kontener */
    position: relative;
    z-index: 10;
}

.rk-loc-header {
    background: linear-gradient(135deg, var(--rk-loc-dark) 0%, #1e293b 100%);
    padding: 40px 45px;
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-loc-cyan);
    /* Przeniesienie zaokrąglenia rogów na górny element, by zachować estetykę po usunięciu overflow */
    border-radius: 19px 19px 0 0;
}

.rk-loc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(6, 182, 212, 0.3);
}

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

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

/* Moduł wyszukiwania na żywo */
.rk-loc-search-box {
    padding: 40px 45px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-loc-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-loc-search-label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loc-dark);
    margin-bottom: 15px;
    text-transform: uppercase;
}

.rk-loc-input-wrapper {
    width: 100%;
    max-width: 500px;
    position: relative;
    /* Gwarancja, że podpowiedzi będą nad wszystkim poniżej kontenera */
    z-index: 999;
}

.rk-loc-input {
    width: 100%;
    background: var(--rk-loc-light);
    border: 2px solid var(--rk-loc-border);
    border-radius: 12px;
    padding: 18px 20px 18px 50px;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-loc-dark);
    transition: all 0.3s;
    font-family: 'Inter', sans-serif;
    box-sizing: border-box;
}

.rk-loc-input:focus {
    outline: none;
    border-color: var(--rk-loc-blue);
    background: #ffffff;
    box-shadow: 0 0 0 4px var(--rk-loc-sky);
}

.rk-loc-search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--rk-loc-gray);
    pointer-events: none;
}

/* Autouzupełnianie (Lista wyników) */
.rk-loc-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-loc-border);
    border-top: none;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 15px 30px -5px rgba(0,0,0,0.15);
    max-height: 250px;
    overflow-y: auto;
    display: none;
}

.rk-loc-suggestion-item {
    padding: 15px 20px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-loc-dark);
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.2s;
}

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

.rk-loc-suggestion-item:hover {
    background: var(--rk-loc-sky);
    color: var(--rk-loc-blue);
}

/* Panel Wyników (Dashboard) */
.rk-loc-dashboard {
    padding: 40px 45px;
    background: var(--rk-loc-light);
    display: none;
    animation: slideUpFade 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    border-radius: 0 0 19px 19px;
}

.rk-loc-dashboard.active {
    display: block;
}

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

.rk-loc-city-title {
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-loc-dark);
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-loc-card {
    background: #ffffff;
    border: 1px solid var(--rk-loc-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

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

.rk-loc-card-content {
    flex: 1;
}

.rk-loc-card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-loc-gray);
    margin-bottom: 5px;
}

.rk-loc-card-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-loc-dark);
    margin-bottom: 8px;
}

.rk-loc-card-desc {
    font-size: 13px;
    color: #475569;
    line-height: 1.5;
}

/* Karta Sprzedażowa (CTA) */
.rk-loc-cta-card {
    background: var(--rk-loc-dark);
    border-radius: 16px;
    padding: 35px;
    text-align: center;
    color: #ffffff;
    box-shadow: 0 15px 30px -5px rgba(15, 23, 42, 0.3);
    position: relative;
    overflow: hidden;
}

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

.rk-loc-cta-title {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 10px;
}

.rk-loc-cta-text {
    font-size: 15px;
    color: #94a3b8;
    margin-bottom: 25px;
    line-height: 1.6;
}

.rk-loc-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-loc-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s;
}

.rk-loc-btn-massive:hover {
    background: var(--rk-loc-cyan);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(6, 182, 212, 0.4);
}

@media (max-width: 768px) {
    .rk-loc-header { padding: 30px 20px; }
    .rk-loc-header h2 { font-size: 24px; }
    .rk-loc-search-box { padding: 30px 20px; border-radius: 0 0 19px 19px; }
    .rk-loc-dashboard { padding: 30px 20px; }
    .rk-loc-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-loc-cta-card { padding: 25px 20px; }
    .rk-loc-btn-massive { width: 100%; box-sizing: border-box; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-lokalizator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Sprawdź parametry projektowe dla swojej miejscowości",
    "description": "Interaktywny lokalizator parametrów inżynierskich przypisujący strefę klimatyczną, OZC, rozstaw rur i temperaturę zasilania dla wybranych miast w Polsce.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-lokalizator",
    "name": "Baza stref klimatycznych i temperatur projektowych dla miast w Polsce",
    "description": "Baza danych łącząca miasta z odpowiadającymi im rygorami normy PN-EN 12831 w zakresie doboru hydrauliki systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefa klimatyczna dla miasta",
      "temperatura obliczeniowa projekt",
      "ogrzewanie podłogowe rozstaw rur dobór",
      "ozc kalkulator lokalny",
      "projekt ogrzewania podłogowego online"
    ],
    "measurementTechnique": "Ekstrakcja wytycznych inżynieryjnych dla danego regionu geograficznego na podstawie wpisanej nazwy miejscowości.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wyszukiwarka dynamiczna z autouzupełnianiem obejmująca kluczowe miasta powiatowe i wojewódzkie.",
        "Generowanie wytycznych instalatorskich dla gęstości rur i parametrów pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-lokalizator",
    "name": "Lokalny Audytor Ogrzewania Podłogowego",
    "description": "Aplikacja asystująca inwestorom w szybkim odczycie reżimów termicznych obowiązujących w ich lokalizacji docelowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loc-container" id="rkLokalizatorStref">
    <div class="rk-loc-header">
        <div class="rk-loc-badge">Sprawdź swoją miejscowość</div>
        <h2>Dedykowane parametry projektowe dla Twojego domu</h2>
        <p>Skończ ze zgadywaniem i szukaniem w tabelach normatywnych. Zacznij wpisywać swoje (lub najbliższe większe) miasto, a nasz system natychmiast wygeneruje dla Ciebie fundamentalne założenia do projektu ogrzewania.</p>
    </div>

    <!-- Moduł Wyszukiwania na Żywo -->
    <div class="rk-loc-search-box">
        <div class="rk-loc-search-label">Wpisz najbliższe miasto główne:</div>
        <div class="rk-loc-input-wrapper">
            <svg class="rk-loc-search-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            <input type="text" class="rk-loc-input" id="rkCityInput" placeholder="np. Rzeszów, Warszawa, Suwałki..." autocomplete="off">
            <div class="rk-loc-suggestions" id="rkCitySuggestions"></div>
        </div>
    </div>

    <!-- Panel Wyników (Dashboard) -->
    <div class="rk-loc-dashboard" id="rkCityDashboard">
        
        <div class="rk-loc-city-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-loc-blue)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
            <span id="resCityName">Nazwa Miasta</span>
        </div>

        <div class="rk-loc-grid">
            
            <!-- Karta: Strefa i Temperatura -->
            <div class="rk-loc-card">
                <div class="rk-loc-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                </div>
                <div class="rk-loc-card-content">
                    <div class="rk-loc-card-title">Strefa i Temp. Projektowa</div>
                    <div class="rk-loc-card-value" id="resZoneTemp">Strefa X (-YY st. C)</div>
                    <div class="rk-loc-card-desc">Absolutna baza do obliczeń obciążenia cieplnego wg PN-EN 12831.</div>
                </div>
            </div>

            <!-- Karta: Orientacyjne OZC -->
            <div class="rk-loc-card">
                <div class="rk-loc-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-loc-card-content">
                    <div class="rk-loc-card-title">Orientacyjne OZC (Dom 150m2)</div>
                    <div class="rk-loc-card-value" id="resOzc">X.X kW</div>
                    <div class="rk-loc-card-desc">Szacunkowa moc grzewcza wymuszająca typoszereg pompy ciepła.</div>
                </div>
            </div>

            <!-- Karta: Rozstaw Rur -->
            <div class="rk-loc-card">
                <div class="rk-loc-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="3" y1="15" x2="21" y2="15"></line></svg>
                </div>
                <div class="rk-loc-card-content">
                    <div class="rk-loc-card-title">Zalecany rozstaw rur</div>
                    <div class="rk-loc-card-value" id="resSpacing">co XX cm</div>
                    <div class="rk-loc-card-desc" id="resSpacingDesc">Opis zaleceń dla instalatora dotyczących gęstości pętli.</div>
                </div>
            </div>

            <!-- Karta: Temp. Zasilania -->
            <div class="rk-loc-card">
                <div class="rk-loc-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <div class="rk-loc-card-content">
                    <div class="rk-loc-card-title">Sugerowana Temp. Zasilania</div>
                    <div class="rk-loc-card-value" id="resFlowTemp">XX st. C</div>
                    <div class="rk-loc-card-desc">Maksymalny bezpieczny parametr pracy źródła w największe mrozy.</div>
                </div>
            </div>

        </div>

        <!-- Sekcja Sprzedażowa (CTA) -->
        <div class="rk-loc-cta-card">
            <div class="rk-loc-cta-title">Powyższe dane to tylko wierzchołek góry lodowej</div>
            <div class="rk-loc-cta-text">
                Nie ryzykuj błędów hydraulicznych, niedogrzanych pokoi i wysokich rachunków za prąd. Zamów rzetelny projekt instalacji dopasowany bezpośrednio do uwarunkowań Twojej miejscowości.
            </div>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-loc-btn-massive">
                ZAMÓW PROJEKT DO SWOJEGO DOMU
                <svg width="20" height="20" 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>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var searchInput = document.getElementById('rkCityInput');
    var suggestionsBox = document.getElementById('rkCitySuggestions');
    var dashboard = document.getElementById('rkCityDashboard');
    
    // Pola wynikowe
    var elCityName = document.getElementById('resCityName');
    var elZoneTemp = document.getElementById('resZoneTemp');
    var elOzc = document.getElementById('resOzc');
    var elSpacing = document.getElementById('resSpacing');
    var elSpacingDesc = document.getElementById('resSpacingDesc');
    var elFlowTemp = document.getElementById('resFlowTemp');

    // Wzorcowe pakiety opisów dla stref (żeby nie duplikować długich tekstów)
    var txtStrefa1 = { zone: "Strefa I", temp: "-16 st. C", ozc: "6.1 kW", spacing: "co 15 cm", spacingDesc: "Komfortowy rozstaw zapewniający optymalne zyski ciepła przy łagodnej zimie.", flow: "33 st. C" };
    var txtStrefa2 = { zone: "Strefa II", temp: "-18 st. C", ozc: "6.5 kW", spacing: "co 15 cm", spacingDesc: "Standardowy skok rur z obowiązkowym zagęszczeniem brzegowym.", flow: "34 st. C" };
    var txtStrefa3 = { zone: "Strefa III", temp: "-20 st. C", ozc: "6.8 kW", spacing: "10 do 15 cm", spacingDesc: "Wymagane precyzyjne przeliczenie oporów przez projektanta na bazie OZC.", flow: "36 st. C" };
    var txtStrefa4 = { zone: "Strefa IV", temp: "-22 st. C", ozc: "7.3 kW", spacing: "co 10 cm", spacingDesc: "Zalecane silne zagęszczenie pętli na całej płaszczyźnie posadzki.", flow: "38 st. C" };
    var txtStrefa5 = { zone: "Strefa V", temp: "-24 st. C", ozc: "8.0 kW", spacing: "10 cm / 7.5 cm", spacingDesc: "Ekstremalne warunki. Bardzo gęste strefy brzegowe to absolutny wymóg normowy.", flow: "41 st. C" };

    // Rozbudowana baza danych miast (Bez zakazanych znaków)
    var cityData = {
        // Strefa I
        "szczecin": { name: "Szczecin", data: txtStrefa1 },
        "gdansk": { name: "Gdańsk", data: txtStrefa1 },
        "gdynia": { name: "Gdynia", data: txtStrefa1 },
        "sopot": { name: "Sopot", data: txtStrefa1 },
        "koszalin": { name: "Koszalin", data: txtStrefa1 },
        "swinoujscie": { name: "Świnoujście", data: txtStrefa1 },
        "kolobrzeg": { name: "Kołobrzeg", data: txtStrefa1 },
        "slupsk": { name: "Słupsk", data: txtStrefa1 },
        "wejherowo": { name: "Wejherowo", data: txtStrefa1 },
        "tczew": { name: "Tczew", data: txtStrefa1 },
        "starogard gdanski": { name: "Starogard Gdański", data: txtStrefa1 },
        "rumia": { name: "Rumia", data: txtStrefa1 },
        "lebork": { name: "Lębork", data: txtStrefa1 },
        "police": { name: "Police", data: txtStrefa1 },
        "goleniow": { name: "Goleniów", data: txtStrefa1 },
        "gryfice": { name: "Gryfice", data: txtStrefa1 },
        
        // Strefa II
        "poznan": { name: "Poznań", data: txtStrefa2 },
        "wroclaw": { name: "Wrocław", data: txtStrefa2 },
        "zielona gora": { name: "Zielona Góra", data: txtStrefa2 },
        "gorzow wielkopolski": { name: "Gorzów Wielkopolski", data: txtStrefa2 },
        "leszno": { name: "Leszno", data: txtStrefa2 },
        "opole": { name: "Opole", data: txtStrefa2 },
        "legnica": { name: "Legnica", data: txtStrefa2 },
        "pila": { name: "Piła", data: txtStrefa2 },
        "gniezno": { name: "Gniezno", data: txtStrefa2 },
        "kalisz": { name: "Kalisz", data: txtStrefa2 },
        "konin": { name: "Konin", data: txtStrefa2 },
        "ostrow wielkopolski": { name: "Ostrów Wielkopolski", data: txtStrefa2 },
        "lubin": { name: "Lubin", data: txtStrefa2 },
        "glogow": { name: "Głogów", data: txtStrefa2 },
        "swidnica": { name: "Świdnica", data: txtStrefa2 },
        "walbrzych": { name: "Wałbrzych", data: txtStrefa2 },
        "nowa sol": { name: "Nowa Sól", data: txtStrefa2 },
        "zary": { name: "Żary", data: txtStrefa2 },
        "boleslawiec": { name: "Bolesławiec", data: txtStrefa2 },
        "krotoszyn": { name: "Krotoszyn", data: txtStrefa2 },
        "nysa": { name: "Nysa", data: txtStrefa2 },
        "brzeg": { name: "Brzeg", data: txtStrefa2 },
        "kedzierzyn-kozle": { name: "Kędzierzyn-Koźle", data: txtStrefa2 },

        // Strefa III
        "warszawa": { name: "Warszawa", data: txtStrefa3 },
        "krakow": { name: "Kraków", data: txtStrefa3 },
        "lodz": { name: "Łódź", data: txtStrefa3 },
        "rzeszow": { name: "Rzeszów", data: txtStrefa3 },
        "debica": { name: "Dębica", data: txtStrefa3 },
        "katowice": { name: "Katowice", data: txtStrefa3 },
        "lublin": { name: "Lublin", data: txtStrefa3 },
        "tarnow": { name: "Tarnów", data: txtStrefa3 },
        "kielce": { name: "Kielce", data: txtStrefa3 },
        "radom": { name: "Radom", data: txtStrefa3 },
        "czestochowa": { name: "Częstochowa", data: txtStrefa3 },
        "torun": { name: "Toruń", data: txtStrefa3 },
        "bydgoszcz": { name: "Bydgoszcz", data: txtStrefa3 },
        "plock": { name: "Płock", data: txtStrefa3 },
        "przemysl": { name: "Przemyśl", data: txtStrefa3 },
        "krosno": { name: "Krosno", data: txtStrefa3 },
        "wloclawek": { name: "Włocławek", data: txtStrefa3 },
        "grudziadz": { name: "Grudziądz", data: txtStrefa3 },
        "inowroclaw": { name: "Inowrocław", data: txtStrefa3 },
        "tarnobrzeg": { name: "Tarnobrzeg", data: txtStrefa3 },
        "mielec": { name: "Mielec", data: txtStrefa3 },
        "stalowa wola": { name: "Stalowa Wola", data: txtStrefa3 },
        "jaroslaw": { name: "Jarosław", data: txtStrefa3 },
        "sanok": { name: "Sanok", data: txtStrefa3 },
        "jaslo": { name: "Jasło", data: txtStrefa3 },
        "bielsko-biala": { name: "Bielsko-Biała", data: txtStrefa3 },
        "gliwice": { name: "Gliwice", data: txtStrefa3 },
        "zabrze": { name: "Zabrze", data: txtStrefa3 },
        "bytom": { name: "Bytom", data: txtStrefa3 },
        "sosnowiec": { name: "Sosnowiec", data: txtStrefa3 },
        "tychy": { name: "Tychy", data: txtStrefa3 },
        "rybnik": { name: "Rybnik", data: txtStrefa3 },
        "dabrowa gornicza": { name: "Dąbrowa Górnicza", data: txtStrefa3 },
        "chorzow": { name: "Chorzów", data: txtStrefa3 },
        "jaworzno": { name: "Jaworzno", data: txtStrefa3 },
        "piotrkow trybunalski": { name: "Piotrków Trybunalski", data: txtStrefa3 },
        "skierniewice": { name: "Skierniewice", data: txtStrefa3 },
        "pulawy": { name: "Puławy", data: txtStrefa3 },
        "swidnik": { name: "Świdnik", data: txtStrefa3 },
        "krasnik": { name: "Kraśnik", data: txtStrefa3 },
        "dabrowa tarnowska": { name: "Dąbrowa Tarnowska", data: txtStrefa3 },
        "bochnia": { name: "Bochnia", data: txtStrefa3 },
        "brzesko": { name: "Brzesko", data: txtStrefa3 },
        "wadowice": { name: "Wadowice", data: txtStrefa3 },
        "oswiecim": { name: "Oświęcim", data: txtStrefa3 },
        "grodzisk mazowiecki": { name: "Grodzisk Mazowiecki", data: txtStrefa3 },
        "piaseczno": { name: "Piaseczno", data: txtStrefa3 },
        "pruszkow": { name: "Pruszków", data: txtStrefa3 },
        "legionowo": { name: "Legionowo", data: txtStrefa3 },

        // Strefa IV
        "bialystok": { name: "Białystok", data: txtStrefa4 },
        "olsztyn": { name: "Olsztyn", data: txtStrefa4 },
        "ostroleka": { name: "Ostrołęka", data: txtStrefa4 },
        "siedlce": { name: "Siedlce", data: txtStrefa4 },
        "zamosc": { name: "Zamość", data: txtStrefa4 },
        "lomza": { name: "Łomża", data: txtStrefa4 },
        "elblag": { name: "Elbląg", data: txtStrefa4 },
        "elk": { name: "Ełk", data: txtStrefa4 },
        "gizycko": { name: "Giżycko", data: txtStrefa4 },
        "ketrzyn": { name: "Kętrzyn", data: txtStrefa4 },
        "mragowo": { name: "Mrągowo", data: txtStrefa4 },
        "szczytno": { name: "Szczytno", data: txtStrefa4 },
        "bartoszyce": { name: "Bartoszyce", data: txtStrefa4 },
        "bielsk podlaski": { name: "Bielsk Podlaski", data: txtStrefa4 },
        "hajnowka": { name: "Hajnówka", data: txtStrefa4 },
        "sokolka": { name: "Sokółka", data: txtStrefa4 },
        "augustow": { name: "Augustów", data: txtStrefa4 },
        "biala podlaska": { name: "Biała Podlaska", data: txtStrefa4 },
        "chelm": { name: "Chełm", data: txtStrefa4 },
        "hrubieszow": { name: "Hrubieszów", data: txtStrefa4 },
        "tomaszow lubelski": { name: "Tomaszów Lubelski", data: txtStrefa4 },

        // Strefa V
        "suwalki": { name: "Suwałki", data: txtStrefa5 },
        "zakopane": { name: "Zakopane", data: txtStrefa5 },
        "nowy targ": { name: "Nowy Targ", data: txtStrefa5 },
        "zywiec": { name: "Żywiec", data: txtStrefa5 },
        "karpacz": { name: "Karpacz", data: txtStrefa5 },
        "krynica-zdroj": { name: "Krynica-Zdrój", data: txtStrefa5 },
        "szklarska poreba": { name: "Szklarska Poręba", data: txtStrefa5 },
        "wisla": { name: "Wisła", data: txtStrefa5 },
        "ustron": { name: "Ustroń", data: txtStrefa5 },
        "szczyrk": { name: "Szczyrk", data: txtStrefa5 },
        "rabka-zdroj": { name: "Rabka-Zdrój", data: txtStrefa5 },
        "limanowa": { name: "Limanowa", data: txtStrefa5 },
        "sucha beskidzka": { name: "Sucha Beskidzka", data: txtStrefa5 },
        "gorlice": { name: "Gorlice", data: txtStrefa5 },
        "nowy sacz": { name: "Nowy Sącz", data: txtStrefa5 },
        "sejny": { name: "Sejny", data: txtStrefa5 },
        "olecko": { name: "Olecko", data: txtStrefa5 },
        "goldap": { name: "Gołdap", data: txtStrefa5 }
    };

    // Silnik autouzupełniania (bez znaków logicznych typu AND/OR)
    searchInput.addEventListener('input', function() {
        var val = this.value.toLowerCase();
        suggestionsBox.innerHTML = '';
        
        if (val === '') {
            suggestionsBox.style.display = 'none';
        } else {
            var hasMatches = false;
            
            for (var key in cityData) {
                var cityName = cityData[key].name;
                var matchIndex = cityName.toLowerCase().indexOf(val);
                
                if (matchIndex > -1) {
                    hasMatches = true;
                    var div = document.createElement('div');
                    div.className = 'rk-loc-suggestion-item';
                    div.innerText = cityName;
                    
                    div.setAttribute('data-key', key);
                    
                    div.addEventListener('click', function() {
                        var clickedKey = this.getAttribute('data-key');
                        showDashboard(clickedKey);
                    });
                    
                    suggestionsBox.appendChild(div);
                }
            }
            
            if (hasMatches === true) {
                suggestionsBox.style.display = 'block';
            } else {
                suggestionsBox.style.display = 'none';
            }
        }
    });

    // Funkcja aktualizująca dashboard po wybraniu miasta
    function showDashboard(cityKey) {
        var city = cityData[cityKey];
        var data = city.data;
        
        if (city !== undefined) {
            searchInput.value = city.name;
            suggestionsBox.style.display = 'none';
            
            elCityName.innerText = "Twoja lokalizacja: " + city.name;
            elZoneTemp.innerText = data.zone + " (" + data.temp + ")";
            elOzc.innerText = data.ozc;
            elSpacing.innerText = data.spacing;
            elSpacingDesc.innerText = data.spacingDesc;
            elFlowTemp.innerText = data.flow;

            dashboard.classList.remove('active');
            void dashboard.offsetWidth; 
            dashboard.classList.add('active');
        }
    }

    document.addEventListener('click', function(e) {
        if (e.target !== searchInput) {
            suggestionsBox.style.display = 'none';
        }
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-bg-light: #f8fafc;
    --rk-faq-border: #cbd5e1;
    --rk-faq-text: #334155;
    --rk-faq-accent: #e0f2fe;
}

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

.rk-faq-header {
    background: linear-gradient(to right, var(--rk-faq-dark), #1e293b);
    padding: 40px 45px;
    text-align: left;
    position: relative;
}

.rk-faq-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-faq-blue);
}

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

.rk-faq-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
}

.rk-faq-wrapper {
    padding: 30px 45px 45px;
    background: var(--rk-faq-bg-light);
}

.rk-faq-item {
    margin-bottom: 15px;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}

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

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

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

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

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

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

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

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

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

.rk-faq-text {
    padding: 0 30px 25px 30px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

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

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

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-wrapper { padding: 25px 20px; }
    .rk-faq-trigger { padding: 20px; }
    .rk-faq-text { padding: 0 20px 20px 20px; }
    .rk-faq-trigger h3 { font-size: 15px; }
}
</style>

<!-- Zaawansowana Warstwa Danych (JSON-LD) - Article + FAQPage + Dataset + WebApplication -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Najczęściej zadawane pytania (FAQ) - Strefy Klimatyczne a Ogrzewanie Podłogowe",
    "description": "Zbiór najważniejszych technicznych pytań i odpowiedzi dotyczących stref klimatycznych w Polsce i ich wpływu na obliczenia OZC oraz parametry podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Ile dokładnie stref klimatycznych wyróżnia się w Polsce w normach budowlanych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W Polsce wyróżnia się dokładnie 5 stref klimatycznych (od I do V), które definiują projektowe temperatury zewnętrzne od -16 st. C do -24 st. C."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką temperaturę zewnętrzną przyjmuje się dla II strefy klimatycznej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla II strefy klimatycznej projektowa temperatura zewnętrzna wynosi -18 st. C, co obejmuje m.in. niziny zachodnie i centralno-zachodnie, takie jak Poznań czy Wrocław."
        }
      },
      {
        "@type": "Question",
        "name": "Czy strefa klimatyczna wpływa na wybór mocy pompy ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, strefa klimatyczna bezpośrednio decyduje o obliczeniowym zapotrzebowaniu na ciepło OZC, co wymusza dobór pompy o odpowiedniej mocy szczytowej i punkcie bivalencji."
        }
      },
      {
        "@type": "Question",
        "name": "Gdzie zakwalifikowane jest Podkarpacie w podziale na strefy klimatyczne?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Podkarpacie w zależności od lokalizacji nizinnej najczęściej kwalifikuje się do III strefy klimatycznej z temperaturą -20 st. C, jednak tereny podwyższone wymagają zaostrzenia parametrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe w V strefie klimatycznej wymaga gęstszego układania rur?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, wyższe straty ciepła w strefie V (np. Suwałki, Zakopane) wymagają większej gęstości strumienia cieplnego, co wymusza zagęszczenie skoku rur do 10 cm lub mniej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-faq",
    "name": "Zestawienie parametrów normatywnych i odpowiedzi dla stref klimatycznych",
    "description": "Baza wiedzy Q&A zawierająca interpretacje norm budowlanych w kontekście doboru parametrów hydraulicznych podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podział Polski na strefy klimatyczne",
      "jak dobrać moc pompy ciepła strefa",
      "temperatura obliczeniowa dla Poznania",
      "rozstaw rur podłogówki na Suwalszczyźnie",
      "normy klimatyczne a projekt ogrzewania"
    ],
    "measurementTechnique": "Ekstrakcja wytycznych z PN-EN 12831 w formie szybkich inżynierskich pytań i odpowiedzi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicje temperatur dla 5 stref klimatycznych.",
        "Korelacja OZC z punktem bivalencji urządzeń grzewczych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-faq",
    "name": "Interaktywny Panel FAQ Stref Klimatycznych",
    "description": "Dynamiczny komponent przeglądarkowy usprawniający nawigację po najczęstszych problemach instalatorskich związanych z rejonizacją klimatyczną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rkStrefyFaq">
    <div class="rk-faq-header">
        <h2>Szybkie Q&A Inwestora</h2>
        <p>Błyskawiczne odpowiedzi na najczęstsze wątpliwości dotyczące doboru parametrów budynku do warunków zewnętrznych.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" type="button">
                <h3>Ile dokładnie stref klimatycznych wyróżnia się w Polsce w normach budowlanych?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div class="rk-faq-text">
                        W Polsce wyróżnia się dokładnie <strong>5 stref klimatycznych</strong> (od I do V), które definiują projektowe temperatury zewnętrzne od -16 st. C do -24 st. C. To fundament wszelkich późniejszych obliczeń zapotrzebowania cieplnego budynku.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" type="button">
                <h3>Jaką temperaturę zewnętrzną przyjmuje się dla II strefy klimatycznej?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div class="rk-faq-text">
                        Dla II strefy klimatycznej projektowa temperatura zewnętrzna wynosi dokładnie <strong>-18 st. C</strong>. Obejmuje ona między innymi niziny zachodnie i centralno-zachodnie, takie jak rozległe obszary wokół Poznania czy Wrocławia.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" type="button">
                <h3>Czy strefa klimatyczna wpływa na wybór mocy pompy ciepła?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div class="rk-faq-text">
                        Tak, strefa klimatyczna bezpośrednio decyduje o obliczeniowym zapotrzebowaniu na ciepło OZC, co wymusza na projektancie dobór <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> o odpowiedniej mocy szczytowej i bezbłędne wyznaczenie punktu bivalencji.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" type="button">
                <h3>Gdzie zakwalifikowane jest Podkarpacie w podziale na strefy klimatyczne?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div class="rk-faq-text">
                        Podkarpacie, w zależności od lokalizacji nizinnej, najczęściej kwalifikuje się do <strong>III strefy klimatycznej</strong> z temperaturą -20 st. C. Jednakże warto zaznaczyć, że tereny podwyższone i specyficzne wzniesienia zmuszają projektanta do zaostrzenia parametrów wejściowych.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" type="button">
                <h3>Czy ogrzewanie podłogowe w V strefie klimatycznej wymaga gęstszego układania rur?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-inner">
                    <div class="rk-faq-text">
                        Tak, wyższe straty ciepła w skrajnej strefie V (np. Suwałki, Zakopane) wymagają dużo większej gęstości strumienia cieplnego. To wymusza bezpośrednio gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a>, najczęściej do 10 cm, a w strefach brzegowych nawet mniej.
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var triggers = document.querySelectorAll('.rk-faq-trigger');
    
    for (var i = 0; i < triggers.length; i++) {
        triggers[i].addEventListener('click', function() {
            var parentItem = this.parentElement;
            var isCurrentlyActive = parentItem.classList.contains('active');
            var allItems = document.querySelectorAll('.rk-faq-item');
            
            // Zwijanie wszystkich otwartych kart - bezpieczny kod bez znaków zakazanych
            for (var j = 0; j < allItems.length; j++) {
                allItems[j].classList.remove('active');
            }
            
            // Otwieranie klikniętej karty, o ile nie była wcześniej otwarta
            if (isCurrentlyActive === false) {
                parentItem.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-sky: #e0f2fe;
    --rk-dl-cyan: #06b6d4;
    --rk-dl-gray: #64748b;
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #cbd5e1;
    --rk-dl-text: #334155;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 10px 30px -5px rgba(2, 132, 199, 0.08);
    overflow: hidden;
}

/* Nagłówek sekcji */
.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
}

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

.rk-dl-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

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

/* Lewa strona - Miniatura */
.rk-dl-preview-box {
    padding: 40px 30px;
    background: #ffffff;
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rk-dl-thumbnail-wrapper {
    width: 100%;
    position: relative;
    border: 4px solid var(--rk-dl-sky);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    background: #f1f5f9;
}

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

.rk-dl-thumbnail-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(15, 23, 42, 0.85);
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    padding: 8px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa strona - Akcje i opisy */
.rk-dl-actions-box {
    padding: 40px;
}

.rk-dl-actions-box h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
}

.rk-dl-buttons-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    margin-bottom: 35px;
}

/* Przyciski (bez animacji) */
.rk-dl-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 20px 25px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    border: none;
}

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

.rk-dl-btn-primary:hover {
    background: var(--rk-dl-cyan);
    border-color: var(--rk-dl-cyan);
}

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

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

.rk-dl-icon-container {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-dl-btn-secondary .rk-dl-icon-container {
    background: var(--rk-dl-sky);
    color: var(--rk-dl-blue);
}

.rk-dl-btn-text {
    text-align: left;
}

.rk-dl-btn-title {
    display: block;
    font-size: 16px;
    margin-bottom: 3px;
}

.rk-dl-btn-sub {
    display: block;
    font-size: 12px;
    font-weight: 600;
    opacity: 0.85;
}

.rk-dl-btn-secondary .rk-dl-btn-sub {
    color: var(--rk-dl-gray);
}

/* Stopka z prawami autorskimi */
.rk-dl-copyright {
    background: #f1f5f9;
    padding: 20px;
    border-left: 4px solid var(--rk-dl-gray);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    border-radius: 0 8px 8px 0;
}

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

/* Modal do podglądu obrazka (bez animacji) */
.rk-dl-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    padding: 20px;
    box-sizing: border-box;
}

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

.rk-dl-modal-content {
    position: relative;
    max-width: 900px;
    width: 100%;
    max-height: 90vh;
    background: #ffffff;
    border-radius: 12px;
    padding: 10px;
    display: flex;
    flex-direction: column;
}

.rk-dl-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-dl-modal-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 8px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-header { padding: 30px 20px; text-align: left; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-preview-box { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 30px 20px; }
    .rk-dl-actions-box { padding: 30px 20px; }
    .rk-dl-btn { flex-direction: column; text-align: center; padding: 25px 20px; }
    .rk-dl-btn-text { text-align: center; }
    .rk-dl-thumbnail-wrapper { max-width: 320px; margin: 0 auto; }
}
</style>

<!-- Invisible Data JSON-LD -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Pobierz darmowe materiały: Infografika stref klimatycznych i OZC",
    "description": "Zestawienie wizualne i techniczne wytycznych dotyczących wpływu stref klimatycznych na projekty ogrzewania podłogowego. Pobierz plik PDF lub przeglądaj infografikę online.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset-materialy",
    "name": "Infografika normatywna: Strefy klimatyczne a instalacje grzewcze",
    "description": "Wizualne opracowanie danych inżynieryjnych łączących podział terytorialny kraju z wymogami projektowymi dla pomp ciepła i ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika strefy klimatyczne pdf",
      "mapa temperatur obliczeniowych do pobrania",
      "materiały dla instalatorów hvac",
      "ogrzewanie podłogowe zasady projektowania grafika",
      "ozc podsumowanie wizualne"
    ],
    "measurementTechnique": "Prezentacja wizualna norm PN-82/B-02403 oraz PN-EN 12831 w formie interaktywnego dokumentu PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wizualizacja podziału Polski na 5 stref temperaturowych.",
        "Zestawienie najważniejszych różnic w stratach ciepła i doborze pomp obiegowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp-materialy",
    "name": "Panel Dystrybucji Materiałów Technicznych",
    "description": "Interaktywny moduł umożliwiający bezpośredni podgląd oraz bezpieczne pobranie zautoryzowanych plików graficznych i PDF z zachowaniem praw autorskich inżyniera.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rkDownloadCenter">
    
    <!-- Nagłówek -->
    <div class="rk-dl-header">
        <h2>Pobierz darmowe materiały: Infografika stref klimatycznych i OZC</h2>
        <p>Przygotowałem dla Ciebie czytelne podsumowanie najważniejszych norm w formie wizualnej. Pobierz, wydrukuj i miej zawsze pod ręką podczas planowania budowy.</p>
    </div>

    <div class="rk-dl-body">
        
        <!-- Podgląd Miniatury -->
        <div class="rk-dl-preview-box">
            <div class="rk-dl-thumbnail-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.webp" alt="Podgląd Infografiki - Strefy Klimatyczne" class="rk-dl-thumbnail" loading="lazy">
                <div class="rk-dl-thumbnail-overlay">Podgląd dokumentu</div>
            </div>
        </div>

        <!-- Akcje i Przyciski -->
        <div class="rk-dl-actions-box">
            <h3>Wybierz format materiału</h3>
            
            <div class="rk-dl-buttons-grid">
                
                <!-- Przycisk PDF -->
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-primary">
                    <div class="rk-dl-icon-container">
                        <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="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    </div>
                    <div class="rk-dl-btn-text">
                        <span class="rk-dl-btn-title">Pobierz plik PDF</span>
                        <span class="rk-dl-btn-sub">Wysoka jakość do druku (Otwiera się w nowym oknie)</span>
                    </div>
                </a>

                <!-- Przycisk Podglądu Zdjęcia -->
                <button type="button" class="rk-dl-btn rk-dl-btn-secondary" id="rkBtnPreviewImg">
                    <div class="rk-dl-icon-container">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><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-dl-btn-text">
                        <span class="rk-dl-btn-title">Wyświetl na ekranie (WEBP)</span>
                        <span class="rk-dl-btn-sub">Szybki podgląd grafiki bezpośrednio na stronie</span>
                    </div>
                </button>

            </div>

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

        </div>

    </div>
</div>

<!-- Modal do wyświetlenia zdjęcia na pełnym ekranie (BEZ animacji) -->
<div class="rk-dl-modal" id="rkImageModal">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rkBtnCloseModal">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
            ZAMKNIJ
        </button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Strefy-klimatyczne-w-Polsce-a-ogrzewanie-podlogowe-i-OZC.webp" alt="Pełnowymiarowa Infografika" class="rk-dl-modal-img" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnOpen = document.getElementById('rkBtnPreviewImg');
    var btnClose = document.getElementById('rkBtnCloseModal');
    var modal = document.getElementById('rkImageModal');

    // Funkcja otwierająca modal (natychmiastowe pokazanie elementu)
    btnOpen.addEventListener('click', function(e) {
        e.preventDefault();
        modal.classList.add('active');
    });

    // Funkcja zamykająca modal kliknięciem w przycisk
    btnClose.addEventListener('click', function() {
        modal.classList.remove('active');
    });

    // Zamykanie modalu kliknięciem w ciemne tło (bezpieczny warunek bez uzycia &&)
    modal.addEventListener('click', function(e) {
        if (e.target === modal) {
            modal.classList.remove('active');
        }
    });
});
</script>



<style>
:root {
    --rk-klimat-dark: #1e293b;
    --rk-klimat-blue: #0369a1;
    --rk-klimat-light-blue: #f0f9ff;
    --rk-klimat-green: #059669;
    --rk-klimat-green-light: #ecfdf5;
    --rk-klimat-red: #dc2626;
    --rk-klimat-red-light: #fef2f2;
    --rk-klimat-gold: #d97706;
    --rk-klimat-gray: #64748b;
    --rk-klimat-border: #e2e8f0;
    --rk-klimat-bg: #ffffff;
}

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

/* Nagłówek Sekcji */
.rk-klimat-header {
    padding: 40px 45px 30px;
    background: var(--rk-klimat-light-blue);
    border-bottom: 2px solid var(--rk-klimat-border);
    text-align: center;
}

.rk-klimat-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #bae6fd;
    color: #0284c7;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

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

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

/* Interaktywny Moduł - Zero animacji, czysta funkcjonalność */
.rk-klimat-interactive {
    padding: 40px 45px;
    background: #f8fafc;
}

.rk-klimat-interactive h3 {
    text-align: center;
    font-size: 20px;
    color: var(--rk-klimat-dark);
    margin-top: 0;
    margin-bottom: 30px;
}

.rk-klimat-controls {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-klimat-btn {
    flex: 1;
    padding: 20px;
    border-radius: 12px;
    border: 2px solid var(--rk-klimat-border);
    background: #ffffff;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: background 0.2s, border-color 0.2s;
}

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

.rk-klimat-btn.active-pro {
    background: var(--rk-klimat-green-light);
    border-color: var(--rk-klimat-green);
}

.rk-klimat-btn.active-error {
    background: var(--rk-klimat-red-light);
    border-color: var(--rk-klimat-red);
}

.rk-klimat-icon {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #475569;
}

.active-pro .rk-klimat-icon { background: var(--rk-klimat-green); color: #fff; }
.active-error .rk-klimat-icon { background: var(--rk-klimat-red); color: #fff; }

.rk-btn-text h4 { margin: 0 0 5px 0; font-size: 16px; font-weight: 800; color: var(--rk-klimat-dark); }
.rk-btn-text p { margin: 0; font-size: 13px; color: var(--rk-klimat-gray); }

/* Wyniki */
.rk-klimat-result-box {
    background: #ffffff;
    border: 1px solid var(--rk-klimat-border);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.rk-klimat-metric {
    padding-bottom: 15px;
    border-bottom: 1px solid #f1f5f9;
}

.rk-klimat-metric:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-klimat-metric-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-klimat-gray);
    margin-bottom: 8px;
    display: block;
}

.rk-klimat-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-klimat-dark);
}

.rk-klimat-metric-desc {
    font-size: 14px;
    color: #64748b;
    margin-top: 5px;
}

.val-good { color: var(--rk-klimat-green); }
.val-bad { color: var(--rk-klimat-red); }

/* Tagi Długi Ogon */
.rk-klimat-tags-container {
    padding: 20px 45px;
    background: #ffffff;
    border-top: 1px solid var(--rk-klimat-border);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    display: inline-block;
    padding: 6px 14px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    color: #475569;
    font-size: 12px;
    border-radius: 6px;
    font-weight: 600;
}

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

.rk-klimat-cta h3 {
    color: #ffffff;
    font-size: 22px;
    margin: 0 0 15px 0;
}

.rk-klimat-cta p {
    color: #94a3b8;
    margin: 0 auto 25px auto;
    font-size: 15px;
    max-width: 600px;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-klimat-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    .rk-klimat-header, .rk-klimat-interactive, .rk-klimat-cta, .rk-klimat-tags-container { padding: 30px 20px; }
    .rk-klimat-controls { flex-direction: column; gap: 15px; }
    .rk-klimat-result-box { grid-template-columns: 1fr; gap: 20px; }
    .rk-btn-massive { width: 100%; box-sizing: border-box; }
}
</style>

<!-- Niewidoczna Warstwa Danych (Invisible Data - JSON-LD) -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/"
    },
    "headline": "Podsumowanie: Błąd o jedną strefę klimatyczną to najdroższa pomyłka inwestora",
    "description": "Zestawienie parametrów technicznych i kosztów eksploatacji ogrzewania podłogowego w zależności od poprawnego przypisania budynku do strefy klimatycznej w Polsce wg normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/", 
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-01",
    "dateModified": "2026-08-01"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#dataset",
    "name": "Symulacja kosztów i parametrów: Strefa II vs Strefa V dla OZC",
    "description": "Zbiór danych inżynieryjnych porównujących wpływ stref klimatycznych na obliczeniowe zapotrzebowanie na ciepło (OZC), wydajność pompy ciepła oraz zużycie energii elektrycznej w sezonie grzewczym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefy klimatyczne w Polsce mapa",
      "obliczenia OZC dla pompy ciepła",
      "jak obliczyć moc pompy ciepła strefy",
      "temperatura projektowa PN-EN 12831",
      "rozstaw rur a strefa klimatyczna"
    ],
    "measurementTechnique": "Kalkulacja strat ciepła wg PN-EN 12831 oraz symulacja poboru energii przez pompę ciepła w skrajnych warunkach temperaturowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przypadek Optymalny: Precyzyjne przypisanie budynku do V strefy klimatycznej, dobór źródła o mocy 9 kW, parametry pętli 10 cm.",
        "Przypadek Błędny: Zastosowanie projektu z II strefy dla budynku w V strefie, moc 6 kW, deficyt mocy, załączenie grzałek szczytowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/#webapp",
    "name": "Kalkulator Skutków Błędnej Strefy Klimatycznej",
    "description": "Interaktywny widżet demonstracyjny pokazujący konsekwencje zastosowania uniwersalnego projektu (katalogowego) w trudniejszej strefie klimatycznej Polski.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-klimat-container" id="rkKlimatSummary">
    <div class="rk-klimat-header">
        <div class="rk-klimat-badge">WNIOSKI INŻYNIERSKIE</div>
        <h2>Podsumowanie: Błąd o jedną strefę klimatyczną to najdroższa pomyłka inwestora</h2>
        <p>Prawa fizyki nie wybaczają optymizmu. Wykorzystanie "uniwersalnego" gotowego projektu z łagodnej strefy klimatycznej w rejonie o surowych zimach zniszczy parametry Twojej pompy ciepła i zmusi ją do ciągłej pracy na najdroższych elektrycznych grzałkach wspomagających.</p>
    </div>

    <div class="rk-klimat-interactive">
        <h3>Symulator: Wpływ weryfikacji strefy klimatycznej na parametry domu</h3>
        
        <div class="rk-klimat-controls" id="klimatControls">
            <button class="rk-klimat-btn active-pro" data-klimat="pro">
                <div class="rk-klimat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-btn-text">
                    <h4>Precyzyjny Projekt OZC</h4>
                    <p>Budynek dopasowany do V strefy klimatycznej (-24 st. C).</p>
                </div>
            </button>
            <button class="rk-klimat-btn" data-klimat="error">
                <div class="rk-klimat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div class="rk-btn-text">
                    <h4>Gotowy Projekt "Katalogowy"</h4>
                    <p>Budynek w V strefie na bazie projektu z II strefy (-18 st. C).</p>
                </div>
            </button>
        </div>

        <div class="rk-klimat-result-box" id="klimatResultBox">
            <!-- Dynamiczna treść JS -->
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Zapotrzebowanie Mocy (OZC)</span>
                    <div class="rk-klimat-metric-val val-good">7.9 kW</div>
                    <div class="rk-klimat-metric-desc">Idealnie dobrana wielkość źródła ciepła dla skrajnych mrozów. Pompa pokrywa całe zapotrzebowanie.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Rozstaw rur w strefie dziennej</span>
                    <div class="rk-klimat-metric-val">co 10 cm</div>
                    <div class="rk-klimat-metric-desc">Zagęszczenie skoku kompensuje wyższe straty budynku przy zachowaniu chłodnej, zdrowej posadzki.</div>
                </div>
            </div>
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Rachunek za prąd (zima)</span>
                    <div class="rk-klimat-metric-val val-good">W normie / Niskie COP</div>
                    <div class="rk-klimat-metric-desc">Wysoki wskaźnik SCOP, sprężarka pracuje stabilnie i nie wymaga posiłkowania się potężnymi grzałkami.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Decyzja inżynierska</span>
                    <div class="rk-klimat-metric-desc">Sprawdź również <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" style="color:var(--rk-klimat-blue); font-weight:700;">Kalkulator strat ciepła budynku</a> aby potwierdzić własne wyliczenia strefowe.</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-klimat-tags-container">
        <span class="rk-mat-tag"># strefy klimatyczne w Polsce mapa</span>
        <span class="rk-mat-tag"># obliczenia OZC dla pompy ciepła</span>
        <span class="rk-mat-tag"># temperatura projektowa PN-EN 12831</span>
        <span class="rk-mat-tag"># wpływ strefy klimatycznej na ogrzewanie</span>
        <span class="rk-mat-tag"># rozstaw rur a strefa klimatyczna</span>
        <span class="rk-mat-tag"># zapotrzebowanie energetyczne budynku strefa IV</span>
        <span class="rk-mat-tag"># dobór pompy ciepła a strefa klimatyczna</span>
        <span class="rk-mat-tag"># polski biegun zimna ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># straty cieplne normy budowlane</span>
        <span class="rk-mat-tag"># błędy w projekcie ogrzewania podłogowego</span>
    </div>

    <div class="rk-klimat-cta">
        <h3>Nie zgaduj. Licz zgodnie z normami.</h3>
        <p>Brak optymalizacji instalacji pod warunki klimatyczne to prosta droga do niedogrzanego domu i astronomicznych rachunków za prąd. Skorzystaj ze sprawdzonej wiedzy i darmowych poradników.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            PRZEJDŹ DO BAZY WIEDZY I KALKULATORÓW
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var buttons = document.querySelectorAll('.rk-klimat-btn');
    var resultBox = document.getElementById('klimatResultBox');

    var data = {
        pro: `
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Zapotrzebowanie Mocy (OZC)</span>
                    <div class="rk-klimat-metric-val val-good">7.9 kW</div>
                    <div class="rk-klimat-metric-desc">Idealnie dobrana wielkość źródła ciepła dla skrajnych mrozów w V strefie. Pompa pokrywa całe zapotrzebowanie bez wysiłku.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Rozstaw rur w strefie dziennej</span>
                    <div class="rk-klimat-metric-val">co 10 cm</div>
                    <div class="rk-klimat-metric-desc">Zagęszczenie skoku do 10 cm kompensuje wyższe straty budynku przy zachowaniu chłodnej, zdrowej posadzki.</div>
                </div>
            </div>
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Rachunek za prąd (Zima)</span>
                    <div class="rk-klimat-metric-val val-good">Stabilny (Wysoki SCOP)</div>
                    <div class="rk-klimat-metric-desc">Temperatura zasilania utrzymana w ryzach. Sprężarka pracuje wydajnie, izolując Twój portfel od skoków cen prądu.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Decyzja inżynierska</span>
                    <div class="rk-klimat-metric-desc">Zanim wylejesz beton, zweryfikuj hydraulikę odwiedzając <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" style="color:var(--rk-klimat-blue); font-weight:700;">Kalkulator doboru pompy obiegowej</a>.</div>
                </div>
            </div>
        `,
        error: `
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Zapotrzebowanie Mocy (OZC)</span>
                    <div class="rk-klimat-metric-val val-bad">6.1 kW (Błąd -18%)</div>
                    <div class="rk-klimat-metric-desc">Moc obliczona dla II strefy zamiast dla V. Brakuje niemal 2 kW mocy, gdy temperatura za oknem spadnie poniżej -15 st. C.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Rozstaw rur w strefie dziennej</span>
                    <div class="rk-klimat-metric-val val-bad">co 15 cm (Katalogowy)</div>
                    <div class="rk-klimat-metric-desc">Zbyt rzadkie ułożenie uniemożliwia oddanie odpowiedniej ilości ciepła bez drastycznego podniesienia temperatury wody.</div>
                </div>
            </div>
            <div>
                <div class="rk-klimat-metric">
                    <span class="rk-klimat-metric-label">Rachunek za prąd (Zima)</span>
                    <div class="rk-klimat-metric-val val-bad">+ 6000 PLN Rośnie!</div>
                    <div class="rk-klimat-metric-desc">Punkt bivalencji przesunięty. Do akcji wkraczają grzałki elektryczne 1:1, a niska temperatura posadzki wymusza pracę pompy na parametrze 45 stopni.</div>
                </div>
                <div class="rk-klimat-metric" style="margin-top: 15px;">
                    <span class="rk-klimat-metric-label">Ocena instalatora</span>
                    <div class="rk-klimat-metric-desc">Błąd w strefie bezpośrednio wpływa na wydajność węzła, dlatego zapoznaj się z wiedzą z sekcji <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" style="color:var(--rk-klimat-blue); font-weight:700;">Rozdzielacz do podłogówki</a>.</div>
                </div>
            </div>
        `
    };

    for (var i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener('click', function() {
            var choice = this.getAttribute('data-klimat');

            // Usuwanie klas aktywnych z bezpiecznym formatowaniem pętli (bez używania &#038;&#038;)
            for (var j = 0; j < buttons.length; j++) {
                buttons[j].classList.remove('active-pro');
                buttons[j].classList.remove('active-error');
            }

            if (choice === 'pro') {
                this.classList.add('active-pro');
                resultBox.innerHTML = data.pro;
            } else {
                this.classList.add('active-error');
                resultBox.innerHTML = data.error;
            }
        });
    }
});
</script>



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

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

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

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

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ulubione źródła google",
        "preferowane wyniki wyszukiwania",
        "autorytet domeny hvac",
        "zaufane portale budowlane",
        "personalizacja google search"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>


<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">Strefy klimatyczne w Polsce a ogrzewanie podłogowe i OZC: Dlaczego błąd o jedną strefę klimatyczną kosztuje Cię 6000 zł rocznie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 07:40:41 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Oszczędności energii]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[błędy na budowie]]></category>
		<category><![CDATA[dylatacje podłogówki]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[koszty budowy]]></category>
		<category><![CDATA[norma pn-en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[próba ciśnieniowa]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[rotametry]]></category>
		<category><![CDATA[rozdzielacz inox]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[styropian pod wylewkę]]></category>
		<category><![CDATA[taśma brzegowa]]></category>
		<category><![CDATA[usterki hydrauliczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4403</guid>

					<description><![CDATA[<p>Zdecydowałeś się na nowoczesną instalację płaszczyznową, zapłaciłeś za profesjonalne wyliczenia OZC i kupiłeś drogi rozdzielacz? To świetny start, ale niestety to za mało, aby spać spokojnie. Prawdziwy test dla Twojej inwestycji odbywa się w momencie zalewania rur betonem. To właśnie w tej fazie najczęściej dochodzi do kosztownych pomyłek z winy pośpiechu i brawury ekip. Pozorna oszczędność na taśmie dylatacyjnej, zalanie jastrychu bez odpowiedniego ciśnienia czy zignorowanie zaleceń dotyczących grubości izolacji to klasyczne przykłady na to, jak najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, potrafią zrujnować Twój portfel. Skucie popękanej posadzki i naprawa wycieków kosztują kilkadziesiąt tysięcy złotych. Przeczytaj ten raport, zapisz naszą listę kontrolną i obroń swój budżet, zanim betoniarka wjedzie na plac budowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-build-control {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-red-soft: #fff0ed;
    --rk-green: #178265;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #f2b441;
    --rk-yellow-soft: #fff7e6;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d7e6ed;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.78;
  }

  #rk-build-control,
  #rk-build-control * {
    box-sizing: border-box;
  }

  #rk-build-control img,
  #rk-build-control svg {
    max-width: 100%;
  }

  #rk-build-control button,
  #rk-build-control input,
  #rk-build-control a,
  #rk-build-control summary,
  #rk-build-control label {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-build-control a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-build-control a:hover {
    color: var(--rk-red);
  }

  #rk-build-control h2,
  #rk-build-control h3,
  #rk-build-control h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-build-control h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-build-control h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-build-control h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-build-control h2::before,
  #rk-build-control h2::after,
  #rk-build-control h3::before,
  #rk-build-control h3::after,
  #rk-build-control h4::before,
  #rk-build-control h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-build-control p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-build-control strong {
    color: var(--rk-dark);
  }

  #rk-build-control section[id] {
    scroll-margin-top: 30px;
  }

  #rk-build-control .rk-build-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-build-control .rk-build-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.9);
  }

  #rk-build-control .rk-build-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange));
  }

  #rk-build-control .rk-build-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 80px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 14%, rgba(255, 98, 56, 0.34), transparent 28%),
      radial-gradient(circle at 73% 82%, rgba(40, 201, 218, 0.22), transparent 32%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-build-control .rk-build-hero::before,
  #rk-build-control .rk-build-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-build-control .rk-build-hero::before {
    right: -135px;
    bottom: -190px;
    width: 430px;
    height: 430px;
    border: 62px solid rgba(255, 255, 255, 0.055);
  }

  #rk-build-control .rk-build-hero::after {
    right: 145px;
    bottom: -135px;
    width: 245px;
    height: 245px;
    border: 35px solid rgba(255, 98, 56, 0.13);
  }

  #rk-build-control .rk-build-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.23);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 98, 56, 0.18);
  }

  #rk-build-control .rk-build-hero h2 {
    max-width: 1080px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.1vw, 3.9rem);
    letter-spacing: -0.055em;
  }

  #rk-build-control .rk-build-hero h2 span {
    color: #83edf5;
  }

  #rk-build-control .rk-build-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 20px 22px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 16px 16px 0;
    color: #eefbff;
    background: rgba(4, 23, 34, 0.28);
    font-size: clamp(1.02rem, 2vw, 1.22rem);
    font-weight: 760;
  }

  #rk-build-control .rk-build-hero-lead {
    max-width: 970px;
    margin-bottom: 25px;
    color: #d8e8ee;
    font-size: clamp(1rem, 1.8vw, 1.16rem);
  }

  #rk-build-control .rk-build-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    color: #d8e8ee;
    font-size: 0.84rem;
    font-weight: 800;
  }

  #rk-build-control .rk-build-hero-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

  #rk-build-control .rk-build-hero-meta span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-build-control .rk-build-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 18px clamp(20px, 4vw, 52px);
    border-bottom: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-build-control .rk-build-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 14px;
    border: 1px solid #c9dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.3;
    text-decoration: none;
  }

  #rk-build-control .rk-build-nav a:hover,
  #rk-build-control .rk-build-nav a:focus-visible {
    border-color: var(--rk-blue);
    color: var(--rk-white);
    background: var(--rk-blue);
    outline: none;
  }

  #rk-build-control .rk-build-content {
    padding: clamp(26px, 5.2vw, 72px);
  }

  #rk-build-control .rk-build-section {
    padding: clamp(24px, 4.2vw, 54px) 0;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-build-control .rk-build-section:last-child {
    border-bottom: 0;
  }

  #rk-build-control .rk-build-section-head {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-build-control .rk-build-section-no {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: 18px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    box-shadow: 0 12px 25px rgba(7, 143, 190, 0.18);
    font-size: 0.84rem;
    font-weight: 950;
    letter-spacing: 0.05em;
  }

  #rk-build-control .rk-build-section-head p {
    max-width: 930px;
    margin: 0;
  }

  #rk-build-control .rk-build-answer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 0.42fr);
    gap: 26px;
    align-items: stretch;
    padding: clamp(24px, 4vw, 42px);
    border: 1px solid #bce8ef;
    border-radius: 24px;
    background: linear-gradient(135deg, #f2fdff, #ffffff 58%);
  }

  #rk-build-control .rk-build-answer h3 {
    font-size: clamp(1.35rem, 3vw, 2rem);
  }

  #rk-build-control .rk-build-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-answer-verdict {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px;
    border-radius: 20px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-build-control .rk-build-answer-verdict span {
    display: block;
    margin-bottom: 8px;
    color: #83edf5;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-answer-verdict strong {
    color: var(--rk-white);
    font-size: clamp(1.22rem, 2.6vw, 1.7rem);
    line-height: 1.22;
  }

  #rk-build-control .rk-build-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 28px 0;
  }

  #rk-build-control .rk-build-flow-card {
    position: relative;
    min-height: 190px;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-flow-card:not(:last-child)::after {
    content: "→";
    position: absolute;
    z-index: 3;
    top: 50%;
    right: -25px;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-orange);
    transform: translateY(-50%);
    font-weight: 950;
  }

  #rk-build-control .rk-build-flow-card span {
    display: inline-flex;
    margin-bottom: 15px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-flow-card p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-formula {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-formula code {
    display: block;
    margin: 12px 0 14px;
    padding: 14px 16px;
    border-radius: 12px;
    color: #eafcff;
    background: var(--rk-dark);
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: clamp(0.95rem, 2vw, 1.12rem);
    font-weight: 800;
    line-height: 1.45;
    white-space: normal;
  }

  #rk-build-control .rk-build-formula p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-note,
  #rk-build-control .rk-build-warning,
  #rk-build-control .rk-build-tip {
    margin: 25px 0;
    padding: 22px 24px;
    border-radius: 18px;
  }

  #rk-build-control .rk-build-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-cyan-soft);
  }

  #rk-build-control .rk-build-warning {
    border-left: 5px solid var(--rk-red);
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-tip {
    border-left: 5px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-build-control .rk-build-note p:last-child,
  #rk-build-control .rk-build-warning p:last-child,
  #rk-build-control .rk-build-tip p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-table-wrap {
    margin: 28px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    overflow: hidden;
  }

  #rk-build-control .rk-build-table {
    width: 100%;
    border: 0;
    border-collapse: collapse;
    table-layout: fixed;
    margin: 0;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-table th,
  #rk-build-control .rk-build-table td {
    padding: 17px 18px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }

  #rk-build-control .rk-build-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-table td {
    color: var(--rk-text);
    font-size: 0.9rem;
    line-height: 1.58;
  }

  #rk-build-control .rk-build-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-build-control .rk-build-table tbody tr:nth-child(even) td {
    background: #f8fbfc;
  }

  #rk-build-control .rk-build-status {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-status.is-red {
    color: #a52e22;
    background: #ffe2dc;
  }

  #rk-build-control .rk-build-status.is-orange {
    color: #8c5419;
    background: #fff0cd;
  }

  #rk-build-control .rk-build-status.is-green {
    color: #176f58;
    background: #dff4eb;
  }

  #rk-build-control .rk-build-responsibility {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-top: 28px;
  }

  #rk-build-control .rk-build-responsibility-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-responsibility-card > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: 15px;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 950;
  }

  #rk-build-control .rk-build-responsibility-card p:last-child {
    margin-bottom: 0;
    font-size: 0.88rem;
    line-height: 1.62;
  }

  #rk-build-control .rk-build-audit {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid #b9dce6;
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.09);
  }

  #rk-build-control .rk-build-audit-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 24px;
    align-items: center;
    padding: clamp(24px, 4vw, 40px);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #14516a);
  }

  #rk-build-control .rk-build-audit-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
  }

  #rk-build-control .rk-build-audit-head p {
    margin: 0;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-audit-score {
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
  }

  #rk-build-control .rk-build-audit-score-label {
    display: block;
    color: #b9dce6;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-score strong {
    display: block;
    margin: 4px 0 3px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5vw, 3.1rem);
    line-height: 1;
  }

  #rk-build-control .rk-build-audit-score small {
    color: #d8e8ee;
    font-weight: 750;
  }

  #rk-build-control .rk-build-audit-bar {
    height: 12px;
    overflow: hidden;
    background: #dcebf0;
  }

  #rk-build-control .rk-build-audit-fill {
    width: 0;
    height: 100%;
    background: var(--rk-red);
    transition: width 0.24s ease, background 0.24s ease;
  }

  #rk-build-control .rk-build-audit-result {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 24px clamp(22px, 4vw, 38px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-audit-signal {
    display: grid;
    place-items: center;
    min-height: 76px;
    padding: 12px;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-red);
    font-size: 1.18rem;
    font-weight: 950;
    line-height: 1.18;
    text-align: center;
  }

  #rk-build-control .rk-build-audit-result p {
    margin: 0;
    font-weight: 740;
  }

  #rk-build-control .rk-build-audit-body {
    padding: clamp(22px, 4vw, 38px);
  }

  #rk-build-control .rk-build-audit-stage-nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 26px;
  }

  #rk-build-control .rk-build-audit-stage-nav a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 78px;
    padding: 12px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    text-align: center;
    text-decoration: none;
  }

  #rk-build-control .rk-build-audit-stage-nav a span {
    color: var(--rk-blue);
    font-size: 0.67rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-stage-nav a strong {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  #rk-build-control .rk-build-audit-stage-nav a:hover,
  #rk-build-control .rk-build-audit-stage-nav a:focus-visible {
    border-color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    outline: none;
  }

  #rk-build-control .rk-build-audit-groups {
    display: grid;
    gap: 18px;
  }

  #rk-build-control .rk-build-audit-group {
    scroll-margin-top: 30px;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: #fbfdfe;
  }

  #rk-build-control .rk-build-audit-group-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
  }

  #rk-build-control .rk-build-audit-group-head h4 {
    margin: 0;
  }

  #rk-build-control .rk-build-stage-count {
    flex: 0 0 auto;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-blue);
    background: var(--rk-cyan-soft);
    font-size: 0.7rem;
    font-weight: 900;
  }

  #rk-build-control .rk-build-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  #rk-build-control .rk-build-check {
    position: relative;
    display: grid;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    min-height: 66px;
    margin: 0;
    padding: 14px;
    border: 1px solid #dbe7ec;
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-white);
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 690;
    line-height: 1.46;
  }

  #rk-build-control .rk-build-check:hover {
    border-color: #91cbd8;
    background: #f4fcfe;
  }

  #rk-build-control .rk-build-check input {
    width: 22px;
    height: 22px;
    margin: 1px 0 0;
    accent-color: var(--rk-green);
  }

  #rk-build-control .rk-build-check em {
    display: inline-flex;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 999px;
    color: #a52e22;
    background: #ffe2dc;
    font-size: 0.61rem;
    font-style: normal;
    font-weight: 950;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-audit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: space-between;
    align-items: center;
    margin-top: 22px;
  }

  #rk-build-control .rk-build-reset {
    min-height: 46px;
    padding: 10px 16px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-dark);
    cursor: pointer;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-build-control .rk-build-reset:hover,
  #rk-build-control .rk-build-reset:focus-visible {
    background: var(--rk-blue);
    outline: 3px solid rgba(40, 201, 218, 0.24);
  }

  #rk-build-control .rk-build-missing {
    color: var(--rk-muted);
    font-size: 0.8rem;
    font-weight: 800;
  }

  #rk-build-control .rk-build-disclaimer {
    margin: 0 clamp(22px, 4vw, 38px) clamp(22px, 4vw, 38px);
    padding: 17px 19px;
    border-radius: 14px;
    color: var(--rk-text);
    background: var(--rk-yellow-soft);
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-gates {
    display: grid;
    gap: 22px;
  }

  #rk-build-control .rk-build-gate {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 24px;
    padding: 28px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-gate-no {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 126px;
    padding: 16px;
    border-radius: 18px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
    text-align: center;
  }

  #rk-build-control .rk-build-gate-no span {
    color: #83edf5;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-gate-no strong {
    color: var(--rk-white);
    font-size: 2.5rem;
    line-height: 1;
  }

  #rk-build-control .rk-build-gate-content p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-gate-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
  }

  #rk-build-control .rk-build-gate-box {
    padding: 18px;
    border-radius: 15px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-gate-box h4 {
    margin-bottom: 7px;
    font-size: 0.9rem;
  }

  #rk-build-control .rk-build-gate-box ul {
    margin: 0;
    padding-left: 20px;
    color: var(--rk-text);
  }

  #rk-build-control .rk-build-gate-box li {
    margin: 0 0 6px;
    padding: 0;
    font-size: 0.84rem;
    line-height: 1.5;
  }

  #rk-build-control .rk-build-gate-box li:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-stop-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-stop-card {
    padding: 23px;
    border: 1px solid #ffd2ca;
    border-radius: 19px;
    background: var(--rk-red-soft);
  }

  #rk-build-control .rk-build-stop-card > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 5px 9px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-red);
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-stop-card p:last-child {
    margin-bottom: 0;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-docs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
  }

  #rk-build-control .rk-build-doc {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-doc > span {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 15px;
    border-radius: 14px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.75rem;
    font-weight: 950;
  }

  #rk-build-control .rk-build-doc p:last-child {
    margin-bottom: 0;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-build-control .rk-build-faq-list {
    display: grid;
    gap: 12px;
  }

  #rk-build-control .rk-build-faq {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-faq summary {
    position: relative;
    display: block;
    padding: 18px 55px 18px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 870;
    line-height: 1.45;
    list-style: none;
  }

  #rk-build-control .rk-build-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-build-control .rk-build-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
    font-size: 1.05rem;
    font-weight: 900;
  }

  #rk-build-control .rk-build-faq[open] summary::after {
    content: "−";
    background: var(--rk-orange);
  }

  #rk-build-control .rk-build-faq-answer {
    padding: 0 20px 20px;
  }

  #rk-build-control .rk-build-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-sources {
    padding: 22px 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-sources ul {
    margin: 0;
    padding-left: 22px;
  }

  #rk-build-control .rk-build-sources li {
    margin-bottom: 10px;
    color: var(--rk-text);
  }

  #rk-build-control .rk-build-sources li:last-child {
    margin-bottom: 0;
  }

  #rk-build-control .rk-build-small {
    margin-top: 15px;
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-build-control .rk-build-cta {
    margin: clamp(30px, 5vw, 58px) 0;
    padding: clamp(28px, 5vw, 54px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 10%, rgba(255, 98, 56, 0.26), transparent 32%),
      linear-gradient(135deg, var(--rk-dark), #17485e);
    text-align: center;
  }

  #rk-build-control .rk-build-cta h3 {
    max-width: 920px;
    margin: 0 auto 15px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.4vw, 2.35rem);
  }

  #rk-build-control .rk-build-cta p {
    max-width: 930px;
    margin: 0 auto 24px;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 58px;
    padding: 14px 26px;
    border-radius: 15px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 30px rgba(216, 60, 47, 0.25);
    font-weight: 950;
    line-height: 1.3;
    text-decoration: none !important;
  }

  #rk-build-control .rk-build-cta-link:hover,
  #rk-build-control .rk-build-cta-link:focus-visible {
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, #f04432, var(--rk-orange));
    transform: translateY(-1px);
    outline: 3px solid rgba(255, 255, 255, 0.18);
  }

  #rk-build-control .rk-build-cta small {
    display: block;
    max-width: 850px;
    margin: 14px auto 0;
    color: #b9cbd4;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-build-control .rk-build-author-box {
    overflow: hidden;
    border: 1px solid #cbdfe7;
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-build-control .rk-build-author-head {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: center;
    padding: 28px clamp(24px, 4vw, 42px);
    border-bottom: 5px solid var(--rk-cyan);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), #17485e);
  }

  #rk-build-control .rk-build-author-head h3 {
    margin-bottom: 7px;
    color: var(--rk-white);
    font-size: clamp(1.55rem, 3.4vw, 2.35rem);
  }

  #rk-build-control .rk-build-author-head p {
    margin: 0;
    color: #d8e8ee;
  }

  #rk-build-control .rk-build-author-mark {
    flex: 0 0 auto;
    padding: 10px 16px;
    border: 1px solid rgba(40, 201, 218, 0.4);
    border-radius: 14px;
    color: #72eaf4;
    font-size: 0.75rem;
    font-weight: 950;
    letter-spacing: 0.1em;
  }

  #rk-build-control .rk-build-author-main {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
  }

  #rk-build-control .rk-build-author-profile {
    padding: 38px 28px;
    border-right: 1px solid var(--rk-line);
    background: #f3f8fa;
    text-align: center;
  }

  #rk-build-control .rk-build-author-profile img {
    width: 174px;
    height: 174px;
    margin: 0 auto 20px;
    border: 9px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 38px rgba(16, 37, 54, 0.14);
  }

  #rk-build-control .rk-build-author-profile h4 {
    margin-bottom: 8px;
    font-size: 1.3rem;
  }

  #rk-build-control .rk-build-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-author-content {
    padding: clamp(28px, 4vw, 46px);
  }

  #rk-build-control .rk-build-quote {
    position: relative;
    margin-bottom: 26px;
    padding: 26px 26px 26px 54px;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-build-control .rk-build-quote::before {
    content: "“";
    position: absolute;
    top: 8px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 3.4rem;
    font-weight: 900;
    line-height: 1;
  }

  #rk-build-control .rk-build-quote blockquote {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--rk-dark);
    font-size: clamp(1.04rem, 2vw, 1.25rem);
    font-style: italic;
    font-weight: 820;
    line-height: 1.62;
  }

  #rk-build-control .rk-build-author-tabs {
    position: relative;
  }

  #rk-build-control .rk-build-author-radio {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
  }

  #rk-build-control .rk-build-author-labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
    overflow: hidden;
    background: var(--rk-soft);
  }

  #rk-build-control .rk-build-author-labels label {
    display: grid;
    place-items: center;
    min-height: 60px;
    margin: 0;
    padding: 11px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.04em;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
  }

  #rk-build-control .rk-build-author-labels label:last-child {
    border-right: 0;
  }

  #rk-build-control .rk-build-author-labels label:hover {
    color: var(--rk-blue);
    background: #eefbfe;
  }

  #rk-build-control .rk-build-author-panels {
    min-height: 200px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-build-control .rk-build-author-panel {
    display: none;
  }

  #rk-build-control .rk-build-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-build-author-about:checked ~ .rk-build-author-labels label[for="rk-build-author-about"],
  #rk-build-author-exp:checked ~ .rk-build-author-labels label[for="rk-build-author-exp"],
  #rk-build-author-sites:checked ~ .rk-build-author-labels label[for="rk-build-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-build-author-about:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-about"],
  #rk-build-author-exp:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-exp"],
  #rk-build-author-sites:focus-visible ~ .rk-build-author-labels label[for="rk-build-author-sites"] {
    outline: 3px solid rgba(40, 201, 218, 0.28);
    outline-offset: -3px;
  }

  #rk-build-author-about:checked ~ .rk-build-author-panels .rk-build-author-about,
  #rk-build-author-exp:checked ~ .rk-build-author-panels .rk-build-author-exp,
  #rk-build-author-sites:checked ~ .rk-build-author-panels .rk-build-author-sites {
    display: block;
  }

  #rk-build-control .rk-build-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
  }

  #rk-build-control .rk-build-portals a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 9px 14px;
    border: 1px solid #c9dce5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    text-decoration: none;
  }

  #rk-build-control .rk-build-portals a:hover,
  #rk-build-control .rk-build-portals a:focus-visible {
    border-color: var(--rk-blue);
    color: var(--rk-white);
    background: var(--rk-blue);
    outline: none;
  }

  @media (max-width: 1120px) {
    #rk-build-control .rk-build-responsibility {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-stop-grid,
    #rk-build-control .rk-build-docs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-author-main {
      grid-template-columns: 280px minmax(0, 1fr);
    }
  }

  @media (max-width: 860px) {
    #rk-build-control {
      font-size: 17px;
    }

    #rk-build-control .rk-build-answer,
    #rk-build-control .rk-build-audit-head,
    #rk-build-control .rk-build-audit-result,
    #rk-build-control .rk-build-author-main {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-flow {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-flow-card:not(:last-child)::after {
      top: auto;
      right: 50%;
      bottom: -25px;
      transform: translateX(50%) rotate(90deg);
    }

    #rk-build-control .rk-build-responsibility {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-audit-stage-nav {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-build-control .rk-build-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
  }

  @media (max-width: 720px) {
    #rk-build-control .rk-build-shell {
      border-radius: 22px;
    }

    #rk-build-control .rk-build-section-head {
      grid-template-columns: 48px minmax(0, 1fr);
      gap: 14px;
    }

    #rk-build-control .rk-build-section-no {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      font-size: 0.72rem;
    }

    #rk-build-control .rk-build-formulas,
    #rk-build-control .rk-build-checks,
    #rk-build-control .rk-build-gate-grid,
    #rk-build-control .rk-build-stop-grid,
    #rk-build-control .rk-build-docs {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-gate {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-gate-no {
      min-height: 86px;
      flex-direction: row;
      gap: 10px;
    }

    #rk-build-control .rk-build-table-wrap {
      overflow: visible;
      border: 0;
      border-radius: 0;
    }

    #rk-build-control .rk-build-table,
    #rk-build-control .rk-build-table tbody,
    #rk-build-control .rk-build-table tr,
    #rk-build-control .rk-build-table td {
      display: block;
      width: 100%;
    }

    #rk-build-control .rk-build-table {
      background: transparent;
    }

    #rk-build-control .rk-build-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-build-control .rk-build-table tr {
      margin-bottom: 14px;
      padding: 5px 18px;
      border: 1px solid var(--rk-line);
      border-radius: 18px;
      background: var(--rk-white);
      box-shadow: 0 9px 24px rgba(16, 37, 54, 0.05);
    }

    #rk-build-control .rk-build-table td,
    #rk-build-control .rk-build-table tbody tr:nth-child(even) td {
      padding: 13px 0;
      border-bottom: 1px solid var(--rk-line);
      background: transparent;
    }

    #rk-build-control .rk-build-table td:last-child {
      border-bottom: 0;
    }

    #rk-build-control .rk-build-table td::before {
      content: attr(data-label);
      display: block;
      margin-bottom: 5px;
      color: var(--rk-blue);
      font-size: 0.65rem;
      font-weight: 950;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }
  }

  @media (max-width: 560px) {
    #rk-build-control {
      margin-top: 18px;
      font-size: 16px;
    }

    #rk-build-control .rk-build-hero,
    #rk-build-control .rk-build-content {
      padding-left: 20px;
      padding-right: 20px;
    }

    #rk-build-control .rk-build-nav {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      padding-left: 16px;
      padding-right: 16px;
    }

    #rk-build-control .rk-build-nav a {
      justify-content: center;
      text-align: center;
    }

    #rk-build-control .rk-build-responsibility,
    #rk-build-control .rk-build-audit-stage-nav,
    #rk-build-control .rk-build-author-labels {
      grid-template-columns: 1fr;
    }

    #rk-build-control .rk-build-author-labels {
      border-radius: 15px 15px 0 0;
    }

    #rk-build-control .rk-build-author-labels label {
      min-height: 48px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-build-control .rk-build-author-labels label:last-child {
      border-bottom: 0;
    }

    #rk-build-control .rk-build-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-build-control .rk-build-author-mark {
      align-self: flex-start;
    }

    #rk-build-control .rk-build-author-panels {
      min-height: 0;
      padding: 20px;
    }

    #rk-build-control .rk-build-audit-result {
      padding: 20px;
    }

    #rk-build-control .rk-build-audit-signal {
      min-height: 60px;
    }

    #rk-build-control .rk-build-audit-actions {
      align-items: stretch;
      flex-direction: column;
    }

    #rk-build-control .rk-build-reset {
      width: 100%;
    }

    #rk-build-control .rk-build-portals {
      align-items: stretch;
      flex-direction: column;
    }

    #rk-build-control .rk-build-portals a {
      justify-content: center;
      text-align: center;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-build-control *,
    #rk-build-control *::before,
    #rk-build-control *::after {
      scroll-behavior: auto !important;
      transition: none !important;
    }
  }
</style>

<article id="rk-build-control" itemscope="" itemtype="https://schema.org/TechArticle" aria-labelledby="rk-build-hero-title">
  <meta itemprop="inLanguage" content="pl-PL">
  <meta itemprop="datePublished" content="2026-04-24">
  <meta itemprop="dateModified" content="2026-08-25">
  <meta itemprop="mainEntityOfPage" content="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">

  <div class="rk-build-shell">
    <div class="rk-build-progress-track" aria-hidden="true"><div class="rk-build-progress"></div></div>

    <header class="rk-build-hero">
      <div class="rk-build-badge">Kontrola zgodności • 5 bramek odbiorowych</div>
      <h2 id="rk-build-hero-title" itemprop="headline">Projekt był dobry. <span>Budowa zmieniła dane wejściowe.</span></h2>
      <div class="rk-build-hook">Najgroźniejsze odstępstwo nie musi wyglądać jak fuszerka. Czasem jest nim przesunięcie rozdzielacza, zmiana okładziny, cieńsza izolacja albo inny układ ścian — decyzja podjęta już po wykonaniu obliczeń.</div>
      <p class="rk-build-hero-lead" itemprop="description">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego, powstają wtedy, gdy rzeczywisty budynek przestaje odpowiadać danym, dla których policzono moc, rozstaw rur, długości pętli, przepływy i temperaturę zasilania. Ten poradnik pokazuje, które zmiany wymagają ponownej kontroli oraz jak przeprowadzić odbiór w pięciu etapach.</p>
      <div class="rk-build-hero-meta">
        <span>Autor: Robert Kucharski</span>
        <span>Aktualizacja techniczna: 25 sierpnia 2026 r.</span>
        <span>Poziom: inwestor • wykonawca • kierownik budowy</span>
      </div>
    </header>

    <nav class="rk-build-nav" aria-label="Nawigacja po artykule">
      <a href="#rk-build-decision">Krótka odpowiedź</a>
      <a href="#rk-build-changes">Zmiany wymagające kontroli</a>
      <a href="#rk-build-audit">Kontrola 5 etapów</a>
      <a href="#rk-build-gates">Odbiory etapowe</a>
      <a href="#rk-build-stop">Kiedy powiedzieć STOP</a>
      <a href="#rk-build-faq">FAQ</a>
    </nav>

    <div class="rk-build-content">
      <section class="rk-build-section" id="rk-build-decision" aria-labelledby="rk-build-h2-1">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">01</div>
          <div>
            <h2 id="rk-build-h2-1">Czy dobry projekt ogrzewania podłogowego może zostać zepsuty na budowie?</h2>
            <p>Tak — jeżeli wykonanie albo sam budynek różnią się od danych przyjętych do obliczeń.</p>
          </div>
        </div>

        <div class="rk-build-answer">
          <div>
            <h3>Najkrótsza odpowiedź</h3>
            <p><strong>Projekt nie przestaje być poprawny tylko dlatego, że na budowie podjęto inną decyzję.</strong> Przestaje natomiast opisywać rzeczywisty układ. Jeżeli zmieniono izolację, stolarkę, temperaturę źródła, opór okładziny, powierzchnię aktywną, położenie rozdzielacza albo geometrię pomieszczeń, trzeba ocenić wpływ tej zmiany przed zakryciem instalacji.</p>
            <p>Najbezpieczniejsza zasada brzmi: <strong>najpierw zapis zmiany, potem decyzja projektowa, na końcu wykonanie</strong>. Kolejność odwrotna prowadzi do sytuacji, w której projekt i dokumentacja powykonawcza pokazują dwa różne budynki.</p>
          </div>
          <div class="rk-build-answer-verdict">
            <span>Zasada nadrzędna</span>
            <strong>Nie pytaj tylko: „czy rury są ułożone równo?”. Zapytaj: „czy wykonano układ, który został policzony?”.</strong>
          </div>
        </div>

        <div class="rk-build-note">
          <p><strong>Ważne rozróżnienie:</strong> szczegółowe usterki montażowe rur, rozdzielacza, dylatacji i hydrauliki omawia osobny poradnik o tym, <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">jakie błędy najczęściej popełniają instalatorzy ogrzewania podłogowego</a>. Ten artykuł koncentruje się na kontroli zmian między projektem a rzeczywistą budową.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-logic" aria-labelledby="rk-build-h2-2">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">02</div>
          <div>
            <h2 id="rk-build-h2-2">Dlaczego drobna zmiana może naruszyć kilka obliczeń jednocześnie?</h2>
            <p>Parametry ogrzewania podłogowego tworzą system naczyń połączonych.</p>
          </div>
        </div>

        <p><a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">Profesjonalny projekt ogrzewania podłogowego</a> nie jest tylko rysunkiem przewodów. Łączy obciążenie cieplne pomieszczeń, aktywną powierzchnię podłogi, konstrukcję przegrody, opór cieplny okładziny, temperaturę wody, rozstaw rur, długość pętli, wymagany przepływ oraz stratę ciśnienia. Zmiana jednego wejścia może więc zmienić kilka wyników.</p>

        <div class="rk-build-flow" aria-label="Łańcuch wpływu zmiany budowlanej">
          <div class="rk-build-flow-card">
            <span>1. Dane projektu</span>
            <h3>Obciążenie i konstrukcja</h3>
            <p>Straty ciepła, temperatura pomieszczenia, aktywna powierzchnia, warstwy podłogi, okładzina, źródło ciepła i położenie rozdzielacza.</p>
          </div>
          <div class="rk-build-flow-card">
            <span>2. Zmiana na budowie</span>
            <h3>Inny budynek niż w obliczeniach</h3>
            <p>Przesunięta ściana, mniejsza izolacja, większe przeszklenie, dywan zamiast płytki, rozdzielacz w innym miejscu albo ograniczona powierzchnia grzejna.</p>
          </div>
          <div class="rk-build-flow-card">
            <span>3. Skutek</span>
            <h3>Inna moc i hydraulika</h3>
            <p>Może zmienić się wymagany strumień ciepła, rozstaw, temperatura zasilania, długość obiegu, przepływ, opór hydrauliczny oraz nastawa rozdzielacza.</p>
          </div>
        </div>

        <div class="rk-build-formulas">
          <div class="rk-build-formula">
            <h3>Wymagana moc z powierzchni aktywnej</h3>
            <code>q<sub>wym</sub> = Φ<sub>pom</sub> / A<sub>aktywna</sub></code>
            <p>Jeżeli zabudowa stała, wanna, wyspa lub zmiana układu pomieszczenia zmniejszy aktywną powierzchnię, na każdy pozostały metr kwadratowy przypada większe obciążenie. Nie oznacza to automatycznie, że wystarczy zagęścić rury — trzeba sprawdzić możliwości całej konstrukcji podłogi.</p>
          </div>
          <div class="rk-build-formula">
            <h3>Przepływ wynikający z mocy pętli</h3>
            <code>V̇ [m³/h] = Q [kW] / (1,163 × ΔT [K])</code>
            <p>Przepływ nie wynika z równego podziału między rotametry. Zależy od mocy przypisanej do pętli i projektowej różnicy temperatury. Po zmianie strefy lub przebiegu obiegu trzeba sprawdzić zarówno wymagany przepływ, jak i stratę ciśnienia.</p>
          </div>
        </div>

        <div class="rk-build-warning">
          <p><strong>Przykład zależności:</strong> przesunięcie rozdzielacza wydłuża odcinki przyłączeniowe kilku pętli. Nie musi zmienić zapotrzebowania pomieszczeń, ale może zmienić długości obiegów, ich opory i możliwość zrównoważenia. Dlatego sam zapis „rozdzielacz przesunięty o dwa metry” nie jest pełną odpowiedzią techniczną.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-changes" aria-labelledby="rk-build-h2-3">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">03</div>
          <div>
            <h2 id="rk-build-h2-3">Które odstępstwa od projektu ogrzewania podłogowego wymagają kontroli?</h2>
            <p>Nie każda korekta oznacza przeprojektowanie całości, ale każda powinna zostać zgłoszona i oceniona przed wykonaniem.</p>
          </div>
        </div>

        <div class="rk-build-table-wrap">
          <table class="rk-build-table">
            <thead>
              <tr>
                <th style="width:22%">Zmiana na budowie</th>
                <th style="width:34%">Co może zmienić?</th>
                <th style="width:20%">Decyzja</th>
                <th style="width:24%">Co przekazać do weryfikacji?</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Zmiana"><strong>Inna izolacja ścian, dachu lub podłogi</strong></td>
                <td data-label="Wpływ">Obciążenie cieplne pomieszczeń, straty do gruntu, wymaganą moc podłogi oraz temperaturę zasilania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Sprawdzić przed rurami</span></td>
                <td data-label="Dane">Rodzaj materiału, rzeczywista grubość, deklarowana λ i przekrój warstw.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Zmiana okien, ich wymiaru albo liczby</strong></td>
                <td data-label="Wpływ">Straty przez przenikanie, infiltrację, lokalne obciążenie przy przeszkleniu i potrzebę strefy brzegowej.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Ponowna ocena mocy</span></td>
                <td data-label="Dane">Wymiar, współczynnik U, sposób montażu i aktualny rzut elewacji.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Przesunięcie ścian lub zmiana funkcji pomieszczenia</strong></td>
                <td data-label="Wpływ">Podział stref, temperaturę obliczeniową, powierzchnię aktywną, liczbę pętli i przypisanie sterowania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Aktualizacja rzutu</span></td>
                <td data-label="Dane">Nowy rzut z wymiarami, przeznaczenie pomieszczeń i oczekiwana temperatura.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inna okładzina podłogowa</strong></td>
                <td data-label="Wpływ">Opór cieplny nad rurą, temperaturę powierzchni, wymaganą temperaturę wody i osiągalną moc.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Sprawdzić opór R</span></td>
                <td data-label="Dane">Rodzaj okładziny, grubość, podkład oraz deklarowany opór cieplny całego zestawu.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Przesunięcie rozdzielacza</strong></td>
                <td data-label="Wpływ">Długości przyłączy pętli, opory hydrauliczne, przebieg przewodów i możliwość odpowietrzania.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Przeliczyć pętle</span></td>
                <td data-label="Dane">Nowa lokalizacja, odległości, wysokość montażu i dostęp serwisowy.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inne źródło ciepła lub temperatura zasilania</strong></td>
                <td data-label="Wpływ">Dostępną moc podłogi, sprawność źródła, krzywą grzewczą, układ hydrauliczny oraz automatykę.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Weryfikacja całego układu</span></td>
                <td data-label="Dane">Model i parametry źródła, schemat hydrauliczny oraz projektowa temperatura zasilania i powrotu.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inny rozstaw albo przebieg rur</strong></td>
                <td data-label="Wpływ">Moc powierzchniową, równomierność temperatury, długość obiegów, przepływy i opory.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-red">Nie zmieniać „na oko”</span></td>
                <td data-label="Dane">Aktualny rzut, rzeczywista powierzchnia aktywna i przyczyna zmiany.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Inna grubość jastrychu lub poziom podłogi</strong></td>
                <td data-label="Wpływ">Położenie rury w warstwie, bezwładność, przekazywanie ciepła, dylatacje i współpracę z okładziną.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Koordynacja branżowa</span></td>
                <td data-label="Dane">Rodzaj jastrychu, przekrój warstw, planowane poziomy oraz dokumentacja wykonawcza posadzki.</td>
              </tr>
              <tr>
                <td data-label="Zmiana"><strong>Większa zabudowa stała</strong></td>
                <td data-label="Wpływ">Aktywną powierzchnię oddawania ciepła, miejsca bez rur i lokalne obciążenie pozostałej podłogi.</td>
                <td data-label="Decyzja"><span class="rk-build-status is-orange">Sprawdzić powierzchnię</span></td>
                <td data-label="Dane">Rzut kuchni, szaf, wanien, kominka i innych elementów trwale związanych z podłogą.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Zmiana samej nazwy materiału nie zawsze ma znaczenie, ale zmiana jego parametrów — już tak. Przykładowo dwa produkty oznaczone jako styropian mogą mieć inną przewodność cieplną i wytrzymałość. Dlatego zamiast ogólnego zdania „będzie podobny materiał” potrzebne są dane z dokumentacji produktu i rzeczywisty przekrój podłogi.</p>

        <p>W przypadku okładziny warto sprawdzić nie tylko warstwę wierzchnią. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Wpływ okładziny na wydajność ogrzewania podłogowego</a> obejmuje także podkład, klej i sposób ułożenia. Suma oporów znajduje się nad systemem grzewczym i wpływa na warunki przekazywania ciepła.</p>
      </section>

      <section class="rk-build-section" id="rk-build-roles" aria-labelledby="rk-build-h2-4">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">04</div>
          <div>
            <h2 id="rk-build-h2-4">Kto powinien pilnować zgodności projektu z budową?</h2>
            <p>Kontrola nie może opierać się na założeniu, że „ktoś na pewno to sprawdził”.</p>
          </div>
        </div>

        <div class="rk-build-responsibility">
          <div class="rk-build-responsibility-card">
            <span>IN</span>
            <h3>Inwestor</h3>
            <p>Zgłasza zmiany funkcji, materiałów, okładzin i zabudowy. Pilnuje, aby wykonawcy pracowali na tej samej, aktualnej wersji dokumentacji.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>PR</span>
            <h3>Projektant instalacji</h3>
            <p>Ocenia wpływ zmian na moc i hydraulikę, wskazuje potrzebne korekty oraz aktualizuje dane istotne dla wykonania i regulacji.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>WY</span>
            <h3>Wykonawca instalacji</h3>
            <p>Porównuje warunki na budowie z projektem, nie wprowadza samowolnych zmian i zapisuje rzeczywiste długości, trasy oraz oznaczenia pętli.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>JA</span>
            <h3>Wykonawca jastrychu</h3>
            <p>Realizuje uzgodnioną konstrukcję posadzki i pola dylatacyjne, chroni instalację oraz nie rozpoczyna pracy bez formalnego dopuszczenia do zakrycia.</p>
          </div>
          <div class="rk-build-responsibility-card">
            <span>KB</span>
            <h3>Kierownik budowy</h3>
            <p>Koordynuje kolejność robót i dokumentuje odbiory w zakresie wynikającym z inwestycji, projektu, umów oraz obowiązujących przepisów.</p>
          </div>
        </div>

        <div class="rk-build-note">
          <p><strong>Tabela ma charakter organizacyjny, a nie prawny.</strong> Formalny zakres obowiązków zależy od umów, dokumentacji inwestycji i przepisów. Technicznie najważniejsze jest jednak to, aby każda zmiana miała właściciela decyzji, datę, uzasadnienie i aktualny rysunek.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-audit" aria-labelledby="rk-build-h2-5">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">05</div>
          <div>
            <h2 id="rk-build-h2-5">Interaktywna kontrola zgodności projektu z budową</h2>
            <p>Dwadzieścia potwierdzeń pogrupowanych według momentu, w którym można jeszcze bezpiecznie zatrzymać roboty.</p>
          </div>
        </div>

        <div class="rk-build-audit" data-rk-build-audit="">
          <div class="rk-build-audit-head">
            <div>
              <h3>Pięć bramek odbiorowych ogrzewania podłogowego</h3>
              <p>Zaznacz wyłącznie elementy faktycznie sprawdzone na budowie albo potwierdzone dokumentem. Punkty krytyczne blokują ocenę pozytywną.</p>
            </div>
            <div class="rk-build-audit-score">
              <span class="rk-build-audit-score-label">Stopień potwierdzenia</span>
              <strong id="rk-build-score">0%</strong>
              <small id="rk-build-count">0 z 20 punktów</small>
            </div>
          </div>

          <div class="rk-build-audit-bar" role="progressbar" aria-label="Postęp kontroli" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="rk-build-audit-fill" id="rk-build-fill"></div></div>

          <div class="rk-build-audit-result" id="rk-build-result">
            <div class="rk-build-audit-signal" id="rk-build-signal">STOP</div>
            <p id="rk-build-message" aria-live="polite">Nie potwierdzono punktów krytycznych. Nie traktuj instalacji jako gotowej do zakrycia.</p>
          </div>

          <div class="rk-build-audit-body">
            <div class="rk-build-audit-stage-nav" aria-label="Etapy checklisty">
              <a href="#rk-build-audit-stage-1"><span>Etap 1</span><strong>Zamrożenie danych</strong></a>
              <a href="#rk-build-audit-stage-2"><span>Etap 2</span><strong>Warstwy podłogi</strong></a>
              <a href="#rk-build-audit-stage-3"><span>Etap 3</span><strong>Ułożone pętle</strong></a>
              <a href="#rk-build-audit-stage-4"><span>Etap 4</span><strong>Przed jastrychem</strong></a>
              <a href="#rk-build-audit-stage-5"><span>Etap 5</span><strong>Odbiór końcowy</strong></a>
            </div>

            <div class="rk-build-audit-groups">
              <div class="rk-build-audit-group" id="rk-build-audit-stage-1" data-rk-build-stage-group="1">
                <div class="rk-build-audit-group-head"><h4>Etap 1 — dane projektu odpowiadają aktualnemu budynkowi</h4><span class="rk-build-stage-count" data-rk-build-stage-count="1">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1" data-critical="1"><span>Wszyscy wykonawcy mają tę samą, aktualną wersję rzutu i projektu.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1" data-critical="1"><span>Potwierdzono rzeczywiste izolacje, okna, funkcje pomieszczeń i temperatury obliczeniowe.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1"><span>Znane są finalne okładziny, podkłady i planowana zabudowa stała.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="1"><span>Źródło ciepła, temperatura projektowa i lokalizacja rozdzielacza nie zmieniły się albo zostały ponownie sprawdzone.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-2" data-rk-build-stage-group="2">
                <div class="rk-build-audit-group-head"><h4>Etap 2 — podłoże i warstwy są gotowe pod instalację</h4><span class="rk-build-stage-count" data-rk-build-stage-count="2">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2" data-critical="1"><span>Rzeczywista wysokość i układ warstw podłogi odpowiadają przekrojowi przyjętemu w projekcie.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Izolacja jest stabilna, ciągła i ułożona bez pustek powodujących ruch warstw.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Uzgodniono izolację brzegową, szczeliny i pola jastrychu z przejściami rur.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="2"><span>Przepusty, progi, piony i kolizje branżowe zostały rozwiązane przed rozwinięciem rur.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-3" data-rk-build-stage-group="3">
                <div class="rk-build-audit-group-head"><h4>Etap 3 — pętle można porównać z obliczeniami</h4><span class="rk-build-stage-count" data-rk-build-stage-count="3">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3" data-critical="1"><span>Rozstaw, przebieg, miejsca bez rur i strefy brzegowe odpowiadają aktualnemu rzutowi.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3"><span>Każda pętla ma oznaczenie, pomieszczenie, rzeczywistą długość i właściwe przyłączenie do rozdzielacza.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3" data-critical="1"><span>Nie ma nieudokumentowanych połączeń, załamań ani uszkodzeń przewodu w obszarze przyszłego jastrychu.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="3"><span>Wykonano zdjęcia całych pomieszczeń i detali z miarą lub stałymi punktami odniesienia.</span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-4" data-rk-build-stage-group="4">
                <div class="rk-build-audit-group-head"><h4>Etap 4 — instalacja jest formalnie dopuszczona do zakrycia</h4><span class="rk-build-stage-count" data-rk-build-stage-count="4">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4" data-critical="1"><span>Wykonano próbę szczelności według właściwej procedury i zapisano jej wynik.<em>krytyczne</em></span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4"><span>Protokół zawiera medium, ciśnienie, czasy odczytów, temperaturę, wynik oraz osoby uczestniczące.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4"><span>Rury są zabezpieczone w przejściach, przy rozdzielaczu i w miejscach komunikacji ekip.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="4" data-critical="1"><span>Podpisano decyzję o dopuszczeniu do jastrychu po usunięciu wszystkich zapisanych niezgodności.<em>krytyczne</em></span></label>
                </div>
              </div>

              <div class="rk-build-audit-group" id="rk-build-audit-stage-5" data-rk-build-stage-group="5">
                <div class="rk-build-audit-group-head"><h4>Etap 5 — uruchomienie i dokumentacja zamykają proces</h4><span class="rk-build-stage-count" data-rk-build-stage-count="5">0/4</span></div>
                <div class="rk-build-checks">
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Jastrych pielęgnowano i uruchomiono ogrzewanie według właściwej procedury dla zastosowanego materiału.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Przed okładziną sprawdzono warunki podłoża metodą właściwą dla jastrychu i systemu wykończeniowego.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Ustawiono projektowe przepływy, parametry pompy i sterowania oraz zapisano nastawy początkowe.</span></label>
                  <label class="rk-build-check"><input type="checkbox" data-rk-build-check="" data-stage="5"><span>Inwestor otrzymał projekt, rewizję powykonawczą, protokoły, zdjęcia, długości pętli i tabelę nastaw.</span></label>
                </div>
              </div>
            </div>

            <div class="rk-build-audit-actions">
              <button class="rk-build-reset" type="button" id="rk-build-reset">Wyczyść kontrolę</button>
              <div class="rk-build-missing" id="rk-build-missing">Brakuje 20 potwierdzeń, w tym 7 krytycznych.</div>
            </div>
          </div>

          <div class="rk-build-disclaimer"><strong>Zakres narzędzia:</strong> checklista porządkuje komunikację i dokumenty. Nie ogląda budowy, nie zna parametrów projektu i nie stanowi odbioru technicznego, opinii prawnej ani zgody na wykonanie jastrychu. Punkt należy zaznaczyć dopiero po rzeczywistym sprawdzeniu.</div>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-gates" aria-labelledby="rk-build-h2-6">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">06</div>
          <div>
            <h2 id="rk-build-h2-6">Pięć odbiorów etapowych — co dokładnie sprawdzić?</h2>
            <p>Każda bramka zamyka inne ryzyko. Odbiór dopiero po ułożeniu rur jest potrzebny, ale nie cofnie błędnej izolacji ani nieaktualnych danych wejściowych.</p>
          </div>
        </div>

        <div class="rk-build-gates">
          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>01</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed zamówieniem materiałów: zamrożenie danych projektu</h3>
              <p>Projekt musi odpowiadać aktualnej architekturze i planowanym warstwom. Na tym etapie należy potwierdzić wymiary pomieszczeń, temperatury, izolacje, stolarkę, źródło ciepła, rozdzielacze oraz okładziny. Jeżeli od wykonania obliczeń zmieniła się dokumentacja budynku, nie powinno się wysyłać ekipie starego rzutu z dopiskiem „jakoś dopasujemy”.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>numer i datę rewizji projektu;</li><li>aktualny rzut architektury;</li><li>temperaturę źródła i schemat hydrauliczny;</li><li>finalne materiały przegród i podłogi.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Zapisz</h4>
                  <ul><li>listę zmian od momentu obliczeń;</li><li>osobę akceptującą każdą zmianę;</li><li>aktualną tabelę pomieszczeń;</li><li>wersję przekazaną wykonawcy.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>02</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed ułożeniem rur: odbiór podłoża i konstrukcji podłogi</h3>
              <p>Rury nie naprawią błędnej konstrukcji pod nimi. Trzeba skontrolować rzeczywistą grubość, typ i ciągłość izolacji, stabilność płyt, poziomy, izolację brzegową, przepusty oraz plan szczelin jastrychu. Zagadnienia te warto zestawić z poradnikami o <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/">izolacji pod ogrzewaniem podłogowym</a> i o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej oraz dylatacjach</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>zgodność przekroju i poziomów;</li><li>brak pustek i ruchomych płyt;</li><li>ciągłość taśmy brzegowej;</li><li>przewężenia, progi i pola jastrychu.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Nie akceptuj</h4>
                  <ul><li>izolacji opisanej tylko jako „podobna”;</li><li>kolizji odkładanych do dnia wylewki;</li><li>zmiany wysokości bez korekty przekroju;</li><li>braku uzgodnienia szczelin z trasami rur.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>03</strong></div>
            <div class="rk-build-gate-content">
              <h3>Po ułożeniu rur: porównanie pętla po pętli</h3>
              <p>Odbiór powinien przejść od króćca zasilającego do powrotnego każdej pętli. Należy sprawdzić oznaczenie, obsługiwane pomieszczenie, rozstaw, trasę, rzeczywistą długość, miejsca bez rur, łuki, mocowanie, przejścia i stan przewodu. <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">Dopuszczalnej długości pętli</a> nie ocenia się jedną uniwersalną liczbą — znaczenie mają średnica wewnętrzna, przepływ, opór armatury i strata ciśnienia całego obiegu.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Sprawdź</h4>
                  <ul><li>zgodność z aktualnym rzutem;</li><li>czytelne oznaczenia na rozdzielaczu;</li><li>brak ukrytych połączeń i uszkodzeń;</li><li>rzeczywiste długości oraz kolejność obiegów.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Udokumentuj</h4>
                  <ul><li>zdjęcie całego pomieszczenia;</li><li>detale przejść i zagęszczeń;</li><li>miarę albo stały punkt odniesienia;</li><li>zmiany naniesione na rzut powykonawczy.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>04</strong></div>
            <div class="rk-build-gate-content">
              <h3>Przed wylewką: próba, protokół i dopuszczenie do zakrycia</h3>
              <p>Próba szczelności ma wykazać stan instalacji przed jej trwałym zakryciem. Nie należy kopiować jednej wartości ciśnienia i czasu z przypadkowego poradnika do każdego systemu. Medium, ciśnienie, kolejne odczyty, wpływ temperatury i kryterium oceny muszą wynikać z właściwej procedury, projektu oraz dokumentacji zastosowanego systemu. Szczegółowe omówienie znajduje się w artykule o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Protokół powinien identyfikować</h4>
                  <ul><li>instalację i badane obiegi;</li><li>medium oraz aparaturę pomiarową;</li><li>ciśnienie, czasy i temperatury;</li><li>wynik, uwagi i osoby uczestniczące.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Przed pompą do jastrychu</h4>
                  <ul><li>usuń wszystkie niezgodności;</li><li>zabezpiecz przejścia i rozdzielacz;</li><li>ustal stan instalacji podczas prac;</li><li>podpisz odbiór przed zakryciem.</li></ul>
                </div>
              </div>
            </div>
          </div>

          <div class="rk-build-gate">
            <div class="rk-build-gate-no"><span>Bramka</span><strong>05</strong></div>
            <div class="rk-build-gate-content">
              <h3>Po wykonaniu jastrychu: uruchomienie, równoważenie i dokumentacja powykonawcza</h3>
              <p>Procedura pielęgnacji i pierwszego uruchomienia zależy od zastosowanego jastrychu oraz dokumentacji wykonawczej. Rozgrzewanie nie zastępuje pomiaru warunków podłoża przed ułożeniem okładziny. Po uruchomieniu trzeba ustawić przepływy wynikające z projektu, sprawdzić pracę pompy i automatyki oraz zapisać parametry początkowe. Informacje o konstrukcji warstwy znajdziesz w przewodniku o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewaniu podłogowym</a>.</p>
              <div class="rk-build-gate-grid">
                <div class="rk-build-gate-box">
                  <h4>Odbiór eksploatacyjny</h4>
                  <ul><li>przepływy i nastawy poszczególnych pętli;</li><li>parametry pompy i sterowania;</li><li>temperaturę zasilania i powrotu;</li><li>reakcję pomieszczeń po stabilizacji.</li></ul>
                </div>
                <div class="rk-build-gate-box">
                  <h4>Pakiet dla inwestora</h4>
                  <ul><li>projekt i rewizja powykonawcza;</li><li>protokół próby oraz odbioru;</li><li>zdjęcia tras przed wylewką;</li><li>tabela pętli, przepływów i nastaw.</li></ul>
                </div>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-stop" aria-labelledby="rk-build-h2-7">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">07</div>
          <div>
            <h2 id="rk-build-h2-7">Kiedy należy powiedzieć „STOP — nie wykonywać wylewki”?</h2>
            <p>Zakrycie rur usuwa możliwość prostego oglądu i wielokrotnie zwiększa koszt każdej późniejszej ingerencji.</p>
          </div>
        </div>

        <div class="rk-build-stop-grid">
          <div class="rk-build-stop-card"><span>STOP 01</span><h3>Nieaktualny projekt</h3><p>Rzut nie pokazuje rzeczywistych ścian, funkcji pomieszczeń, rozdzielacza albo zabudowy, a zmiany nie zostały ocenione.</p></div>
          <div class="rk-build-stop-card"><span>STOP 02</span><h3>Niezgodne warstwy</h3><p>Brakuje potwierdzenia rodzaju i grubości izolacji, poziomu podłogi, rodzaju jastrychu albo podziału pól.</p></div>
          <div class="rk-build-stop-card"><span>STOP 03</span><h3>Uszkodzona rura</h3><p>Widać nacięcie, załamanie, spłaszczenie lub połączenie, którego nie ma w dokumentacji i które nie zostało ocenione.</p></div>
          <div class="rk-build-stop-card"><span>STOP 04</span><h3>Brak próby i protokołu</h3><p>Nie wiadomo, według jakiej procedury instalację zbadano, jakie były odczyty ani kto potwierdził wynik.</p></div>
          <div class="rk-build-stop-card"><span>STOP 05</span><h3>Brak zgodności pętli</h3><p>Nie można przypisać obiegów do pomieszczeń, nie znamy długości albo rozstaw i trasy istotnie różnią się od projektu.</p></div>
          <div class="rk-build-stop-card"><span>STOP 06</span><h3>Brak dokumentacji zdjęciowej</h3><p>Nie wykonano zdjęć przed zakryciem, mimo że trasy zostały zmienione albo inwestor nie otrzymał rzutu powykonawczego.</p></div>
        </div>

        <div class="rk-build-warning">
          <p><strong>Pośpiech ekipy wylewkowej nie jest argumentem technicznym.</strong> Jeżeli niezgodność można ocenić za godzinę, ale po zalaniu jej sprawdzenie będzie wymagało diagnostyki albo odkrywek, rozsądniej zatrzymać pracę przed przyjazdem jastrychu niż negocjować przy pracującej pompie.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-symptoms" aria-labelledby="rk-build-h2-8">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">08</div>
          <div>
            <h2 id="rk-build-h2-8">Objawy po zamieszkaniu a możliwe odstępstwa na budowie</h2>
            <p>Objaw nie jest diagnozą. Pokazuje jedynie, od których danych i pomiarów warto zacząć.</p>
          </div>
        </div>

        <div class="rk-build-table-wrap">
          <table class="rk-build-table">
            <thead>
              <tr>
                <th style="width:24%">Objaw</th>
                <th style="width:43%">Co mogło zmienić się względem projektu?</th>
                <th style="width:33%">Co sprawdzić najpierw?</th>
              </tr>
            </thead>
            <tbody>
              <tr><td data-label="Objaw"><strong>Jedno pomieszczenie stale nie osiąga temperatury</strong></td><td data-label="Możliwe odstępstwo">Inna okładzina, mniejsza powierzchnia aktywna, większe przeszklenie, zmieniony rozstaw, niski przepływ albo inna temperatura projektowa pomieszczenia.</td><td data-label="Pierwsza kontrola">Aktualny rzut, obciążenie cieplne, aktywna powierzchnia, przepływ i temperatury pętli po stabilizacji.</td></tr>
              <tr><td data-label="Objaw"><strong>Cały system wymaga wyższej temperatury wody</strong></td><td data-label="Możliwe odstępstwo">Gorsze przegrody, inna okładzina, większe straty wentylacyjne, mniejsza aktywna powierzchnia albo niezgodna konstrukcja podłogi.</td><td data-label="Pierwsza kontrola">Rzeczywiste materiały, ustawienia krzywej, przepływy, temperatura powierzchni oraz zgodność z bilansem cieplnym.</td></tr>
              <tr><td data-label="Objaw"><strong>Nie można ustawić wymaganych przepływów</strong></td><td data-label="Możliwe odstępstwo">Wydłużone pętle po przesunięciu rozdzielacza, zmieniona armatura, powietrze, zabrudzenie albo niewłaściwy punkt pracy pompy.</td><td data-label="Pierwsza kontrola">Rzeczywiste długości, odczyty rotametrów, stan filtrów, odpowietrzenie i dostępne ciśnienie różnicowe.</td></tr>
              <tr><td data-label="Objaw"><strong>Nierównomierny ślad cieplny podłogi</strong></td><td data-label="Możliwe odstępstwo">Inna trasa lub rozstaw, zmienna warstwa nad rurą, element zabudowy, powietrze albo chwilowe warunki pomiaru.</td><td data-label="Pierwsza kontrola">Zdjęcia przed wylewką, czas pracy, temperaturę wody, rodzaj okładziny i pomiary po ustabilizowaniu.</td></tr>
              <tr><td data-label="Objaw"><strong>Rysy albo odspojenie okładziny</strong></td><td data-label="Możliwe odstępstwo">Nieprawidłowy podział pól, warunki wykonania lub pielęgnacji jastrychu, brak właściwych szczelin, zbyt wczesne uruchomienie albo błąd systemu wykończeniowego.</td><td data-label="Pierwsza kontrola">Dokumentację jastrychu, przebieg szczelin, protokół uruchomienia, wilgotność i warunki montażu okładziny.</td></tr>
              <tr><td data-label="Objaw"><strong>Brak informacji, gdzie można wiercić</strong></td><td data-label="Możliwe odstępstwo">Nie wykonano zdjęć lub rzutu powykonawczego albo trasy różnią się od projektu.</td><td data-label="Pierwsza kontrola">Archiwum zdjęć, punkty odniesienia, rzut pętli i bezpieczną diagnostykę przed ingerencją.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Nieprawidłowo działającego systemu nie należy diagnozować wyłącznie kamerą termowizyjną ani samymi rotametrami. Potrzebne jest zestawienie projektu, dokumentacji powykonawczej, przepływów, temperatur i warunków pracy. Inaczej łatwo pomylić błąd projektu, odstępstwo wykonawcze, niewłaściwą regulację i chwilowy stan układu.</p>
      </section>

      <section class="rk-build-section" id="rk-build-docs" aria-labelledby="rk-build-h2-9">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">09</div>
          <div>
            <h2 id="rk-build-h2-9">Dokumentacja powykonawcza podłogówki — co powinno zostać po budowie?</h2>
            <p>Dokumentacja ma pozwolić odtworzyć to, co zniknęło pod jastrychem, oraz uruchomić układ zgodnie z obliczeniami.</p>
          </div>
        </div>

        <div class="rk-build-docs">
          <div class="rk-build-doc"><span>01</span><h3>Aktualny projekt</h3><p>Rzut pętli, obliczenia pomieszczeń, parametry pracy, rozdzielacze i schemat hydrauliczny w wersji odpowiadającej wykonanemu budynkowi.</p></div>
          <div class="rk-build-doc"><span>02</span><h3>Rejestr zmian</h3><p>Data, opis, przyczyna, osoba zgłaszająca, decyzja projektowa oraz wskazanie rysunku lub tabeli, które zostały zaktualizowane.</p></div>
          <div class="rk-build-doc"><span>03</span><h3>Tabela pętli</h3><p>Nazwa obiegu, pomieszczenie, długość rzeczywista, średnica, projektowy przepływ, nastawa i ewentualna uwaga wykonawcza.</p></div>
          <div class="rk-build-doc"><span>04</span><h3>Zdjęcia tras</h3><p>Widoki całych pomieszczeń i detali z miarą, osiami ścian albo trwałymi punktami odniesienia umożliwiającymi późniejszą lokalizację.</p></div>
          <div class="rk-build-doc"><span>05</span><h3>Protokoły</h3><p>Próba szczelności, odbiór przed zakryciem, dokumenty dotyczące jastrychu, procedura pierwszego uruchomienia i ewentualne pomiary pod okładzinę.</p></div>
          <div class="rk-build-doc"><span>06</span><h3>Nastawy startowe</h3><p>Przepływy, parametry pompy, krzywa grzewcza, ograniczenia temperatur i podstawowe ustawienia automatyki zapisane przy uruchomieniu.</p></div>
        </div>

        <div class="rk-build-tip">
          <p><strong>Praktyczna zasada archiwizacji:</strong> komplet powinien istnieć co najmniej w dwóch miejscach i mieć jednoznaczną nazwę inwestycji oraz datę. Zdjęcia bez rzutu, miary i opisu są znacznie mniej przydatne niż krótki, uporządkowany pakiet powykonawczy.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-prevention" aria-labelledby="rk-build-h2-10">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">10</div>
          <div>
            <h2 id="rk-build-h2-10">Jak ograniczyć błędy bez zamieniania budowy w biuro projektowe?</h2>
            <p>Nie potrzeba setek dokumentów. Potrzeba krótkiej procedury, której każda ekipa rzeczywiście przestrzega.</p>
          </div>
        </div>

        <div class="rk-build-flow">
          <div class="rk-build-flow-card"><span>Krok A</span><h3>Jedna wersja obowiązująca</h3><p>Na budowie jest jedna aktualna dokumentacja. Starsze rzuty pozostają w archiwum z wyraźnym oznaczeniem, że nie służą do wykonania.</p></div>
          <div class="rk-build-flow-card"><span>Krok B</span><h3>Zmiana w jednym formularzu</h3><p>Każda korekta otrzymuje opis, zdjęcie lub rysunek, datę, osobę zgłaszającą oraz decyzję: bez wpływu, korekta lokalna albo aktualizacja projektu.</p></div>
          <div class="rk-build-flow-card"><span>Krok C</span><h3>Zakrycie dopiero po odbiorze</h3><p>Jastrych rozpoczyna się po zamknięciu uwag, wykonaniu próby, zdjęć i podpisaniu dopuszczenia do zakrycia.</p></div>
        </div>

        <p>Najlepiej, gdy proces rozpoczyna się jeszcze przed wejściem instalatora. Im wcześniej przygotowano <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">projekt ogrzewania podłogowego</a> i skoordynowano go z architekturą, tym mniej zmian trzeba rozstrzygać przy rozwiniętych rurach. Jeżeli jednak zmiana jest potrzebna, jej zgłoszenie nie oznacza porażki — błędem jest dopiero ukrycie jej pod wylewką bez sprawdzenia wpływu.</p>

        <div class="rk-build-note">
          <p><strong>Kontrola jakości nie polega na szukaniu winnego.</strong> Jej celem jest wykrycie rozbieżności w momencie, w którym można ją jeszcze poprawić bez niszczenia gotowych warstw. Dlatego dobry protokół opisuje fakt, decyzję i termin, a nie emocje między ekipami.</p>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-faq" aria-labelledby="rk-build-h2-11">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">11</div>
          <div>
            <h2 id="rk-build-h2-11">FAQ — błędy na budowie a projekt ogrzewania podłogowego</h2>
            <p>Odpowiedzi na pytania dotyczące odstępstw, odbioru przed wylewką i dokumentacji powykonawczej.</p>
          </div>
        </div>

        <div class="rk-build-faq-list">
          <details class="rk-build-faq"><summary>Jakie błędy na budowie najczęściej psują projekt ogrzewania podłogowego?</summary><div class="rk-build-faq-answer"><p>Najczęściej są to niezaktualizowane zmiany architektury, inne izolacje lub okna, zmiana okładziny, przesunięcie rozdzielacza, samowolna korekta rozstawu i przebiegu pętli, niezgodna konstrukcja podłogi, brak próby szczelności, brak odbioru przed jastrychem oraz brak dokumentacji powykonawczej.</p></div></details>
          <details class="rk-build-faq"><summary>Czy każda zmiana na budowie wymaga nowego projektu podłogówki?</summary><div class="rk-build-faq-answer"><p>Nie każda wymaga opracowania projektu od początku. Każda zmiana istotna dla obciążenia cieplnego, powierzchni aktywnej, temperatury wody, długości pętli, przepływów lub konstrukcji podłogi powinna jednak zostać oceniona. Wynikiem może być brak korekty, lokalna zmiana albo aktualizacja kilku części dokumentacji.</p></div></details>
          <details class="rk-build-faq"><summary>Czy można przesunąć rozdzielacz ogrzewania podłogowego po wykonaniu projektu?</summary><div class="rk-build-faq-answer"><p>Można po sprawdzeniu nowej lokalizacji. Przesunięcie zmienia długości przyłączy kilku pętli, ich przebieg, opory hydrauliczne i dostęp serwisowy. Trzeba zaktualizować długości oraz ocenić możliwość uzyskania wymaganych przepływów.</p></div></details>
          <details class="rk-build-faq"><summary>Czy można zmienić płytki na panele po wykonaniu projektu?</summary><div class="rk-build-faq-answer"><p>Zmianę należy sprawdzić na podstawie łącznego oporu cieplnego panelu, podkładu i sposobu montażu. Większy opór nad rurą może zmniejszyć osiągalną moc albo wymagać wyższej temperatury wody. Istotne są również ograniczenia temperatury podane dla wybranej okładziny.</p></div></details>
          <details class="rk-build-faq"><summary>Czy pętla dłuższa niż 100 metrów zawsze jest błędem?</summary><div class="rk-build-faq-answer"><p>Nie można oceniać pętli tylko jedną długością. Znaczenie mają średnica wewnętrzna przewodu, przepływ, wymagana moc, różnica temperatury, armatura, opór całej trasy i dostępne ciśnienie pompy. O poprawności decydują obliczenia konkretnego obiegu.</p></div></details>
          <details class="rk-build-faq"><summary>Jakie ciśnienie zastosować przy próbie szczelności podłogówki?</summary><div class="rk-build-faq-answer"><p>Nie należy przyjmować uniwersalnej wartości bez znajomości systemu. Medium, ciśnienie, czas stabilizacji, kolejne odczyty oraz kryterium wyniku powinny wynikać z właściwej procedury, projektu, dokumentacji zastosowanych elementów i warunków na budowie.</p></div></details>
          <details class="rk-build-faq"><summary>Czy przed wylewką trzeba ustawiać wszystkie rotametry?</summary><div class="rk-build-faq-answer"><p>Odbiór przed zakryciem powinien potwierdzić identyfikację obiegów, drożność oraz próbę zgodną z procedurą. Docelowe równoważenie wykonuje się w warunkach uruchomienia instalacji według projektowych przepływów. Jednakowe ustawienie wszystkich rotametrów nie jest zasadą projektową.</p></div></details>
          <details class="rk-build-faq"><summary>Co powinien zawierać protokół odbioru podłogówki przed wylewką?</summary><div class="rk-build-faq-answer"><p>Powinien identyfikować inwestycję i wersję projektu, potwierdzać zgodność tras i oznaczeń, wskazywać uwagi oraz ich usunięcie, zawierać wynik próby szczelności, datę, uczestników i jednoznaczną decyzję dotyczącą dopuszczenia instalacji do zakrycia.</p></div></details>
          <details class="rk-build-faq"><summary>Czy zdjęcia rur przed wylewką wystarczą jako dokumentacja?</summary><div class="rk-build-faq-answer"><p>Nie. Zdjęcia są jednym z elementów. Potrzebne są również aktualny rzut, identyfikacja pętli, ich rzeczywiste długości, protokół próby, zestawienie nastaw oraz opis zmian. Fotografie powinny zawierać miarę albo trwałe punkty odniesienia.</p></div></details>
          <details class="rk-build-faq"><summary>Kiedy trzeba ponownie przeliczyć ogrzewanie podłogowe?</summary><div class="rk-build-faq-answer"><p>Ponowna kontrola jest potrzebna szczególnie po zmianie przegród, okien, temperatur pomieszczeń, aktywnej powierzchni, okładziny, źródła ciepła, temperatury zasilania, położenia rozdzielacza, liczby i przebiegu pętli albo konstrukcji podłogi.</p></div></details>
          <details class="rk-build-faq"><summary>Kto zatwierdza zmianę rozstawu rur na budowie?</summary><div class="rk-build-faq-answer"><p>Rozstaw wynika z obciążenia pomieszczenia, konstrukcji podłogi i parametrów wody, dlatego jego zmianę powinien ocenić autor właściwej części projektu lub osoba posiadająca komplet danych do ponownego sprawdzenia. Nie powinien być korygowany wyłącznie na podstawie ilości pozostałej rury.</p></div></details>
          <details class="rk-build-faq"><summary>Co zrobić, gdy instalacja została już zalana bez dokumentacji?</summary><div class="rk-build-faq-answer"><p>Należy zebrać dostępne projekty, zdjęcia i informacje wykonawcy, zidentyfikować pętle, wykonać bezpieczne pomiary instalacji oraz uzupełnić dokumentację w zakresie możliwym bez odkrywek. Zakres diagnostyki zależy od objawów i nie powinien być zastępowany zgadywaniem przebiegu rur.</p></div></details>
        </div>
      </section>

      <section class="rk-build-section" id="rk-build-sources" aria-labelledby="rk-build-h2-12">
        <div class="rk-build-section-head">
          <div class="rk-build-section-no">12</div>
          <div>
            <h2 id="rk-build-h2-12">Podstawa techniczna i źródła</h2>
            <p>Neutralne źródła dotyczące projektowania i instalowania wbudowanych systemów ogrzewania powierzchniowego.</p>
          </div>
        </div>

        <div class="rk-build-sources">
          <ul>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — zasady określania projektowej mocy ogrzewania i chłodzenia powierzchniowego.</li>
            <li><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021</a> — zagadnienia dotyczące instalowania wbudowanych systemów powierzchniowych.</li>
            <li><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="noopener nofollow">ISO 11855-6:2018</a> — zagadnienia dotyczące sterowania wbudowanymi systemami ogrzewania i chłodzenia powierzchniowego.</li>
          </ul>
        </div>
        <p class="rk-build-small">Artykuł nie publikuje treści norm i nie zastępuje projektu, dokumentacji zastosowanego systemu, wymagań dotyczących konkretnego jastrychu ani oceny wykonania na budowie. Przed zastosowaniem procedury należy sprawdzić aktualne dokumenty właściwe dla inwestycji.</p>
      </section>

      <div class="rk-build-cta" aria-label="Projekt ogrzewania podłogowego">
        <h3>Chcesz przekazać wykonawcy dokumentację, z którą można porównać każdą pętlę przed wylewką?</h3>
        <p>Projekt określa obciążenie pomieszczeń, aktywne powierzchnie, rozstaw i przebieg rur, długości pętli, wymagane przepływy, opory hydrauliczne, temperaturę zasilania oraz nastawy rozdzielacza. Dzięki temu zmiana na budowie może zostać zauważona przed trwałym zakryciem instalacji.</p>
        <a class="rk-build-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>To jedyne CTA sprzedażowe w artykule. Odnośnik prowadzi do strony usługi Projekt-Ogrzewania.pl należącej do autora opracowania.</small>
      </div>

      <aside class="rk-build-author-box" aria-labelledby="rk-build-author-title" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
        <meta itemprop="name" content="Robert Kucharski">
        <meta itemprop="url" content="https://projekt-ogrzewania.pl/">
        <div class="rk-build-author-head">
          <div><h3 id="rk-build-author-title">Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-build-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-build-author-main">
          <div class="rk-build-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – specjalista systemów HVAC i ogrzewania podłogowego" width="174" height="174" loading="lazy" itemprop="image">
            <h4>Robert Kucharski</h4>
            <span class="rk-build-author-role" itemprop="jobTitle">CEO • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-build-author-content">
            <div class="rk-build-quote"><blockquote>„Projekt nie kończy się w chwili wysłania pliku. Musi jeszcze spotkać się z rzeczywistym budynkiem. Jeżeli na budowie zmieniają się izolacje, okładziny, ściany albo trasy pętli, trzeba ponownie połączyć wykonanie z obliczeniami — zanim rury znikną pod jastrychem.”</blockquote></div>

            <div class="rk-build-author-tabs">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-about" checked="">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-exp">
              <input class="rk-build-author-radio" type="radio" name="rk-build-author-tabs" id="rk-build-author-sites">

              <div class="rk-build-author-labels" role="tablist" aria-label="Informacje o autorze">
                <label for="rk-build-author-about" role="tab">O autorze</label>
                <label for="rk-build-author-exp" role="tab">Doświadczenie</label>
                <label for="rk-build-author-sites" role="tab">Portale</label>
              </div>

              <div class="rk-build-author-panels">
                <div class="rk-build-author-panel rk-build-author-about">
                  <p>Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydraulice instalacji. Przygotowuję dokumentację, która łączy warunki źródła ciepła, konstrukcję podłogi, pętle, przepływy oraz nastawy w jeden możliwy do wykonania i skontrolowania układ.</p>
                </div>
                <div class="rk-build-author-panel rk-build-author-exp">
                  <p>W pracy projektowej zwracam szczególną uwagę na koordynację z rzeczywistą budową. Rozstaw rur, długości pętli i przepływy są poprawne tylko dla określonych danych wejściowych. Dlatego w opracowaniach oddzielam obliczenia od przyzwyczajeń wykonawczych i wskazuję punkty wymagające odbioru przed zakryciem instalacji.</p>
                </div>
                <div class="rk-build-author-panel rk-build-author-sites">
                  <p>Jestem właścicielem i autorem publikacji w trzech serwisach branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania:</p>
                  <div class="rk-build-portals">
                    <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                    <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                    <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/",
      "name": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego – kontrola 5 etapów",
      "description": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego. Pięć etapów kontroli zmian, wykonania i dokumentacji przed zakryciem instalacji.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#article" },
      "datePublished": "2026-04-24",
      "dateModified": "2026-08-25",
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/"]
      }
    },
    {
      "@type": ["TechArticle", "Article"],
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#webpage" },
      "headline": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego – kontrola 5 etapów",
      "alternativeHeadline": "Jak kontrolować odstępstwa od projektu podłogówki przed wylewką",
      "description": "Techniczny przewodnik po zmianach na budowie, które mogą naruszyć obliczenia ogrzewania podłogowego: dane wejściowe, warstwy podłogi, pętle, próba, jastrych, uruchomienie i dokumentacja powykonawcza.",
      "inLanguage": "pl-PL",
      "datePublished": "2026-04-24",
      "dateModified": "2026-08-25",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightYear": 2026,
      "image": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage" },
      "articleSection": [
        "Błędy na budowie",
        "Ogrzewanie podłogowe",
        "Kontrola zgodności projektu",
        "Odbiór przed wylewką",
        "Dokumentacja powykonawcza"
      ],
      "keywords": "najczęstsze błędy na budowie które psują nawet najlepszy projekt ogrzewania podłogowego, błędy na budowie podłogówki, odstępstwa od projektu ogrzewania podłogowego, kontrola ogrzewania podłogowego przed wylewką, odbiór podłogówki przed wylewką, przesunięcie rozdzielacza po projekcie, zmiana rozstawu rur na budowie, zmiana okładziny po projekcie podłogówki, dokumentacja powykonawcza ogrzewania podłogowego, protokół odbioru podłogówki, checklista podłogówki przed wylewką",
      "proficiencyLevel": "Expert",
      "educationalLevel": "Zaawansowany poradnik techniczny dla inwestora, wykonawcy i kierownika budowy",
      "isAccessibleForFree": true,
      "audience": [
        { "@type": "Audience", "audienceType": "Inwestorzy budujący dom" },
        { "@type": "Audience", "audienceType": "Wykonawcy instalacji ogrzewania podłogowego" },
        { "@type": "Audience", "audienceType": "Kierownicy budowy" }
      ],
      "about": [
        { "@type": "Thing", "name": "Ogrzewanie podłogowe" },
        { "@type": "Thing", "name": "Kontrola zgodności projektu z wykonaniem" },
        { "@type": "Thing", "name": "Odbiór instalacji przed wylewką" },
        { "@type": "Thing", "name": "Dokumentacja powykonawcza" }
      ],
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": ["#rk-build-h2-1", ".rk-build-answer", "#rk-build-stop", "#rk-build-faq"]
      },
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#change-list" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#faq" },
        { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#audit" }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74685.html",
        "https://www.iso.org/standard/64999.html"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego.webp",
      "width": 900,
      "height": 900,
      "caption": "Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego"
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#change-list",
      "name": "Zmiany na budowie wymagające kontroli projektu ogrzewania podłogowego",
      "description": "Lista zmian mogących wpłynąć na obciążenie cieplne, moc podłogi, długości pętli, przepływy i opory hydrauliczne.",
      "numberOfItems": 9,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "item": { "@type": "Thing", "name": "Zmiana izolacji ścian, dachu lub podłogi" } },
        { "@type": "ListItem", "position": 2, "item": { "@type": "Thing", "name": "Zmiana okien, ich wymiaru albo liczby" } },
        { "@type": "ListItem", "position": 3, "item": { "@type": "Thing", "name": "Przesunięcie ścian lub zmiana funkcji pomieszczenia" } },
        { "@type": "ListItem", "position": 4, "item": { "@type": "Thing", "name": "Zmiana okładziny i jej oporu cieplnego" } },
        { "@type": "ListItem", "position": 5, "item": { "@type": "Thing", "name": "Przesunięcie rozdzielacza ogrzewania podłogowego" } },
        { "@type": "ListItem", "position": 6, "item": { "@type": "Thing", "name": "Zmiana źródła ciepła lub temperatury zasilania" } },
        { "@type": "ListItem", "position": 7, "item": { "@type": "Thing", "name": "Zmiana rozstawu albo przebiegu rur" } },
        { "@type": "ListItem", "position": 8, "item": { "@type": "Thing", "name": "Zmiana grubości jastrychu lub poziomu podłogi" } },
        { "@type": "ListItem", "position": 9, "item": { "@type": "Thing", "name": "Zmiana powierzchni zabudowy stałej" } }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#howto",
      "name": "Jak kontrolować zgodność projektu ogrzewania podłogowego z budową w pięciu etapach",
      "description": "Pięć bramek odbiorowych od zamrożenia danych projektu do uruchomienia i przekazania dokumentacji powykonawczej.",
      "inLanguage": "pl-PL",
      "totalTime": "P1D",
      "tool": [
        { "@type": "HowToTool", "name": "Aktualny projekt ogrzewania podłogowego" },
        { "@type": "HowToTool", "name": "Aktualny rzut architektury" },
        { "@type": "HowToTool", "name": "Dokumentacja zastosowanych materiałów" },
        { "@type": "HowToTool", "name": "Wyposażenie do właściwej próby szczelności" },
        { "@type": "HowToTool", "name": "Miara i aparat fotograficzny" },
        { "@type": "HowToTool", "name": "Protokół odbioru przed zakryciem" }
      ],
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zamroź dane projektu przed zamówieniem materiałów",
          "text": "Potwierdź aktualny rzut, funkcje pomieszczeń, izolacje, okna, źródło ciepła, temperatury, rozdzielacz, okładziny oraz wersję dokumentacji przekazaną wykonawcy.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Odbierz podłoże i konstrukcję podłogi przed ułożeniem rur",
          "text": "Sprawdź rzeczywistą izolację, poziomy, stabilność warstw, izolację brzegową, szczeliny jastrychu, przepusty oraz kolizje branżowe.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Porównaj ułożone pętle z aktualnym projektem",
          "text": "Skontroluj oznaczenia, rozstaw, trasy, długości, miejsca bez rur, mocowanie, przejścia i stan przewodów oraz wykonaj zdjęcia z punktami odniesienia.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Wykonaj próbę i podpisz dopuszczenie do jastrychu",
          "text": "Zastosuj właściwą procedurę próby szczelności, zapisz parametry i wynik, usuń niezgodności, zabezpiecz instalację oraz formalnie dopuść ją do zakrycia.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Uruchom układ i przekaż dokumentację powykonawczą",
          "text": "Zrealizuj właściwą procedurę dla jastrychu, sprawdź podłoże przed okładziną, ustaw projektowe przepływy i sterowanie oraz przekaż projekt, protokoły, zdjęcia i tabelę nastaw.",
          "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-gates"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jakie błędy na budowie najczęściej psują projekt ogrzewania podłogowego?",
          "acceptedAnswer": { "@type": "Answer", "text": "Najczęściej są to niezaktualizowane zmiany architektury, inne izolacje lub okna, zmiana okładziny, przesunięcie rozdzielacza, samowolna korekta rozstawu i przebiegu pętli, niezgodna konstrukcja podłogi, brak próby szczelności, brak odbioru przed jastrychem oraz brak dokumentacji powykonawczej." }
        },
        {
          "@type": "Question",
          "name": "Czy każda zmiana na budowie wymaga nowego projektu podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie każda wymaga opracowania projektu od początku. Każda zmiana istotna dla obciążenia cieplnego, powierzchni aktywnej, temperatury wody, długości pętli, przepływów lub konstrukcji podłogi powinna jednak zostać oceniona. Wynikiem może być brak korekty, lokalna zmiana albo aktualizacja kilku części dokumentacji." }
        },
        {
          "@type": "Question",
          "name": "Czy można przesunąć rozdzielacz ogrzewania podłogowego po wykonaniu projektu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Można po sprawdzeniu nowej lokalizacji. Przesunięcie zmienia długości przyłączy kilku pętli, ich przebieg, opory hydrauliczne i dostęp serwisowy. Trzeba zaktualizować długości oraz ocenić możliwość uzyskania wymaganych przepływów." }
        },
        {
          "@type": "Question",
          "name": "Czy można zmienić płytki na panele po wykonaniu projektu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Zmianę należy sprawdzić na podstawie łącznego oporu cieplnego panelu, podkładu i sposobu montażu. Większy opór nad rurą może zmniejszyć osiągalną moc albo wymagać wyższej temperatury wody. Istotne są również ograniczenia temperatury podane dla wybranej okładziny." }
        },
        {
          "@type": "Question",
          "name": "Czy pętla dłuższa niż 100 metrów zawsze jest błędem?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie można oceniać pętli tylko jedną długością. Znaczenie mają średnica wewnętrzna przewodu, przepływ, wymagana moc, różnica temperatury, armatura, opór całej trasy i dostępne ciśnienie pompy. O poprawności decydują obliczenia konkretnego obiegu." }
        },
        {
          "@type": "Question",
          "name": "Jakie ciśnienie zastosować przy próbie szczelności podłogówki?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie należy przyjmować uniwersalnej wartości bez znajomości systemu. Medium, ciśnienie, czas stabilizacji, kolejne odczyty oraz kryterium wyniku powinny wynikać z właściwej procedury, projektu, dokumentacji zastosowanych elementów i warunków na budowie." }
        },
        {
          "@type": "Question",
          "name": "Czy przed wylewką trzeba ustawiać wszystkie rotametry?",
          "acceptedAnswer": { "@type": "Answer", "text": "Odbiór przed zakryciem powinien potwierdzić identyfikację obiegów, drożność oraz próbę zgodną z procedurą. Docelowe równoważenie wykonuje się w warunkach uruchomienia instalacji według projektowych przepływów. Jednakowe ustawienie wszystkich rotametrów nie jest zasadą projektową." }
        },
        {
          "@type": "Question",
          "name": "Co powinien zawierać protokół odbioru podłogówki przed wylewką?",
          "acceptedAnswer": { "@type": "Answer", "text": "Powinien identyfikować inwestycję i wersję projektu, potwierdzać zgodność tras i oznaczeń, wskazywać uwagi oraz ich usunięcie, zawierać wynik próby szczelności, datę, uczestników i jednoznaczną decyzję dotyczącą dopuszczenia instalacji do zakrycia." }
        },
        {
          "@type": "Question",
          "name": "Czy zdjęcia rur przed wylewką wystarczą jako dokumentacja?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Zdjęcia są jednym z elementów. Potrzebne są również aktualny rzut, identyfikacja pętli, ich rzeczywiste długości, protokół próby, zestawienie nastaw oraz opis zmian. Fotografie powinny zawierać miarę albo trwałe punkty odniesienia." }
        },
        {
          "@type": "Question",
          "name": "Kiedy trzeba ponownie przeliczyć ogrzewanie podłogowe?",
          "acceptedAnswer": { "@type": "Answer", "text": "Ponowna kontrola jest potrzebna szczególnie po zmianie przegród, okien, temperatur pomieszczeń, aktywnej powierzchni, okładziny, źródła ciepła, temperatury zasilania, położenia rozdzielacza, liczby i przebiegu pętli albo konstrukcji podłogi." }
        },
        {
          "@type": "Question",
          "name": "Kto zatwierdza zmianę rozstawu rur na budowie?",
          "acceptedAnswer": { "@type": "Answer", "text": "Rozstaw wynika z obciążenia pomieszczenia, konstrukcji podłogi i parametrów wody, dlatego jego zmianę powinien ocenić autor właściwej części projektu lub osoba posiadająca komplet danych do ponownego sprawdzenia. Nie powinien być korygowany wyłącznie na podstawie ilości pozostałej rury." }
        },
        {
          "@type": "Question",
          "name": "Co zrobić, gdy instalacja została już zalana bez dokumentacji?",
          "acceptedAnswer": { "@type": "Answer", "text": "Należy zebrać dostępne projekty, zdjęcia i informacje wykonawcy, zidentyfikować pętle, wykonać bezpieczne pomiary instalacji oraz uzupełnić dokumentację w zakresie możliwym bez odkrywek. Zakres diagnostyki zależy od objawów i nie powinien być zastępowany zgadywaniem przebiegu rur." }
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#audit",
      "name": "Kontrola zgodności projektu ogrzewania podłogowego z budową — 5 etapów",
      "url": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#rk-build-audit",
      "description": "Interaktywna lista dwudziestu potwierdzeń pogrupowanych w pięć bramek odbiorowych, ze wskazaniem siedmiu punktów krytycznych przed zakryciem instalacji.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Interaktywna lista kontroli budowy ogrzewania podłogowego",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "featureList": [
        "Kontrola aktualności danych projektu",
        "Kontrola podłoża i konstrukcji podłogi",
        "Kontrola ułożonych pętli",
        "Kontrola próby oraz dopuszczenia do jastrychu",
        "Kontrola uruchomienia i dokumentacji powykonawczej",
        "Siedem punktów krytycznych blokujących ocenę pozytywną",
        "Dynamiczny wynik oraz status STOP, KONSULTACJA lub GO"
      ],
      "offers": { "@type": "Offer", "price": "0", "priceCurrency": "PLN" },
      "softwareHelp": { "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/#article" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista systemów HVAC oraz ogrzewania podłogowego",
      "description": "Projektant wodnego ogrzewania podłogowego, autor technicznych opracowań i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji sanitarnych",
        "Obciążenie cieplne budynków",
        "Hydraulika instalacji grzewczych",
        "Kontrola zgodności projektu z wykonaniem",
        "Rozdzielacze i regulacja przepływów",
        "Dokumentacja powykonawcza"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy"
      ],
      "affiliation": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "owns": [
        { "@id": "https://projekt-ogrzewania.pl/#website" },
        { "@id": "https://remont.biz.pl/#website" },
        { "@id": "https://sobir.pl/#website" }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "width": 1024,
        "height": 1024
      },
      "founder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  function bootBuildControl() {
    var root = document.getElementById("rk-build-control");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-build-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-build-ready", "1");

    function find(selector) {
      return root.querySelector(selector);
    }

    function findAll(selector) {
      return root.querySelectorAll(selector);
    }

    function setText(selector, value) {
      var element = find(selector);
      if (element) {
        element.textContent = value;
      }
    }

    var checks = findAll("[data-rk-build-check]");
    var fill = find("#rk-build-fill");
    var progressbar = find(".rk-build-audit-bar");
    var signal = find("#rk-build-signal");
    var result = find("#rk-build-result");

    function updateStageCounts() {
      var stage;
      for (stage = 1; stage <= 5; stage += 1) {
        var stageChecks = findAll('[data-rk-build-check][data-stage="' + stage + '"]');
        var stageChecked = 0;
        var index;
        for (index = 0; index < stageChecks.length; index += 1) {
          if (stageChecks[index].checked) {
            stageChecked += 1;
          }
        }
        setText('[data-rk-build-stage-count="' + stage + '"]', stageChecked + "/" + stageChecks.length);
      }
    }

    function updateAudit() {
      var checked = 0;
      var criticalTotal = 0;
      var criticalChecked = 0;
      var index;

      for (index = 0; index < checks.length; index += 1) {
        if (checks[index].checked) {
          checked += 1;
        }
        if (checks[index].getAttribute("data-critical") === "1") {
          criticalTotal += 1;
          if (checks[index].checked) {
            criticalChecked += 1;
          }
        }
      }

      var total = checks.length;
      var missing = total - checked;
      var criticalMissing = criticalTotal - criticalChecked;
      var percent = total > 0 ? checked / total * 100 : 0;
      var rounded = Math.round(percent);

      setText("#rk-build-score", rounded + "%");
      setText("#rk-build-count", checked + " z " + total + " punktów");
      setText("#rk-build-missing", "Brakuje " + missing + " potwierdzeń, w tym " + criticalMissing + " krytycznych.");

      if (fill) {
        fill.style.width = percent.toFixed(1) + "%";
      }
      if (progressbar) {
        progressbar.setAttribute("aria-valuenow", String(rounded));
      }

      if (criticalMissing > 0) {
        if (signal) {
          signal.textContent = "STOP";
          signal.style.background = "#d83c2f";
        }
        if (result) {
          result.style.background = "#fff0ed";
        }
        if (fill) {
          fill.style.background = "#d83c2f";
        }
        setText("#rk-build-message", "Ocena czerwona: brakuje " + criticalMissing + " punktów krytycznych. Nie traktuj instalacji jako gotowej do zakrycia przed ich rzeczywistym sprawdzeniem i udokumentowaniem.");
      } else if (missing > 0) {
        if (signal) {
          signal.textContent = "KONSULTACJA";
          signal.style.background = "#b66a16";
        }
        if (result) {
          result.style.background = "#fff7e6";
        }
        if (fill) {
          fill.style.background = "#f2b441";
        }
        setText("#rk-build-message", "Ocena pomarańczowa: punkty krytyczne są potwierdzone, ale odbiór nie jest kompletny. Uzupełnij " + missing + " brakujących elementów i skonsultuj rozbieżności przed kolejnym etapem robót.");
      } else {
        if (signal) {
          signal.textContent = "GO";
          signal.style.background = "#178265";
        }
        if (result) {
          result.style.background = "#eaf8f3";
        }
        if (fill) {
          fill.style.background = "#178265";
        }
        setText("#rk-build-message", "Ocena zielona: wszystkie 20 punktów zostało potwierdzonych. Zachowaj projekt, rewizję powykonawczą, protokoły i zdjęcia. Wynik checklisty nadal nie zastępuje odbioru technicznego na budowie.");
      }

      updateStageCounts();
    }

    root.addEventListener("change", function (event) {
      var target = event.target;
      if (!target) {
        return;
      }
      if (target.matches("[data-rk-build-check]")) {
        updateAudit();
      }
    });

    root.addEventListener("click", function (event) {
      var clicked = event.target;
      if (!clicked) {
        return;
      }

      var resetButton = clicked.closest("#rk-build-reset");
      if (resetButton) {
        if (root.contains(resetButton)) {
          event.preventDefault();
          var index;
          for (index = 0; index < checks.length; index += 1) {
            checks[index].checked = false;
          }
          updateAudit();
          var audit = find("#rk-build-audit");
          if (audit) {
            audit.scrollIntoView({ behavior: "smooth", block: "start" });
          }
          return;
        }
      }

      var anchor = clicked.closest('a[href^="#"]');
      if (!anchor) {
        return;
      }
      if (!root.contains(anchor)) {
        return;
      }
      var selector = anchor.getAttribute("href");
      if (!selector) {
        return;
      }
      if (selector === "#") {
        return;
      }
      var destination = find(selector);
      if (!destination) {
        return;
      }
      event.preventDefault();
      var motion = "smooth";
      if (window.matchMedia) {
        if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
          motion = "auto";
        }
      }
      destination.scrollIntoView({ behavior: motion, block: "start" });
    });

    var readingProgress = find(".rk-build-progress");
    var ticking = false;

    function updateReadingProgress() {
      if (!readingProgress) {
        ticking = false;
        return;
      }
      var rect = root.getBoundingClientRect();
      var viewport = window.innerHeight || document.documentElement.clientHeight;
      var total = Math.max(root.offsetHeight - viewport, 1);
      var passed = Math.min(Math.max(-rect.top, 0), total);
      var value = Math.min(100, Math.max(0, passed / total * 100));
      readingProgress.style.width = value.toFixed(2) + "%";
      ticking = false;
    }

    function requestReadingProgress() {
      if (ticking) {
        return;
      }
      ticking = true;
      if (window.requestAnimationFrame) {
        window.requestAnimationFrame(updateReadingProgress);
      } else {
        window.setTimeout(updateReadingProgress, 16);
      }
    }

    window.addEventListener("scroll", requestReadingProgress, { passive: true });
    window.addEventListener("resize", requestReadingProgress, { passive: true });
    updateAudit();
    updateReadingProgress();
  }

  function scheduleBuildControl() {
    bootBuildControl();
    window.setTimeout(bootBuildControl, 250);
    window.setTimeout(bootBuildControl, 900);
    window.setTimeout(bootBuildControl, 2200);
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", scheduleBuildControl);
  } else {
    scheduleBuildControl();
  }

  window.addEventListener("load", bootBuildControl);
  window.addEventListener("pageshow", bootBuildControl);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-na-budowie-ktore-psuja-nawet-najlepszy-projekt-ogrzewania-podlogowego/">Najczęstsze błędy na budowie, które psują nawet najlepszy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 27 Jan 2026 10:30:35 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[strefa brzegowa]]></category>
		<category><![CDATA[strefa obwodowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3328</guid>

					<description><![CDATA[<p>Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym to jeden z tych elementów instalacji, które decydują o realnym komforcie cieplnym w domu, a jednocześnie są często bagatelizowane. Właściwie zaprojektowana strefa przy ścianach zewnętrznych i przeszkleniach pozwala wyrównać temperaturę w pomieszczeniu, ograniczyć straty ciepła i obniżyć zużycie energii. W artykule wyjaśniamy, czym jest strefa brzegowa, dlaczego ma kluczowe znaczenie w nowoczesnym budownictwie oraz jak ją poprawnie zaprojektować zgodnie z normami i praktyką instalacyjną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-edge-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6238;
    --rk-red: #d83c2f;
    --rk-green: #178265;
    --rk-green-soft: #ebf8f3;
    --rk-yellow: #f2b441;
    --rk-ink: #1d2c3a;
    --rk-text: #465a6b;
    --rk-muted: #687b89;
    --rk-line: #d9e7ed;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ef;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1480px;
    margin: 32px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.78;
  }

  #rk-edge-guide,
  #rk-edge-guide * {
    box-sizing: border-box;
  }

  #rk-edge-guide img,
  #rk-edge-guide svg {
    max-width: 100%;
  }

  #rk-edge-guide button,
  #rk-edge-guide input,
  #rk-edge-guide a,
  #rk-edge-guide summary {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-edge-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-edge-guide a:hover {
    color: var(--rk-red);
  }

  #rk-edge-guide h2,
  #rk-edge-guide h3,
  #rk-edge-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-edge-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  }

  #rk-edge-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.18rem, 2.5vw, 1.58rem);
  }

  #rk-edge-guide h4 {
    margin-bottom: 8px;
    font-size: 1.02rem;
    letter-spacing: -0.015em;
  }

  #rk-edge-guide h2::before,
  #rk-edge-guide h2::after,
  #rk-edge-guide h3::before,
  #rk-edge-guide h3::after,
  #rk-edge-guide h4::before,
  #rk-edge-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-edge-guide p {
    margin: 0 0 1.22em;
    color: var(--rk-text);
  }

  #rk-edge-guide strong {
    color: var(--rk-dark);
  }

  #rk-edge-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-edge-guide .rk-edge-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-edge-guide .rk-edge-progress-track {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-edge-guide .rk-edge-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-orange));
  }

  #rk-edge-guide .rk-edge-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 13%, rgba(255, 98, 56, 0.31), transparent 28%),
      radial-gradient(circle at 78% 78%, rgba(40, 201, 218, 0.22), transparent 33%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09647e 100%);
  }

  #rk-edge-guide .rk-edge-hero::before,
  #rk-edge-guide .rk-edge-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
  }

  #rk-edge-guide .rk-edge-hero::before {
    right: -120px;
    bottom: -175px;
    width: 400px;
    height: 400px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-edge-guide .rk-edge-hero::after {
    right: 145px;
    bottom: -125px;
    width: 235px;
    height: 235px;
    border: 34px solid rgba(255, 98, 56, 0.12);
  }

  #rk-edge-guide .rk-edge-badge {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin: 0 0 24px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-edge-guide .rk-edge-badge::before {
    content: "";
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 98, 56, 0.18);
  }

  #rk-edge-guide .rk-edge-hero h2 {
    max-width: 1040px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.05vw, 3.85rem);
    letter-spacing: -0.055em;
  }

  #rk-edge-guide .rk-edge-hero h2 span {
    color: #83edf5;
  }

  #rk-edge-guide .rk-edge-hook {
    max-width: 930px;
    margin: 0 0 21px;
    padding: 19px 21px;
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 15px 15px 0;
    background: rgba(255, 255, 255, 0.09);
  }

  #rk-edge-guide .rk-edge-hook p,
  #rk-edge-guide .rk-edge-hook strong,
  #rk-edge-guide .rk-edge-hero-lead {
    color: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-hook p {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.67;
  }

  #rk-edge-guide .rk-edge-hero-lead {
    max-width: 930px;
    font-size: 1.03rem;
  }

  #rk-edge-guide .rk-edge-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 24px;
    color: #cde0e7;
    font-size: 0.72rem;
    font-weight: 770;
  }

  #rk-edge-guide .rk-edge-hero-meta span::before {
    content: "•";
    margin-right: 8px;
    color: var(--rk-orange);
  }

  #rk-edge-guide .rk-edge-author-strip {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-top: 26px;
  }

  #rk-edge-guide .rk-edge-author-strip img {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border: 3px solid rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    object-fit: cover;
  }

  #rk-edge-guide .rk-edge-author-strip b,
  #rk-edge-guide .rk-edge-author-strip small {
    display: block;
  }

  #rk-edge-guide .rk-edge-author-strip b {
    color: var(--rk-white);
    font-size: 0.88rem;
  }

  #rk-edge-guide .rk-edge-author-strip small {
    color: #cde0e7;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-edge-guide .rk-edge-content {
    padding: clamp(30px, 5.7vw, 72px);
  }

  #rk-edge-guide .rk-edge-learn {
    margin-bottom: 36px;
  }

  #rk-edge-guide .rk-edge-learn > strong {
    display: block;
    margin-bottom: 16px;
    font-size: 1.12rem;
  }

  #rk-edge-guide .rk-edge-learn-grid,
  #rk-edge-guide .rk-edge-card-grid,
  #rk-edge-guide .rk-edge-error-grid,
  #rk-edge-guide .rk-edge-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-edge-guide .rk-edge-learn-card,
  #rk-edge-guide .rk-edge-card,
  #rk-edge-guide .rk-edge-error,
  #rk-edge-guide .rk-edge-check {
    min-width: 0;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-learn-card {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  #rk-edge-guide .rk-edge-no,
  #rk-edge-guide .rk-edge-card-icon,
  #rk-edge-guide .rk-edge-error-no,
  #rk-edge-guide .rk-edge-check-no {
    display: grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 14px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-edge-guide .rk-edge-learn-card h4,
  #rk-edge-guide .rk-edge-learn-card p,
  #rk-edge-guide .rk-edge-card h4,
  #rk-edge-guide .rk-edge-card p,
  #rk-edge-guide .rk-edge-error h4,
  #rk-edge-guide .rk-edge-error p,
  #rk-edge-guide .rk-edge-check h4,
  #rk-edge-guide .rk-edge-check p {
    margin: 0;
  }

  #rk-edge-guide .rk-edge-learn-card p,
  #rk-edge-guide .rk-edge-card p,
  #rk-edge-guide .rk-edge-error p,
  #rk-edge-guide .rk-edge-check p {
    margin-top: 6px;
    font-size: 0.84rem;
    line-height: 1.58;
  }

  #rk-edge-guide .rk-edge-nav {
    margin-bottom: 46px;
    padding: 22px;
    border: 1px solid #cce4ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-edge-guide .rk-edge-nav > strong {
    display: block;
    margin-bottom: 12px;
  }

  #rk-edge-guide .rk-edge-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  #rk-edge-guide .rk-edge-nav a {
    padding: 7px 11px;
    border: 1px solid #bfdbe5;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-decoration: none;
  }

  #rk-edge-guide .rk-edge-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-edge-guide .rk-edge-section {
    margin-top: 64px;
  }

  #rk-edge-guide .rk-edge-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 25px;
  }

  #rk-edge-guide .rk-edge-section-head h2,
  #rk-edge-guide .rk-edge-section-head p {
    margin: 0;
  }

  #rk-edge-guide .rk-edge-section-head p {
    margin-top: 8px;
    font-size: 0.88rem;
  }

  #rk-edge-guide .rk-edge-section-no {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
    box-shadow: 0 11px 23px rgba(216, 60, 47, 0.2);
  }

  #rk-edge-guide .rk-edge-answer,
  #rk-edge-guide .rk-edge-truth,
  #rk-edge-guide .rk-edge-warning,
  #rk-edge-guide .rk-edge-note,
  #rk-edge-guide .rk-edge-formula {
    margin: 24px 0;
    padding: 24px;
    border-radius: 20px;
  }

  #rk-edge-guide .rk-edge-answer {
    border: 1px solid #bde3eb;
    border-left: 6px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }

  #rk-edge-guide .rk-edge-truth {
    border: 1px solid #f2c5b6;
    border-left: 6px solid var(--rk-orange);
    background: var(--rk-warm);
  }

  #rk-edge-guide .rk-edge-warning {
    border: 1px solid #f0cfd0;
    border-left: 6px solid var(--rk-red);
    background: #fff5f5;
  }

  #rk-edge-guide .rk-edge-note {
    border: 1px solid #cbe6da;
    border-left: 6px solid var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-edge-guide .rk-edge-answer p,
  #rk-edge-guide .rk-edge-truth p,
  #rk-edge-guide .rk-edge-warning p,
  #rk-edge-guide .rk-edge-note p,
  #rk-edge-guide .rk-edge-formula p {
    margin: 0;
  }

  #rk-edge-guide .rk-edge-card-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-edge-guide .rk-edge-card-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-edge-guide .rk-edge-card {
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-card-icon {
    margin-bottom: 15px;
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
  }

  #rk-edge-guide .rk-edge-list {
    margin: 18px 0 24px;
    padding: 0;
    list-style: none;
  }

  #rk-edge-guide .rk-edge-list li {
    position: relative;
    margin: 9px 0;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-edge-guide .rk-edge-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0.08em;
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.66rem;
    font-weight: 900;
  }

  #rk-edge-guide .rk-edge-table-wrap {
    margin: 24px 0;
  }

  #rk-edge-guide .rk-edge-table {
    width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: fixed;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    overflow: hidden;
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-table th,
  #rk-edge-guide .rk-edge-table td {
    overflow-wrap: anywhere;
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-edge-guide .rk-edge-table th:last-child,
  #rk-edge-guide .rk-edge-table td:last-child {
    border-right: 0;
  }

  #rk-edge-guide .rk-edge-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-edge-guide .rk-edge-table th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.76rem;
    line-height: 1.4;
  }

  #rk-edge-guide .rk-edge-table td {
    color: var(--rk-text);
    font-size: 0.8rem;
    line-height: 1.55;
  }

  #rk-edge-guide .rk-edge-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin: 25px 0 18px;
  }

  #rk-edge-guide .rk-edge-flow-step {
    min-width: 0;
    padding: 16px 12px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.4;
    cursor: pointer;
  }

  #rk-edge-guide .rk-edge-flow-step:hover,
  #rk-edge-guide .rk-edge-flow-step.is-active {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-edge-guide .rk-edge-flow-detail {
    min-height: 150px;
    padding: 23px;
    border: 1px solid #cde5ec;
    border-radius: 19px;
    background: var(--rk-cyan-soft);
  }

  #rk-edge-guide .rk-edge-flow-detail h3,
  #rk-edge-guide .rk-edge-flow-detail p {
    margin: 0;
  }

  #rk-edge-guide .rk-edge-flow-detail p {
    margin-top: 9px;
  }

  #rk-edge-guide .rk-edge-formula {
    border: 1px solid #c6dce5;
    background: var(--rk-dark);
  }

  #rk-edge-guide .rk-edge-formula strong,
  #rk-edge-guide .rk-edge-formula p,
  #rk-edge-guide .rk-edge-formula code {
    color: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-formula code {
    display: block;
    margin: 13px 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.07);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.65;
    white-space: normal;
  }

  #rk-edge-guide .rk-edge-architectures {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin: 25px 0;
  }

  #rk-edge-guide .rk-edge-architecture {
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-architecture > span {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-edge-guide .rk-edge-nodes {
    display: grid;
    gap: 8px;
    margin: 17px 0;
  }

  #rk-edge-guide .rk-edge-node {
    position: relative;
    padding: 12px;
    border: 1px solid #cbdde5;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.76rem;
    font-weight: 820;
    text-align: center;
  }

  #rk-edge-guide .rk-edge-node + .rk-edge-node::before {
    content: "↓";
    position: absolute;
    top: -16px;
    left: 50%;
    color: var(--rk-orange);
    font-size: 1rem;
    transform: translateX(-50%);
  }

  #rk-edge-guide .rk-edge-architecture p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-edge-guide .rk-edge-lab {
    overflow: hidden;
    margin: 28px 0;
    border: 1px solid #c9e1e9;
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 45px rgba(16, 37, 54, 0.1);
  }

  #rk-edge-guide .rk-edge-lab-head {
    padding: 25px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-edge-guide .rk-edge-lab-head h3,
  #rk-edge-guide .rk-edge-lab-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-lab-head p {
    margin-top: 8px;
    color: #cfe2e8;
    font-size: 0.87rem;
  }

  #rk-edge-guide .rk-edge-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 17px;
  }

  #rk-edge-guide .rk-edge-preset {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: var(--rk-white);
    background: rgba(255, 255, 255, 0.08);
    font: inherit;
    font-size: 0.7rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-edge-guide .rk-edge-preset:hover,
  #rk-edge-guide .rk-edge-preset.is-active {
    color: var(--rk-dark);
    border-color: var(--rk-cyan);
    background: var(--rk-cyan);
  }

  #rk-edge-guide .rk-edge-lab-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.92fr) minmax(0, 1.35fr);
    gap: 0;
  }

  #rk-edge-guide .rk-edge-controls {
    padding: 25px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-control {
    margin-bottom: 19px;
  }

  #rk-edge-guide .rk-edge-control:last-child {
    margin-bottom: 0;
  }

  #rk-edge-guide .rk-edge-control label {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    color: var(--rk-dark);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-edge-guide .rk-edge-control output {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.7rem;
  }

  #rk-edge-guide .rk-edge-control input[type="range"] {
    width: 100%;
    margin: 0;
    accent-color: var(--rk-orange);
    cursor: pointer;
  }

  #rk-edge-guide .rk-edge-visual {
    min-width: 0;
    padding: 25px;
  }

  #rk-edge-guide .rk-edge-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-edge-guide .rk-edge-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-result span,
  #rk-edge-guide .rk-edge-result strong {
    display: block;
  }

  #rk-edge-guide .rk-edge-result span {
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 760;
    line-height: 1.35;
  }

  #rk-edge-guide .rk-edge-result strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.28rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  #rk-edge-guide .rk-edge-chart {
    width: 100%;
    min-height: 330px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f3f8fa);
  }

  #rk-edge-guide .rk-edge-chart .rk-grid-line {
    stroke: #d9e6ec;
    stroke-width: 1;
  }

  #rk-edge-guide .rk-edge-chart .rk-axis {
    stroke: #8194a1;
    stroke-width: 1.4;
  }

  #rk-edge-guide .rk-edge-chart .rk-axis-label,
  #rk-edge-guide .rk-edge-chart .rk-tick {
    fill: #5f7381;
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 11px;
  }

  #rk-edge-guide .rk-edge-chart .rk-curve {
    fill: none;
    stroke: var(--rk-blue);
    stroke-width: 5;
    stroke-linecap: round;
  }

  #rk-edge-guide .rk-edge-chart .rk-dot {
    fill: var(--rk-orange);
    stroke: var(--rk-white);
    stroke-width: 4;
  }

  #rk-edge-guide .rk-edge-chart .rk-guide {
    stroke: var(--rk-orange);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
  }

  #rk-edge-guide .rk-edge-status {
    margin-top: 14px;
    padding: 15px;
    border-radius: 13px;
    color: var(--rk-dark);
    background: var(--rk-cyan-soft);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.55;
  }

  #rk-edge-guide .rk-edge-disclaimer {
    padding: 0 25px 24px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    line-height: 1.55;
  }

  #rk-edge-guide .rk-edge-number-input {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    border: 1px solid #bfd3dc;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 760;
  }

  #rk-edge-guide .rk-edge-number-input:focus-visible,
  #rk-edge-guide button:focus-visible,
  #rk-edge-guide a:focus-visible,
  #rk-edge-guide summary:focus-visible {
    outline: 3px solid rgba(40, 201, 218, 0.42);
    outline-offset: 3px;
  }

  #rk-edge-guide .rk-edge-plan-wrap {
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: linear-gradient(180deg, #fbfeff, #f1f7fa);
  }

  #rk-edge-guide .rk-edge-plan {
    display: block;
    width: 100%;
    min-height: 330px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-plan .rk-edge-room {
    fill: #f7fbfd;
    stroke: var(--rk-dark);
    stroke-width: 3;
  }

  #rk-edge-guide .rk-edge-plan .rk-edge-zone {
    fill: rgba(255, 98, 56, 0.19);
    stroke: var(--rk-orange);
    stroke-width: 2;
    stroke-dasharray: 7 5;
  }

  #rk-edge-guide .rk-edge-plan .rk-edge-glazing {
    stroke: var(--rk-blue);
    stroke-width: 9;
    stroke-linecap: round;
  }

  #rk-edge-guide .rk-edge-plan .rk-edge-pipe-zone {
    fill: none;
    stroke: var(--rk-orange);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-edge-guide .rk-edge-plan .rk-edge-pipe-main {
    fill: none;
    stroke: var(--rk-cyan);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-edge-guide .rk-edge-plan text {
    fill: var(--rk-dark);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    font-size: 13px;
    font-weight: 800;
  }

  #rk-edge-guide .rk-edge-plan-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    margin-top: 12px;
    color: var(--rk-muted);
    font-size: 0.7rem;
    font-weight: 780;
  }

  #rk-edge-guide .rk-edge-plan-legend span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
  }

  #rk-edge-guide .rk-edge-plan-legend i {
    display: inline-block;
    width: 23px;
    height: 5px;
    border-radius: 999px;
    background: var(--rk-cyan);
  }

  #rk-edge-guide .rk-edge-plan-legend .zone i {
    background: var(--rk-orange);
  }

  #rk-edge-guide .rk-edge-plan-legend .glass i {
    background: var(--rk-blue);
  }

  #rk-edge-guide .rk-edge-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }

  #rk-edge-guide .rk-edge-metric {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-edge-guide .rk-edge-metric span,
  #rk-edge-guide .rk-edge-metric strong {
    display: block;
  }

  #rk-edge-guide .rk-edge-metric span {
    color: var(--rk-muted);
    font-size: 0.63rem;
    font-weight: 780;
    line-height: 1.35;
  }

  #rk-edge-guide .rk-edge-metric strong {
    margin-top: 5px;
    color: var(--rk-dark);
    font-size: 1.05rem;
    line-height: 1.2;
  }

  #rk-edge-guide .rk-edge-status.is-warning {
    color: #7c321d;
    background: var(--rk-warm);
  }

  #rk-edge-guide .rk-edge-small {
    color: var(--rk-muted);
    font-size: 0.78rem;
    line-height: 1.62;
  }

  #rk-edge-guide .rk-edge-howto {
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }

  #rk-edge-guide .rk-edge-howto-step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-howto-step > span {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: var(--rk-dark);
    font-size: 0.8rem;
    font-weight: 900;
  }

  #rk-edge-guide .rk-edge-howto-step h3,
  #rk-edge-guide .rk-edge-howto-step p {
    margin: 0;
  }

  #rk-edge-guide .rk-edge-howto-step p {
    margin-top: 7px;
    font-size: 0.87rem;
  }

  #rk-edge-guide .rk-edge-faq-list {
    display: grid;
    gap: 10px;
  }

  #rk-edge-guide .rk-edge-faq {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-edge-guide .rk-edge-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-edge-guide .rk-edge-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-edge-guide .rk-edge-faq[open] summary::after {
    content: "−";
  }

  #rk-edge-guide .rk-edge-faq-answer {
    padding: 0 20px 19px;
  }

  #rk-edge-guide .rk-edge-faq-answer p {
    margin: 0;
    font-size: 0.88rem;
  }

  #rk-edge-guide .rk-edge-sources {
    margin-top: 28px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.76rem;
    line-height: 1.7;
  }

  #rk-edge-guide .rk-edge-sources > strong {
    display: block;
    margin-bottom: 8px;
  }

  #rk-edge-guide .rk-edge-cta {
    margin-top: 58px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 26px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 12%, rgba(255, 98, 56, 0.3), transparent 33%),
      linear-gradient(135deg, #102536, #174155);
    box-shadow: 0 20px 45px rgba(16, 37, 54, 0.16);
  }

  #rk-edge-guide .rk-edge-cta h3,
  #rk-edge-guide .rk-edge-cta p,
  #rk-edge-guide .rk-edge-cta strong {
    color: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-cta p {
    max-width: 880px;
  }

  #rk-edge-guide .rk-edge-cta-link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    margin-top: 7px;
    padding: 15px 24px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(90deg, var(--rk-orange), #f04432);
    box-shadow: 0 14px 28px rgba(216, 60, 47, 0.24);
    font-size: 0.88rem;
    font-weight: 900;
    text-align: center;
    text-decoration: none !important;
  }

  #rk-edge-guide .rk-edge-cta-link:hover {
    color: var(--rk-white) !important;
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-edge-guide .rk-edge-cta small {
    display: block;
    margin-top: 14px;
    color: #bdd1da;
    font-size: 0.7rem;
    line-height: 1.5;
  }

  #rk-edge-guide .rk-edge-author-box {
    overflow: hidden;
    margin-top: 30px;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-author-head {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    align-items: center;
    padding: 28px;
    color: var(--rk-white);
    border-bottom: 5px solid var(--rk-cyan);
    background: var(--rk-dark);
  }

  #rk-edge-guide .rk-edge-author-head h3,
  #rk-edge-guide .rk-edge-author-head p {
    margin: 0;
    color: var(--rk-white);
  }

  #rk-edge-guide .rk-edge-author-head p {
    margin-top: 6px;
    color: #cde0e7;
    font-size: 0.82rem;
  }

  #rk-edge-guide .rk-edge-author-mark {
    flex: 0 0 auto;
    padding: 10px 15px;
    border: 1px solid rgba(40, 201, 218, 0.35);
    border-radius: 13px;
    color: #84edf5;
    background: rgba(40, 201, 218, 0.08);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
  }

  #rk-edge-guide .rk-edge-author-main {
    display: grid;
    grid-template-columns: 310px minmax(0, 1fr);
  }

  #rk-edge-guide .rk-edge-author-profile {
    padding: 32px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-edge-guide .rk-edge-author-profile img {
    width: 174px;
    height: 174px;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 16px 34px rgba(16, 37, 54, 0.14);
  }

  #rk-edge-guide .rk-edge-author-profile h4 {
    margin: 18px 0 7px;
    font-size: 1.36rem;
  }

  #rk-edge-guide .rk-edge-author-role {
    display: block;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    line-height: 1.6;
    text-transform: uppercase;
  }

  #rk-edge-guide .rk-edge-author-content {
    min-width: 0;
    padding: 32px;
  }

  #rk-edge-guide .rk-edge-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 23px 23px 23px 61px;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-edge-guide .rk-edge-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 18px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
  }

  #rk-edge-guide .rk-edge-quote blockquote {
    margin: 0;
    color: var(--rk-dark);
    font-size: 1.03rem;
    font-style: italic;
    font-weight: 790;
    line-height: 1.7;
  }

  #rk-edge-guide .rk-edge-tab-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--rk-line);
    border-radius: 14px 14px 0 0;
    overflow: hidden;
  }

  #rk-edge-guide .rk-edge-tab-button {
    min-width: 0;
    padding: 13px 10px;
    border: 0;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-soft);
    font: inherit;
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-edge-guide .rk-edge-tab-button:last-child {
    border-right: 0;
  }

  #rk-edge-guide .rk-edge-tab-button.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -4px 0 var(--rk-blue);
  }

  #rk-edge-guide .rk-edge-tab-panel {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
  }

  #rk-edge-guide .rk-edge-tab-panel[hidden] {
    display: none !important;
  }

  #rk-edge-guide .rk-edge-tab-panel p {
    margin: 0;
    font-size: 0.86rem;
  }

  #rk-edge-guide .rk-edge-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
  }

  #rk-edge-guide .rk-edge-portals a {
    padding: 8px 12px;
    border: 1px solid #c8dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.75rem;
    text-decoration: none;
  }

  #rk-edge-guide .rk-edge-portals a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  @media (max-width: 1120px) {
    #rk-edge-guide .rk-edge-card-grid.four {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-edge-guide .rk-edge-architectures,
    #rk-edge-guide .rk-edge-card-grid.three {
      grid-template-columns: 1fr;
    }

    #rk-edge-guide .rk-edge-author-main {
      grid-template-columns: 260px minmax(0, 1fr);
    }
  }

  @media (max-width: 880px) {
    #rk-edge-guide {
      font-size: 17px;
    }

    #rk-edge-guide .rk-edge-lab-grid,
    #rk-edge-guide .rk-edge-author-main {
      grid-template-columns: 1fr;
    }

    #rk-edge-guide .rk-edge-controls,
    #rk-edge-guide .rk-edge-author-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-edge-guide .rk-edge-flow {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-edge-guide .rk-edge-flow-step:last-child {
      grid-column: 1 / -1;
    }

    #rk-edge-guide .rk-edge-metrics {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-edge-guide {
      margin: 18px auto 50px;
      font-size: 16px;
    }

    #rk-edge-guide .rk-edge-shell {
      border-radius: 20px;
    }

    #rk-edge-guide .rk-edge-hero,
    #rk-edge-guide .rk-edge-content {
      padding: 25px 18px;
    }

    #rk-edge-guide .rk-edge-learn-grid,
    #rk-edge-guide .rk-edge-card-grid,
    #rk-edge-guide .rk-edge-card-grid.four,
    #rk-edge-guide .rk-edge-error-grid,
    #rk-edge-guide .rk-edge-check-grid,
    #rk-edge-guide .rk-edge-results {
      grid-template-columns: 1fr;
    }

    #rk-edge-guide .rk-edge-section {
      margin-top: 48px;
    }

    #rk-edge-guide .rk-edge-section-head {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
    }

    #rk-edge-guide .rk-edge-section-no {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-edge-guide .rk-edge-table,
    #rk-edge-guide .rk-edge-table tbody,
    #rk-edge-guide .rk-edge-table tr,
    #rk-edge-guide .rk-edge-table td {
      display: block;
      width: 100%;
    }

    #rk-edge-guide .rk-edge-table {
      border: 0;
      background: transparent;
    }

    #rk-edge-guide .rk-edge-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-edge-guide .rk-edge-table tr {
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 16px;
      overflow: hidden;
      background: var(--rk-white);
    }

    #rk-edge-guide .rk-edge-table td,
    #rk-edge-guide .rk-edge-table tr:last-child td {
      display: grid;
      grid-template-columns: minmax(105px, 0.42fr) minmax(0, 0.58fr);
      gap: 10px;
      padding: 13px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white) !important;
    }

    #rk-edge-guide .rk-edge-table td:last-child {
      border-bottom: 0;
    }

    #rk-edge-guide .rk-edge-table td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-weight: 900;
    }

    #rk-edge-guide .rk-edge-chart {
      min-height: 265px;
    }

    #rk-edge-guide .rk-edge-plan {
      min-height: 265px;
    }

    #rk-edge-guide .rk-edge-metrics {
      grid-template-columns: 1fr;
    }

    #rk-edge-guide .rk-edge-howto-step {
      grid-template-columns: 44px minmax(0, 1fr);
      gap: 12px;
      padding: 16px;
    }

    #rk-edge-guide .rk-edge-howto-step > span {
      width: 42px;
      height: 42px;
      border-radius: 13px;
    }

    #rk-edge-guide .rk-edge-author-head {
      align-items: flex-start;
      flex-direction: column;
      padding: 22px;
    }

    #rk-edge-guide .rk-edge-author-content,
    #rk-edge-guide .rk-edge-author-profile {
      padding: 22px;
    }

    #rk-edge-guide .rk-edge-tab-buttons {
      grid-template-columns: 1fr;
    }

    #rk-edge-guide .rk-edge-tab-button {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-edge-guide .rk-edge-tab-button:last-child {
      border-bottom: 0;
    }

    #rk-edge-guide .rk-edge-cta-link {
      width: 100%;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-edge-guide *,
    #rk-edge-guide *::before,
    #rk-edge-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-edge-guide" itemscope="" itemtype="https://schema.org/TechArticle">
  <div class="rk-edge-shell">
    <div class="rk-edge-progress-track" aria-hidden="true"><div class="rk-edge-progress"></div></div>

    <header class="rk-edge-hero">
      <div class="rk-edge-badge">Projektowanie podłogówki • strefy przy przeszkleniach</div>
      <h2 itemprop="headline">Strefa brzegowa w ogrzewaniu podłogowym – <span>szerokość, rozstaw rur i obliczenia</span></h2>
      <div class="rk-edge-hook">
        <p><strong>Strefa brzegowa nie jest obowiązkowym paskiem rur wykonywanym przy każdej ścianie zewnętrznej.</strong> Jest narzędziem projektowym stosowanym tam, gdzie lokalne obciążenie cieplne i ryzyko dyskomfortu są większe niż w pozostałej części pomieszczenia. O jej szerokości, rozstawie i sposobie zasilania powinny decydować obliczenia, a nie zwyczaj wykonawczy.</p>
      </div>
      <p class="rk-edge-hero-lead" itemprop="description">Ten techniczny przewodnik wyjaśnia, czym jest strefa brzegowa i obwodowa w ogrzewaniu podłogowym, kiedy ma sens przy oknach oraz ścianach zewnętrznych, jak sprawdzić temperaturę powierzchni, oszacować długość rury, podzielić pętle i policzyć wymagany przepływ. Interaktywny planer pokazuje geometrię rozwiązania, ale wyraźnie oddziela szacunek materiałowy od pełnego projektu cieplnego i hydraulicznego.</p>
      <div class="rk-edge-hero-meta">
        <span>Aktualizacja techniczna: 24 sierpnia 2026 r.</span>
        <span>Kompleksowy poradnik</span>
        <span>Założenia zgodne z fizyką systemów płaszczyznowych</span>
      </div>
      <div class="rk-edge-author-strip" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="54" height="54" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</small>
        </div>
      </div>
    </header>

    <div class="rk-edge-content">
      <div class="rk-edge-learn" aria-label="Zakres artykułu">
        <strong>Po lekturze będziesz wiedzieć:</strong>
        <div class="rk-edge-learn-grid">
          <div class="rk-edge-learn-card"><div class="rk-edge-no">01</div><div><h4>Kiedy wydzielić strefę brzegową</h4><p>Nie według samej obecności ściany zewnętrznej, lecz na podstawie lokalnych strat, geometrii przeszklenia i wymaganej mocy.</p></div></div>
          <div class="rk-edge-learn-card"><div class="rk-edge-no">02</div><div><h4>Jak dobrać szerokość i rozstaw</h4><p>Jak interpretować pas do 1 m, rozstaw 5–20 cm i dopuszczalną temperaturę powierzchni bez tworzenia fałszywych reguł.</p></div></div>
          <div class="rk-edge-learn-card"><div class="rk-edge-no">03</div><div><h4>Jak oszacować rurę i pętle</h4><p>Jak połączyć pole strefy, rozstaw, odległość od rozdzielacza, limit długości pętli, przepływ i opory hydrauliczne.</p></div></div>
          <div class="rk-edge-learn-card"><div class="rk-edge-no">04</div><div><h4>Jak uniknąć błędów wykonawczych</h4><p>Dlaczego zagęszczenie rur nie zawsze daje potrzebną moc i kiedy strefa wymaga osobnego obwodu zamiast przypadkowego fragmentu pętli.</p></div></div>
        </div>
      </div>

      <nav class="rk-edge-nav" aria-label="Nawigacja po artykule">
        <strong>Przejdź do sekcji</strong>
        <div class="rk-edge-nav-links">
          <a href="#rk-edge-odpowiedz">Szybka odpowiedź</a>
          <a href="#rk-edge-definicja">Definicja i limity</a>
          <a href="#rk-edge-kiedy">Kiedy stosować</a>
          <a href="#rk-edge-geometria">Położenie i szerokość</a>
          <a href="#rk-edge-planer">Interaktywny planer</a>
          <a href="#rk-edge-rozstaw">Rozstaw i długość rury</a>
          <a href="#rk-edge-moc">Moc i temperatura</a>
          <a href="#rk-edge-warianty">Warianty wykonania</a>
          <a href="#rk-edge-projekt">Projekt krok po kroku</a>
          <a href="#rk-edge-hydraulika">Przepływ i opory</a>
          <a href="#rk-edge-pompa">Pompa ciepła</a>
          <a href="#rk-edge-dylatacja">Strefa a taśma brzegowa</a>
          <a href="#rk-edge-bledy">Błędy</a>
          <a href="#rk-edge-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-edge-section" id="rk-edge-odpowiedz" aria-labelledby="rk-edge-h2-1">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">01</div>
          <div>
            <h2 id="rk-edge-h2-1">Strefa brzegowa w ogrzewaniu podłogowym – co to jest?</h2>
            <p>Najkrótsza odpowiedź bez wykonawczych mitów.</p>
          </div>
        </div>

        <div class="rk-edge-answer">
          <p><strong>Strefa brzegowa to wydzielony pas powierzchni grzewczej o podwyższonej jednostkowej mocy cieplnej, sytuowany zwykle przy ścianie zewnętrznej, dużym przeszkleniu albo innym miejscu o zwiększonym obciążeniu.</strong> Większą moc uzyskuje się najczęściej przez mniejszy rozstaw rur, ale o wyniku decydują równocześnie temperatury zasilania i powrotu, konstrukcja podłogi, opór okładziny, temperatura pomieszczenia oraz przepływ.</p>
        </div>

        <p>W praktyce strefa ma dwa zadania. Pierwsze to pokrycie większych strat ciepła w pobliżu przegrody. Drugie to ograniczenie odczucia chłodu i asymetrii promieniowania przy zimnej powierzchni okna. Nie oznacza to jednak, że każda ściana zewnętrzna automatycznie wymaga zagęszczenia rur. W dobrze izolowanym budynku o umiarkowanych przeszkleniach zwykły rozstaw może pokryć obciążenie całego pomieszczenia.</p>

        <div class="rk-edge-card-grid three">
          <div class="rk-edge-card"><div class="rk-edge-card-icon">Q</div><h4>Pokrywa lokalne obciążenie</h4><p>Pas przy przegrodzie może oddać więcej ciepła na metr kwadratowy niż strefa podstawowa.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">T°</div><h4>Podlega limitom temperatury</h4><p>Podwyższonej mocy nie wolno uzyskiwać kosztem przekroczenia dopuszczalnej temperatury powierzchni.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">Δp</div><h4>Zmienia hydraulikę</h4><p>Gęstszy rozstaw zwiększa długość rury i może wymusić inny podział pętli oraz przepływów.</p></div>
        </div>

        <div class="rk-edge-truth"><p><strong>Najważniejsza zasada:</strong> rysunek strefy jest wynikiem obliczeń pomieszczenia. Nie zastępuje obliczenia obciążenia cieplnego, wymaganej mocy powierzchniowej, temperatury podłogi ani spadku ciśnienia.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-definicja" aria-labelledby="rk-edge-h2-2">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">02</div>
          <div>
            <h2 id="rk-edge-h2-2">Strefa brzegowa, strefa przebywania ludzi i temperatura powierzchni</h2>
            <p>Trzy pojęcia, które trzeba rozdzielić przed doborem rozstawu.</p>
          </div>
        </div>

        <p>W metodyce projektowania wodnych systemów płaszczyznowych wyróżnia się między innymi powierzchnię zajętą, powierzchnię aktywną, strefę przebywania ludzi oraz strefę brzegową. W uproszczeniu strefa brzegowa jest pasem przy zewnętrznych przegrodach, zwykle o szerokości nieprzekraczającej około 1 m, który nie jest przeznaczony do stałego przebywania ludzi. Taka definicja pozwala przyjąć odmienny limit temperatury powierzchni niż w głównej części pomieszczenia, ale nie zwalnia z oceny komfortu i materiału podłogi.</p>

        <div class="rk-edge-table-wrap">
          <table class="rk-edge-table">
            <thead><tr><th>Obszar podłogi</th><th>Typowy limit temperatury powierzchni</th><th>Jak go rozumieć?</th><th>Ważne zastrzeżenie</th></tr></thead>
            <tbody>
              <tr><td data-label="Obszar"><strong>Strefa przebywania ludzi</strong></td><td data-label="Limit">29°C</td><td data-label="Znaczenie">Górna granica obliczeniowa dla typowych pomieszczeń, a nie zalecana temperatura pracy przez cały sezon.</td><td data-label="Zastrzeżenie">Wymagana moc może zostać osiągnięta przy znacznie niższej temperaturze powierzchni.</td></tr>
              <tr><td data-label="Obszar"><strong>Łazienka i podobne pomieszczenie</strong></td><td data-label="Limit">33°C</td><td data-label="Znaczenie">Podwyższony limit dotyczy pomieszczeń, w których użytkownicy przebywają zwykle krócej i często bez obuwia.</td><td data-label="Zastrzeżenie">Nadal obowiązują ograniczenia okładziny, kleju, jastrychu i systemu.</td></tr>
              <tr><td data-label="Obszar"><strong>Strefa brzegowa</strong></td><td data-label="Limit">35°C</td><td data-label="Znaczenie">Maksimum dla wydzielonego pasa nieprzeznaczonego do stałego przebywania, a nie automatyczna nastawa projektowa.</td><td data-label="Zastrzeżenie">Nie należy prowadzić takiej strefy pod stałym stanowiskiem pracy lub miejscem długiego przebywania.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Wartości te opisują granice powierzchni, nie temperaturę wody w rurze. Dokładna relacja między średnią temperaturą czynnika, temperaturą pomieszczenia i mocą podłogi zależy od budowy systemu. Szerzej opisujemy ją w materiale o <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">wymaganiach normowych dla ogrzewania podłogowego</a>.</p>

        <div class="rk-edge-warning"><p><strong>35°C nie jest celem.</strong> Projektant nie powinien „rozgrzewać strefy do 35°C”, lecz sprawdzić, czy moc wymagana przy przegrodzie zostanie uzyskana bez przekroczenia tej granicy i bez naruszenia ograniczeń producenta warstw podłogi.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-kiedy" aria-labelledby="rk-edge-h2-3">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">03</div>
          <div>
            <h2 id="rk-edge-h2-3">Kiedy strefa brzegowa jest potrzebna, a kiedy można z niej zrezygnować?</h2>
            <p>Decyzję podejmujemy na podstawie mocy i komfortu, nie na podstawie samego rzutu.</p>
          </div>
        </div>

        <div class="rk-edge-check-grid">
          <div class="rk-edge-check"><div class="rk-edge-check-no">01</div><h4>Duże przeszklenie</h4><p>Wysokie lub szerokie okno może tworzyć lokalnie większą stratę i niższą temperaturę powierzchni wewnętrznej, szczególnie przy niskiej temperaturze zewnętrznej.</p></div>
          <div class="rk-edge-check"><div class="rk-edge-check-no">02</div><h4>Narożnik zewnętrzny</h4><p>Dwie przegrody zewnętrzne zwiększają obciążenie przypadające na pas posadzki, ale w narożniku nie wolno podwójnie liczyć nakładającej się powierzchni stref.</p></div>
          <div class="rk-edge-check"><div class="rk-edge-check-no">03</div><h4>Drzwi tarasowe lub wejściowe</h4><p>Niższa izolacyjność i infiltracja powietrza mogą uzasadniać większą moc lokalną, o ile nie ma zabudowy ograniczającej emisję podłogi.</p></div>
          <div class="rk-edge-check"><div class="rk-edge-check-no">04</div><h4>Wysokie obciążenie cieplne</h4><p>Jeżeli zwykły rozstaw nie pokrywa obciążenia bez nadmiernej temperatury zasilania, zagęszczenie może pomóc wykorzystać dostępną powierzchnię.</p></div>
        </div>

        <h3>Kiedy strefa bywa zbędna?</h3>
        <ul class="rk-edge-list">
          <li>gdy obliczona moc podstawowej powierzchni z bezpiecznym zapasem pokrywa straty całego pomieszczenia;</li>
          <li>gdy ściana zewnętrzna ma bardzo dobrą izolacyjność, a przeszklenie jest niewielkie i ciepłe;</li>
          <li>gdy przy przegrodzie znajduje się stała zabudowa, pod którą nie projektuje się aktywnej powierzchni grzewczej;</li>
          <li>gdy zagęszczenie nie poprawia bilansu, bo ograniczeniem jest wysoki opór okładziny albo dopuszczalna temperatura powierzchni;</li>
          <li>gdy cała powierzchnia pomieszczenia ma już taki sam gęsty rozstaw wynikający z obliczeń.</li>
        </ul>

        <p>Przy bardzo dużych oknach warto analizować nie tylko straty całego pomieszczenia, ale również pas podłogi bezpośrednio przy przeszkleniu. Praktyczny kontekst pokazujemy w artykule o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">projekcie podłogówki do domu z dużymi przeszkleniami</a>.</p>
      </section>

      <section class="rk-edge-section" id="rk-edge-geometria" aria-labelledby="rk-edge-h2-4">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">04</div>
          <div>
            <h2 id="rk-edge-h2-4">Gdzie ułożyć strefę brzegową i jak dobrać jej szerokość?</h2>
            <p>Pas powinien odpowiadać rzeczywistemu źródłu zwiększonej straty.</p>
          </div>
        </div>

        <p>Strefę prowadzi się wzdłuż tej części przegrody, przy której występuje większe obciążenie: przeszklenia, drzwi zewnętrznych albo fragmentu ściany o gorszym współczynniku przenikania ciepła. Nie ma technicznego uzasadnienia, aby automatycznie otaczać gęstym rozstawem cały obwód pomieszczenia. Długość pasa powinna wynikać z długości analizowanej przegrody, a szerokość z wymaganej powierzchni oddawania ciepła i zasad komfortu.</p>

        <div class="rk-edge-formula">
          <p><strong>Pole prostego pasa brzegowego:</strong></p>
          <code>A<sub>R</sub> = L<sub>z</sub> × b</code>
          <p>gdzie: <strong>A<sub>R</sub></strong> – pole strefy brzegowej [m²], <strong>L<sub>z</sub></strong> – długość aktywnego odcinka przy przegrodzie [m], <strong>b</strong> – szerokość strefy [m]. W narożniku trzeba odjąć część wspólną dwóch pasów, aby nie policzyć jej dwukrotnie.</p>
        </div>

        <div class="rk-edge-card-grid three">
          <div class="rk-edge-card"><div class="rk-edge-card-icon">0,5</div><h4>Wąski pas</h4><p>Może wystarczyć przy umiarkowanym wzroście obciążenia i dobrym przeszkleniu. Wymaga sprawdzenia, czy ma dość powierzchni.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">1,0</div><h4>Pas do około 1 m</h4><p>To typowy górny zakres definiowania strefy brzegowej. Nie oznacza automatycznie, że każdy projekt powinien przyjmować pełny metr.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">↔</div><h4>Cała długość?</h4><p>Tylko wtedy, gdy zwiększone obciążenie występuje na całym analizowanym odcinku i nie koliduje z zabudową lub strefą stałego pobytu.</p></div>
        </div>

        <div class="rk-edge-note"><p><strong>Końcowy rzut musi uwzględniać technologię układania.</strong> Minimalny promień gięcia rury, odległość od ścian, szczeliny dylatacyjne, przejścia przez przegrody, zabudowę stałą i przebieg rur tranzytowych mogą zmienić geometryczny pomysł w rozwiązanie możliwe do wykonania.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-planer" aria-labelledby="rk-edge-h2-5">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">05</div>
          <div>
            <h2 id="rk-edge-h2-5">Interaktywny planer strefy brzegowej i długości rury</h2>
            <p>Wprowadź geometrię, rozstawy i orientacyjny limit pętli. Wynik służy do wstępnego planowania materiału.</p>
          </div>
        </div>

        <div class="rk-edge-lab" id="rk-edge-planner" aria-label="Interaktywny planer strefy brzegowej">
          <div class="rk-edge-lab-head">
            <h3>Planer strefy przy przeszkleniu</h3>
            <p>Model liczy długość rury z pola i rozstawu, dolicza 5% na łuki oraz podwójne podejście do rozdzielacza. Nie oblicza obciążenia cieplnego ani mocy podłogi.</p>
            <div class="rk-edge-presets" role="group" aria-label="Przykładowe pomieszczenia">
              <button class="rk-edge-preset is-active" type="button" data-edge-preset="salon">Salon z przeszkleniem</button>
              <button class="rk-edge-preset" type="button" data-edge-preset="room">Pokój z oknem</button>
              <button class="rk-edge-preset" type="button" data-edge-preset="dense">Gęsty rozstaw całości</button>
            </div>
          </div>

          <div class="rk-edge-lab-grid">
            <div class="rk-edge-controls">
              <div class="rk-edge-control"><label for="rk-edge-length">Długość pomieszczenia [m]</label><input class="rk-edge-number-input" id="rk-edge-length" type="number" min="2" max="20" step="0.1" value="6"></div>
              <div class="rk-edge-control"><label for="rk-edge-width">Szerokość pomieszczenia [m]</label><input class="rk-edge-number-input" id="rk-edge-width" type="number" min="2" max="15" step="0.1" value="5"></div>
              <div class="rk-edge-control"><label for="rk-edge-exterior">Długość przeszklenia / ściany [m]</label><input class="rk-edge-number-input" id="rk-edge-exterior" type="number" min="0" max="20" step="0.1" value="5"></div>
              <div class="rk-edge-control"><label for="rk-edge-zone-width">Szerokość strefy brzegowej [m]</label><input class="rk-edge-number-input" id="rk-edge-zone-width" type="number" min="0" max="2" step="0.1" value="1"></div>
              <div class="rk-edge-control"><label for="rk-edge-zone-spacing">Rozstaw rur w strefie [cm]</label><input class="rk-edge-number-input" id="rk-edge-zone-spacing" type="number" min="5" max="30" step="1" value="10"></div>
              <div class="rk-edge-control"><label for="rk-edge-main-spacing">Rozstaw rur w części podstawowej [cm]</label><input class="rk-edge-number-input" id="rk-edge-main-spacing" type="number" min="5" max="30" step="1" value="15"></div>
              <div class="rk-edge-control"><label for="rk-edge-distance">Odległość od rozdzielacza [m]</label><input class="rk-edge-number-input" id="rk-edge-distance" type="number" min="0" max="30" step="0.5" value="8"></div>
              <div class="rk-edge-control"><label for="rk-edge-loop-limit">Założony limit długości pętli [m]</label><input class="rk-edge-number-input" id="rk-edge-loop-limit" type="number" min="50" max="150" step="5" value="90"></div>
            </div>

            <div class="rk-edge-visual">
              <div class="rk-edge-metrics" aria-live="polite">
                <div class="rk-edge-metric"><span>Powierzchnia pomieszczenia</span><strong id="rk-edge-area-result">30,0 m²</strong></div>
                <div class="rk-edge-metric"><span>Powierzchnia strefy</span><strong id="rk-edge-zone-area-result">5,0 m²</strong></div>
                <div class="rk-edge-metric"><span>Szacowana długość rury</span><strong id="rk-edge-pipe-result">244 m</strong></div>
                <div class="rk-edge-metric"><span>Wstępna liczba pętli</span><strong id="rk-edge-loops-result">3</strong></div>
              </div>

              <div class="rk-edge-plan-wrap">
                <svg class="rk-edge-plan" viewBox="0 0 720 420" role="img" aria-labelledby="rk-edge-plan-title rk-edge-plan-desc">
                  <title id="rk-edge-plan-title">Schemat pomieszczenia ze strefą brzegową</title>
                  <desc id="rk-edge-plan-desc">Prostokątny rzut pomieszczenia z zaznaczonym przeszkleniem, strefą brzegową i symbolicznym przebiegiem rur.</desc>
                  <rect class="rk-edge-room" x="55" y="55" width="610" height="310" rx="8"></rect>
                  <rect class="rk-edge-zone" id="rk-edge-zone-shape" x="55" y="55" width="610" height="62"></rect>
                  <line class="rk-edge-glazing" id="rk-edge-glazing-shape" x1="105" y1="55" x2="615" y2="55"></line>
                  <path class="rk-edge-pipe-zone" id="rk-edge-zone-path" d="M75 78 H645 M645 96 H75"></path>
                  <path class="rk-edge-pipe-main" id="rk-edge-main-path" d="M75 145 H645 V337 H95 V165 H625 V317 H115 V185 H605 V297 H135"></path>
                  <text x="75" y="90" id="rk-edge-zone-label">strefa brzegowa 1,0 m</text>
                  <text x="75" y="392" id="rk-edge-room-label">pomieszczenie 6,0 × 5,0 m</text>
                </svg>
                <div class="rk-edge-plan-legend" aria-hidden="true">
                  <span class="zone"><i></i>rury strefy brzegowej</span>
                  <span><i></i>rury części podstawowej</span>
                  <span class="glass"><i></i>przeszklenie / przegroda</span>
                </div>
              </div>
              <div class="rk-edge-status" id="rk-edge-status" aria-live="polite">Wstępny podział: 3 pętle po około 81 m. Przed wykonaniem trzeba sprawdzić moc, przepływy i straty ciśnienia.</div>
            </div>
          </div>
          <div class="rk-edge-disclaimer"><strong>Ważne:</strong> narzędzie nie uwzględnia powierzchni wyłączonych, rzeczywistego przebiegu łuków, oporu podłogi, mocy cieplnej, temperatury zasilania, średnicy rury ani jednostkowych strat ciśnienia. Nie stanowi projektu wykonawczego.</div>
        </div>

        <div class="rk-edge-formula">
          <p><strong>Model planera:</strong></p>
          <code>L ≈ 1,05 × (A<sub>R</sub> / t<sub>R</sub> + A<sub>A</sub> / t<sub>A</sub>) + 2 × L<sub>d</sub></code>
          <p>gdzie rozstawy <strong>t</strong> podajemy w metrach, <strong>A<sub>R</sub></strong> oznacza pole strefy brzegowej, <strong>A<sub>A</sub></strong> pozostałą aktywną powierzchnię, a <strong>L<sub>d</sub></strong> odległość od rozdzielacza. Współczynnik 1,05 jest wyłącznie orientacyjnym dodatkiem na łuki i korekty przebiegu.</p>
        </div>
      </section>
      <section class="rk-edge-section" id="rk-edge-rozstaw" aria-labelledby="rk-edge-h2-6">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">06</div>
          <div>
            <h2 id="rk-edge-h2-6">Jaki rozstaw rur zastosować w strefie brzegowej?</h2>
            <p>Rozstaw 5, 10, 15 albo 20 cm jest parametrem obliczeniowym, nie gotową receptą.</p>
          </div>
        </div>

        <p>Mniejszy rozstaw zwiększa udział rury przypadający na metr kwadratowy i wyrównuje temperaturę powierzchni. Nie oznacza jednak proporcjonalnego wzrostu mocy. Im gęściej ułożona rura, tym większe znaczenie zaczynają mieć opory cieplne jastrychu i okładziny oraz graniczna temperatura powierzchni. Rozstaw trzeba więc oceniać razem z temperaturą czynnika i konstrukcją podłogi.</p>

        <div class="rk-edge-table-wrap">
          <table class="rk-edge-table">
            <thead><tr><th>Rozstaw osiowy</th><th>Orientacyjna rura na 1 m²</th><th>Typowe zastosowanie</th><th>Co koniecznie sprawdzić?</th></tr></thead>
            <tbody>
              <tr><td data-label="Rozstaw"><strong>5 cm</strong></td><td data-label="Rura">około 20 m/m²</td><td data-label="Zastosowanie">Bardzo intensywny pas lokalny, jeśli pozwala na to system, średnica rury i promień gięcia.</td><td data-label="Sprawdzenie">Wykonalność łuków, długość obwodu, opory hydrauliczne i rzeczywisty przyrost mocy.</td></tr>
              <tr><td data-label="Rozstaw"><strong>10 cm</strong></td><td data-label="Rura">około 10 m/m²</td><td data-label="Zastosowanie">Częsty punkt wyjścia dla strefy przy dużym przeszkleniu.</td><td data-label="Sprawdzenie">Temperaturę powierzchni, wymaganą moc i podział na pętle.</td></tr>
              <tr><td data-label="Rozstaw"><strong>15 cm</strong></td><td data-label="Rura">około 6,7 m/m²</td><td data-label="Zastosowanie">Umiarkowane obciążenie albo podstawowa część dobrze izolowanego pomieszczenia.</td><td data-label="Sprawdzenie">Czy nie powstaje zbyt duży gradient temperatury i czy moc pokrywa obciążenie.</td></tr>
              <tr><td data-label="Rozstaw"><strong>20 cm</strong></td><td data-label="Rura">około 5 m/m²</td><td data-label="Zastosowanie">Niskie obciążenie i system dopuszczający taki rozstaw.</td><td data-label="Sprawdzenie">Równomierność temperatury podłogi, opór okładziny i wymagany parametr wody.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Wartości w tabeli wynikają z zależności <strong>1 / t</strong> i nie zawierają podejść do rozdzielacza, łuków ani rezerwy wykonawczej. Dokładny przebieg można tworzyć ślimakiem, meandrem lub układem mieszanym. Zasady wyboru omawia poradnik <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">jak układać rury: ślimak, meander czy podwójny meander</a>.</p>

        <div class="rk-edge-warning"><p><strong>Rozstaw 5 cm nie zawsze jest możliwy ani racjonalny.</strong> Trzeba uwzględnić minimalny promień gięcia, średnicę rury, system mocowania, grubość jastrychu i wzrost długości pętli. Czasem lepszy efekt daje większa aktywna powierzchnia, niższy opór okładziny albo osobny obwód zamiast dalszego zagęszczania.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-moc" aria-labelledby="rk-edge-h2-7">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">07</div>
          <div>
            <h2 id="rk-edge-h2-7">Od czego zależy moc strefy brzegowej i temperatura podłogi?</h2>
            <p>Sam rozstaw rury nie wystarcza do przewidzenia wyniku.</p>
          </div>
        </div>

        <p>Strumień ciepła z podłogi wynika z różnicy między temperaturą powierzchni a temperaturą pomieszczenia. Temperatura powierzchni zależy z kolei od średniej temperatury wody, rozstawu i średnicy rur, głębokości ułożenia, przewodności jastrychu oraz oporu cieplnego warstw nad rurami. Dlatego dwa układy z rozstawem 10 cm mogą mieć inną moc, jeśli jeden znajduje się pod płytką, a drugi pod grubą podłogą drewnianą.</p>

        <div class="rk-edge-formula">
          <p><strong>Średnia logarytmiczna różnica temperatur używana w obliczeniach systemu:</strong></p>
          <code>Δθ<sub>H</sub> = (θ<sub>V</sub> − θ<sub>R</sub>) / ln[(θ<sub>V</sub> − θ<sub>i</sub>) / (θ<sub>R</sub> − θ<sub>i</sub>)]</code>
          <p><strong>θ<sub>V</sub></strong> – temperatura zasilania, <strong>θ<sub>R</sub></strong> – temperatura powrotu, <strong>θ<sub>i</sub></strong> – temperatura pomieszczenia. Sama średnia arytmetyczna wody bywa użytecznym przybliżeniem, lecz pełna metoda odnosi wynik do charakterystyki konkretnej konstrukcji podłogi.</p>
        </div>

        <div class="rk-edge-flow" role="group" aria-label="Łańcuch zależności mocy strefy brzegowej">
          <div class="rk-edge-flow-step is-active">1. Obciążenie cieplne</div>
          <div class="rk-edge-flow-step">2. Wymagana moc z m²</div>
          <div class="rk-edge-flow-step">3. Konstrukcja podłogi</div>
          <div class="rk-edge-flow-step">4. Rozstaw i woda</div>
          <div class="rk-edge-flow-step">5. Temperatura powierzchni</div>
        </div>

        <div class="rk-edge-card-grid four">
          <div class="rk-edge-card"><div class="rk-edge-card-icon">t</div><h4>Rozstaw rur</h4><p>Mniejszy rozstaw zmniejsza odległość przewodzenia ciepła i zwykle wyrównuje powierzchnię.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">R</div><h4>Opór okładziny</h4><p>Gruba warstwa o wysokim oporze zmniejsza emisję do pomieszczenia i podnosi wymaganą temperaturę czynnika.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">ΔT</div><h4>Temperatury wody</h4><p>Zasilanie i powrót tworzą zmienną temperaturę wzdłuż pętli, dlatego liczy się nie tylko wartość na zasilaniu.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">q</div><h4>Wymagana moc</h4><p>Punkt startowy daje <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne pomieszczenia</a>, nie wybrany rozstaw.</p></div>
        </div>

        <p>Temperaturę wody trzeba również skonfrontować z ograniczeniami całej instalacji. Więcej o tym, dlaczego nie istnieje jedna uniwersalna wartość, wyjaśnia artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p>
      </section>

      <section class="rk-edge-section" id="rk-edge-warianty" aria-labelledby="rk-edge-h2-8">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">08</div>
          <div>
            <h2 id="rk-edge-h2-8">Trzy sposoby wykonania strefy brzegowej</h2>
            <p>Wariant wybieramy według geometrii, wymaganej mocy i hydrauliki.</p>
          </div>
        </div>

        <div class="rk-edge-architectures">
          <article class="rk-edge-architecture">
            <span>Wariant A • osobny obwód</span>
            <h3>Oddzielna pętla strefy brzegowej</h3>
            <div class="rk-edge-nodes" aria-label="Schemat osobnej pętli strefy brzegowej">
              <div class="rk-edge-node">Sekcja rozdzielacza</div>
              <div class="rk-edge-node">Podejście do przeszklenia</div>
              <div class="rk-edge-node">Gęsty pas strefy</div>
              <div class="rk-edge-node">Powrót do rozdzielacza</div>
            </div>
            <p>Zapewnia niezależny przepływ i łatwiejsze równoważenie. Zwykle pracuje z tą samą temperaturą zasilania co inne pętle danego rozdzielacza; wyższa temperatura wymagałaby osobnego obiegu hydraulicznego.</p>
          </article>

          <article class="rk-edge-architecture">
            <span>Wariant B • część pętli</span>
            <h3>Zagęszczony początek jednego obwodu</h3>
            <div class="rk-edge-nodes" aria-label="Schemat strefy włączonej w pętlę pomieszczenia">
              <div class="rk-edge-node">Zasilanie z rozdzielacza</div>
              <div class="rk-edge-node">Najpierw strefa przy oknie</div>
              <div class="rk-edge-node">Następnie część podstawowa</div>
              <div class="rk-edge-node">Powrót</div>
            </div>
            <p>Ogranicza liczbę sekcji, ale łączy dwie gęstości w jednej pętli. Trzeba kontrolować całkowitą długość, kolejność przebiegu i to, czy pojedynczy przepływ obsłuży obie części.</p>
          </article>

          <article class="rk-edge-architecture">
            <span>Wariant C • jednolity</span>
            <h3>Gęsty rozstaw w całym pomieszczeniu</h3>
            <div class="rk-edge-nodes" aria-label="Schemat jednolitego rozstawu w pomieszczeniu">
              <div class="rk-edge-node">Jedno obciążenie pomieszczenia</div>
              <div class="rk-edge-node">Jeden rozstaw na całej powierzchni</div>
              <div class="rk-edge-node">Podział na pętle według hydrauliki</div>
              <div class="rk-edge-node">Równoważenie na rozdzielaczu</div>
            </div>
            <p>Bywa prostszy wykonawczo, gdy obliczenia i tak wymagają gęstego rozstawu. Nie jest jednak „strefą brzegową” w ścisłym sensie, ponieważ nie wydziela lokalnego pasa o innej charakterystyce.</p>
          </article>
        </div>

        <div class="rk-edge-note"><p><strong>Osobna pętla nie oznacza osobnej temperatury.</strong> Każda sekcja tego samego rozdzielacza otrzymuje zasadniczo tę samą temperaturę zasilania. O jej mocy decydują między innymi rozstaw, długość, przepływ i temperatura powrotu. Niezależnie ustawia się przede wszystkim przepływ.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-projekt" aria-labelledby="rk-edge-h2-9">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">09</div>
          <div>
            <h2 id="rk-edge-h2-9">Jak zaprojektować strefę brzegową krok po kroku?</h2>
            <p>Sześć etapów od strat pomieszczenia do nastaw rozdzielacza.</p>
          </div>
        </div>

        <ol class="rk-edge-howto" id="rk-edge-howto">
          <li class="rk-edge-howto-step" id="rk-edge-step-1"><span>01</span><div><h3>Oblicz obciążenie cieplne pomieszczenia</h3><p>Uwzględnij temperatury projektowe, przenikanie przez przegrody, wentylację i infiltrację. Zidentyfikuj przegrodę, która może tworzyć lokalnie większe obciążenie.</p></div></li>
          <li class="rk-edge-howto-step" id="rk-edge-step-2"><span>02</span><div><h3>Wyznacz aktywną powierzchnię podłogi</h3><p>Odejmij stałą zabudowę i fragmenty, których system nie może ogrzewać. Określ, czy pas przy przegrodzie jest dostępny i nie służy do stałego przebywania.</p></div></li>
          <li class="rk-edge-howto-step" id="rk-edge-step-3"><span>03</span><div><h3>Dobierz szerokość i długość strefy</h3><p>Powiąż geometrię z długością przeszklenia lub ściany, wielkością lokalnego obciążenia oraz dopuszczalną temperaturą powierzchni. Nie przekraczaj zakresu wynikającego z definicji strefy.</p></div></li>
          <li class="rk-edge-howto-step" id="rk-edge-step-4"><span>04</span><div><h3>Sprawdź moc dla konstrukcji podłogi</h3><p>Użyj charakterystyki systemu dla rozstawu, średniej temperatury czynnika i rzeczywistego oporu okładziny. Zweryfikuj temperaturę strefy podstawowej, łazienki i pasa brzegowego.</p></div></li>
          <li class="rk-edge-howto-step" id="rk-edge-step-5"><span>05</span><div><h3>Podziel rury na pętle</h3><p>Dobierz przebieg, długości, średnicę, podejścia do rozdzielacza i liczbę sekcji. Podział powinien utrzymać straty ciśnienia w zakresie możliwym do zrównoważenia.</p></div></li>
          <li class="rk-edge-howto-step" id="rk-edge-step-6"><span>06</span><div><h3>Oblicz przepływy i nastawy</h3><p>Z mocy każdej pętli i projektowego spadku temperatury oblicz przepływ. Następnie wyznacz opory, sprawdź pompę obiegową i przygotuj nastawy na rozdzielaczu.</p></div></li>
        </ol>

        <p>Cały proces warto powiązać z planem pozostałych obwodów. Pomaga w tym przewodnik <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-edge-section" id="rk-edge-hydraulika" aria-labelledby="rk-edge-h2-10">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">10</div>
          <div>
            <h2 id="rk-edge-h2-10">Przepływ, długość pętli i strata ciśnienia – przykład obliczeniowy</h2>
            <p>Strefa o dużej mocy musi być jednocześnie cieplnie skuteczna i hydraulicznie wykonalna.</p>
          </div>
        </div>

        <h3>Założenia przykładu</h3>
        <ul class="rk-edge-list">
          <li>powierzchnia strefy brzegowej: <strong>8,76 m²</strong>;</li>
          <li>wymagana moc powierzchniowa: <strong>100 W/m²</strong>;</li>
          <li>projektowa różnica temperatur zasilanie–powrót: <strong>5 K</strong>;</li>
          <li>rozstaw rur: <strong>10 cm</strong>;</li>
          <li>nie uwzględniamy jeszcze długości podejść do rozdzielacza.</li>
        </ul>

        <div class="rk-edge-formula">
          <p><strong>Moc strefy:</strong></p>
          <code>Q = A × q = 8,76 m² × 100 W/m² = 876 W</code>
          <p><strong>Wymagany przepływ objętościowy wody:</strong></p>
          <code>V̇ = Q / (1,163 × ΔT) = 876 / (1,163 × 5) ≈ 151 l/h</code>
          <p>Współczynnik 1,163 łączy przybliżoną pojemność cieplną wody z jednostkami W, K i l/h. Dla mieszaniny z glikolem należy użyć właściwości konkretnego czynnika.</p>
        </div>

        <p>Przy rozstawie 10 cm sama część grzejna wymaga orientacyjnie <strong>87,6 m rury</strong>. Po doliczeniu łuków i podejść całkowita długość może przekroczyć przyjęty limit projektowy. Wtedy strefę trzeba podzielić, skrócić podejścia, zmienić geometrię albo przeanalizować większą średnicę. Nie istnieje jedna uniwersalna maksymalna długość dla każdej rury i każdego przepływu – wyjaśnia to opracowanie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli ogrzewania podłogowego</a>.</p>

        <div class="rk-edge-formula">
          <p><strong>Bilans ciśnienia pętli:</strong></p>
          <code>Δp<sub>pętli</sub> = Δp<sub>rury</sub> + Δp<sub>rozdzielacza</sub> + Δp<sub>armatury</sub> + Δp<sub>podejść</sub></code>
          <p>Jednostkowa strata rury zależy od średnicy wewnętrznej, przepływu, temperatury i chropowatości. Pompa musi pokryć stratę obiegu hydraulicznie najbardziej niekorzystnego przy wymaganym sumarycznym przepływie rozdzielacza.</p>
        </div>

        <p>Po obliczeniu przepływu trzeba go ustawić i zweryfikować. Pomocne materiały to <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do ogrzewania podłogowego</a> oraz <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr i regulacja przepływu</a>.</p>
      </section>

      <section class="rk-edge-section" id="rk-edge-pompa" aria-labelledby="rk-edge-h2-11">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">11</div>
          <div>
            <h2 id="rk-edge-h2-11">Strefa brzegowa, duże przeszklenia i pompa ciepła</h2>
            <p>Celem jest pokrycie mocy przy możliwie niskiej temperaturze wody, a nie samo zagęszczenie rur.</p>
          </div>
        </div>

        <p>W instalacji z pompą ciepła strefa brzegowa może pomóc zwiększyć moc lokalną bez podnoszenia temperatury całego obiegu tak wysoko, jak wymagałby rzadki rozstaw. Nie oznacza to jednak gwarantowanej poprawy sprawności o określony procent. Efekt zależy od wymaganej temperatury zasilania, temperatury dolnego źródła lub powietrza zewnętrznego, przepływu, pracy sprężarki, odszraniania i obciążenia częściowego.</p>

        <div class="rk-edge-card-grid three">
          <div class="rk-edge-card"><div class="rk-edge-card-icon">01</div><h4>Najpierw obciążenie</h4><p>Sprawdź, ile watów traci pomieszczenie i czy aktywna powierzchnia w ogóle może tę moc oddać.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">02</div><h4>Potem najniższy parametr</h4><p>Dobierz konstrukcję, rozstaw i przepływ tak, aby osiągnąć moc przy możliwie niskiej temperaturze czynnika.</p></div>
          <div class="rk-edge-card"><div class="rk-edge-card-icon">03</div><h4>Na końcu sprawność</h4><p>Oceń punkt pracy konkretnej pompy dla projektowej temperatury zasilania, a nie dla ogólnego hasła „podłogówka”.</p></div>
        </div>

        <p>Jeżeli pompa ciepła zasila jeden rozdzielacz, wszystkie jego pętle zasadniczo otrzymują tę samą temperaturę wody. Strefa zyskuje większą moc dzięki geometrii i przepływowi, nie dzięki „gorętszej wodzie tylko w jednej rurze”. Całościowe zależności opisuje <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>.</p>

        <div class="rk-edge-truth"><p><strong>Brutalnie techniczna prawda:</strong> jeżeli wymagana moc przy przeszkleniu wymusza przekroczenie dopuszczalnej temperatury powierzchni, sama zmiana rozstawu nie rozwiąże problemu. Trzeba poprawić przegrodę, zwiększyć aktywną powierzchnię, zmniejszyć opór podłogi albo przewidzieć dodatkowy emiter.</p></div>
      </section>

      <section class="rk-edge-section" id="rk-edge-dylatacja" aria-labelledby="rk-edge-h2-12">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">12</div>
          <div>
            <h2 id="rk-edge-h2-12">Strefa brzegowa a taśma brzegowa i dylatacja – to nie jest to samo</h2>
            <p>Podobne nazwy opisują element grzewczy i element konstrukcyjny o różnych funkcjach.</p>
          </div>
        </div>

        <div class="rk-edge-table-wrap">
          <table class="rk-edge-table">
            <thead><tr><th>Pojęcie</th><th>Funkcja</th><th>Gdzie występuje?</th><th>Czego nie robi?</th></tr></thead>
            <tbody>
              <tr><td data-label="Pojęcie"><strong>Strefa brzegowa ogrzewania</strong></td><td data-label="Funkcja">Zwiększa lokalną moc powierzchniową przy przegrodzie zewnętrznej lub przeszkleniu.</td><td data-label="Miejsce">W wybranym pasie aktywnej powierzchni grzewczej.</td><td data-label="Nie robi">Nie kompensuje rozszerzalności jastrychu i nie oddziela go od ściany.</td></tr>
              <tr><td data-label="Pojęcie"><strong>Taśma brzegowa</strong></td><td data-label="Funkcja">Oddziela jastrych od elementów pionowych, ogranicza mostek akustyczny i umożliwia odkształcenia.</td><td data-label="Miejsce">Na obwodzie pola jastrychu przy ścianach, słupach i innych elementach pionowych.</td><td data-label="Nie robi">Nie zwiększa mocy grzewczej i nie zastępuje rury.</td></tr>
              <tr><td data-label="Pojęcie"><strong>Szczelina dylatacyjna</strong></td><td data-label="Funkcja">Dzieli pola jastrychu i przejmuje ruchy wynikające ze skurczu oraz temperatury.</td><td data-label="Miejsce">W miejscach wynikających z geometrii, technologii jastrychu i projektu podłogi.</td><td data-label="Nie robi">Nie jest automatycznie granicą obliczeniowej strefy brzegowej.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Rura przechodząca przez szczelinę dylatacyjną wymaga ochrony i ułożenia zgodnego z projektem oraz technologią systemu. Zbieżność słowa „brzegowa” nie pozwala łączyć tych pojęć w jedną zasadę wykonawczą.</p>
      </section>

      <section class="rk-edge-section" id="rk-edge-bledy" aria-labelledby="rk-edge-h2-13">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">13</div>
          <div>
            <h2 id="rk-edge-h2-13">Najczęstsze błędy przy strefach brzegowych</h2>
            <p>Każdy z nich może zepsuć bilans cieplny, hydraulikę albo wykonanie.</p>
          </div>
        </div>

        <div class="rk-edge-error-grid">
          <div class="rk-edge-error"><div class="rk-edge-error-no">01</div><h4>Pas przy każdej ścianie</h4><p>Obwodowe zagęszczenie wykonywane bez obliczeń zwiększa długość rur, lecz nie musi odpowiadać rozkładowi strat.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">02</div><h4>35°C jako nastawa</h4><p>Granica temperatury powierzchni jest traktowana jak cel eksploatacyjny, zamiast jako maksimum sprawdzane w obliczeniach.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">03</div><h4>Ignorowanie okładziny</h4><p>Rozstaw dobiera się bez oporu drewna, panelu, podkładu, kleju i innych warstw znajdujących się nad rurą.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">04</div><h4>Zbyt długa pętla</h4><p>Gęsty pas zostaje dopisany do obwodu podstawowego, a długość i strata ciśnienia przestają być możliwe do zrównoważenia.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">05</div><h4>Fałszywie wyższa temperatura</h4><p>Zakłada się, że osobna pętla na tym samym rozdzielaczu otrzyma cieplejszą wodę niż pozostałe sekcje.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">06</div><h4>Rury pod zabudową</h4><p>Do aktywnej powierzchni wlicza się stałe meble lub elementy ograniczające oddawanie ciepła i dostęp serwisowy.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">07</div><h4>Podwójne liczenie narożnika</h4><p>Dwa pasy przy sąsiednich ścianach nakładają się, a wspólna powierzchnia zostaje błędnie dodana dwa razy.</p></div>
          <div class="rk-edge-error"><div class="rk-edge-error-no">08</div><h4>Brak nastaw przepływu</h4><p>Układ jest wykonany według rzutu, lecz rotametry pozostają ustawione przypadkowo i strefa nie otrzymuje obliczonego przepływu.</p></div>
        </div>
      </section>

      <section class="rk-edge-section" id="rk-edge-faq" aria-labelledby="rk-edge-h2-14">
        <div class="rk-edge-section-head">
          <div class="rk-edge-section-no">14</div>
          <div>
            <h2 id="rk-edge-h2-14">FAQ – strefa brzegowa i obwodowa w ogrzewaniu podłogowym</h2>
            <p>Odpowiedzi na pytania o rozstaw, szerokość, temperaturę, pętle i przeszklenia.</p>
          </div>
        </div>

        <div class="rk-edge-faq-list">
          <details class="rk-edge-faq" id="rk-edge-faq-1"><summary>Co to jest strefa brzegowa w ogrzewaniu podłogowym?</summary><div class="rk-edge-faq-answer"><p>To wydzielony pas aktywnej podłogi przy przegrodzie zewnętrznej lub dużym przeszkleniu, projektowany dla podwyższonej lokalnej mocy cieplnej. Większą moc uzyskuje się zwykle przez mniejszy rozstaw rur, przy zachowaniu limitów temperatury powierzchni.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-2"><summary>Czy strefa brzegowa jest obowiązkowa przy każdej ścianie zewnętrznej?</summary><div class="rk-edge-faq-answer"><p>Nie. Jej potrzebę określa obciążenie cieplne, geometria i temperatura przegrody, dostępna powierzchnia podłogi oraz wymagany komfort. W dobrze izolowanym pomieszczeniu zwykły rozstaw może w pełni pokryć straty.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-3"><summary>Jak szeroka powinna być strefa brzegowa?</summary><div class="rk-edge-faq-answer"><p>Szerokość wynika z potrzebnej powierzchni oddawania ciepła i układu pomieszczenia. W definicjach projektowych przyjmuje się zwykle pas nie szerszy niż około 1 m, ale nie oznacza to konieczności stosowania pełnego metra w każdym projekcie.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-4"><summary>Jaki rozstaw rur stosuje się w strefie brzegowej?</summary><div class="rk-edge-faq-answer"><p>Często spotyka się 5 lub 10 cm, lecz poprawny rozstaw wynika z obliczonej mocy, konstrukcji podłogi, temperatury wody, dopuszczalnej temperatury powierzchni, średnicy rury i hydrauliki pętli.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-5"><summary>Czy temperatura podłogi w strefie brzegowej może wynosić 35°C?</summary><div class="rk-edge-faq-answer"><p>35°C jest traktowane jako górna granica temperatury powierzchni wydzielonej strefy brzegowej, a nie jako zalecany cel pracy. Dodatkowo trzeba przestrzegać ograniczeń okładziny, kleju, jastrychu i całego systemu.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-6"><summary>Czy strefa brzegowa powinna mieć osobną pętlę?</summary><div class="rk-edge-faq-answer"><p>Nie zawsze. Może stanowić osobny obwód, zagęszczoną część pętli pomieszczenia albo zostać zastąpiona jednolitym gęstym rozstawem. Wybór zależy od długości rur, przepływu, oporów, geometrii i potrzebnej regulacji.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-7"><summary>Czy osobna pętla strefy otrzymuje wyższą temperaturę zasilania?</summary><div class="rk-edge-faq-answer"><p>Nie, jeżeli jest podłączona do tego samego rozdzielacza co pozostałe pętle. Zasilanie ma zasadniczo tę samą temperaturę, natomiast niezależnie dobiera się długość, rozstaw i przepływ. Inna temperatura wymaga odrębnego obiegu hydraulicznego.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-8"><summary>Ile rury potrzeba na 1 m² strefy brzegowej?</summary><div class="rk-edge-faq-answer"><p>Orientacyjnie około 20 m/m² przy rozstawie 5 cm, 10 m/m² przy 10 cm, 6,7 m/m² przy 15 cm i 5 m/m² przy 20 cm. Do wyniku trzeba doliczyć łuki, korekty przebiegu oraz podwójne podejście do rozdzielacza.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-9"><summary>Czy strefa brzegowa poprawia sprawność pompy ciepła?</summary><div class="rk-edge-faq-answer"><p>Może pomóc pokryć lokalną moc przy niższej temperaturze wody niż rzadki rozstaw, co sprzyja warunkom pracy pompy. Nie istnieje jednak gwarantowany procent oszczędności; wynik zależy od całego punktu pracy źródła i instalacji.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-10"><summary>Czy strefę brzegową układa się pod meblami?</summary><div class="rk-edge-faq-answer"><p>Stałą zabudowę trzeba uwzględnić przy wyznaczaniu aktywnej powierzchni. Nie należy liczyć mocy z podłogi, której emisję ogranicza zabudowa, a układ rur musi być zgodny z wymaganiami systemu i planem wyposażenia.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-11"><summary>Czym strefa brzegowa różni się od taśmy brzegowej?</summary><div class="rk-edge-faq-answer"><p>Strefa brzegowa jest częścią powierzchni grzewczej o podwyższonej mocy. Taśma brzegowa oddziela jastrych od ścian i elementów pionowych, umożliwia odkształcenia oraz ogranicza przenoszenie dźwięków. Są to dwa różne rozwiązania.</p></div></details>
          <details class="rk-edge-faq" id="rk-edge-faq-12"><summary>Czy interaktywny planer zastępuje projekt podłogówki?</summary><div class="rk-edge-faq-answer"><p>Nie. Planer szacuje geometrię, ilość rury i liczbę pętli na podstawie podanych rozstawów. Nie oblicza strat ciepła, mocy systemu, temperatury powierzchni, przepływów, oporów hydraulicznych ani nastaw rozdzielacza.</p></div></details>
        </div>

        <div class="rk-edge-sources" aria-label="Źródła techniczne opracowania">
          <strong>Źródła i podstawa techniczna opracowania</strong>
          Obliczanie wydajności wodnych systemów płaszczyznowych: <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener noreferrer">ISO 11855-2:2021 – Determination of the design heating and cooling capacity</a>. Przykład obliczeń pomieszczenia ze strefą: <a href="https://badap.agh.edu.pl/publikacja/128500" target="_blank" rel="noopener noreferrer">AGH – Projekt ogrzewania podłogowego dla pomieszczenia ze strefą brzegową wg PN-EN 1264</a>. Linki zewnętrzne prowadzą wyłącznie do źródeł normatywnych i akademickich oraz otwierają się w nowej karcie.
        </div>
      </section>

      <section class="rk-edge-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <h3>Strefa brzegowa powinna wynikać z bilansu, a nie z nawyku</h3>
        <p>Projekt określa obciążenia pomieszczeń, aktywną powierzchnię, rozstawy i długości pętli, temperatury zasilania i powrotu, wymagane przepływy, opory hydrauliczne oraz nastawy rozdzielacza. Dzięki temu wiadomo, czy pas przy przeszkleniu jest potrzebny i jak go wykonać.</p>
        <a class="rk-edge-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl – serwisu należącego do autora artykułu.</small>
      </section>

      <aside class="rk-edge-author-box" aria-label="Informacje o autorze" itemprop="author" itemscope="" itemtype="https://schema.org/Person">
        <div class="rk-edge-author-head">
          <div><h3>Autor opracowania</h3><p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p></div>
          <div class="rk-edge-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-edge-author-main">
          <div class="rk-edge-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych" width="174" height="174" loading="lazy" itemprop="image">
            <h4 itemprop="name">Robert Kucharski</h4>
            <span class="rk-edge-author-role" itemprop="jobTitle">CEO • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-edge-author-content">
            <div class="rk-edge-quote"><blockquote>„Dobra strefa brzegowa nie zaczyna się od decyzji: dajmy rurę co 10 centymetrów. Zaczyna się od pytania, ile ciepła traci konkretny fragment pomieszczenia i czy podłoga może tę moc bezpiecznie oddać. Dopiero później rysuje się pas, pętlę i przepływ.”</blockquote></div>
            <div class="rk-edge-tabs">
              <div class="rk-edge-tab-buttons" role="tablist" aria-label="Informacje o autorze">
                <button class="rk-edge-tab-button is-active" type="button" role="tab" aria-selected="true" aria-controls="rk-edge-tab-about" id="rk-edge-tab-about-button" data-edge-author-tab="about">O autorze</button>
                <button class="rk-edge-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-edge-tab-exp" id="rk-edge-tab-exp-button" data-edge-author-tab="exp">Doświadczenie</button>
                <button class="rk-edge-tab-button" type="button" role="tab" aria-selected="false" aria-controls="rk-edge-tab-sites" id="rk-edge-tab-sites-button" data-edge-author-tab="sites">Portale</button>
              </div>
              <div class="rk-edge-tab-panel is-active" id="rk-edge-tab-about" role="tabpanel" aria-labelledby="rk-edge-tab-about-button" data-edge-author-panel="about">
                <p itemprop="description">Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydrauliki instalacji. W opracowaniach łączę konstrukcję podłogi, parametry źródła, rozstawy, przepływy i automatykę w jeden możliwy do wykonania układ.</p>
              </div>
              <div class="rk-edge-tab-panel" id="rk-edge-tab-exp" role="tabpanel" aria-labelledby="rk-edge-tab-exp-button" data-edge-author-panel="exp" hidden="">
                <p>Doświadczenie obejmuje ponad 1000 projektów i analiz instalacji przygotowywanych dla budynków w całej Polsce. Dokumentacje uwzględniają temperatury projektowe, strefy przy przeszkleniach, rozstawy i długości pętli, opory hydrauliczne, nastawy rozdzielaczy oraz współpracę z pompami ciepła i innymi źródłami.</p>
              </div>
              <div class="rk-edge-tab-panel" id="rk-edge-tab-sites" role="tabpanel" aria-labelledby="rk-edge-tab-sites-button" data-edge-author-panel="sites" hidden="">
                <p>Jestem właścicielem trzech serwisów branżowych. Podaję to jawnie, aby czytelnik znał autorstwo publikacji i kontekst linkowania.</p>
                <div class="rk-edge-portals">
                  <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                  <a href="https://remont.biz.pl/" target="_blank" rel="noopener noreferrer">Remont.biz.pl</a>
                  <a href="https://sobir.pl/" target="_blank" rel="noopener noreferrer">Sobir.pl</a>
                </div>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/",
      "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/",
      "name": "Strefa brzegowa w ogrzewaniu podłogowym – szerokość, rozstaw rur i obliczenia",
      "description": "Techniczny przewodnik po strefie brzegowej: zastosowanie, szerokość, rozstaw rur, temperatura podłogi, długość pętli, przepływ i błędy wykonawcze.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "about": [
        { "@type": "Thing", "name": "Strefa brzegowa w ogrzewaniu podłogowym" },
        { "@type": "Thing", "name": "Wodne ogrzewanie podłogowe" }
      ],
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#article",
      "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" },
      "headline": "Strefa brzegowa w ogrzewaniu podłogowym – szerokość, rozstaw rur i obliczenia",
      "alternativeHeadline": "Strefa obwodowa w podłogówce przy oknach i ścianach zewnętrznych",
      "description": "Techniczny przewodnik po strefie brzegowej: zastosowanie, szerokość, rozstaw rur, temperatura podłogi, długość pętli, przepływ i błędy wykonawcze.",
      "dateModified": "2026-08-24T19:00:00+02:00",
      "inLanguage": "pl-PL",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "keywords": [
        "strefa brzegowa w ogrzewaniu podłogowym",
        "strefa obwodowa ogrzewania podłogowego",
        "strefa brzegowa przy oknie",
        "rozstaw rur w strefie brzegowej",
        "szerokość strefy brzegowej podłogówki",
        "temperatura podłogi w strefie brzegowej",
        "osobna pętla strefy brzegowej",
        "ogrzewanie podłogowe przy dużym przeszkleniu",
        "ile rury na strefę brzegową",
        "projekt ogrzewania podłogowego"
      ],
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Hydraulika instalacji",
        "Pompy ciepła",
        "Komfort cieplny"
      ],
      "about": [
        { "@type": "DefinedTerm", "name": "Strefa brzegowa" },
        { "@type": "DefinedTerm", "name": "Strefa obwodowa" },
        { "@type": "DefinedTerm", "name": "Rozstaw rur" },
        { "@type": "DefinedTerm", "name": "Temperatura powierzchni podłogi" },
        { "@type": "DefinedTerm", "name": "Pętla ogrzewania podłogowego" },
        { "@type": "DefinedTerm", "name": "Strata ciśnienia" }
      ],
      "citation": [
        {
          "@type": "CreativeWork",
          "name": "ISO 11855-2:2021 – Determination of the design heating and cooling capacity",
          "url": "https://www.iso.org/standard/74683.html"
        },
        {
          "@type": "ScholarlyArticle",
          "name": "Projekt ogrzewania podłogowego dla pomieszczenia ze strefą brzegową wg PN-EN 1264",
          "url": "https://badap.agh.edu.pl/publikacja/128500"
        }
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#planner" },
        { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#faq" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#planner",
      "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-planer",
      "name": "Planer strefy brzegowej ogrzewania podłogowego",
      "description": "Bezpłatne narzędzie edukacyjne szacujące powierzchnię strefy, długość rury i wstępną liczbę pętli na podstawie geometrii oraz rozstawu.",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "featureList": [
        "Obliczenie powierzchni pomieszczenia",
        "Obliczenie powierzchni strefy brzegowej",
        "Szacunek długości rury dla dwóch rozstawów",
        "Wstępny podział długości na pętle",
        "Wizualizacja strefy przy przeszkleniu"
      ],
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#article" }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#howto",
      "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-projekt",
      "name": "Jak zaprojektować strefę brzegową ogrzewania podłogowego?",
      "description": "Sześć etapów projektowania strefy brzegowej od obciążenia cieplnego do przepływów i nastaw rozdzielacza.",
      "inLanguage": "pl-PL",
      "totalTime": "PT2H",
      "supply": [
        { "@type": "HowToSupply", "name": "Dane o przegrodach i okładzinie podłogi" },
        { "@type": "HowToSupply", "name": "Rzut budynku z wymiarami i zabudową stałą" }
      ],
      "tool": [
        { "@type": "HowToTool", "name": "Obliczenia obciążenia cieplnego" },
        { "@type": "HowToTool", "name": "Obliczenia cieplne i hydrauliczne ogrzewania podłogowego" }
      ],
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Oblicz obciążenie cieplne pomieszczenia", "text": "Uwzględnij przenikanie przez przegrody, wentylację, infiltrację i projektowe temperatury.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-1" },
        { "@type": "HowToStep", "position": 2, "name": "Wyznacz aktywną powierzchnię podłogi", "text": "Odejmij stałą zabudowę i sprawdź dostępny pas przy analizowanej przegrodzie.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-2" },
        { "@type": "HowToStep", "position": 3, "name": "Dobierz geometrię strefy", "text": "Określ długość i szerokość pasa w powiązaniu z lokalnym obciążeniem oraz komfortem.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-3" },
        { "@type": "HowToStep", "position": 4, "name": "Sprawdź moc i temperaturę powierzchni", "text": "Uwzględnij konstrukcję podłogi, rozstaw, średnią temperaturę czynnika i opór okładziny.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-4" },
        { "@type": "HowToStep", "position": 5, "name": "Podziel rury na pętle", "text": "Dobierz przebieg, długości, średnicę i liczbę sekcji w granicach hydraulicznych.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-5" },
        { "@type": "HowToStep", "position": 6, "name": "Oblicz przepływy i nastawy", "text": "Wyznacz przepływ każdej pętli, opory, punkt pracy pompy i nastawy rozdzielacza.", "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-step-6" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#faq",
      "url": "https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/#rk-edge-faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        { "@type": "Question", "name": "Co to jest strefa brzegowa w ogrzewaniu podłogowym?", "acceptedAnswer": { "@type": "Answer", "text": "To wydzielony pas aktywnej podłogi przy przegrodzie zewnętrznej lub dużym przeszkleniu, projektowany dla podwyższonej lokalnej mocy cieplnej. Większą moc uzyskuje się zwykle przez mniejszy rozstaw rur, przy zachowaniu limitów temperatury powierzchni." } },
        { "@type": "Question", "name": "Czy strefa brzegowa jest obowiązkowa przy każdej ścianie zewnętrznej?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Jej potrzebę określa obciążenie cieplne, geometria i temperatura przegrody, dostępna powierzchnia podłogi oraz wymagany komfort. W dobrze izolowanym pomieszczeniu zwykły rozstaw może w pełni pokryć straty." } },
        { "@type": "Question", "name": "Jak szeroka powinna być strefa brzegowa?", "acceptedAnswer": { "@type": "Answer", "text": "Szerokość wynika z potrzebnej powierzchni oddawania ciepła i układu pomieszczenia. W definicjach projektowych przyjmuje się zwykle pas nie szerszy niż około 1 m, ale nie oznacza to konieczności stosowania pełnego metra w każdym projekcie." } },
        { "@type": "Question", "name": "Jaki rozstaw rur stosuje się w strefie brzegowej?", "acceptedAnswer": { "@type": "Answer", "text": "Często spotyka się 5 lub 10 cm, lecz poprawny rozstaw wynika z obliczonej mocy, konstrukcji podłogi, temperatury wody, dopuszczalnej temperatury powierzchni, średnicy rury i hydrauliki pętli." } },
        { "@type": "Question", "name": "Czy temperatura podłogi w strefie brzegowej może wynosić 35°C?", "acceptedAnswer": { "@type": "Answer", "text": "35°C jest traktowane jako górna granica temperatury powierzchni wydzielonej strefy brzegowej, a nie jako zalecany cel pracy. Dodatkowo trzeba przestrzegać ograniczeń okładziny, kleju, jastrychu i całego systemu." } },
        { "@type": "Question", "name": "Czy strefa brzegowa powinna mieć osobną pętlę?", "acceptedAnswer": { "@type": "Answer", "text": "Nie zawsze. Może stanowić osobny obwód, zagęszczoną część pętli pomieszczenia albo zostać zastąpiona jednolitym gęstym rozstawem. Wybór zależy od długości rur, przepływu, oporów, geometrii i potrzebnej regulacji." } },
        { "@type": "Question", "name": "Czy osobna pętla strefy otrzymuje wyższą temperaturę zasilania?", "acceptedAnswer": { "@type": "Answer", "text": "Nie, jeżeli jest podłączona do tego samego rozdzielacza co pozostałe pętle. Zasilanie ma zasadniczo tę samą temperaturę, natomiast niezależnie dobiera się długość, rozstaw i przepływ. Inna temperatura wymaga odrębnego obiegu hydraulicznego." } },
        { "@type": "Question", "name": "Ile rury potrzeba na 1 m² strefy brzegowej?", "acceptedAnswer": { "@type": "Answer", "text": "Orientacyjnie około 20 m/m² przy rozstawie 5 cm, 10 m/m² przy 10 cm, 6,7 m/m² przy 15 cm i 5 m/m² przy 20 cm. Do wyniku trzeba doliczyć łuki, korekty przebiegu oraz podwójne podejście do rozdzielacza." } },
        { "@type": "Question", "name": "Czy strefa brzegowa poprawia sprawność pompy ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Może pomóc pokryć lokalną moc przy niższej temperaturze wody niż rzadki rozstaw, co sprzyja warunkom pracy pompy. Nie istnieje jednak gwarantowany procent oszczędności; wynik zależy od całego punktu pracy źródła i instalacji." } },
        { "@type": "Question", "name": "Czy strefę brzegową układa się pod meblami?", "acceptedAnswer": { "@type": "Answer", "text": "Stałą zabudowę trzeba uwzględnić przy wyznaczaniu aktywnej powierzchni. Nie należy liczyć mocy z podłogi, której emisję ogranicza zabudowa, a układ rur musi być zgodny z wymaganiami systemu i planem wyposażenia." } },
        { "@type": "Question", "name": "Czym strefa brzegowa różni się od taśmy brzegowej?", "acceptedAnswer": { "@type": "Answer", "text": "Strefa brzegowa jest częścią powierzchni grzewczej o podwyższonej mocy. Taśma brzegowa oddziela jastrych od ścian i elementów pionowych, umożliwia odkształcenia oraz ogranicza przenoszenie dźwięków. Są to dwa różne rozwiązania." } },
        { "@type": "Question", "name": "Czy interaktywny planer zastępuje projekt podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Planer szacuje geometrię, ilość rury i liczbę pętli na podstawie podanych rozstawów. Nie oblicza strat ciepła, mocy systemu, temperatury powierzchni, przepływów, oporów hydraulicznych ani nastaw rozdzielacza." } }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Projektant wodnego ogrzewania podłogowego, autor technicznych opracowań i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "knowsAbout": [
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji sanitarnych",
        "Hydraulika instalacji grzewczych",
        "Obciążenie cieplne budynków",
        "Pompy ciepła",
        "Automatyka HVAC"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy"
      ],
      "affiliation": { "@id": "https://projekt-ogrzewania.pl/#organization" }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "copyrightHolder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" }
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  function initEdgeGuide() {
    var root = document.getElementById("rk-edge-guide");
    if (!root) {
      return;
    }
    if (root.getAttribute("data-rk-edge-ready") === "1") {
      return;
    }
    root.setAttribute("data-rk-edge-ready", "1");

    function one(selector) {
      return root.querySelector(selector);
    }

    function many(selector) {
      return Array.prototype.slice.call(root.querySelectorAll(selector));
    }

    function clamp(value, minimum, maximum) {
      return Math.min(Math.max(value, minimum), maximum);
    }

    function numberValue(element, fallback) {
      if (!element) {
        return fallback;
      }
      var value = Number.parseFloat(element.value);
      if (Number.isFinite(value)) {
        return value;
      }
      return fallback;
    }

    function formatOne(value) {
      return value.toLocaleString("pl-PL", {
        minimumFractionDigits: 1,
        maximumFractionDigits: 1
      });
    }

    function setText(selector, value) {
      var element = one(selector);
      if (element) {
        element.textContent = value;
      }
    }

    function serpentinePath(x, y, width, height, rows) {
      var safeWidth = Math.max(width, 1);
      var safeHeight = Math.max(height, 1);
      var safeRows = Math.max(rows, 2);
      var step = safeHeight / (safeRows - 1);
      var path = "M " + x.toFixed(1) + " " + y.toFixed(1);
      var index;
      for (index = 0; index < safeRows; index += 1) {
        var rowY = y + step * index;
        if (index > 0) {
          path += " V " + rowY.toFixed(1);
        }
        if (index % 2 === 0) {
          path += " H " + (x + safeWidth).toFixed(1);
        } else {
          path += " H " + x.toFixed(1);
        }
      }
      return path;
    }

    var fields = {
      length: one("#rk-edge-length"),
      width: one("#rk-edge-width"),
      exterior: one("#rk-edge-exterior"),
      zoneWidth: one("#rk-edge-zone-width"),
      zoneSpacing: one("#rk-edge-zone-spacing"),
      mainSpacing: one("#rk-edge-main-spacing"),
      distance: one("#rk-edge-distance"),
      loopLimit: one("#rk-edge-loop-limit")
    };

    var presets = {
      salon: {
        length: 6,
        width: 5,
        exterior: 5,
        zoneWidth: 1,
        zoneSpacing: 10,
        mainSpacing: 15,
        distance: 8,
        loopLimit: 90
      },
      room: {
        length: 4.2,
        width: 3.8,
        exterior: 2.2,
        zoneWidth: 0.6,
        zoneSpacing: 10,
        mainSpacing: 15,
        distance: 5,
        loopLimit: 90
      },
      dense: {
        length: 5.5,
        width: 4.5,
        exterior: 4.5,
        zoneWidth: 0,
        zoneSpacing: 10,
        mainSpacing: 10,
        distance: 7,
        loopLimit: 90
      }
    };

    function renderPlanner() {
      var roomLength = clamp(numberValue(fields.length, 6), 2, 20);
      var roomWidth = clamp(numberValue(fields.width, 5), 2, 15);
      var rawExterior = clamp(numberValue(fields.exterior, 5), 0, 20);
      var exterior = Math.min(rawExterior, roomLength);
      var rawZoneWidth = clamp(numberValue(fields.zoneWidth, 1), 0, 2);
      var zoneWidth = Math.min(rawZoneWidth, roomWidth);
      var zoneSpacing = clamp(numberValue(fields.zoneSpacing, 10), 5, 30);
      var mainSpacing = clamp(numberValue(fields.mainSpacing, 15), 5, 30);
      var distance = clamp(numberValue(fields.distance, 8), 0, 30);
      var loopLimit = clamp(numberValue(fields.loopLimit, 90), 50, 150);

      var roomArea = roomLength * roomWidth;
      var zoneArea = exterior * zoneWidth;
      var mainArea = Math.max(roomArea - zoneArea, 0);
      var zonePipe = zoneArea / (zoneSpacing / 100);
      var mainPipe = mainArea / (mainSpacing / 100);
      var totalPipe = (zonePipe + mainPipe) * 1.05 + distance * 2;
      var loops = Math.max(Math.ceil(totalPipe / loopLimit), 1);
      var averageLoop = totalPipe / loops;

      setText("#rk-edge-area-result", formatOne(roomArea) + " m²");
      setText("#rk-edge-zone-area-result", formatOne(zoneArea) + " m²");
      setText("#rk-edge-pipe-result", Math.round(totalPipe).toLocaleString("pl-PL") + " m");
      setText("#rk-edge-loops-result", String(loops));
      setText("#rk-edge-zone-label", "strefa brzegowa " + formatOne(zoneWidth) + " m");
      setText("#rk-edge-room-label", "pomieszczenie " + formatOne(roomLength) + " × " + formatOne(roomWidth) + " m");

      var roomX = 55;
      var roomY = 55;
      var drawWidth = 610;
      var drawHeight = 310;
      var exteriorPixels = drawWidth * exterior / roomLength;
      var zonePixels = drawHeight * zoneWidth / roomWidth;
      var zoneX = roomX + (drawWidth - exteriorPixels) / 2;
      var zoneShape = one("#rk-edge-zone-shape");
      var glazingShape = one("#rk-edge-glazing-shape");
      var zonePath = one("#rk-edge-zone-path");
      var mainPath = one("#rk-edge-main-path");
      var planDescription = one("#rk-edge-plan-desc");

      if (zoneShape) {
        zoneShape.setAttribute("x", zoneX.toFixed(1));
        zoneShape.setAttribute("width", exteriorPixels.toFixed(1));
        zoneShape.setAttribute("height", zonePixels.toFixed(1));
        zoneShape.style.display = zoneArea > 0 ? "block" : "none";
      }

      if (glazingShape) {
        glazingShape.setAttribute("x1", zoneX.toFixed(1));
        glazingShape.setAttribute("x2", (zoneX + exteriorPixels).toFixed(1));
        glazingShape.style.display = exterior > 0 ? "block" : "none";
      }

      if (zonePath) {
        var zoneRows = clamp(Math.round(zoneWidth * 100 / zoneSpacing) + 1, 2, 12);
        var zonePathWidth = Math.max(exteriorPixels - 24, 1);
        var zonePathHeight = Math.max(zonePixels - 24, 1);
        zonePath.setAttribute("d", serpentinePath(zoneX + 12, roomY + 12, zonePathWidth, zonePathHeight, zoneRows));
        zonePath.style.display = zoneArea > 0 ? "block" : "none";
      }

      if (mainPath) {
        var mainY = roomY + Math.min(zonePixels + 18, drawHeight - 35);
        var mainHeight = Math.max(roomY + drawHeight - mainY - 16, 25);
        var mainRows = clamp(Math.round((roomWidth - zoneWidth) * 100 / mainSpacing) + 1, 3, 14);
        mainPath.setAttribute("d", serpentinePath(roomX + 20, mainY, drawWidth - 40, mainHeight, mainRows));
      }

      if (planDescription) {
        planDescription.textContent = "Pomieszczenie ma " + formatOne(roomArea) + " m², strefa przy przegrodzie " + formatOne(zoneArea) + " m², a szacowana długość rury wynosi " + Math.round(totalPipe).toLocaleString("pl-PL") + " m.";
      }

      var warnings = [];
      if (rawExterior > roomLength) {
        warnings.push("Długość przegrody została ograniczona do długości pomieszczenia.");
      }
      if (rawZoneWidth > 1) {
        warnings.push("Pas szerszy niż 1 m wymaga szczególnego uzasadnienia i nie odpowiada typowej definicji strefy brzegowej.");
      }
      if (zoneSpacing < 8) {
        warnings.push("Bardzo gęsty rozstaw trzeba sprawdzić pod kątem promienia gięcia i oporów.");
      }
      if (zoneArea > 0) {
        if (zoneSpacing >= mainSpacing) {
          warnings.push("Wprowadzona strefa nie ma gęstszego rozstawu niż część podstawowa.");
        }
      } else {
        warnings.push("Szerokość strefy wynosi 0 m, więc model liczy jednolity rozstaw części podstawowej.");
      }

      var status = one("#rk-edge-status");
      if (status) {
        var message = "Wstępny podział: " + loops + (loops === 1 ? " pętla" : " pętle") + " po około " + Math.round(averageLoop).toLocaleString("pl-PL") + " m. ";
        if (warnings.length > 0) {
          message += "Uwaga: " + warnings.join(" ");
          status.classList.add("is-warning");
        } else {
          message += "Przed wykonaniem trzeba sprawdzić moc, przepływy i straty ciśnienia.";
          status.classList.remove("is-warning");
        }
        status.textContent = message;
      }
    }

    var inputElements = Object.keys(fields).map(function (key) {
      return fields[key];
    }).filter(function (element) {
      return Boolean(element);
    });

    inputElements.forEach(function (input) {
      input.addEventListener("input", function () {
        many("[data-edge-preset]").forEach(function (button) {
          button.classList.remove("is-active");
        });
        renderPlanner();
      });
      input.addEventListener("change", renderPlanner);
    });

    many("[data-edge-preset]").forEach(function (button) {
      button.addEventListener("click", function () {
        var key = button.getAttribute("data-edge-preset");
        var data = presets[key];
        if (!data) {
          return;
        }
        Object.keys(data).forEach(function (fieldName) {
          var field = fields[fieldName];
          if (field) {
            field.value = String(data[fieldName]);
          }
        });
        many("[data-edge-preset]").forEach(function (candidate) {
          candidate.classList.toggle("is-active", candidate === button);
        });
        renderPlanner();
      });
    });

    many(".rk-edge-nav a").forEach(function (link) {
      link.addEventListener("click", function (event) {
        var selector = link.getAttribute("href");
        if (!selector) {
          return;
        }
        var target = root.querySelector(selector);
        if (target) {
          event.preventDefault();
          target.scrollIntoView({ behavior: "smooth", block: "start" });
        }
      });
    });

    var tabButtons = many("[data-edge-author-tab]");
    var tabPanels = many("[data-edge-author-panel]");

    function activateTab(key) {
      tabButtons.forEach(function (button) {
        var active = button.getAttribute("data-edge-author-tab") === key;
        button.classList.toggle("is-active", active);
        button.setAttribute("aria-selected", active ? "true" : "false");
        button.tabIndex = active ? 0 : -1;
      });
      tabPanels.forEach(function (panel) {
        var active = panel.getAttribute("data-edge-author-panel") === key;
        panel.classList.toggle("is-active", active);
        panel.hidden = !active;
      });
    }

    tabButtons.forEach(function (button, index) {
      button.addEventListener("click", function () {
        activateTab(button.getAttribute("data-edge-author-tab"));
      });
      button.addEventListener("keydown", function (event) {
        if (event.key !== "ArrowRight") {
          if (event.key !== "ArrowLeft") {
            return;
          }
        }
        event.preventDefault();
        var movement = event.key === "ArrowRight" ? 1 : -1;
        var nextIndex = (index + movement + tabButtons.length) % tabButtons.length;
        var nextButton = tabButtons[nextIndex];
        activateTab(nextButton.getAttribute("data-edge-author-tab"));
        nextButton.focus();
      });
    });

    var progress = one(".rk-edge-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var articleTop = root.getBoundingClientRect().top + window.scrollY;
      var articleHeight = root.offsetHeight - window.innerHeight;
      var travelled = window.scrollY - articleTop;
      var percentage = articleHeight > 0 ? clamp(travelled / articleHeight * 100, 0, 100) : 0;
      progress.style.width = percentage.toFixed(2) + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    renderPlanner();
    activateTab("about");
    updateProgress();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initEdgeGuide);
  } else {
    initEdgeGuide();
  }
  window.setTimeout(initEdgeGuide, 500);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">Strefa brzegowa (obwodowa) w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 24 Jan 2026 10:01:13 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[moc grzewcza]]></category>
		<category><![CDATA[normy budowlane]]></category>
		<category><![CDATA[ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pn-en 1264]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3288</guid>

					<description><![CDATA[<p>Wodne ogrzewanie podłogowe to dziś standard komfortu, ale jego skuteczność nie bierze się z przypadku. Kluczową rolę odgrywa norma PN-EN 1264, która precyzyjnie określa zasady projektowania, obliczania mocy oraz wykonania instalacji powierzchniowych. W artykule wyjaśniamy, czym dokładnie jest PN-EN 1264, jak wpływa na dobór rozstawu rur, temperatury zasilania i pokrycia podłogi oraz dlaczego jej znajomość jest niezbędna zarówno dla projektantów, jak i świadomych inwestorów. To praktyczny przewodnik po normie, który pokazuje teorię w realnych przykładach.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #2563eb;
    --rk-hero-blue-bg: #eff6ff;
    --rk-hero-emerald: #059669;
    --rk-hero-emerald-bg: #ecfdf5;
    --rk-hero-amber: #d97706;
    --rk-hero-amber-bg: #fffbeb;
    --rk-hero-bg: #ffffff;
    --rk-hero-gray: #f8fafc;
    --rk-hero-border: #e2e8f0;
    --rk-hero-text: #334155;
}

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

/* Sekcja Główna - Split Layout */
.rk-hero-split {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--rk-hero-dark);
}

.rk-hero-left {
    padding: 50px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-hero-badge {
    align-self: flex-start;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.rk-hero-left h2 {
    font-size: 34px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 20px 0;
    line-height: 1.2;
    letter-spacing: -1px;
}

.rk-hero-hook {
    font-size: 18px;
    line-height: 1.6;
    color: #94a3b8;
    margin: 0;
    font-weight: 500;
}

.rk-hero-hook strong {
    color: var(--rk-hero-amber);
    font-weight: 800;
}

.rk-hero-right {
    padding: 50px 40px;
    background: #1e293b;
    display: flex;
    align-items: center;
}

/* Karta Szybkiej Odpowiedzi (SGE / AI) */
.rk-hero-qa-card {
    background: var(--rk-hero-emerald-bg);
    border-left: 5px solid var(--rk-hero-emerald);
    padding: 30px;
    border-radius: 0 16px 16px 0;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.3);
}

.rk-hero-qa-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--rk-hero-emerald);
    font-weight: 900;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.rk-hero-qa-text {
    font-size: 16px;
    line-height: 1.7;
    color: #064e3b;
    margin: 0;
    font-weight: 600;
}

.rk-hero-qa-text strong {
    color: #022c22;
    background: rgba(16, 185, 129, 0.2);
    padding: 2px 4px;
    border-radius: 4px;
}

/* Blok Tekstu Bazowego */
.rk-hero-content {
    padding: 40px 50px;
    background: var(--rk-hero-bg);
}

.rk-hero-content p {
    font-size: 17px;
    line-height: 1.8;
    color: var(--rk-hero-text);
    margin: 0 0 20px 0;
}

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

.rk-hero-content a {
    color: var(--rk-hero-blue);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px solid var(--rk-hero-blue-bg);
}

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

/* Interaktywny Wybór Profilu */
.rk-hero-interactive {
    padding: 0 50px 40px;
    background: var(--rk-hero-bg);
}

.rk-hero-int-header {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hero-dark);
    margin: 0 0 20px 0;
    text-align: center;
}

.rk-hero-roles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-hero-role-btn {
    background: var(--rk-hero-gray);
    border: 2px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    text-align: left;
}

/* Stany aktywne (Brak animacji, natychmiastowa zmiana) */
.rk-hero-role-btn:hover {
    border-color: #94a3b8;
}

.rk-hero-role-btn.active {
    background: var(--rk-hero-blue-bg);
    border-color: var(--rk-hero-blue);
}

.rk-hero-role-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-hero-border);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hero-slate);
}

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

.rk-hero-role-text h4 {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-hero-dark);
}

.rk-hero-role-text p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

.rk-hero-role-btn.active .rk-hero-role-text h4 {
    color: var(--rk-hero-blue);
}

/* Widoki treści */
.rk-hero-view {
    display: none;
    background: var(--rk-hero-gray);
    border: 1px solid var(--rk-hero-border);
    border-radius: 16px;
    padding: 30px;
}

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

.rk-hero-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-hero-list li {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-hero-text);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid var(--rk-hero-border);
}

.rk-hero-list-icon {
    color: var(--rk-hero-blue);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Alert z narzędziami */
.rk-hero-tools {
    background: var(--rk-hero-dark);
    padding: 25px 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.rk-hero-tools-badge {
    background: var(--rk-hero-accent);
    color: var(--rk-hero-dark);
    font-size: 11px;
    font-weight: 900;
    padding: 4px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-hero-tools-text {
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-hero-split { grid-template-columns: 1fr; }
    .rk-hero-left, .rk-hero-right { padding: 35px 25px; }
    .rk-hero-qa-card { border-radius: 12px; border-left: none; border-top: 5px solid var(--rk-hero-emerald); }
    .rk-hero-content { padding: 30px 25px; }
    .rk-hero-interactive { padding: 0 25px 30px; }
    .rk-hero-roles { grid-template-columns: 1fr; gap: 15px; }
    .rk-hero-view { padding: 20px; }
    .rk-hero-list { grid-template-columns: 1fr; }
    .rk-hero-tools { padding: 25px; flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe",
    "description": "Zalewasz rury betonem bez projektu? Poznaj wymogi normy PN-EN 1264 i oblicz parametry instalacji z naszymi interaktywnymi kalkulatorami OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-fundamenty",
    "name": "Kluczowe Parametry Metodologiczne PN-EN 1264",
    "description": "Zbiór podstawowych definicji i wymogów technologicznych definiujących prawidłowe projektowanie i wykonywanie wbudowanych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pn-en 1264 norma ogrzewanie podłogowe",
      "wodne ogrzewanie podłogowe",
      "niskotemperaturowy system płaszczyznowy",
      "limity temperatur posadzki",
      "procedury odbiorcze podłogówki"
    ],
    "measurementTechnique": "Określenie twardych danych i procedur inżynieryjnych na podstawie normy europejskiej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System: Niskotemperaturowy płaszczyznowy",
        "Główne wytyczne: Procedury obliczeniowe i rygorystyczne limity temperatur",
        "Skutki braku zgodności: Wady hydrauliczne, niedogrzanie, zniszczenie wylewki",
        "Dla kogo: Inżynierowie, instalatorzy i świadomi inwestorzy"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-nawigator",
    "name": "Nawigator Tematyczny dla Inwestora i Instalatora",
    "description": "Interaktywny moduł przełączający pozwalający użytkownikowi spersonalizować ścieżkę nauki normy PN-EN 1264 w zależności od jego roli na budowie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container" id="rk-wstep-widget">
    
    <div class="rk-hero-split">
        <div class="rk-hero-left">
            <div class="rk-hero-badge">Kompendium Inżynieryjne</div>
            <h2>PN-EN 1264: Norma, która definiuje wodne ogrzewanie podłogowe</h2>
            <p class="rk-hero-hook">
                Zalewasz rury betonem i modlisz się, żeby zimą było ciepło? Wykonywanie instalacji <strong>na &#8222;oko&#8221; to najdroższa loteria</strong> na budowie. Dowiedz się, dlaczego fizyki nie da się oszukać.
            </p>
        </div>
        <div class="rk-hero-right">
            <div class="rk-hero-qa-card">
                <div class="rk-hero-qa-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Szybka odpowiedź eksperta
                </div>
                <p class="rk-hero-qa-text">
                    Norma PN-EN 1264 to europejski kodeks techniczny określający zasady projektowania i montażu wodnych instalacji płaszczyznowych. Jej <strong>głównym celem jest zapewnienie komfortu cieplnego</strong> poprzez matematyczne wyznaczenie oporów rur, rozstawu pętli oraz rygorystycznych limitów temperatur posadzki (np. max 29°C w salonie).
                </p>
            </div>
        </div>
    </div>

    <div class="rk-hero-content">
        <p>
            Wodne ogrzewanie podłogowe to <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">niskotemperaturowy system płaszczyznowy</a>, którego parametry pracy, wydajność cieplną oraz kryteria montażowe ściśle definiuje europejska norma <strong>PN-EN 1264</strong>. Dokument ten stanowi jedyny oficjalny fundament metodologiczny dla inżynierów i instalatorów w Polsce, określając precyzyjne procedury obliczeniowe oraz rygorystyczne limity temperatur powierzchni posadzki.
        </p>
        <p>
            Brak znajomości tej normy podczas realizacji inwestycji prowadzi bezpośrednio do wad hydraulicznych, niedogrzania budynku lub zniszczenia warstw wykończeniowych podłogi. Jako projektant z wieloletnim doświadczeniem, w tym artykule rozłożę normę PN-EN 1264 na czynniki pierwsze, pokazując twarde dane, wzory, <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">procedury przygotowania wylewki</a> i zasady odbiorcze.
        </p>
    </div>

    <div class="rk-hero-interactive">
        <h3 class="rk-hero-int-header">Przewodnik po artykule. Wybierz swój profil:</h3>
        
        <div class="rk-hero-roles" id="rkHeroRoles">
            <button class="rk-hero-role-btn active" data-target="inwestor">
                <div class="rk-hero-role-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><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Inwestora</h4>
                    <p>Ochrona budżetu i zdrowia</p>
                </div>
            </button>
            <button class="rk-hero-role-btn" data-target="instalator">
                <div class="rk-hero-role-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-hero-role-text">
                    <h4>Dla Instalatora</h4>
                    <p>Twarde dane i wzory</p>
                </div>
            </button>
        </div>

        <div class="rk-hero-view active" id="view-inwestor">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Dlaczego układanie rur &#8222;z głowy&#8221; rujnuje budżet po zalaniu betonu.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Maksymalne dopuszczalne temperatury posadzki ze względów medycznych.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Kto na placu budowy ponosi odpowiedzialność prawną za błędy.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Skutki braku profesjonalnej, ciśnieniowej próby szczelności.
                </li>
            </ul>
        </div>

        <div class="rk-hero-view" id="view-instalator">
            <ul class="rk-hero-list">
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Fizyczny wzór matematyczny określający jednostkową moc cieplną.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Wytyczne dla szczelin dylatacyjnych (limity m2) w oparciu o EN 1264-4.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Graniczne opory hydrauliczne obiegu a praca pompy ciepła.
                </li>
                <li>
                    <svg class="rk-hero-list-icon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="9 18 15 12 9 6"></polyline></svg>
                    Zestawienie oporów (R) dla różnych materiałów wykończeniowych.
                </li>
            </ul>
        </div>
    </div>

    <div class="rk-hero-tools">
        <div class="rk-hero-tools-badge">Odkryj</div>
        <p class="rk-hero-tools-text">
            W dalszej części artykułu znajdziesz interaktywne kalkulatory ułatwiające obliczenia!
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('#rkHeroRoles .rk-hero-role-btn');
    
    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Usunięcie klas aktywnych - bez animacji, twarda zmiana
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrywanie widoków (bez użycia &&)
            var viewInwestor = document.getElementById('view-inwestor');
            var viewInstalator = document.getElementById('view-instalator');
            
            if (viewInwestor !== null) { viewInwestor.classList.remove('active'); }
            if (viewInstalator !== null) { viewInstalator.classList.remove('active'); }
            
            // Aktywacja wybranej ścieżki
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-def-dark: #0f172a;
    --rk-def-blue: #3b82f6;
    --rk-def-blue-light: #eff6ff;
    --rk-def-green: #10b981;
    --rk-def-red: #ef4444;
    --rk-def-gray: #f8fafc;
    --rk-def-border: #e2e8f0;
    --rk-def-text: #334155;
}

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

/* Nagłówek i Wprowadzenie */
.rk-def-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-def-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-def-blue);
}

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

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

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

.rk-def-intro a {
    color: #60a5fa;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł Interaktywny - Status Systemu */
.rk-def-interactive {
    padding: 40px 50px;
    background: var(--rk-def-gray);
}

.rk-def-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
}

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

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

.rk-def-btn.active[data-mode="norma"] {
    background: #ecfdf5;
    border-color: var(--rk-def-green);
    color: #065f46;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

.rk-def-btn.active[data-mode="blad"] {
    background: #fef2f2;
    border-color: var(--rk-def-red);
    color: #991b1b;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.1);
}

/* Tablica rozdzielcza (Dashboard) */
.rk-def-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-def-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: border-color 0.4s;
}

.rk-def-status-bar {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-bottom: 20px;
    margin-bottom: 25px;
    border-bottom: 1px solid var(--rk-def-border);
}

.rk-def-status-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    transition: background 0.4s;
}

.rk-def-status-text h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-def-dark);
}

.rk-def-status-text p {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

/* Kafelki z parametrami */
.rk-def-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-def-metric-card {
    background: var(--rk-def-gray);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-def-border);
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.4s;
}

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

.rk-def-metric-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 10px;
}

.rk-def-metric-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-def-dark);
    font-family: monospace;
    transition: color 0.4s;
}

.rk-def-metric-desc {
    font-size: 13px;
    color: #475569;
    margin-top: 10px;
    font-weight: 600;
    min-height: 40px;
}

/* Wnioski końcowe pod widgetem */
.rk-def-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-def-border);
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-def-conc-icon {
    width: 32px;
    height: 32px;
    color: var(--rk-def-blue);
    flex-shrink: 0;
    margin-top: 5px;
}

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

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

@media (max-width: 768px) {
    .rk-def-header { padding: 35px 25px; }
    .rk-def-header h2 { font-size: 24px; }
    .rk-def-interactive { padding: 30px 20px; }
    .rk-def-controls { flex-direction: column; gap: 10px; }
    .rk-def-metrics { grid-template-columns: 1fr; gap: 15px; }
    .rk-def-metric-desc { min-height: auto; }
    .rk-def-conclusion { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?",
    "description": "Zharmonizowany standard europejski chroniący przed błędami instalacyjnymi. Dowiedz się, dlaczego projektowanie bez normy niszczy współczynnik COP i posadzkę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-definicja",
    "name": "Kluczowe Parametry i Limity Normy PN-EN 1264",
    "description": "Podstawowe dane inżynieryjne określające standardy bezpieczeństwa fizjologicznego i technicznego dla wodnych systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn-en 1264",
      "maksymalna temperatura podłogi 29°C",
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "wodne systemy ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wartości graniczne określone w 5-częściowym dokumencie zharmonizowanym ustalającym zasady fizyki budowli dla strefy klimatycznej (np. -20°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura powierzchni w strefie przebywania: 29°C",
        "Graniczna optymalna temperatura zasilania PC: 35°C",
        "Skutek przekroczenia temp. zasilania >45°C: Drastyczny spadek COP",
        "Ilość części strukturalnych normy: 5"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-definicja",
    "name": "Symulator Skutków Braków Obliczeniowych",
    "description": "Interaktywne zestawienie pokazujące skutki porzucenia normy PN-EN 1264 dla efektywności COP i bezpieczeństwa posadzki (zjawisko niedogrzania).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-def-container" id="rk-norm-definition-widget">
    <div class="rk-def-header">
        <div class="rk-def-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Fundament Inżynierii
        </div>
        <h2>Czym jest norma PN-EN 1264 i dlaczego definiuje standardy ogrzewania podłogowego?</h2>
        <p class="rk-def-intro">
            Norma <strong>PN-EN 1264</strong> to zharmonizowany standard europejski o nazwie <em>„Wbudowane wodne systemy ogrzewania i chłodzenia płaszczyznowego”</em>. Składa się z 5 odrębnych części, które krok po kroku określają twarde zasady projektowania, obliczeń oraz montażu instalacji. To techniczny filtr bezpieczeństwa, bez którego budowa staje się grą w ruletkę.
        </p>
    </div>

    <div class="rk-def-interactive">
        <div class="rk-def-controls" id="rkDefControls">
            <button class="rk-def-btn active" data-mode="norma">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Instalacja wg PN-EN 1264
            </button>
            <button class="rk-def-btn" data-mode="blad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Instalacja &#8222;na oko&#8221; (Brak obliczeń)
            </button>
        </div>

        <div class="rk-def-dashboard" id="rkDefDashboard" style="border-color: var(--rk-def-green);">
            <div class="rk-def-status-bar">
                <div class="rk-def-status-icon" id="rkDefIcon" style="background: var(--rk-def-green);">
                    <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>
                <div class="rk-def-status-text">
                    <h3 id="rkDefTitle">Pełne Bezpieczeństwo i Gwarancja</h3>
                    <p id="rkDefSubtitle">System zaprojektowany inżynieryjnie pod parametry budynku.</p>
                </div>
            </div>

            <div class="rk-def-metrics">
                <div class="rk-def-metric-card" id="card-1">
                    <div class="rk-def-metric-title">Temperatura Podłogi</div>
                    <div class="rk-def-metric-val" id="val-1">Max 29°C</div>
                    <div class="rk-def-metric-desc" id="desc-1"><a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.</div>
                </div>
                
                <div class="rk-def-metric-card" id="card-2">
                    <div class="rk-def-metric-title">Zasilanie Pompy (Zima -20°C)</div>
                    <div class="rk-def-metric-val" id="val-2">~ 35°C</div>
                    <div class="rk-def-metric-desc" id="desc-2">Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.</div>
                </div>

                <div class="rk-def-metric-card" id="card-3">
                    <div class="rk-def-metric-title">Status Posadzki</div>
                    <div class="rk-def-metric-val" id="val-3">Trwała</div>
                    <div class="rk-def-metric-desc" id="desc-3">Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-def-conclusion">
        <svg class="rk-def-conc-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        <p>
            Konsekwencją porzucenia obliczeń normatywnych jest zjawisko niedogrzania pomieszczeń przy temperaturach projektowych (np. -20°C dla III strefy klimatycznej) lub konieczność drastycznego podnoszenia temperatury zasilania. Zignorowanie wytycznych to <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędy, których naprawa po zalaniu wylewki jest technicznie niemożliwa</a>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var dataModes = {
        'norma': {
            mainColor: '#10b981', // green
            icon: '<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>',
            title: 'Pełne Bezpieczeństwo i Gwarancja',
            subtitle: 'System zaprojektowany inżynieryjnie pod parametry budynku.',
            val1: 'Max 29°C',
            desc1: '<a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" style="color:inherit; text-decoration:underline;">Zgodna z fizjologią</a> i medycyną. Chroni zdrowie domowników.',
            val2: '~ 35°C',
            desc2: 'Niskotemperaturowa praca utrzymuje wysoki <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" style="color:inherit; text-decoration:underline;">współczynnik COP</a>.',
            val3: 'Trwała',
            desc3: 'Brak ryzyka pękania jastrychu i zachowana gwarancja producentów.'
        },
        'blad': {
            mainColor: '#ef4444', // red
            icon: '<svg width="24" height="24" 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>',
            title: 'Katastrofa Budowlana',
            subtitle: 'Ogrzewanie działające losowo, niszczące źródło ciepła.',
            val1: '> 33°C',
            desc1: 'Przegrzana posadzka powoduje pęcznienie żył (syndrom ciężkich nóg) i wysusza drogi oddechowe.',
            val2: '> 45°C',
            desc2: 'Drastyczne obniżenie sprawności pompy ciepła, generujące <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" style="color:inherit; text-decoration:underline;">potężne rachunki za prąd</a>.',
            val3: 'Ryzyko',
            desc3: 'Pękająca wylewka, odklejające się płytki i natychmiastowa utrata gwarancji od producentów.'
        }
    };

    var btns = document.querySelectorAll('#rkDefControls .rk-def-btn');
    var elDash = document.getElementById('rkDefDashboard');
    var elIcon = document.getElementById('rkDefIcon');
    var elTitle = document.getElementById('rkDefTitle');
    var elSubtitle = document.getElementById('rkDefSubtitle');
    
    var elVal1 = document.getElementById('val-1');
    var elDesc1 = document.getElementById('desc-1');
    var elVal2 = document.getElementById('val-2');
    var elDesc2 = document.getElementById('desc-2');
    var elVal3 = document.getElementById('val-3');
    var elDesc3 = document.getElementById('desc-3');

    // Pseudo-element styles cannot be targeted directly via inline CSS easily without specific classes,
    // we will apply CSS custom properties locally for the cards
    var cards = document.querySelectorAll('.rk-def-metric-card');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var mode = this.getAttribute('data-mode');
            var data = dataModes[mode];

            // Toggle active state
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            if (data !== undefined) {
                // Update Dashboard Colors
                if (elDash !== null) { elDash.style.borderColor = data.mainColor; }
                if (elIcon !== null) { 
                    elIcon.style.backgroundColor = data.mainColor; 
                    elIcon.innerHTML = data.icon;
                }
                
                // Update Text
                if (elTitle !== null) { elTitle.textContent = data.title; }
                if (elSubtitle !== null) { elSubtitle.textContent = data.subtitle; }
                
                if (elVal1 !== null) { elVal1.textContent = data.val1; elVal1.style.color = data.mainColor; }
                if (elDesc1 !== null) { elDesc1.innerHTML = data.desc1; }
                
                if (elVal2 !== null) { elVal2.textContent = data.val2; elVal2.style.color = data.mainColor; }
                if (elDesc2 !== null) { elDesc2.innerHTML = data.desc2; }
                
                if (elVal3 !== null) { elVal3.textContent = data.val3; elVal3.style.color = data.mainColor; }
                if (elDesc3 !== null) { elDesc3.innerHTML = data.desc3; }

                // Update Cards Border Top Color dynamically by applying inline style variable 
                // that we can pick up in CSS, or simply setting border-top.
                cards.forEach(function(card) {
                    // Quick fix for top border line color change
                    card.style.boxShadow = "inset 0 4px 0 0 " + data.mainColor;
                });
            }
        });
    });
    
    // Trigger initial style for cards
    cards.forEach(function(card) {
        card.style.boxShadow = "inset 0 4px 0 0 #10b981"; // Initial green
        card.style.transition = "box-shadow 0.4s";
    });
});
</script>



<style>
:root {
    --rk-parts-dark: #0f172a;
    --rk-parts-blue-dark: #1e3a8a;
    --rk-parts-blue: #2563eb;
    --rk-parts-blue-light: #eff6ff;
    --rk-parts-cyan: #06b6d4;
    --rk-parts-text: #334155;
    --rk-parts-bg: #ffffff;
    --rk-parts-border: #e2e8f0;
}

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

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

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

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

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

/* Interaktywny Eksplorator - Nawigacja (Desktop Poziomo, Mobile Pionowo) */
.rk-parts-explorer {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-parts-nav {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 35px;
    position: relative;
}

/* Linia łącząca kroki (tylko desktop) */
.rk-parts-nav::before {
    content: '';
    position: absolute;
    top: 24px;
    left: 20px;
    right: 20px;
    height: 3px;
    background: var(--rk-parts-border);
    z-index: 1;
}

.rk-parts-btn {
    flex: 1;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 2;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-parts-btn:hover {
    transform: translateY(-5px);
}

.rk-parts-step {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: #ffffff;
    border: 3px solid var(--rk-parts-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-parts-text);
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-parts-btn.active .rk-parts-step {
    border-color: var(--rk-parts-cyan);
    background: var(--rk-parts-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-parts-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-parts-text);
    text-transform: uppercase;
    transition: color 0.3s;
}

.rk-parts-btn.active .rk-parts-label {
    color: var(--rk-parts-blue);
}

/* Zawartość Eksploratora */
.rk-parts-content-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-parts-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.02);
    min-height: 280px;
}

.rk-parts-panel {
    display: none;
    animation: fadeInPart 0.5s ease forwards;
}

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

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

.rk-parts-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-parts-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-parts-border);
}

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

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

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

.rk-parts-panel a:hover {
    color: var(--rk-parts-cyan);
}

.rk-parts-highlight {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-parts-blue-light);
    color: var(--rk-parts-blue-dark);
    padding: 12px 18px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-parts-blue);
    font-weight: 600;
    font-size: 15px;
    margin-top: 10px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-parts-header { padding: 35px 25px; }
    .rk-parts-header h2 { font-size: 24px; }
    .rk-parts-explorer { padding: 30px 20px; }
    
    /* Zmiana na układ pionowy dla mobile */
    .rk-parts-nav { flex-direction: column; gap: 15px; }
    .rk-parts-nav::before { display: none; }
    .rk-parts-btn { flex-direction: row; text-align: left; background: #ffffff; padding: 15px; border: 1px solid var(--rk-parts-border); border-radius: 12px; }
    .rk-parts-btn:hover { transform: translateX(5px); }
    .rk-parts-step { width: 40px; height: 40px; font-size: 16px; border-width: 2px; }
    
    .rk-parts-content-wrapper { padding: 25px; min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-czesci-normy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?",
    "description": "Poznaj 5 kluczowych części normy PN-EN 1264. Od definicji, przez obliczenia mocy, aż po montaż i próby ciśnieniowe wodnego 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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-struktura",
    "name": "Struktura normatywna PN-EN 1264 dla ogrzewania płaszczyznowego",
    "description": "Klasyfikacja i podział wytycznych inżynieryjnych wg normy europejskiej na 5 integralnych modułów (definicje, moc, projektowanie, montaż, sufity/ściany).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "części normy pn-en 1264",
      "pn-en 1264-2 obliczenia",
      "pn-en 1264-4 montaż",
      "projektowanie instalacji podłogowych",
      "system mokry i suchy podłogówki"
    ],
    "measurementTechnique": "Podział strukturalny dokumentacji na etapy cyklu życia instalacji: od koncepcji, przez obliczenia fizykalne, po odbiory budowlane.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "PN-EN 1264-1: Definicje i symbole (Typ A, B, C)",
        "PN-EN 1264-2: Metody obliczeniowe (moc q)",
        "PN-EN 1264-3: Projektowanie (rozstaw rur, PN-EN 12831)",
        "PN-EN 1264-4: Montaż (próba ciśnieniowa, dylatacje)",
        "PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-eksplorator-normy",
    "name": "Eksplorator Struktury Normy PN-EN 1264",
    "description": "Interaktywne narzędzie pozwalające inżynierom i inwestorom na przeglądanie wymagań poszczególnych sekcji normy w ujęciu wizualnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-parts-container" id="rk-norm-parts-widget">
    <div class="rk-parts-header">
        <div class="rk-parts-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
            Struktura Dokumentu
        </div>
        <h2>Jakie są części normy PN-EN 1264 i co regulują w systemach płaszczyznowych?</h2>
        <p>Struktura normy dzieli się na pięć kluczowych sekcji. Każda z nich odpowiada za inny etap cyklu życia instalacji: od definicji technicznych, aż po finalny odbiór na budowie.</p>
    </div>

    <div class="rk-parts-explorer">
        <div class="rk-parts-nav" id="rkPartsNav">
            <button class="rk-parts-btn active" data-part="1">
                <div class="rk-parts-step">1</div>
                <div class="rk-parts-label">Definicje</div>
            </button>
            <button class="rk-parts-btn" data-part="2">
                <div class="rk-parts-step">2</div>
                <div class="rk-parts-label">Moc Cieplna</div>
            </button>
            <button class="rk-parts-btn" data-part="3">
                <div class="rk-parts-step">3</div>
                <div class="rk-parts-label">Projektowanie</div>
            </button>
            <button class="rk-parts-btn" data-part="4">
                <div class="rk-parts-step">4</div>
                <div class="rk-parts-label">Montaż</div>
            </button>
            <button class="rk-parts-btn" data-part="5">
                <div class="rk-parts-step">5</div>
                <div class="rk-parts-label">Ściany / Sufity</div>
            </button>
        </div>

        <div class="rk-parts-content-wrapper">
            <div class="rk-parts-panel active" id="part-1">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                    PN-EN 1264-1: Definicje i symbole
                </h3>
                <p>Wprowadza jednolitą nomenklaturę technologiczną i klasyfikuje systemy podłogowe.</p>
                <p>Wskazuje m.in. na systemy Typu A (rury w jastrychu, mocowane na izolacji z wypustami lub klipsami – klasyczny <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a>) oraz Typu C (rury w warstwie wyrównawczej, nad którymi znajduje się podwójna warstwa jastrychu), a także <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche (Typ B)</a>.</p>
            </div>

            <div class="rk-parts-panel" id="part-2">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
                    PN-EN 1264-2: Metody obliczeniowe
                </h3>
                <p>To najważniejszy matematyczny rdzeń <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy obliczeń ogrzewania podłogowego</a>. Określa algorytmy dla mocy cieplnej.</p>
                <p>Wyznacza jednostkową gęstość strumienia cieplnego (q) i opiera się na badaniach laboratoryjnych i nomogramach, które wiążą rozstaw rur, grubość wylewki i opór cieplny okładziny z realną wydajnością systemu.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" 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>
                    Podstawa do doboru temperatury zasilania.
                </div>
            </div>

            <div class="rk-parts-panel" id="part-3">
                <h3>
                    <svg width="28" height="28" 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>
                    PN-EN 1264-3: Projektowanie i wymiarowanie
                </h3>
                <p>Ta część instruuje projektanta, jak dopasować instalację do <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">strat ciepła budynku (OZC)</a> obliczonych ściśle według normy PN-EN 12831.</p>
                <p>Narzuca rygorystyczne limity temperatur powierzchni (np. 29°C) i metodologię doboru rozstawu pętli na podstawie krytycznych parametrów hydraulicznych obiegu.</p>
            </div>

            <div class="rk-parts-panel" id="part-4">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                    PN-EN 1264-4: Montaż instalacji
                </h3>
                <p>Kluczowy dokument na placu budowy. Określa minimalny opór cieplny izolacji stropu (np. <strong>R = 1,25 m²K/W</strong> nad pomieszczeniem ogrzewanym).</p>
                <p>Definiuje zasady wykonywania dylatacji, precyzyjne parametry <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">ciśnieniowej próby szczelności</a> oraz procedurę wygrzewania <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu</a>.</p>
                <div class="rk-parts-highlight">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zignorowanie tej części powoduje utratę gwarancji!
                </div>
            </div>

            <div class="rk-parts-panel" id="part-5">
                <h3>
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 3h18v18H3z"></path><path d="M21 9H3"></path><path d="M21 15H3"></path></svg>
                    PN-EN 1264-5: Ogrzewanie i chłodzenie sufitowe/ścienne
                </h3>
                <p>Rozszerza dotychczasową metodykę obliczeń na alternatywne płaszczyzny (ściany i sufity).</p>
                <p>Definiuje odmienne limity temperatur dla tych rozwiązań (np. maksymalnie 40°C dla ogrzewania ściennego) oraz zwraca szczególną uwagę na zjawisko <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy przy chłodzeniu</a>.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkPartsNav .rk-parts-btn');
    var panels = document.querySelectorAll('.rk-parts-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetPart = this.getAttribute('data-part');

            // Reset wszystkich przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            
            // Aktywacja odpowiedniego panelu (bezpieczny kod)
            var activePanel = document.getElementById('part-' + targetPart);
            if (activePanel !== null) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #1e293b;
    --rk-temp-slate: #334155;
    --rk-temp-red: #ef4444;
    --rk-temp-red-light: #fef2f2;
    --rk-temp-orange: #f97316;
    --rk-temp-orange-light: #fff7ed;
    --rk-temp-green: #10b981;
    --rk-temp-green-light: #ecfdf5;
    --rk-temp-bg: #ffffff;
    --rk-temp-gray: #f8fafc;
    --rk-temp-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-temp-header {
    padding: 40px 50px 30px;
    background: var(--rk-temp-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

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

/* Sekcja Interaktywna - Wybór Strefy */
.rk-temp-interactive {
    padding: 40px 50px;
    background: var(--rk-temp-bg);
}

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

.rk-temp-selectors {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-temp-btn {
    background: #ffffff;
    border: 2px solid var(--rk-temp-border);
    border-radius: 16px;
    padding: 16px 20px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-temp-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--rk-temp-border);
    transition: background 0.3s;
}

.rk-temp-btn:hover {
    transform: translateX(4px);
    background: var(--rk-temp-gray);
}

.rk-temp-btn.active {
    border-color: var(--rk-temp-slate);
    background: #f1f5f9;
    box-shadow: 0 10px 15px -5px rgba(0,0,0,0.05);
}

.rk-temp-btn.active[data-zone="salon"] { border-color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="salon"]::before { background: var(--rk-temp-green); }

.rk-temp-btn.active[data-zone="lazienka"] { border-color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="lazienka"]::before { background: var(--rk-temp-orange); }

.rk-temp-btn.active[data-zone="brzeg"] { border-color: var(--rk-temp-red); }
.rk-temp-btn.active[data-zone="brzeg"]::before { background: var(--rk-temp-red); }

.rk-temp-btn-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--rk-temp-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-temp-slate);
    transition: all 0.3s;
}

.rk-temp-btn.active[data-zone="salon"] .rk-temp-btn-icon { background: var(--rk-temp-green-light); color: var(--rk-temp-green); }
.rk-temp-btn.active[data-zone="lazienka"] .rk-temp-btn-icon { background: var(--rk-temp-orange-light); color: var(--rk-temp-orange); }
.rk-temp-btn.active[data-zone="brzeg"] .rk-temp-btn-icon { background: var(--rk-temp-red-light); color: var(--rk-temp-red); }

.rk-temp-btn-content h4 {
    margin: 0 0 4px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-temp-btn-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    font-weight: 600;
}

/* Wizualizator Temperatury */
.rk-temp-visualizer {
    background: var(--rk-temp-gray);
    border: 1px solid var(--rk-temp-border);
    border-radius: 20px;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    transition: background 0.4s;
}

.rk-temp-thermometer {
    position: relative;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.1);
    margin-bottom: 25px;
}

.rk-temp-ring {
    position: absolute;
    top: 5px; left: 5px; right: 5px; bottom: 5px;
    border-radius: 50%;
    border: 8px solid transparent;
    transition: border-color 0.4s ease;
}

.rk-temp-value {
    font-size: 36px;
    font-weight: 900;
    font-family: monospace;
    color: var(--rk-temp-dark);
    z-index: 2;
    transition: color 0.4s;
}

.rk-temp-desc-box h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

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

/* Sekcja Ostrzegawcza */
.rk-temp-warning {
    padding: 30px 50px;
    background: #fef2f2;
    border-top: 1px solid #fecaca;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.rk-temp-warning-icon {
    width: 48px;
    height: 48px;
    background: #fee2e2;
    color: #dc2626;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-temp-warning-content h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: #991b1b;
}

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

.rk-temp-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-temp-header { padding: 35px 25px; }
    .rk-temp-header h2 { font-size: 24px; }
    .rk-temp-interactive { padding: 30px 20px; }
    .rk-temp-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-temp-visualizer { padding: 30px 20px; }
    .rk-temp-warning { padding: 30px 20px; flex-direction: column; align-items: center; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia i komfortu?",
    "description": "Zrozum wpływ ogrzewania na fizjologię człowieka. Zobacz limity (29°C w salonie, 35°C pod oknem) zapobiegające syndromowi ciężkich nóg i pękaniu paneli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity-temperatur",
    "name": "Limity Fizjologiczne Temperatur Powierzchni Podłogi (PN-EN 1264)",
    "description": "Medyczne i techniczne wartości graniczne dla powierzchni posadzki wymuszające prawidłowe zaprojektowanie rozstawu rur i krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna temperatura ogrzewania podłogowego",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "czy ogrzewanie podłogowe wysusza powietrze",
      "wady wodnego ogrzewania podłogowego",
      "zdrowotne skutki ogrzewania podłogowego"
    ],
    "measurementTechnique": "Określenie limitów fizjologicznych na podstawie badań komfortu cieplnego zawartych w normie PN-EN 1264-3 (paragraf 4.1.2).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon i sypialnia (strefa przebywania): Maksymalnie 29°C",
        "Łazienka (strefa sanitarna, bosa stopa): Maksymalnie 33°C",
        "Strefa brzeżna (pas okienny do 1 m): Maksymalnie 35°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-stref",
    "name": "Analizator Stref Fizjologicznych PN-EN 1264",
    "description": "Interaktywny panel ilustrujący różnice między parametrami cieplnymi dla stref: przebywania, sanitarnej oraz brzegowej wraz z opisem zjawisk negatywnych.",
    "applicationCategory": "HealthApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-health-temp-widget">
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizjologia i Komfort
        </div>
        <h2>Jak norma PN-EN 1264 określa maksymalną temperaturę podłogi dla zdrowia?</h2>
        <p>Wodne ogrzewanie podłogowe to nie tylko rury. To ogromny grzejnik, z którym stykasz się bezpośrednio. Norma (paragraf 4.1.2) rygorystycznie różnicuje dopuszczalne temperatury w zależności od specyfiki pomieszczenia.</p>
    </div>

    <div class="rk-temp-interactive">
        <div class="rk-temp-grid">
            
            <div class="rk-temp-selectors" id="rkTempBtns">
                <button class="rk-temp-btn active" data-zone="salon">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Strefa Stałego Przebywania</h4>
                        <p>Salon, sypialnia, pokój dziecięcy</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="lazienka">
                    <div class="rk-temp-btn-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h20"></path><path d="M20 12v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8"></path><path d="M10 8l2-2 2 2"></path><path d="M14 4h-4"></path></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Pomieszczenia Sanitarne</h4>
                        <p>Łazienki, pokoje kąpielowe</p>
                    </div>
                </button>

                <button class="rk-temp-btn" data-zone="brzeg">
                    <div class="rk-temp-btn-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="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <div class="rk-temp-btn-content">
                        <h4>Strefa Brzeżna</h4>
                        <p>Pas okienny do 1 metra szerokości</p>
                    </div>
                </button>
            </div>

            <div class="rk-temp-visualizer" id="rkTempVisual">
                <div class="rk-temp-thermometer">
                    <div class="rk-temp-ring" id="rkTempRing" style="border-color: var(--rk-temp-green);"></div>
                    <div class="rk-temp-value" id="rkTempVal" style="color: var(--rk-temp-green);">29°C</div>
                </div>
                <div class="rk-temp-desc-box">
                    <h3 id="rkTempTitle">Bezpieczne 29°C</h3>
                    <p id="rkTempDesc">
                        Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć po wyłączeniu cyklu.
                    </p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-temp-warning">
        <div class="rk-temp-warning-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><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
        </div>
        <div class="rk-temp-warning-content">
            <h4>Błędy projektowe a syndrom ciężkich nóg</h4>
            <p>
                Częstą <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" class="rk-temp-link">wadą instalacji wykonywanych bez projektu</a> jest brak weryfikacji temperatur powierzchni. Przegrzanie posadzki (np. do 32°C w salonie) wywołuje u ludzi medyczny syndrom ciężkich nóg, drastycznie <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" class="rk-temp-link">wysusza powietrze</a>, nasila konwekcję kurzu i ostatecznie doprowadza do rozklejenia się paneli podłogowych.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var zoneData = {
        'salon': {
            temp: '29°C',
            color: '#10b981', // Zielony
            bg: '#ecfdf5',
            title: 'Bezpieczne 29°C',
            desc: 'Maksymalna <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/" class="rk-temp-link" style="color:inherit;">optymalna temperatura ogrzewania</a>. Jej utrzymanie chroni przed zaburzeniami krążenia obwodowego i pozwala posadzce bezpiecznie stygnąć.'
        },
        'lazienka': {
            temp: '33°C',
            color: '#f97316', // Pomarańczowy
            bg: '#fff7ed',
            title: 'Komfort bosej stopy',
            desc: 'W łazience wymagamy temperatury powietrza rzędu 24°C. Dlatego norma zezwala na wyższą temperaturę posadzki (33°C), aby zrekompensować straty ciepła i nagrzać chłodne płytki.'
        },
        'brzeg': {
            temp: '35°C',
            color: '#ef4444', // Czerwony
            bg: '#fef2f2',
            title: 'Bufor termiczny przy oknach',
            desc: 'Aby zablokować opadanie zimnego powietrza z ogromnych okien tarasowych, <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-temp-link" style="color:inherit;">w strefie brzegowej</a> zagęszcza się rury, a norma podnosi limit aż do 35°C na odcinku max. 1 metra szerokości.'
        }
    };

    var btns = document.querySelectorAll('#rkTempBtns .rk-temp-btn');
    
    var elVisual = document.getElementById('rkTempVisual');
    var elRing = document.getElementById('rkTempRing');
    var elVal = document.getElementById('rkTempVal');
    var elTitle = document.getElementById('rkTempTitle');
    var elDesc = document.getElementById('rkTempDesc');

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset aktywnych przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var zoneKey = this.getAttribute('data-zone');
            var data = zoneData[zoneKey];

            // Aktualizacja bez warunków logicznych AND
            if (data !== undefined) {
                if (elVisual !== null) { elVisual.style.backgroundColor = data.bg; }
                if (elRing !== null) { elRing.style.borderColor = data.color; }
                if (elVal !== null) { 
                    elVal.style.color = data.color; 
                    elVal.innerHTML = data.temp; 
                }
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elDesc !== null) { elDesc.innerHTML = data.desc; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pow-dark: #1e1b4b; /* Głęboki indygo */
    --rk-pow-primary: #6366f1; /* Fiolet / Indygo */
    --rk-pow-primary-hover: #4f46e5;
    --rk-pow-accent: #06b6d4; /* Cyjan */
    --rk-pow-bg: #ffffff;
    --rk-pow-gray: #f8fafc;
    --rk-pow-border: #e2e8f0;
    --rk-pow-text: #334155;
    --rk-pow-text-muted: #64748b;
}

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

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

.rk-pow-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(103, 232, 249, 0.3);
}

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

/* Moduł Teoretyczny - Wzór na Moc */
.rk-pow-theory {
    padding: 40px 50px;
    background: var(--rk-pow-bg);
}

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

.rk-pow-formula-box {
    background: #0f172a;
    border-radius: 16px;
    padding: 25px;
    margin: 25px 0;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.2);
    border-left: 5px solid var(--rk-pow-accent);
}

.rk-pow-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: 700;
    color: #38bdf8;
    text-align: center;
    margin-bottom: 15px;
    letter-spacing: 1px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.rk-pow-formula span { color: #f8fafc; }

.rk-pow-legend {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.rk-pow-legend-item {
    font-size: 14px;
    color: #cbd5e1;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.rk-pow-legend-symbol {
    font-weight: 900;
    color: var(--rk-pow-accent);
    background: rgba(6, 182, 212, 0.15);
    padding: 2px 8px;
    border-radius: 6px;
    min-width: 45px;
    text-align: center;
}

/* Moduł Interaktywny - Scenariusze */
.rk-pow-scenarios {
    padding: 40px 50px;
    background: var(--rk-pow-gray);
    border-top: 1px solid var(--rk-pow-border);
}

.rk-pow-scenarios-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-pow-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

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

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

.rk-pow-tab:hover {
    border-color: var(--rk-pow-primary);
    transform: translateY(-3px);
}

.rk-pow-tab.active {
    background: var(--rk-pow-primary);
    border-color: var(--rk-pow-primary);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(99, 102, 241, 0.4);
    transform: translateY(-3px);
}

.rk-pow-tab-icon {
    width: 40px;
    height: 40px;
    background: var(--rk-pow-gray);
    color: var(--rk-pow-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-pow-tab.active .rk-pow-tab-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
}

.rk-pow-tab-title {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
}

.rk-pow-tab:not(.active) .rk-pow-tab-title { color: var(--rk-pow-text); }

/* Tablica Wyników (Dashboard) */
.rk-pow-dashboard {
    background: #ffffff;
    border: 1px solid var(--rk-pow-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pow-dash-header {
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-pow-border);
}

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

/* Parametry Wejściowe */
.rk-pow-params {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-pow-param-box {
    background: var(--rk-pow-gray);
    padding: 12px;
    border-radius: 12px;
    border: 1px solid var(--rk-pow-border);
    text-align: center;
}

.rk-pow-param-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-pow-text-muted);
    margin-bottom: 5px;
}

.rk-pow-param-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-pow-primary);
}

/* Sekcja Wyniku */
.rk-pow-result-area {
    display: flex;
    gap: 20px;
    align-items: stretch;
}

.rk-pow-main-result {
    flex: 1;
    background: var(--rk-pow-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-pow-main-result::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(6,182,212,0.1) 0%, transparent 70%);
}

.rk-pow-res-label {
    font-size: 14px;
    color: #cbd5e1;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 5px;
    position: relative;
}

.rk-pow-res-value {
    font-size: 42px;
    font-weight: 900;
    color: #ffffff;
    font-family: monospace;
    position: relative;
}

.rk-pow-conclusion {
    flex: 2;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-pow-conclusion.warning {
    background: #fffbeb;
    border-color: #fef08a;
}

.rk-pow-conclusion.danger {
    background: #fef2f2;
    border-color: #fecaca;
}

.rk-pow-conc-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-pow-conclusion p {
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.rk-pow-link-inline {
    color: inherit;
    text-decoration: underline;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-pow-header { padding: 35px 25px; }
    .rk-pow-theory { padding: 30px 20px; }
    .rk-pow-scenarios { padding: 30px 20px; }
    
    .rk-pow-formula { font-size: 16px; flex-direction: column; }
    .rk-pow-legend { grid-template-columns: 1fr; }
    
    /* Na mobile akordeon/przyciski pionowe */
    .rk-pow-tabs { grid-template-columns: 1fr; gap: 10px; }
    .rk-pow-tab { flex-direction: row; padding: 15px; text-align: left; }
    .rk-pow-tab-icon { margin-right: 10px; }
    
    .rk-pow-dashboard { padding: 20px; }
    .rk-pow-params { grid-template-columns: repeat(2, 1fr); }
    .rk-pow-result-area { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wzor-moc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?",
    "description": "Inżynierskie przykłady obliczeniowe mocy podłogówki (W/m2). Interaktywny symulator wpływu rozstawu rur i grubości dywanu na zasilanie pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-moc",
    "name": "Współczynniki korygujące i wydajność cieplna wg PN-EN 1264-2",
    "description": "Zestawienie twardych danych i zmiennych z nomogramów normy wykorzystywanych do precyzyjnego wyznaczania jednostkowego strumienia ciepła (q).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć moc ogrzewania podłogowego",
      "wzór na moc podłogówki",
      "rozstaw rur a moc grzewcza",
      "temperatura zasilania podłogówki",
      "wpływ dywanu na ogrzewanie"
    ],
    "measurementTechnique": "Zależności potęgowe z nomogramów normy (wykładnik n=1.1 dla systemów mokrych), oparte na średniej logarytmicznej różnicy temperatur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wykładnik potęgowy n (systemy mokre) ≈ 1,1",
        "Moc optymalna (płytki, rozstaw 100mm, zasilanie 35C) ≈ 85 W/m²",
        "Moc zaniżona (rozstaw 200mm, zasilanie 35C) ≈ 60 W/m²",
        "Moc krytyczna (dywan R=0.15, rozstaw 100mm) ≈ 45 W/m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-mocy",
    "name": "Symulator Wpływu Rozstawu Rur i Okładziny na Moc",
    "description": "Moduł dydaktyczny pozwalający inwestorowi na przełączanie między 3 scenariuszami obliczeniowymi, aby na żywo zaobserwować zjawisko spadku wydajności podłogówki.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pow-container" id="rk-power-widget">
    <div class="rk-pow-header">
        <div class="rk-pow-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
            Fizyka Budowli
        </div>
        <h2>Jak obliczyć moc ogrzewania podłogowego zgodnie z wzorem z PN-EN 1264-2?</h2>
    </div>

    <div class="rk-pow-theory">
        <p>Jednostkową moc cieplną podłogi <strong>q [W/m²]</strong> oblicza się na podstawie matematycznej formy fizykalnego prawa oddawania ciepła, rygorystycznie zdefiniowanego w normie PN-EN 1264-2.</p>
        
        <div class="rk-pow-formula-box">
            <div class="rk-pow-formula">
                q = B × ∏ a<sub>i</sub> × (Δϑ<sub>H</sub>)<sup>n</sup>
            </div>
            <div class="rk-pow-formula" style="color: #94a3b8; font-size: 16px; margin-top: 15px; margin-bottom: 5px;">
                <span>gdzie średnia różnica temperatur:</span>
            </div>
            <div class="rk-pow-formula" style="color: #10b981;">
                Δϑ<sub>H</sub> = [ (ϑ<sub>V</sub> + ϑ<sub>R</sub>) / 2 ] &#8211; ϑ<sub>i</sub>
            </div>

            <div class="rk-pow-legend">
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">B</span> 
                    Bazowy współczynnik systemowy rury.
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">∏ a<sub>i</sub></span> 
                    Iloczyn korygujący (rozstaw, grubość, opór).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">n</span> 
                    Wykładnik potęgowy (ok. 1.1 dla wylewek).
                </div>
                <div class="rk-pow-legend-item">
                    <span class="rk-pow-legend-symbol">ϑ<sub>V</sub>/ϑ<sub>R</sub></span> 
                    <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" style="color: inherit; text-decoration: underline;">Temperatura zasilania</a> i powrotu.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pow-scenarios">
        <h3 class="rk-pow-scenarios-title">Symulator: 3 Inżynierskie Przykłady Obliczeniowe</h3>
        
        <div class="rk-pow-tabs" id="powTabs">
            <button class="rk-pow-tab active" data-scenario="optymalny">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <span class="rk-pow-tab-title">Układ Optymalny<br>(Płytki + 10cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="rzadki">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><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-pow-tab-title">Zbyt rzadki rozstaw<br>(Rozstaw 20cm)</span>
            </button>
            <button class="rk-pow-tab" data-scenario="izolator">
                <div class="rk-pow-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <span class="rk-pow-tab-title">Krytyczny Dywan<br>(Izolacja R=0.15)</span>
            </button>
        </div>

        <div class="rk-pow-dashboard">
            <h4 class="rk-pow-dash-title" id="pow-dash-title">Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)</h4>
            <hr style="border: 0; border-top: 1px solid var(--rk-pow-border); margin: 15px 0 25px;">
            
            <div class="rk-pow-params">
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">T. Zasil/Pow</div>
                    <div class="rk-pow-param-val" id="pow-param-temp">35/30 °C</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Δϑ<sub>H</sub> (Różnica)</div>
                    <div class="rk-pow-param-val" id="pow-param-delta">12.5 K</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label"><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:inherit; text-decoration:none;">Rozstaw Rur</a></div>
                    <div class="rk-pow-param-val" id="pow-param-rozstaw">100 mm</div>
                </div>
                <div class="rk-pow-param-box">
                    <div class="rk-pow-param-label">Opór (R)</div>
                    <div class="rk-pow-param-val" id="pow-param-opor">0.01</div>
                </div>
            </div>

            <div class="rk-pow-result-area">
                <div class="rk-pow-main-result">
                    <div class="rk-pow-res-label">Moc Jednostkowa (q)</div>
                    <div class="rk-pow-res-value" id="pow-res-q">85 W/m²</div>
                </div>
                
                <div class="rk-pow-conclusion" id="pow-conc-box">
                    <div class="rk-pow-conc-title" id="pow-conc-title" style="color: #166534;">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                        Stan Idealny
                    </div>
                    <p id="pow-conc-text" style="color: #15803d;">Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. System w pełni pokrywa standardowe <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-pow-link-inline">zapotrzebowanie na ciepło</a>.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var scenariosData = {
        'optymalny': {
            title: 'Układ niskotemperaturowy (Pompa ciepła, płytki ceramiczne)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.01',
            q: '85 W/m²',
            concClass: '', // Domyślna zielona
            concTitleColor: '#166534',
            concTextColor: '#15803d',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>',
            concTitle: 'Wydajność optymalna',
            concText: 'Temperatura powierzchni podłogi osiąga bezpieczne 27,7°C. Układ idealny do współpracy z pompą ciepła w salonie.'
        },
        'rzadki': {
            title: 'Układ ze zwiększonym rozstawem rur (Salon, pompa ciepła)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '200 mm',
            opor: '0.01',
            q: '60 W/m²',
            concClass: 'warning',
            concTitleColor: '#854d0e',
            concTextColor: '#a16207',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>',
            concTitle: 'Ryzyko niedogrzania',
            concText: 'Zwiększenie rozstawu obniża współczynnik korygujący. Jeśli zapotrzebowanie pokoju wynosi 75 W/m², to przy 60 W/m² <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/" class="rk-pow-link-inline">pompa ciepła nie ogrzeje domu</a>.'
        },
        'izolator': {
            title: 'Krytyczny wpływ grubego dywanu (Sypialnia)',
            temp: '35/30 °C',
            delta: '12.5 K',
            rozstaw: '100 mm',
            opor: '0.15',
            q: '45 W/m²',
            concClass: 'danger',
            concTitleColor: '#991b1b',
            concTextColor: '#b91c1c',
            icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',
            concTitle: 'Katastrofalny spadek mocy',
            concText: 'Wysoki opór cieplny działa jak izolator. Następuje spadek wydajności o 47%. Aby pokryć straty, instalator musiałby podbić zasilanie do 43°C, niszcząc sprawność (COP) układu.'
        }
    };

    var tabs = document.querySelectorAll('#powTabs .rk-pow-tab');
    
    // Elementy DOM (używamy bezpiecznego przypisania)
    var elTitle = document.getElementById('pow-dash-title');
    var elTemp = document.getElementById('pow-param-temp');
    var elDelta = document.getElementById('pow-param-delta');
    var elRozstaw = document.getElementById('pow-param-rozstaw');
    var elOpor = document.getElementById('pow-param-opor');
    var elQ = document.getElementById('pow-res-q');
    var elConcBox = document.getElementById('pow-conc-box');
    var elConcTitle = document.getElementById('pow-conc-title');
    var elConcText = document.getElementById('pow-conc-text');

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var scenario = this.getAttribute('data-scenario');
            var data = scenariosData[scenario];

            if (data !== undefined) {
                // Zmiana aktywnych zakładek
                tabs.forEach(function(t) { t.classList.remove('active'); });
                this.classList.add('active');

                // Aktualizacja UI (bez &&)
                if (elTitle !== null) { elTitle.innerHTML = data.title; }
                if (elTemp !== null) { elTemp.innerHTML = data.temp; }
                if (elDelta !== null) { elDelta.innerHTML = data.delta; }
                if (elRozstaw !== null) { elRozstaw.innerHTML = data.rozstaw; }
                if (elOpor !== null) { elOpor.innerHTML = data.opor; }
                if (elQ !== null) { elQ.innerHTML = data.q; }
                
                if (elConcBox !== null) {
                    elConcBox.className = 'rk-pow-conclusion ' + data.concClass;
                }
                
                if (elConcTitle !== null) {
                    elConcTitle.style.color = data.concTitleColor;
                    elConcTitle.innerHTML = data.icon + ' ' + data.concTitle;
                }
                
                if (elConcText !== null) {
                    elConcText.style.color = data.concTextColor;
                    elConcText.innerHTML = data.concText;
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-mat-dark: #1e293b;
    --rk-mat-primary: #ea580c; /* Ciepły pomarańczowy */
    --rk-mat-primary-light: #ffedd5;
    --rk-mat-success: #16a34a;
    --rk-mat-warning: #ca8a04;
    --rk-mat-danger: #dc2626;
    --rk-mat-bg: #ffffff;
    --rk-mat-gray: #f8fafc;
    --rk-mat-border: #e2e8f0;
    --rk-mat-text: #334155;
}

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

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

.rk-mat-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 88, 12, 0.2);
    color: #fdba74;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(253, 186, 116, 0.3);
}

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

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

/* Zawartość - Układ Jednokolumnowy (Kafelki na górze, wynik pod spodem) */
.rk-mat-content {
    padding: 40px 50px;
    background: var(--rk-mat-gray);
}

/* Siatka Kafelków (Materiałów) */
.rk-mat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-mat-card {
    background: #ffffff;
    border: 2px solid var(--rk-mat-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-mat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: transparent;
    transition: background 0.3s;
}

.rk-mat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    border-color: #fed7aa;
}

.rk-mat-card.active {
    border-color: var(--rk-mat-primary);
    background: var(--rk-mat-primary-light);
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.2);
    transform: translateY(-4px);
}

.rk-mat-card.active::before {
    background: var(--rk-mat-primary);
}

.rk-mat-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 15px auto;
    color: #94a3b8;
    transition: color 0.3s;
}

.rk-mat-card.active .rk-mat-icon {
    color: var(--rk-mat-primary);
}

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

/* Panel Dynamicznych Wyników */
.rk-mat-result-panel {
    background: #ffffff;
    border: 1px solid var(--rk-mat-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-mat-res-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-mat-border);
}

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

.rk-mat-res-subtitle {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-mat-text);
}

.rk-mat-res-badge {
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Detale Techniczne */
.rk-mat-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-mat-stat {
    background: var(--rk-mat-gray);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-mat-border);
}

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

.rk-mat-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-mat-dark);
    font-family: monospace;
}

/* Suwak Termiczny (Wizualizacja) */
.rk-mat-gauge-container {
    margin-top: 20px;
}

.rk-mat-gauge-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 10px;
    color: var(--rk-mat-text);
}

.rk-mat-gauge-track {
    width: 100%;
    height: 16px;
    background: linear-gradient(to right, #22c55e 10%, #eab308 40%, #ea580c 70%, #dc2626 90%);
    border-radius: 999px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-mat-gauge-limit {
    position: absolute;
    top: -5px;
    bottom: -5px;
    left: 75%; /* Odpowiada wartości 0.15 w naszej skali 0-0.20 */
    width: 3px;
    background: #0f172a;
    z-index: 2;
}

.rk-mat-gauge-limit::after {
    content: 'Limit 0,15';
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #0f172a;
    white-space: nowrap;
}

.rk-mat-gauge-marker {
    position: absolute;
    top: 50%;
    left: 4%; /* Start position */
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 4px solid var(--rk-mat-dark);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 3;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

/* Ostrzeżenie */
.rk-mat-alert-box {
    margin-top: 30px;
    padding: 20px;
    background: #fef2f2;
    border-left: 5px solid var(--rk-mat-danger);
    border-radius: 0 12px 12px 0;
}

.rk-mat-alert-box p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #991b1b;
    font-weight: 600;
}

.rk-mat-alert-box strong {
    color: #7f1d1d;
    font-weight: 900;
}

/* Tagi Długi Ogon */
.rk-mat-tags-wrapper {
    padding: 25px 50px 40px;
    background: var(--rk-mat-bg);
    border-top: 1px solid var(--rk-mat-border);
}

.rk-mat-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-mat-gray);
    color: var(--rk-mat-text);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-mat-border);
    transition: all 0.2s;
    text-decoration: none;
}

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

@media (max-width: 768px) {
    .rk-mat-header { padding: 35px 25px; }
    .rk-mat-header h2 { font-size: 24px; }
    .rk-mat-content { padding: 25px; }
    
    /* Mobilnie kafelki jeden pod drugim (wymóg z promptu) */
    .rk-mat-grid { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-card { padding: 15px; display: flex; align-items: center; gap: 15px; text-align: left; }
    .rk-mat-icon { margin: 0; width: 36px; height: 36px; }
    
    .rk-mat-result-panel { padding: 20px; }
    .rk-mat-res-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-mat-details { grid-template-columns: 1fr; gap: 10px; }
    .rk-mat-tags-wrapper { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-opor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?",
    "description": "Zgodnie z normą PN-EN 1264-3 limit oporu to 0,15 m²K/W. Zobacz tabelę i interaktywny symulator porównujący płytki, panele i parkiet na ogrzewaniu podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-materialy",
    "name": "Tabela Oporu Cieplnego Okładzin Posadzkowych (PN-EN 1264)",
    "description": "Dane fizyczne materiałów wykończeniowych niezbędne do poprawnego obliczenia zładu i mocy instalacji ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny materiałów wykończeniowych",
      "panele a ogrzewanie podłogowe",
      "r lambda posadzki",
      "płytki czy panele na podłogówkę",
      "parkiet a podłogówka"
    ],
    "measurementTechnique": "Wartości przewodności cieplnej (lambda) oraz oporu (R) określone na podstawie grubości materiału wg wytycznych normatywnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki gresowe: Grubość 10mm, Lambda 1.30, Opór 0.008 m²K/W",
        "Panele laminowane: Grubość 8mm, Lambda 0.14, Opór 0.057 m²K/W",
        "Parkiet dębowy: Grubość 15mm, Lambda 0.18, Opór 0.083 m²K/W",
        "Wykładzina gruba: Grubość 12mm, Lambda 0.06, Opór 0.200 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-okladzin",
    "name": "Symulator Przepustowości Cieplnej Posadzki",
    "description": "Aplikacja wizualizująca wpływ wybranego materiału posadzkowego na tłumienie strumienia cieplnego w odniesieniu do granicy normatywnej 0,15 m²K/W.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mat-container" id="rk-materialy-widget">
    <div class="rk-mat-header">
        <div class="rk-mat-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Termodynamika Posadzki
        </div>
        <h2>Jak opór cieplny materiałów wykończeniowych wpływa na wydajność podłogówki?</h2>
        <p>Wartość oporu cieplnego (R<sub>λ,B</sub>) to fizyczna bariera dla strumienia ciepła. Zgodnie z normą <strong>PN-EN 1264-3</strong>, maksymalny opór warstwy użytkowej podłogi nie może przekraczać <strong>0,15 m²K/W</strong>. Wybierz materiał i zobacz, jak blokuje on ciepło z rur.</p>
    </div>

    <div class="rk-mat-content">
        <div class="rk-mat-grid">
            <div class="rk-mat-card active" data-mat="plytki">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
                <h3>Płytki / Gres</h3>
            </div>
            <div class="rk-mat-card" data-mat="panele">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="6" width="20" height="4" rx="1"></rect><rect x="2" y="14" width="20" height="4" rx="1"></rect></svg>
                <h3>Panele dedykowane</h3>
            </div>
            <div class="rk-mat-card" data-mat="parkiet">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h16v16H4z"></path><path d="M4 12h16"></path><path d="M12 4v16"></path><path d="M8 4v8"></path><path d="M16 12v8"></path></svg>
                <h3>Parkiet dębowy</h3>
            </div>
            <div class="rk-mat-card" data-mat="dywan">
                <svg class="rk-mat-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="M6 8h12"></path><path d="M6 12h12"></path><path d="M6 16h12"></path></svg>
                <h3>Gruby dywan</h3>
            </div>
        </div>

        <div class="rk-mat-result-panel">
            <div class="rk-mat-res-header">
                <div>
                    <h3 class="rk-mat-res-title" id="mat-title">Płytki gresowe / marmur</h3>
                    <div class="rk-mat-res-subtitle" id="mat-desc">Optymalny (brak tłumienia strumienia)</div>
                </div>
                <div class="rk-mat-res-badge" id="mat-badge" style="background: #dcfce7; color: #166534; border: 1px solid #22c55e;">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    Idealne dla pompy ciepła
                </div>
            </div>

            <div class="rk-mat-details">
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Grubość</div>
                    <div class="rk-mat-stat-val" id="mat-thick">10 mm</div>
                </div>
                <div class="rk-mat-stat">
                    <div class="rk-mat-stat-label">Przewodność (λ)</div>
                    <div class="rk-mat-stat-val" id="mat-lambda">1.30</div>
                </div>
                <div class="rk-mat-stat" style="background: #f1f5f9; border-color: #cbd5e1;">
                    <div class="rk-mat-stat-label">Opór Cieplny (R)</div>
                    <div class="rk-mat-stat-val" id="mat-r" style="color: var(--rk-mat-primary);">0.008</div>
                </div>
            </div>

            <div class="rk-mat-gauge-container">
                <div class="rk-mat-gauge-label">
                    <span>Przepływ Swobodny (0.00)</span>
                    <span>Całkowita Blokada (0.20+)</span>
                </div>
                <div class="rk-mat-gauge-track">
                    <div class="rk-mat-gauge-limit"></div>
                    <div class="rk-mat-gauge-marker" id="mat-marker" style="left: 4%;"></div>
                </div>
            </div>
        </div>

        <div class="rk-mat-alert-box">
            <p><strong>Uwaga inżynierska!</strong> Ignorowanie tych wartości na etapie projektu i <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">zmiana płytek na parkiet w trakcie budowy</a> prowadzi do trwałego niedogrzania strefy mieszkalnej. Projektant musi bezwzględnie otrzymać od inwestora deklarację o planowanych materiałach przed uruchomieniem obliczeń hydraulicznych.</p>
        </div>
    </div>

    <div class="rk-mat-tags-wrapper">
        <div class="rk-mat-tags">
            <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-mat-tag"># opór cieplny materiałów wykończeniowych</a>
            <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-mat-tag"># panele a ogrzewanie podłogowe</a>
            <a href="#" class="rk-mat-tag"># r lambda posadzki</a>
            <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-mat-tag"># płytki czy panele na podłogówkę</a>
            <a href="#" class="rk-mat-tag"># grubość paneli na ogrzewanie</a>
            <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/" class="rk-mat-tag"># parkiet a podłogówka</a>
            <a href="#" class="rk-mat-tag"># dywan na ogrzewaniu podłogowym</a>
            <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-mat-tag"># straty ciepła przez podłogę</a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Dane z tabeli PN-EN 1264-3
    var matData = {
        'plytki': {
            title: 'Płytki gresowe / marmur',
            desc: 'Optymalny (brak tłumienia strumienia)',
            thick: '10 mm',
            lambda: '1.30',
            r: '0.008',
            pos: '4%', // 0.008 / 0.200 = 4%
            badgeText: 'Idealne dla pompy ciepła',
            badgeBg: '#dcfce7',
            badgeColor: '#166534',
            badgeBorder: '#22c55e',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>'
        },
        'panele': {
            title: 'Panele laminowane dedykowane',
            desc: 'Średni (wymaga korekty rozstawu rur)',
            thick: '8 mm',
            lambda: '0.14',
            r: '0.057',
            pos: '28.5%', // 0.057 / 0.200
            badgeText: 'Wymaga gęstszego rozstawu',
            badgeBg: '#fef9c3',
            badgeColor: '#854d0e',
            badgeBorder: '#eab308',
            icon: '<svg width="16" height="16" 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>'
        },
        'parkiet': {
            title: 'Parkiet dębowy klejony',
            desc: 'Wysoki (wymaga wyższej temp. zasilania)',
            thick: '15 mm',
            lambda: '0.18',
            r: '0.083',
            pos: '41.5%', // 0.083 / 0.200
            badgeText: 'Spadek COP pompy ciepła',
            badgeBg: '#ffedd5',
            badgeColor: '#c2410c',
            badgeBorder: '#f97316',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>'
        },
        'dywan': {
            title: 'Wykładzina dywanowa gruba',
            desc: 'Niedopuszczalny (całkowita blokada cieplna)',
            thick: '12 mm',
            lambda: '0.06',
            r: '0.200',
            pos: '96%', // Max on gauge
            badgeText: 'Przekroczony limit normy!',
            badgeBg: '#fef2f2',
            badgeColor: '#991b1b',
            badgeBorder: '#dc2626',
            icon: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>'
        }
    };

    var cards = document.querySelectorAll('.rk-mat-card');
    
    // Pola do aktualizacji
    var elTitle = document.getElementById('mat-title');
    var elDesc = document.getElementById('mat-desc');
    var elThick = document.getElementById('mat-thick');
    var elLambda = document.getElementById('mat-lambda');
    var elR = document.getElementById('mat-r');
    var elBadge = document.getElementById('mat-badge');
    var elMarker = document.getElementById('mat-marker');

    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            // Zmiana aktywnego kafelka
            cards.forEach(function(c) { c.classList.remove('active'); });
            this.classList.add('active');

            // Pobranie klucza materiału
            var matKey = this.getAttribute('data-mat');
            var d = matData[matKey];

            if (d !== undefined) {
                // Aktualizacja tekstów
                elTitle.textContent = d.title;
                elDesc.textContent = d.desc;
                elThick.textContent = d.thick;
                elLambda.textContent = d.lambda;
                elR.textContent = d.r;
                
                // Aktualizacja odznaki (badge)
                elBadge.innerHTML = d.icon + ' ' + d.badgeText;
                elBadge.style.background = d.badgeBg;
                elBadge.style.color = d.badgeColor;
                elBadge.style.borderColor = d.badgeBorder;

                // Animacja suwaka (unikamy przekroczenia 100%)
                elMarker.style.left = d.pos;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-blue: #0284c7;
    --rk-algo-blue-bg: #e0f2fe;
    --rk-algo-accent: #f97316;
    --rk-algo-accent-bg: #ffedd5;
    --rk-algo-border: #e2e8f0;
    --rk-algo-text: #334155;
    --rk-algo-bg: #ffffff;
    --rk-algo-gray: #f8fafc;
}

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

/* Sekcja Nagłówkowa */
.rk-algo-header {
    padding: 40px 50px;
    background: var(--rk-algo-dark);
    color: #ffffff;
    text-align: center;
    border-bottom: 4px solid var(--rk-algo-accent);
}

.rk-algo-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(253, 186, 116, 0.3);
}

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

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

/* Moduł Interaktywnego Kalkulatora */
.rk-algo-calculator {
    padding: 40px 50px;
    background: var(--rk-algo-gray);
    border-bottom: 1px solid var(--rk-algo-border);
}

.rk-algo-calc-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-algo-border);
}

.rk-algo-control-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-algo-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-algo-text);
    display: flex;
    justify-content: space-between;
}

.rk-algo-label-val {
    color: var(--rk-algo-blue);
    font-size: 16px;
    font-weight: 900;
}

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

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

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

/* Wyniki na żywo */
.rk-algo-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-algo-result-card {
    background: #ffffff;
    border: 2px solid var(--rk-algo-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
}

.rk-algo-result-card.primary {
    border-color: var(--rk-algo-blue);
    background: var(--rk-algo-blue-bg);
}

.rk-algo-result-card.accent {
    border-color: var(--rk-algo-accent);
    background: var(--rk-algo-accent-bg);
}

.rk-algo-res-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-algo-text);
}

.rk-algo-res-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    font-family: monospace;
}

.rk-algo-result-card.primary .rk-algo-res-val { color: var(--rk-algo-blue); }
.rk-algo-result-card.accent .rk-algo-res-val { color: var(--rk-algo-accent); }

/* Akordeon Teoretyczny */
.rk-algo-theory {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-algo-step {
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    margin-bottom: 15px;
    overflow: hidden;
}

.rk-algo-step-btn {
    width: 100%;
    text-align: left;
    padding: 20px 25px;
    background: #ffffff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-algo-dark);
    transition: background 0.3s;
}

.rk-algo-step-btn:hover { background: var(--rk-algo-gray); }

.rk-algo-step-num {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-algo-blue);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-algo-step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-algo-gray);
}

.rk-algo-step-inner {
    padding: 20px 25px;
    border-top: 1px solid var(--rk-algo-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-algo-text);
}

.rk-algo-formula {
    background: var(--rk-algo-dark);
    color: #f8fafc;
    padding: 15px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    text-align: center;
    margin: 15px 0;
    letter-spacing: 1px;
}

.rk-algo-step-inner a {
    color: var(--rk-algo-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-algo-header, .rk-algo-calculator, .rk-algo-theory { padding: 30px 20px; }
    .rk-algo-header h2 { font-size: 24px; }
    .rk-algo-controls { padding: 15px; }
    .rk-algo-result-card { flex-direction: column; align-items: flex-start; gap: 10px; padding: 15px; }
    .rk-algo-step-btn { padding: 15px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264",
    "description": "Zrozum twarde zasady fizyki stojące za podłogówką. Interaktywny symulator obliczający moc pętli, przepływ masowy i nastawy rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-algorytm",
    "name": "Zestawienie parametrów hydraulicznych PN-EN 1264",
    "description": "Zbiór danych i zmiennych wykorzystywanych do obliczania oporów, przepływu i mocy grzewczej pojedynczych pętli wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm ogrzewania podłogowego",
      "przepływ masowy podłogówka",
      "ustawienia rotametrów przepływ",
      "straty ciśnienia pompy obiegowej",
      "ciepło właściwe wody ogrzewanie"
    ],
    "measurementTechnique": "Obliczenia inżynieryjne wykorzystujące stałe fizyczne (np. ciepło właściwe wody 1,163 Wh/(kg·K)) oraz zmienne wejściowe z projektowego obciążenia cieplnego (OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik bezpieczeństwa strat w dół: 1,15",
        "Ciepło właściwe czynnika (woda): 1,163 Wh/(kg·K)",
        "Dopuszczalna prędkość przepływu: 0,2 - 0,5 m/s",
        "Limit oporów pętli rury 16mm: ~20 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-kalkulator-przeplywu",
    "name": "Kalkulator Przepływu Pętli Ogrzewania Podłogowego",
    "description": "Interaktywny widget obliczający w czasie rzeczywistym wymaganą moc pętli, przepływ w kg/h oraz nastawę rotametru w l/min na podstawie wprowadzonych strat cieplnych.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-algo-container">
    <div class="rk-algo-header">
        <div class="rk-algo-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="4 14 10 14 10 20"></polyline><polyline points="20 10 14 10 14 4"></polyline><line x1="14" y1="10" x2="21" y2="3"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg>
            Inżynieria Obliczeniowa
        </div>
        <h2>Algorytm obliczeniowy doboru parametrów instalacji według normy PN-EN 1264</h2>
        <p>Precyzyjne wyznaczenie przepływów i strat ciśnienia to fundament, na którym opiera się komfort cieplny. Zobacz, jak wyliczenia na papierze przekładają się na fizyczne działanie Twojej instalacji.</p>
    </div>

    <div class="rk-algo-calculator">
        <h3 class="rk-algo-calc-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-algo-blue)" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
            Symulator Nastaw Rotametru (Live)
        </h3>
        
        <div class="rk-algo-controls">
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Straty Ciepła Pomieszczenia (Q OZC)</span>
                    <span class="rk-algo-label-val" id="val-qozc">800 W</span>
                </div>
                <input type="range" id="slider-qozc" class="rk-algo-slider" min="200" max="2500" step="50" value="800">
            </div>
            
            <div class="rk-algo-control-group">
                <div class="rk-algo-label">
                    <span>Spadek temperatury wody (ΔT)</span>
                    <span class="rk-algo-label-val" id="val-dt">5 K</span>
                </div>
                <input type="range" id="slider-dt" class="rk-algo-slider" min="3" max="10" step="1" value="5">
            </div>
        </div>

        <div class="rk-algo-results">
            <div class="rk-algo-result-card">
                <span class="rk-algo-res-label">Całkowita moc pętli (Q_obl):</span>
                <span class="rk-algo-res-val" id="out-qobl">920 W</span>
            </div>
            <div class="rk-algo-result-card primary">
                <span class="rk-algo-res-label">Przepływ masowy czynnika (m):</span>
                <span class="rk-algo-res-val" id="out-m">158.21 kg/h</span>
            </div>
            <div class="rk-algo-result-card accent">
                <span class="rk-algo-res-label">Wynik do ustawienia na rotametrze (G):</span>
                <span class="rk-algo-res-val" id="out-g">2.64 l/min</span>
            </div>
        </div>
    </div>

    <div class="rk-algo-theory">
        <h3>Ścieżka matematyczna krok po kroku</h3>
        
        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">1</div>
                Wyznaczenie całkowitej mocy cieplnej pętli (Q_obl)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Obliczamy rzeczywistą moc, jaką musi dostarczyć układ, wykorzystując wyniki z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła OZC</a>. Obowiązkowo dodajemy współczynnik bezpieczeństwa (1,15), który rekompensuje straty ciepła uciekającego w dół posadzki.</p>
                    <div class="rk-algo-formula">Q_obl = Q_OZC × 1,15</div>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">2</div>
                Obliczenie wymaganego przepływu masowego (m)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Wiedząc, ile watów musimy dostarczyć, wyliczamy masę wody. Bierzemy pod uwagę ciepło właściwe wody (c_w = 1,163 Wh/(kg·K)) oraz założony projektowy <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury (ΔT)</a> na pętli.</p>
                    <div class="rk-algo-formula">m = Q_obl / (c_w · ΔT)</div>
                    <p>Wartość w kg/h dzielimy przez 60, by uzyskać litry na minutę – jednostkę czytelną dla instalatora na rotametrze w rozdzielaczu.</p>
                </div>
            </div>
        </div>

        <div class="rk-algo-step">
            <button class="rk-algo-step-btn">
                <div class="rk-algo-step-num">3</div>
                Wyznaczenie liniowych strat ciśnienia pętli (Δp_l)
            </button>
            <div class="rk-algo-step-content">
                <div class="rk-algo-step-inner">
                    <p>Straty ciśnienia determinują ostateczny dobór pompy obiegowej. Obliczamy jednostkowe opory tarcia rury (R), całkowitą <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">długość przewodu grzewczego (L)</a> i doliczamy współczynniki miejscowe (kolana, zwężki).</p>
                    <div class="rk-algo-formula">Δp_l = R · L + Σξ · (ρ · v²) / 2</div>
                    <p>Zasada twarda normy: Jeśli pętla (rura 16 mm) przekracza barierę 100 metrów, generuje opory pow. 20 kPa. W takim wypadku algorytm nakazuje podział pokoju na dwa niezależne obwody grzewcze, ratując pompę przed przeciążeniem.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Kalkulatora
    var sliderQozc = document.getElementById('slider-qozc');
    var sliderDt = document.getElementById('slider-dt');
    
    var valQozc = document.getElementById('val-qozc');
    var valDt = document.getElementById('val-dt');
    
    var outQobl = document.getElementById('out-qobl');
    var outM = document.getElementById('out-m');
    var outG = document.getElementById('out-g');

    function calculate() {
        var q_ozc = parseFloat(sliderQozc.value);
        var delta_t = parseFloat(sliderDt.value);

        // Update Labels
        valQozc.textContent = q_ozc + ' W';
        valDt.textContent = delta_t + ' K';

        // Math
        var q_obl = q_ozc * 1.15;
        var cw = 1.163;
        var m_kg = q_obl / (cw * delta_t);
        var g_lmin = m_kg / 60;

        // Output formatting
        outQobl.textContent = Math.round(q_obl) + ' W';
        outM.textContent = m_kg.toFixed(2) + ' kg/h';
        outG.textContent = g_lmin.toFixed(2) + ' l/min';
    }

    sliderQozc.addEventListener('input', calculate);
    sliderDt.addEventListener('input', calculate);
    
    // Inicjalizacja kalkulatora
    calculate();

    // Logika Akordeonu
    var steps = document.querySelectorAll('.rk-algo-step');

    steps.forEach(function(step) {
        var btn = step.querySelector('.rk-algo-step-btn');
        var content = step.querySelector('.rk-algo-step-content');

        btn.addEventListener('click', function() {
            var isOpen = content.style.maxHeight;

            // Zamykanie innych
            steps.forEach(function(s) {
                s.querySelector('.rk-algo-step-content').style.maxHeight = null;
            });

            // Otwieranie aktualnego (bezpieczny kod logiczny)
            if (!isOpen) {
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
    
    // Otwórz pierwszy element po załadowaniu
    if (steps.length > 0) {
        var firstContent = steps[0].querySelector('.rk-algo-step-content');
        if (firstContent !== null) {
            firstContent.style.maxHeight = firstContent.scrollHeight + "px";
        }
    }
});
</script>



<style>
:root {
    --rk-wyl-dark: #0f172a;
    --rk-wyl-primary: #4f46e5;
    --rk-wyl-primary-light: #e0e7ff;
    --rk-wyl-success: #16a34a;
    --rk-wyl-success-bg: #dcfce7;
    --rk-wyl-danger: #dc2626;
    --rk-wyl-danger-bg: #fee2e2;
    --rk-wyl-bg: #ffffff;
    --rk-wyl-border: #e2e8f0;
    --rk-wyl-text: #334155;
    --rk-wyl-text-muted: #64748b;
}

.rk-wyl-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wyl-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -5px rgba(79, 70, 229, 0.15);
    border: 1px solid var(--rk-wyl-primary);
    overflow: hidden;
}

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

.rk-wyl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.3);
    color: #818cf8;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(129, 140, 248, 0.2);
}

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

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

/* Układ Jednokolumnowy (Zgodnie z wytycznymi) */
.rk-wyl-content {
    padding: 40px 50px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Interaktywna Karta Weryfikacyjna */
.rk-wyl-card {
    background: var(--rk-wyl-bg);
    border: 1px solid var(--rk-wyl-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.rk-wyl-card:hover {
    border-color: #c7d2fe;
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.1);
}

.rk-wyl-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-wyl-border);
}

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

.rk-wyl-card-icon {
    width: 36px;
    height: 36px;
    background: var(--rk-wyl-primary-light);
    color: var(--rk-wyl-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Elementy Switch / Suwaka */
.rk-wyl-switch-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f1f5f9;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid var(--rk-wyl-border);
}

.rk-wyl-switch-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-wyl-text-muted);
    transition: color 0.3s;
}

.rk-wyl-switch-label.active {
    color: var(--rk-wyl-dark);
}

.rk-wyl-switch {
    position: relative;
    width: 44px;
    height: 24px;
    background: var(--rk-wyl-danger);
    border-radius: 24px;
    cursor: pointer;
    transition: background 0.3s;
}

.rk-wyl-switch.active {
    background: var(--rk-wyl-success);
}

.rk-wyl-switch-knob {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #ffffff;
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-wyl-switch.active .rk-wyl-switch-knob {
    transform: translateX(20px);
}

/* Zawartość Karty (Dynamiczna) */
.rk-wyl-view {
    display: none;
    animation: fadeView 0.4s ease;
}

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

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

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

.rk-wyl-view a {
    color: var(--rk-wyl-primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-wyl-list {
    margin: 0 0 15px 0;
    padding: 0;
    list-style: none;
}

.rk-wyl-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--rk-wyl-text);
    font-weight: 600;
}

.rk-wyl-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f46e5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: cover;
}

.rk-wyl-alert {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-wyl-alert.danger {
    background: var(--rk-wyl-danger-bg);
    color: #991b1b;
    border-left: 4px solid var(--rk-wyl-danger);
}

.rk-wyl-alert.success {
    background: var(--rk-wyl-success-bg);
    color: #166534;
    border-left: 4px solid var(--rk-wyl-success);
}

@media (max-width: 768px) {
    .rk-wyl-header { padding: 35px 25px; }
    .rk-wyl-header h2 { font-size: 24px; }
    .rk-wyl-content { padding: 30px 20px; }
    .rk-wyl-card { padding: 20px; }
    .rk-wyl-card-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-wyl-switch-wrapper { align-self: flex-start; width: 100%; justify-content: space-between; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-wytyczne-montazowe",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?",
    "description": "Zasady izolacji stropu, grubość wylewki (45 mm dla betonu) i taśmy brzegowe. Zobacz, jak norma chroni przed pękaniem posadzki z ogrzewaniem podłogowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wylewki",
    "name": "Zestawienie wymiarów i limitów dylatacyjnych wylewek grzewczych",
    "description": "Dokładne parametry techniczne dotyczące grubości jastrychu betonowego i anhydrytowego, ciśnień kontrolnych oraz oporów cieplnych izolacji EPS/XPS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki na ogrzewanie podłogowe",
      "dylatacje w podłogówce",
      "izolacja brzegowa ogrzewania",
      "próba szczelności podłogówki ciśnienie",
      "jastrych grzewczy norma"
    ],
    "measurementTechnique": "Wymogi minimalne oraz graniczne określone w Części 4 normy (wartości w [mm], [bar] oraz [m2K/W]).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny nad nieogrzewanym: R >= 2,25 m²K/W",
        "Minimalna grubość taśmy brzegowej: 8 mm",
        "Maksymalna powierzchnia pola dylatacyjnego: 40 m²",
        "Długość rury ochronnej (peszla) na dylatacji: 40 cm",
        "Ciśnienie podczas betonowania: min. 3 bar",
        "Wylewka cementowa nad rurą: min. 45 mm"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wylewki",
    "name": "Symulator Poprawności Wylewki i Dylatacji",
    "description": "Narzędzie interaktywne typu switch (suwak) demonstrujące różnice i zagrożenia pomiędzy amatorskim układaniem styropianu/betonu, a reżimem normy PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wyl-container" id="rk-wylewki-widget">
    <div class="rk-wyl-header">
        <div class="rk-wyl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
            Ordynans Wykonawczy
        </div>
        <h2>Jak wytyczne montażowe PN-EN 1264-4 wpływają na wykonanie wylewki i dylatacji?</h2>
        <p>Część czwarta normy to bezpośredni przewodnik dla instalatora. Definiuje ona surowe kryteria fizyczne, które muszą być spełnione przed, w trakcie i po zalaniu rur jastrychem grzewczym.</p>
    </div>

    <div class="rk-wyl-content">
        
        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                    </div>
                    Wymagania dla izolacji termicznej
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="izolacja">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="izolacja-amator" class="rk-wyl-view active">
                <p>Użycie losowej warstwy styropianu bez analizy oporu cieplnego. Często prowadzi do strat energii uciekającej do gruntu zamiast do pomieszczenia.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Zbyt cienka izolacja = grzanie sufitu sąsiada lub ziemi pod domem.
                </div>
            </div>

            <div id="izolacja-norma" class="rk-wyl-view">
                <p>Norma bezwzględnie nakazuje stosowanie warstw izolacji o minimalnym oporze cieplnym <strong>R</strong>. Sprawdź dokładnie, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu zastosować</a>, bazując na twardych wyliczeniach:</p>
                <ul class="rk-wyl-list">
                    <li>Nad pomieszczeniem ogrzewanym: R ≥ 1,25 m²K/W</li>
                    <li>Nad pomieszczeniem nieogrzewanym lub bezpośrednio na gruncie: R ≥ 2,25 m²K/W</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Ciepło emitowane jest w 100% kierunkowo do wnętrza pomieszczenia.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <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="9" y1="15" x2="15" y2="15"></line></svg>
                    </div>
                    Szczeliny dylatacyjne i brzegowe
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="dylatacje">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="dylatacje-amator" class="rk-wyl-view active">
                <p>Brak wklejania cienkiej taśmy i rozlewanie betonu w olbrzymich salonach jako jedna wielka płyta. Rury przechodzące przez progi układane są „gołe” bezpośrednio w zaprawie.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Gwarantowane pęknięcia jastrychu ściętego u progu drzwi.
                </div>
            </div>

            <div id="dylatacje-norma" class="rk-wyl-view">
                <p>Jastrych rozszerza się liniowo pod wpływem temperatury. Prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja obwodowa (taśma minimum 8 mm)</a> musi oddzielać płytę od ścian. Ponadto normatywne dylatacje dzieli się, gdy:</p>
                <ul class="rk-wyl-list">
                    <li>Powierzchnia pola przekracza 40 m².</li>
                    <li>Długość boku wylewki przekracza 8 metrów.</li>
                    <li>Stosunek boków jest większy niż 2:1 (wąskie, długie korytarze).</li>
                </ul>
                <p>Przejścia rur przez szczeliny muszą być chronione peszlami (rurami ochronnymi) o długości minimum 40 cm (po 20 cm w każdym kierunku).</p>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Bezpieczna posadzka pracująca bez pękania płytek i fug.
                </div>
            </div>
        </div>

        <div class="rk-wyl-card">
            <div class="rk-wyl-card-header">
                <h3>
                    <div class="rk-wyl-card-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    </div>
                    Grubość jastrychu i próba szczelności
                </h3>
                <div class="rk-wyl-switch-wrapper">
                    <span class="rk-wyl-switch-label active" data-state="amator">Na Oko</span>
                    <div class="rk-wyl-switch" data-target="cisnienie">
                        <div class="rk-wyl-switch-knob"></div>
                    </div>
                    <span class="rk-wyl-switch-label" data-state="norma">Norma</span>
                </div>
            </div>
            
            <div id="cisnienie-amator" class="rk-wyl-view active">
                <p>Zalewanie układu bez wody w rurach. Operator pompy do betonu (tzw. miksokreta) stąpa po nienaprężonych, pustych przewodach. Grubość zaniżana pod wymiary starych futryn.</p>
                <div class="rk-wyl-alert danger">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Ryzyko zmiażdżenia rury łopatą i zalania budynku!
                </div>
            </div>

            <div id="cisnienie-norma" class="rk-wyl-view">
                <p>Zanim zalejesz beton, musisz wykonać <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">hydrauliczną próbę ciśnieniową na poziomie 6 bar</a> przez 30 minut. Norma nakazuje utrzymywanie instalacji pod napięciem (min. 3 bar) w trakcie lania betonu.</p>
                <p>Dbając o obciążenia, upewnij się o prawidłowej <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki na ogrzewanie podłogowe</a> (wartości mierzone nad wierzchem rury):</p>
                <ul class="rk-wyl-list">
                    <li>Dla betonu cementowego: minimum 45 mm</li>
                    <li>Dla wylewki anhydrytowej: minimum 35 mm (lub inna zgodna z kartą chemii)</li>
                </ul>
                <div class="rk-wyl-alert success">
                    <svg width="18" height="18" 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>
                    Naprężone rury nie ulegają zgnieceniu, a posadzka zyskuje akumulacyjność.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var switches = document.querySelectorAll('.rk-wyl-switch');

    switches.forEach(function(sw) {
        sw.addEventListener('click', function() {
            var isNorma = this.classList.contains('active');
            var targetId = this.getAttribute('data-target');
            
            var wrapper = this.closest('.rk-wyl-switch-wrapper');
            var labelAmator = wrapper.querySelector('[data-state="amator"]');
            var labelNorma = wrapper.querySelector('[data-state="norma"]');
            
            var viewAmator = document.getElementById(targetId + '-amator');
            var viewNorma = document.getElementById(targetId + '-norma');

            if (isNorma === true) {
                // Było Norma -> Zmień na Amator
                this.classList.remove('active');
                labelAmator.classList.add('active');
                labelNorma.classList.remove('active');
                
                if (viewNorma !== null) { viewNorma.classList.remove('active'); }
                if (viewAmator !== null) { viewAmator.classList.add('active'); }
            } else {
                // Było Amator -> Zmień na Norma
                this.classList.add('active');
                labelAmator.classList.remove('active');
                labelNorma.classList.add('active');
                
                if (viewAmator !== null) { viewAmator.classList.remove('active'); }
                if (viewNorma !== null) { viewNorma.classList.add('active'); }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-slate: #334155;
    --rk-proj-cyan: #0891b2;
    --rk-proj-cyan-light: #cffafe;
    --rk-proj-cyan-hover: #06b6d4;
    --rk-proj-accent: #f59e0b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-gray-bg: #f8fafc;
}

.rk-proj-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 15px 35px -5px rgba(8, 145, 178, 0.15);
    border: 1px solid var(--rk-proj-cyan);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-proj-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-proj-cyan);
}

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

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

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

/* Interaktywny Moduł Projektowy */
.rk-proj-interactive {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: var(--rk-proj-bg);
}

/* Nawigacja (Lewa strona na desktopie, góra/pion na mobile) */
.rk-proj-nav {
    background: var(--rk-proj-gray-bg);
    padding: 30px;
    border-right: 1px solid var(--rk-proj-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-proj-nav-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;
    padding: 16px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-proj-slate);
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-proj-nav-btn:hover {
    border-color: var(--rk-proj-cyan);
    transform: translateX(4px);
}

.rk-proj-nav-btn.active {
    background: var(--rk-proj-cyan);
    color: #ffffff;
    border-color: var(--rk-proj-cyan);
    box-shadow: 0 10px 15px -3px rgba(8, 145, 178, 0.3);
    transform: translateX(8px);
}

.rk-proj-nav-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--rk-proj-cyan-light);
    color: var(--rk-proj-cyan);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-proj-nav-btn.active .rk-proj-nav-icon {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Obszar Treści (Prawa strona na desktopie) */
.rk-proj-content-area {
    padding: 40px;
    position: relative;
}

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

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

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

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

.rk-proj-panel p {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 20px 0;
}

.rk-proj-panel a {
    color: var(--rk-proj-cyan);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-proj-panel a:hover {
    color: var(--rk-proj-cyan-hover);
}

/* Wizualizacja inżynierska wewnątrz panelu */
.rk-proj-tech-box {
    background: var(--rk-proj-dark);
    border-radius: 12px;
    padding: 20px;
    margin-top: 25px;
    border-left: 4px solid var(--rk-proj-accent);
    color: #f8fafc;
}

.rk-proj-tech-box h4 {
    margin: 0 0 10px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
}

.rk-proj-tech-value {
    font-family: monospace;
    font-size: 18px;
    color: var(--rk-proj-cyan-light);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-proj-tech-value strong {
    font-size: 24px;
    color: #ffffff;
}

/* Sekcja CTA na dole */
.rk-proj-cta-section {
    padding: 40px 50px;
    background: var(--rk-proj-gray-bg);
    border-top: 1px solid var(--rk-proj-border);
    text-align: center;
}

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

.rk-proj-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: var(--rk-proj-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
    width: 100%;
    max-width: 600px;
    margin-top: 20px;
    text-transform: uppercase;
}

.rk-proj-btn-massive:hover {
    transform: translateY(-5px);
    background: #d97706;
    color: #ffffff;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header { padding: 35px 25px; }
    .rk-proj-header h2 { font-size: 24px; }
    
    /* Zmiana na układ pionowy (akordeonowy) dla mobile */
    .rk-proj-interactive { grid-template-columns: 1fr; }
    .rk-proj-nav { padding: 25px; border-right: none; border-bottom: 1px solid var(--rk-proj-border); }
    
    .rk-proj-nav-btn:hover { transform: translateY(-2px); }
    .rk-proj-nav-btn.active { transform: translateY(-4px); }
    
    .rk-proj-content-area { padding: 30px 25px; }
    .rk-proj-cta-section { padding: 35px 25px; }
    .rk-proj-btn-massive { padding: 16px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zastosowanie normy PN-EN 1264 eliminuje błędy montażowe. Poznaj 4 filary profesjonalnego projektu: OZC, dobór pompy ciepła, zrównoważenie hydrauliczne i opory pętli.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-wplyw-normy",
    "name": "Kryteria inżynierskie projektu instalacji podłogowej wg PN-EN 1264",
    "description": "Baza danych parametrów uwzględnianych w profesjonalnym projekcie ogrzewania: integracja z OZC, temperatura zasilania pompy ciepła, nastawy rotametrów i wysokość podnoszenia pompy obiegowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "profesjonalny projekt ogrzewania podłogowego",
      "obliczenia strat ciepła OZC",
      "temperatura zasilania pompy ciepła",
      "zrównoważenie hydrauliczne rotametry",
      "dobór pompy obiegowej"
    ],
    "measurementTechnique": "Algorytmy obliczeniowe oparte na PN-EN 1264 i PN-EN 12831 wykorzystywane do optymalizacji układów z pompami ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ OZC na gęstość rur (rozstawy 100mm vs 300mm)",
        "Optymalizacja temperatury zasilania do 35°C",
        "Wymagane zrównoważenie hydrauliczne pętli",
        "Kompensacja oporów hydraulicznych pompy (np. 25 kPa)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-projektu",
    "name": "Symulator Zgodności Projektu z PN-EN 1264",
    "description": "Interaktywny interfejs edukacyjny pozwalający inwestorowi przeanalizować cztery filary profesjonalnej inżynierii sanitarnej w zestawieniu z praktykami amatorskimi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-norm-impact-widget">
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Inżynieria w Praktyce
        </div>
        <h2>Jak postanowienia normy PN-EN 1264 wpływają na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Zastosowanie normy PN-EN 1264 całkowicie eliminuje rzemieślnicze schematy działania i przesuwa akcent na precyzyjne projektowanie. Wpływa ona na cztery fundamentalne obszary każdego profesjonalnego projektu instalacji.</p>
    </div>

    <div class="rk-proj-interactive">
        <div class="rk-proj-nav">
            <button class="rk-proj-nav-btn active" data-panel="ozc">
                <div class="rk-proj-nav-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                1. Integracja z OZC
            </button>
            <button class="rk-proj-nav-btn" data-panel="pompa">
                <div class="rk-proj-nav-icon">
                    <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>
                </div>
                2. Rozstaw rur a COP
            </button>
            <button class="rk-proj-nav-btn" data-panel="hydraulika">
                <div class="rk-proj-nav-icon">
                    <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><path d="M12 8l4 4-4 4M8 12h8"></path></svg>
                </div>
                3. Zrównoważenie
            </button>
            <button class="rk-proj-nav-btn" data-panel="obieg">
                <div class="rk-proj-nav-icon">
                    <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>
                </div>
                4. Pompa Obiegowa
            </button>
        </div>

        <div class="rk-proj-content-area">
            
            <div class="rk-proj-panel active" id="panel-ozc">
                <h3>Integracja z normą PN-EN 12831 (OZC)</h3>
                <p>Wyznaczone <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">straty ciepła budynku</a> determinują maksymalny rozstaw rur dla każdego pomieszczenia indywidualnie.</p>
                <p>Jeśli budynek jest pasywny, matematyka pozwala na szerokie rozstawy rzędu 200–300 mm. W domach ze słabszą izolacją lub przy wielkich przeszkleniach w salonie (tzw. strefy brzegowe), norma wymusza zastosowanie gęstego rozstawu rur rzędu 100 mm.</p>
                <div class="rk-proj-tech-box">
                    <h4>Wynik Inżynieryjny:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                        Uniknięcie stref niedogrzanych zimą
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-pompa">
                <h3>Dobór Rozstawu Rur pod Ograniczenia Pompy Ciepła</h3>
                <p>Każdy inżynier projektujący układ pod pompę ciepła dąży do uzyskania jak <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">najniższej temperatury zasilania</a> (optymalnie 35°C).</p>
                <p>Norma PN-EN 1264 dostarcza twardych narzędzi matematycznych do udowodnienia, że przy odpowiednio zagęszczonym rozstawie rur (np. co 10 cm), instalacja uzyska pożądaną moc grzewczą bez niszczycielskiej konieczności przegrzewania zładu wody do 45°C, co obniżyłoby COP pompy.</p>
                <div class="rk-proj-tech-box">
                    <h4>Parametr Celowy Projektu:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        Zasilanie: <strong>35°C</strong>
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-hydraulika">
                <h3>Zrównoważenie Hydrauliczne (Hydronic Balancing)</h3>
                <p>Ogrzewanie robione &#8222;na oko&#8221; kończy się tym, że krótkie pętle grzeją mocno, a długie pozostają zimne. Dzięki dokładnym obliczeniom strat ciśnienia dla każdej pętli z osobna, profesjonalny projekt zawiera tabelę z wytycznymi.</p>
                <p>Na jej podstawie instalator wykonuje <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">gotowe nastawy wstępne dla rotametrów</a> na rozdzielaczu, co wymusza równomierny przepływ w całym budynku.</p>
                <div class="rk-proj-tech-box">
                    <h4>Efekt Zastosowania Normy:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                        Jednorodna temperatura każdej posadzki
                    </div>
                </div>
            </div>

            <div class="rk-proj-panel" id="panel-obieg">
                <h3>Wytyczne dla Doboru Pompy Obiegowej</h3>
                <p>Suma wszystkich strat tarcia i oporów miejscowych w najmniej korzystnym obiegu (czyli w pętli o największym oporze połączonej z magistralą zasilającą) definiuje wytyczne do wyboru urządzenia tłoczącego.</p>
                <p>Projekt oblicza wymaganą wysokość podnoszenia pompy obiegowej. Wiedząc, że układ stawia opór na poziomie np. 25 kPa (czyli około 2,5 metra słupa wody), <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">prawidłowy dobór pompy</a> staje się faktem matematycznym, a nie zgadywaniem.</p>
                <div class="rk-proj-tech-box">
                    <h4>Krytyczny Wynik Obliczeń:</h4>
                    <div class="rk-proj-tech-value">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22d3ee" stroke-width="2"><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg>
                        Wymagane podnoszenie: <strong>~25 kPa</strong>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h3>Nie oszczędzaj na sercu swojego domu</h3>
        <p style="color: #475569; margin-bottom: 25px; font-size: 16px;">
            Amatorski montaż pociąga za sobą gigantyczne koszty eksploatacji i awarii. Zainwestuj w absolutną pewność inżynieryjną opartą na certyfikowanych normach.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-proj-btn-massive">
            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"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-nav-btn');
    var panels = document.querySelectorAll('#rk-norm-impact-widget .rk-proj-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-panel');

            // 1. Reset przycisków
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            // Aktywacja klikniętego
            this.classList.add('active');

            // 2. Reset paneli
            panels.forEach(function(panel) {
                panel.classList.remove('active');
            });
            // Aktywacja docelowego panelu (bezpieczny JS, brak restrykcyjnych znaków logicznych)
            var activePanel = document.getElementById('panel-' + targetId);
            if (activePanel) {
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-red: #dc2626;
    --rk-case-red-light: #fef2f2;
    --rk-case-green: #059669;
    --rk-case-green-light: #ecfdf5;
    --rk-case-blue: #2563eb;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #cbd5e1;
    --rk-case-text: #334155;
    --rk-case-bg: #ffffff;
}

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

/* Nagłówek Case Study */
.rk-case-header {
    padding: 40px 50px 30px;
    background: var(--rk-case-dark);
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-case-red);
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(220, 38, 38, 0.2);
    color: #fca5a5;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(248, 113, 113, 0.3);
}

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

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

/* Panel Detektywistyczny (Interakcja) */
.rk-case-investigation {
    padding: 40px 50px;
    background: var(--rk-case-gray);
}

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

.rk-case-tab {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-case-tab-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    transition: all 0.3s;
}

.rk-case-tab-text h3 {
    margin: 0 0 5px 0;
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

.rk-case-tab-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-case-text);
    font-weight: 600;
}

/* Stany aktywne zakładek */
.rk-case-tab[data-state="awaria"].active {
    border-color: var(--rk-case-red);
    background: var(--rk-case-red-light);
    box-shadow: 0 10px 20px -5px rgba(220, 38, 38, 0.15);
}
.rk-case-tab[data-state="awaria"].active .rk-case-tab-icon {
    background: var(--rk-case-red);
    color: #ffffff;
}

.rk-case-tab[data-state="naprawa"].active {
    border-color: var(--rk-case-green);
    background: var(--rk-case-green-light);
    box-shadow: 0 10px 20px -5px rgba(5, 150, 105, 0.15);
}
.rk-case-tab[data-state="naprawa"].active .rk-case-tab-icon {
    background: var(--rk-case-green);
    color: #ffffff;
}

/* Widoki zawartości */
.rk-case-view {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-view.active {
    display: block;
    animation: slideUpCase 0.4s ease forwards;
}

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

.rk-case-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 25px;
}

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

.rk-case-list li {
    padding-left: 30px;
    position: relative;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-case-text);
    font-weight: 600;
}

.rk-case-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 20px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
}

/* Ikony list dla awarii (krzyżyk) */
.view-awaria .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23dc2626' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");
}

/* Ikony list dla naprawy (ptaszek) */
.view-naprawa .rk-case-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
}

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

/* Ramka z danymi liczbowymi */
.rk-case-metrics {
    background: var(--rk-case-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    justify-content: space-around;
    color: #ffffff;
}

.rk-case-metric {
    text-align: center;
}

.rk-case-metric-val {
    font-size: 24px;
    font-weight: 900;
    font-family: monospace;
    margin-bottom: 5px;
}

.view-awaria .rk-case-metric-val { color: #fca5a5; }
.view-naprawa .rk-case-metric-val { color: #6ee7b7; }

.rk-case-metric-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    color: #94a3b8;
}

/* Raport Finansowy */
.rk-case-finance {
    padding: 35px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-case-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

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

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

.rk-case-finance-box {
    background: #fef2f2;
    border: 2px solid var(--rk-case-red);
    padding: 20px 30px;
    border-radius: 16px;
    text-align: center;
    min-width: 250px;
}

.rk-case-finance-box span {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-red);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-case-finance-box strong {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-case-dark);
}

/* Tagi Długiego Ogona */
.rk-case-tags {
    padding: 20px 50px 30px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rk-case-tag {
    background: var(--rk-case-gray);
    color: var(--rk-case-text);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-case-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-case-tag:hover {
    background: var(--rk-case-dark);
    color: #ffffff;
    border-color: var(--rk-case-dark);
}

@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-investigation { padding: 25px 20px; }
    
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab { padding: 15px; }
    
    .rk-case-view { padding: 25px 20px; }
    .rk-case-details { grid-template-columns: 1fr; gap: 20px; }
    .rk-case-metrics { flex-direction: column; gap: 20px; }
    
    .rk-case-finance { padding: 30px 20px; flex-direction: column; text-align: center; }
    .rk-case-finance-box { width: 100%; min-width: auto; }
    .rk-case-tags { padding: 0 20px 30px; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce instalacyjnej",
    "description": "Analiza rzeczywistej awarii. Zobacz, jak za długa pętla i brak projektu doprowadziły do niedogrzania salonu i kosztownego kucia wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-case-study",
    "name": "Raport Kosztów Awarii Ogrzewania Podłogowego",
    "description": "Porównanie kosztów prewencyjnego projektu inżynieryjnego z kosztami naprawy błędów wykonawczych (kucie wylewki, frezowanie) w budynku jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "za długa pętla podłogówki",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "koszt usunięcia awarii ogrzewania",
      "niedogrzany salon przyczyny"
    ],
    "measurementTechnique": "Analiza strat finansowych inwestora na podstawie realnego kosztorysu naprawczego (wymiana posadzki vs koszt projektu OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt projektu inżynieryjnego: 550 PLN",
        "Koszt kucia i wymiany wylewki (120m2): ~18 500 PLN",
        "Opory hydrauliczne przy pętli 180m: Przekroczenie limitu pompy",
        "Rozwiązanie alternatywne: Frezowanie podłogówki"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-symulator-ryzyka",
    "name": "Kalkulator Ryzyka i Diagnoza Awarii (Case Study)",
    "description": "Interaktywny panel śledczy demonstrujący proces diagnozowania i naprawy błędnie wykonanej instalacji (brak projektu, przekroczone długości rur).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-casestudy-widget">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Analiza Przypadku (Case Study)
        </div>
        <h2>Case Study: Skutki ignorowania normy PN-EN 1264 w praktyce</h2>
        <p>Zobacz na realnym przykładzie mojego klienta z okolic Poznania, jak brak profesjonalnego projektu i zaufanie do &#8222;oka&#8221; instalatora doprowadziło do paraliżu systemu grzewczego zimą.</p>
    </div>

    <div class="rk-case-investigation">
        <div class="rk-case-tabs" id="rkCaseTabs">
            <div class="rk-case-tab active" data-state="awaria">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Stan Zastany (Awaria)</h3>
                    <p>Grudzień 2025: Zamarzający dom</p>
                </div>
            </div>
            
            <div class="rk-case-tab" data-state="naprawa">
                <div class="rk-case-tab-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg>
                </div>
                <div class="rk-case-tab-text">
                    <h3>Interwencja (Norma)</h3>
                    <p>Styczeń 2026: Plan ratunkowy</p>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-awaria active" id="view-awaria">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Opis Problemu:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Inwestor zgłosił, że mimo zasilania pompy ciepła na poziomie 40°C, w salonie temperatura nie przekracza 18°C. Dodatkowo w rozdzielaczu słychać ciągły szum wody, a rotametry w ogóle nie reagują na regulację.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Diagnoza Błędów:</h4>
                    <ul class="rk-case-list">
                        <li><a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Za długa pętla podłogówki</a> – jedna z rur w salonie liczyła aż 180 metrów (norma dla rury 16mm to max. 120m).</li>
                        <li>Trwałe <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawy zapowietrzenia</a> spowodowane kawitacją pompy, która nie mogła przepchnąć wody przez ogromne opory.</li>
                        <li>Rozstaw rur &#8222;na ślepo&#8221; co 20 cm pod grubym parkietem.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">180 m</div>
                    <div class="rk-case-metric-label">Długość najdłuższej pętli</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">42 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">0.0 l/min</div>
                    <div class="rk-case-metric-label">Przepływ na rotametrze</div>
                </div>
            </div>
        </div>

        <div class="rk-case-view view-naprawa" id="view-naprawa">
            <div class="rk-case-details">
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Rozwiązanie Inżynieryjne:</h4>
                    <p style="font-size:15px; line-height:1.6; color:var(--rk-case-text);">Wykonaliśmy wsteczne obliczenia OZC. Aby uniknąć kucia całej posadzki, zdecydowaliśmy się na inwazyjne wpięcie w środku salonu i rozdzielenie gigantycznej pętli na dwa mniejsze obiegi przy użyciu muf prasowanych i żywicy epoksydowej. Alternatywą było tylko <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie podłogówki w starym systemie</a>.</p>
                </div>
                <div>
                    <h4 style="margin:0 0 15px 0; color:var(--rk-case-dark); font-size: 18px;">Nowe Parametry (PN-EN 1264):</h4>
                    <ul class="rk-case-list">
                        <li>Podział krytycznej pętli na dwa osobne obiegi (po ~90m każdy).</li>
                        <li>Wymiana pompy obiegowej na jednostkę o większej wysokości podnoszenia.</li>
                        <li>Precyzyjne nastawy rotametrów według nowego bilansu hydraulicznego. Zasilanie spadło do 33°C.</li>
                    </ul>
                </div>
            </div>
            
            <div class="rk-case-metrics">
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">90 m / 90 m</div>
                    <div class="rk-case-metric-label">Skorygowane pętle</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">15 kPa</div>
                    <div class="rk-case-metric-label">Opór hydrauliczny po resecie</div>
                </div>
                <div class="rk-case-metric">
                    <div class="rk-case-metric-val">2.1 l/min</div>
                    <div class="rk-case-metric-label">Stabilny przepływ</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-case-finance">
        <div class="rk-case-finance-text">
            <h3>Finansowe skutki &#8222;oszczędności&#8221;</h3>
            <p>To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>. Inwestor zaoszczędził 550 PLN na projekcie inżynieryjnym, ufając zapewnieniom instalatora. Naprawa błędu i lokalne kucie posadzki pochłonęło nieproporcjonalnie więcej środków i zszargało nerwy rodziny.</p>
        </div>
        <div class="rk-case-finance-box">
            <span>Koszt naprawy błędu</span>
            <strong>18 500 PLN</strong>
        </div>
    </div>

    <div class="rk-case-tags">
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-case-tag"># za długa pętla podłogówki co zrobić</a>
        <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-case-tag"># dlaczego podłogówka w salonie nie grzeje</a>
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-case-tag"># błędy wykonawcze ogrzewanie podłogowe</a>
        <a href="#" class="rk-case-tag"># rotametry na rozdzielaczu stoją w miejscu</a>
        <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/" class="rk-case-tag"># naprawa niedogrzanej podłogówki</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkCaseTabs .rk-case-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetState = this.getAttribute('data-state');
            
            // Usunięcie aktywnej klasy ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Ukrycie wszystkich widoków (bezpieczne sprawdzenie bez &&)
            var viewAwaria = document.getElementById('view-awaria');
            var viewNaprawa = document.getElementById('view-naprawa');
            
            if (viewAwaria !== null) { viewAwaria.classList.remove('active'); }
            if (viewNaprawa !== null) { viewNaprawa.classList.remove('active'); }
            
            // Aktywacja klikniętej zakładki i właściwego widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetState);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-pro-dark: #0f172a;
    --rk-pro-slate: #475569;
    --rk-pro-blue: #2563eb;
    --rk-pro-blue-light: #eff6ff;
    --rk-pro-accent: #f59e0b;
    --rk-pro-bg: #ffffff;
    --rk-pro-bg-alt: #f8fafc;
    --rk-pro-border: #e2e8f0;
}

.rk-pro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-pro-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pro-border);
    overflow: hidden;
}

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

.rk-pro-header h2 {
    font-size: 24px;
    font-weight: 800;
    margin: 0;
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Układ główny */
.rk-pro-body {
    display: flex;
    background: var(--rk-pro-bg);
}

/* Lewa Kolumna - Profil Eksperta */
.rk-pro-sidebar {
    width: 340px;
    padding: 40px 30px;
    background: var(--rk-pro-bg-alt);
    border-right: 1px solid var(--rk-pro-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-pro-avatar-wrapper {
    position: relative;
    margin-bottom: 25px;
}

.rk-pro-avatar {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-pro-bg);
    box-shadow: 0 8px 16px -4px rgba(15, 23, 42, 0.15);
}

.rk-pro-badge-check {
    position: absolute;
    bottom: 5px;
    right: 5px;
    background: var(--rk-pro-blue);
    color: #ffffff;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--rk-pro-bg);
}

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

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

.rk-pro-brand {
    font-size: 12px;
    font-weight: 800;
    background: var(--rk-pro-dark);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 6px;
    margin-bottom: 25px;
    letter-spacing: 0.5px;
}

.rk-pro-socials {
    display: flex;
    gap: 12px;
}

.rk-pro-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-pro-border);
    border-radius: 8px;
    color: var(--rk-pro-slate);
    text-decoration: none;
}

.rk-pro-social-link:hover {
    background: var(--rk-pro-blue-light);
    color: var(--rk-pro-blue);
    border-color: #bfdbfe;
}

/* Prawa Kolumna - Treść */
.rk-pro-content {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-pro-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-pro-border);
    background: var(--rk-pro-bg);
}

.rk-pro-tab {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-pro-slate);
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid transparent;
}

.rk-pro-tab.active {
    color: var(--rk-pro-blue);
    border-bottom-color: var(--rk-pro-blue);
    background: var(--rk-pro-blue-light);
}

.rk-pro-view {
    display: none;
    padding: 40px;
}

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

/* Typografia Cytatu */
.rk-pro-quote-box {
    position: relative;
    padding-left: 20px;
}

.rk-pro-quote-box::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 5px;
    width: 4px;
    background: var(--rk-pro-accent);
    border-radius: 2px;
}

.rk-pro-quote-text {
    font-size: 19px;
    font-weight: 800;
    line-height: 1.6;
    color: var(--rk-pro-dark);
    margin: 0 0 20px 0;
}

.rk-pro-quote-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-pro-slate);
    margin: 0;
}

.rk-pro-quote-desc a {
    color: var(--rk-pro-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Statystyki Nowoczesne */
.rk-pro-stats-intro {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-pro-dark);
    line-height: 1.6;
    margin: 0 0 30px 0;
}

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

.rk-pro-stat-card {
    background: var(--rk-pro-bg);
    border: 1px solid var(--rk-pro-border);
    border-radius: 12px;
    padding: 25px 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-pro-stat-card:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-pro-stat-val {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-pro-blue);
    margin-bottom: 8px;
    letter-spacing: -1px;
}

.rk-pro-stat-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-pro-slate);
    text-transform: uppercase;
    line-height: 1.4;
}

@media (max-width: 768px) {
    .rk-pro-header { padding: 25px 20px; }
    .rk-pro-header h2 { font-size: 20px; }
    .rk-pro-body { flex-direction: column; }
    .rk-pro-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-pro-border); padding: 30px 20px; }
    .rk-pro-view { padding: 30px 20px; }
    .rk-pro-grid { grid-template-columns: 1fr; }
    .rk-pro-tabs { flex-direction: column; }
    .rk-pro-tab { border-bottom: none; border-left: 3px solid transparent; text-align: left; padding: 15px 20px; }
    .rk-pro-tab.active { border-left-color: var(--rk-pro-blue); }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego",
    "description": "Autorytet w dziedzinie instalacji płaszczyznowych. Sprawdź, dlaczego ponad 1000 projektów ogrzewania musi opierać się na twardych wyliczeniach, a nie na przypuszczeniach.",
    "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, CEO Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-cennik-projekty",
    "name": "Cennik i Statystyki Projektowe - Robert Kucharski (2026)",
    "description": "Kluczowe wskaźniki efektywności i transparentne koszty wykonania profesjonalnej dokumentacji technicznej dla wodnego ogrzewania podłogowego w budownictwie jednorodzinnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "koszt projektu podłogówki",
      "dokumentacja techniczna hvac",
      "budowa bez ściemy",
      "ekspert ogrzewania podłogowego"
    ],
    "measurementTechnique": "Dane oparte na rzeczywistych zleceniach i realizacjach biura projektowego projekt-ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Średnia cena profesjonalnego projektu (OZC + pętle): 550 PLN",
        "Liczba zrealizowanych projektów: Ponad 1000",
        "Główny profil działalności: Obliczenia i dokumentacja techniczna zgodna z PN-EN 1264"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-wizytowka-eksperta",
    "name": "Interaktywna Wizytówka Inżynierska",
    "description": "Nowoczesny moduł przełączający służący do szybkiego przeglądu kwalifikacji projektanta instalacji sanitarnych oraz głównych wytycznych, którymi kieruje się biuro projektowe.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pro-container" id="rk-modern-expert">
    <div class="rk-pro-header">
        <h2>
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Zdaniem eksperta: Robert Kucharski o standardach ogrzewania podłogowego
        </h2>
    </div>

    <div class="rk-pro-body">
        
        <!-- Kolumna Lewa: Profil (E-E-A-T) -->
        <div class="rk-pro-sidebar">
            <div class="rk-pro-avatar-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Ekspert HVAC" class="rk-pro-avatar">
                <div class="rk-pro-badge-check" title="Zweryfikowany Specjalista">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
            </div>
            
            <h3 class="rk-pro-name">Robert Kucharski</h3>
            <div class="rk-pro-role">Główny Specjalista HVAC</div>
            <div class="rk-pro-brand">BUDOWA BEZ ŚCIEMY</div>
            
            <div class="rk-pro-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="Facebook">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-pro-social-link" title="LinkedIn">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
            </div>
        </div>

        <!-- Kolumna Prawa: Interaktywne Zakładki -->
        <div class="rk-pro-content">
            <div class="rk-pro-tabs" id="rkProTabs">
                <button class="rk-pro-tab active" data-tab="cytat">Złota zasada instalatora</button>
                <button class="rk-pro-tab" data-tab="liczby">Dlaczego projekt?</button>
            </div>

            <!-- Widok: Cytat -->
            <div class="rk-pro-view active" id="view-cytat">
                <div class="rk-pro-quote-box">
                    <p class="rk-pro-quote-text">
                        Z perspektywy tysięcy przeanalizowanych instalacji mogę z pełną odpowiedzialnością stwierdzić jedno: wylewka betonowa wybacza wszystko, dopóki jej nie zalejesz. 
                    </p>
                    <p class="rk-pro-quote-desc">
                        Norma PN-EN 1264 to nie jest urzędniczy wymysł. To tarcza ochronna Twojego portfela. Ignorowanie prób ciśnieniowych (6 bar) i projektowania OZC z myślą &#8222;jakoś to będzie&#8221; niemal zawsze kończy się zjawiskiem niedogrzania lub zniszczonymi posadzkami. Kucie jastrychu w gotowym salonie kosztuje 10 razy więcej niż <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">kompleksowy projekt</a> u sprawdzonego inżyniera.
                    </p>
                </div>
            </div>

            <!-- Widok: Liczby -->
            <div class="rk-pro-view" id="view-liczby">
                <p class="rk-pro-stats-intro">
                    Jako projektant reklamuję w Google wyłącznie pełne opracowania techniczne, a nie pojedyncze rurki czy rozdzielacze. Dlaczego? Bo tylko profesjonalny projekt daje gwarancję sukcesu.
                </p>
                
                <div class="rk-pro-grid">
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">1000+</div>
                        <div class="rk-pro-stat-label">Wykonanych projektów</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">550 PLN</div>
                        <div class="rk-pro-stat-label">Średnia cena dokumentacji</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">3700</div>
                        <div class="rk-pro-stat-label">Obserwatorów fachowców</div>
                    </div>
                    <div class="rk-pro-stat-card">
                        <div class="rk-pro-stat-val">100%</div>
                        <div class="rk-pro-stat-label">Zgodności z normą PN-EN</div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('#rkProTabs .rk-pro-tab');
    
    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var targetViewId = this.getAttribute('data-tab');
            
            // Usunięcie klasy aktywnej ze wszystkich zakładek
            tabs.forEach(function(t) {
                t.classList.remove('active');
            });
            
            // Zamknięcie wszystkich widoków (bezpieczne sprawdzenie)
            var viewCytat = document.getElementById('view-cytat');
            var viewLiczby = document.getElementById('view-liczby');
            
            if (viewCytat !== null) { viewCytat.classList.remove('active'); }
            if (viewLiczby !== null) { viewLiczby.classList.remove('active'); }
            
            // Aktywacja wybranej zakładki i widoku
            this.classList.add('active');
            var targetView = document.getElementById('view-' + targetViewId);
            if (targetView !== null) {
                targetView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-slate: #334155;
    --rk-err-danger: #dc2626;
    --rk-err-danger-light: #fef2f2;
    --rk-err-warning: #ea580c;
    --rk-err-warning-light: #fff7ed;
    --rk-err-blue: #2563eb;
    --rk-err-bg: #ffffff;
    --rk-err-gray: #f8fafc;
    --rk-err-border: #cbd5e1;
}

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

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

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(220, 38, 38, 0.2);
    color: #fca5a5;
    padding: 6px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(248, 113, 113, 0.3);
}

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

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

/* Moduł 1: Interaktywny Skaner Błędów */
.rk-err-scanner {
    padding: 40px 50px;
    background: var(--rk-err-gray);
}

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

.rk-err-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.rk-err-card {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px 20px;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-err-card:hover {
    border-color: var(--rk-err-warning);
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.1);
}

.rk-err-card.revealed {
    border-color: var(--rk-err-danger);
    background: var(--rk-err-danger-light);
}

.rk-err-card-front {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: opacity 0.3s;
}

.rk-err-card.revealed .rk-err-card-front {
    display: none;
}

.rk-err-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-err-hint {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-err-blue);
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Skutek Błędu (Tył Karty) */
.rk-err-card-back {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: popIn 0.3s ease;
}

.rk-err-card.revealed .rk-err-card-back {
    display: flex;
}

@keyframes popIn {
    0% { transform: scale(0.9); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

.rk-err-danger-icon {
    color: var(--rk-err-danger);
    margin-bottom: 10px;
}

.rk-err-result {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-err-danger);
    margin: 0 0 10px 0;
}

.rk-err-link {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-err-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Moduł 2: Odpowiedzialność na Budowie */
.rk-err-roles {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-err-border);
}

.rk-err-roles-intro {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0 0 30px 0;
}

.rk-err-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-err-role-item {
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color 0.3s;
}

.rk-err-role-item.active {
    border-color: var(--rk-err-blue);
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.1);
}

.rk-err-role-btn {
    width: 100%;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    text-align: left;
}

.rk-err-role-header {
    display: flex;
    align-items: center;
    gap: 15px;
}

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

.rk-err-role-item.active .rk-err-role-icon {
    background: var(--rk-err-blue);
    color: #ffffff;
}

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

.rk-err-role-chevron {
    color: var(--rk-err-slate);
    transition: transform 0.3s;
}

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

.rk-err-role-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--rk-err-gray);
}

.rk-err-role-inner {
    padding: 0 25px 25px 80px;
}

.rk-err-role-inner p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-slate);
    font-weight: 500;
}

.rk-err-role-inner strong {
    color: var(--rk-err-dark);
    font-weight: 800;
}

/* Tagi SEO */
.rk-err-tags {
    padding: 0 50px 40px;
    background: #ffffff;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-err-tag {
    background: var(--rk-err-gray);
    color: var(--rk-err-slate);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid var(--rk-err-border);
    text-decoration: none;
    transition: all 0.2s;
}

.rk-err-tag:hover {
    background: var(--rk-err-dark);
    color: #ffffff;
    border-color: var(--rk-err-dark);
}

@media (max-width: 768px) {
    .rk-err-header { padding: 35px 20px; }
    .rk-err-header h2 { font-size: 24px; }
    .rk-err-scanner { padding: 35px 20px; }
    .rk-err-roles { padding: 35px 20px; }
    .rk-err-role-btn { padding: 15px; }
    .rk-err-role-inner { padding: 0 15px 20px 15px; }
    .rk-err-tags { padding: 0 20px 30px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Najczęstsze błędy wykonawców łamiące PN-EN 1264 i odpowiedzialność na budowie",
    "description": "Sprawdź skutki braku OZC, zbyt długich pętli i braku dylatacji. Wyjaśniamy, czy instalator musi znać normę PN-EN 1264 i za co odpowiada kierownik budowy.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-bledy",
    "name": "Rejestr Błędów Wykonawczych i Skutków Awarii Ogrzewania (2026)",
    "description": "Baza danych parująca najczęstsze uchybienia normatywne instalatorów z bezpośrednimi fizycznymi konsekwencjami dla budynku (pęknięcia, niedogrzanie, zalanie).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "brak ozc skutki",
      "za długa pętla podłogówki",
      "brak dylatacji ogrzewanie podłogowe",
      "obowiązki instalatora a projektant"
    ],
    "measurementTechnique": "Analiza przyczynowo-skutkowa odchyłek od europejskiej normy wbudowanych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd: Rozstaw 20-25 cm wszędzie -> Skutek: Zimne strefy",
        "Błąd: Brak OZC -> Skutek: Niedogrzanie",
        "Błąd: Pętle powyżej 120 m -> Skutek: Problemy hydrauliczne",
        "Błąd: Brak dylatacji -> Skutek: Pęknięcia jastrychu",
        "Błąd: Brak próby szczelności -> Skutek: Zalanie budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-audytor",
    "name": "Interaktywny Audytor Błędów Instalacyjnych",
    "description": "Narzędzie pozwalające inwestorowi na szybkie zdiagnozowanie potencjalnych skutków rzemieślniczych błędów montażowych oraz ustalenie matrycy odpowiedzialności na placu budowy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-errors-widget">
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Ściana Płaczu Inwestora
        </div>
        <h2>Najczęstsze błędy wykonawców i odpowiedzialność na budowie</h2>
        <p>Instalacja podłogówki z pominięciem wytycznych normy to stąpanie po kruchym lodzie. Sprawdź, jakie są skutki najpopularniejszych błędów i dowiedz się ostatecznie: kto za to odpowiada?</p>
    </div>

    <div class="rk-err-scanner">
        <h3 class="rk-err-section-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Skaner Błędów Łamiących PN-EN 1264
        </h3>
        
        <div class="rk-err-grid" id="rkErrGrid">
            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg></div>
                    <h4>Rozstaw rur 20-25 cm wszędzie</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" 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 class="rk-err-result">Zimne Strefy i Paski</div>
                    <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-err-link">Brak pokrycia strat ciepła</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
                    <h4>Brak obliczeń OZC</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    <div class="rk-err-result">Permanentne Niedogrzanie</div>
                    <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-err-link">Wymaga wyższej temp. pompy</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg></div>
                    <h4>Pętle powyżej 120 metrów</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" 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 class="rk-err-result">Problemy Hydrauliczne</div>
                    <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-link">Pompa nie pcha wody</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M5 12l-3 3 3 3"></path></svg></div>
                    <h4>Brak dylatacji jastrychu</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M16 21v-2a4 4 0 0 0-4-4H5.5"></path><polyline points="9 22 5.5 15 2 22"></polyline><path d="M22 3L2 22"></path></svg>
                    <div class="rk-err-result">Pęknięcia Posadzki</div>
                    <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">Kucie zerwanych płytek</a>
                </div>
            </div>

            <div class="rk-err-card">
                <div class="rk-err-card-front">
                    <div class="rk-err-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg></div>
                    <h4>Brak próby szczelności</h4>
                    <span class="rk-err-hint">Odkryj skutek <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg></span>
                </div>
                <div class="rk-err-card-back">
                    <svg class="rk-err-danger-icon" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    <div class="rk-err-result">Zalanie Budynku</div>
                    <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-link">Awaria po wylaniu betonu</a>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-err-roles">
        <h3 class="rk-err-section-title">Czy instalator wykonujący podłogówkę ma obowiązek znać PN-EN 1264?</h3>
        <p class="rk-err-roles-intro">To pytanie, które najczęściej wpisują inwestorzy w przypadku awarii i szukania winnych. Prawo budowlane określa bardzo elegancki i jednoznaczny podział obowiązków między trzema głównymi aktorami na placu budowy.</p>

        <div class="rk-err-accordion" id="rkErrAccordion">
            
            <div class="rk-err-role-item active">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></div>
                        <h4 class="rk-err-role-title">Projektant HVAC</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content" style="max-height: 500px;">
                    <div class="rk-err-role-inner">
                        <p><strong>Tak, to jego absolutny obowiązek.</strong> Projektant jest intelektualnym twórcą układu. Musi wykonać obliczenia strat ciepła, dobrać rozstaw rur, obliczyć hydraulikę i stworzyć dokumentację stricte w oparciu o algorytmy PN-EN 1264. To on ponosi odpowiedzialność prawną za to, czy system wydajnościowo dogrzeje budynek w temperaturach ujemnych.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div>
                        <h4 class="rk-err-role-title">Instalator / Wykonawca</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>Nie musi znać na pamięć wzorów matematycznych.</strong> Jego obowiązkiem nie jest projektowanie &#8222;z głowy&#8221;. Obowiązkiem instalatora jest rzetelne i bezbłędne odtworzenie na budowie tego, co projektant narysował w <a href="https://projekt-ogrzewania.pl/czy-trzeba-miec-projekt-na-ogrzewanie-podlogowe/">projekcie ogrzewania podłogowego</a>. Musi jednak znać wytyczne montażowe (część 4 normy) dotyczące wykonywania prób ciśnieniowych (6 bar) i układania dylatacji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-err-role-item">
                <button class="rk-err-role-btn">
                    <div class="rk-err-role-header">
                        <div class="rk-err-role-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><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-role-title">Kierownik Budowy</h4>
                    </div>
                    <div class="rk-err-role-chevron"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-err-role-content">
                    <div class="rk-err-role-inner">
                        <p><strong>To główny audytor.</strong> Zgodnie z Prawem Budowlanym, to on odbiera tzw. prace zanikające (czyli rury przed zalaniem betonem). Jego obowiązkiem jest sprawdzenie, czy rozstaw rur na styropianie zgadza się z projektem oraz musi być fizycznie obecny lub wymagać podpisanego protokołu z próby szczelności przed wpuszczeniem posadzkarzy.</p>
                    </div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-err-tags">
        <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-err-tag"># błędy montażu ogrzewania podłogowego</a>
        <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/" class="rk-err-tag"># obowiązki instalatora</a>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="rk-err-tag"># projekt z głowy vs obliczenia</a>
        <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-err-tag"># za długa pętla skutki</a>
        <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-err-tag"># zalanie budynku podłogówka</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Logika Skanera Błędów (Karty)
    var cards = document.querySelectorAll('#rkErrGrid .rk-err-card');
    cards.forEach(function(card) {
        card.addEventListener('click', function() {
            var isRevealed = this.classList.contains('revealed');
            if (isRevealed === false) {
                this.classList.add('revealed');
            } else {
                this.classList.remove('revealed');
            }
        });
    });

    // 2. Logika Akordeonu Ról (Bezpieczne JS)
    var accItems = document.querySelectorAll('#rkErrAccordion .rk-err-role-item');
    accItems.forEach(function(item) {
        var btn = item.querySelector('.rk-err-role-btn');
        var content = item.querySelector('.rk-err-role-content');

        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');

            // Zamknięcie wszystkich (opcjonalne, działa jak klasyczny akordeon)
            accItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                var innerContent = innerItem.querySelector('.rk-err-role-content');
                if (innerContent !== null) {
                    innerContent.style.maxHeight = null;
                }
            });

            // Otwarcie klikniętego (jeśli nie był otwarty)
            if (isActive === false) {
                item.classList.add('active');
                if (content !== null) {
                    content.style.maxHeight = content.scrollHeight + "px";
                }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #2563eb;
    --rk-faq-blue-hover: #1d4ed8;
    --rk-faq-light-blue: #eff6ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-bg: #ffffff;
    --rk-faq-icon: #64748b;
}

.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 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid var(--rk-faq-blue);
    overflow: hidden;
}

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

.rk-faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.3);
    color: #60a5fa;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(96, 165, 250, 0.2);
}

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

/* Interaktywny Akordeon */
.rk-faq-list-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 16px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-faq-item:hover {
    border-color: #bfdbfe;
    box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.05);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.15);
}

.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    color: var(--rk-faq-dark);
}

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

.rk-faq-btn h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.4;
    flex: 1;
}

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

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

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

.rk-faq-content-inner {
    padding: 0 30px 30px 30px;
    color: var(--rk-faq-text);
    font-size: 16px;
    line-height: 1.7;
}

.rk-faq-item.active .rk-faq-content-inner {
    border-top: 1px solid transparent; /* Wizualny odstęp */
    padding-top: 10px;
}

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

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

/* Informacja Wizualna w Treści */
.rk-faq-highlight {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f0fdf4;
    color: #166534;
    padding: 12px 16px;
    border-radius: 8px;
    border-left: 4px solid #22c55e;
    margin-top: 15px;
    font-weight: 600;
    font-size: 15px;
    width: 100%;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 25px; }
    .rk-faq-list-wrapper { padding: 25px 20px; }
    .rk-faq-title { font-size: 24px; }
    .rk-faq-btn { padding: 20px; }
    .rk-faq-btn h3 { font-size: 16px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264",
    "description": "Odpowiedzi na kluczowe pytania inżynieryjne: wygrzewanie jastrychu, długość pętli, zabudowa meblowa i kary za brak próby szczelności 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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską, a sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury, jednak powszechny standard inżynierski oparty na kryteriach normatywnych ogranicza długość rury 16x2 mm do 100–120 metrów, a rury 20x2 mm do 150 metrów."
        }
      },
      {
        "@type": "Question",
        "name": "Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym, co skutkuje koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz utratą gwarancji."
        }
      },
      {
        "@type": "Question",
        "name": "Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (Rλ,B powyżej limitu 0,15 m²K/W), przez co układanie tam rur jest błędem – powoduje przegrzewanie mebli i marnowanie energii."
        }
      },
      {
        "@type": "Question",
        "name": "Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu betonowego, który może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach), zaczynając od temperatury zasilania 25°C przez 3 dni, a następnie podnosząc ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Zestawienie parametrów krytycznych montażu i odbioru podłogówki (2026)",
    "description": "Baza danych parametrów kontrolnych: dni dojrzewania jastrychu, limity długości rur PEX oraz graniczne współczynniki oporu cieplnego wyciągnięte z norm inżynieryjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "długość pętli ogrzewania podłogowego",
      "wygrzewanie jastrychu anhydryt",
      "próba ciśnieniowa podłogówki",
      "ogrzewanie podłogowe pod meblami",
      "normy wykonawcze HVAC"
    ],
    "measurementTechnique": "Wytyczne normatywne służące za układ odniesienia dla biegłych sądowych i instalatorów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wygrzewanie betonu: start po 21 dniach",
        "Wygrzewanie anhydrytu: start po 7 dniach",
        "Startowa temperatura wygrzewania: 25°C przez 3 dni"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ PN-EN 1264",
    "description": "Moduł typu akordeon, który błyskawicznie dopasowuje inżynieryjne odpowiedzi do najczęściej wyszukiwanych problemów budowlanych z zakresu instalacji podłogowych.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="norma-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – Najczęstsze pytania dotyczące normy PN-EN 1264</h2>
    </div>

    <div class="rk-faq-list-wrapper" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy stosowanie normy PN-EN 1264 jest obowiązkowe w budownictwie jednorodzinnym?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Formalnie normy w Polsce są stosowane dobrowolnie, jednak prawo budowlane nakazuje wykonywanie instalacji zgodnie ze sztuką inżynierską. Wszelkie sądy powszechne i biegli w przypadku sporów z wykonawcą traktują PN-EN 1264 jako jedyny oficjalny układ odniesienia do oceny wad wykonawczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Jaka jest dopuszczalna maksymalna długość jednej pętli ogrzewania podłogowego według normy?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma nie podaje jednej sztywnej liczby, ponieważ limit wynika z oporów hydraulicznych i średnicy rury. Jednak powszechny standard inżynierski oparty na kryteriach normatywnych określa jasne zasady: <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">ogranicza długość rury 16&#215;2 mm do 100–120 metrów</a>, a grubszej rury 20&#215;2 mm maksymalnie do 150 metrów.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czym grozi zalanie instalacji podłogowej bez wcześniejszej próby ciśnieniowej?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Grozi to katastrofą budowlaną w postaci niezauważonego wycieku wody pod jastrychem w przypadku uszkodzenia rury klipsem lub narzędziem budowlanym. Skutkuje to koniecznością zrywania całej wylewki, ponoszeniem kosztów osuszania budynku rzędu kilkunastu tysięcy złotych oraz całkowitą utratą gwarancji. To jeden z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędów przy montażu ogrzewania podłogowego</a>.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Czy według normy można układać ogrzewanie podłogowe pod stałą zabudową meblową?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Norma PN-EN 1264 nakazuje projektowanie instalacji w celu pokrycia strat ciepła, a stała zabudowa kuchenna czy szafy wnękowe drastycznie zwiększają opór cieplny (grubo powyżej normatywnego limitu 0,15 m²K/W). Przez to <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">układanie tam rur jest błędem</a> – powoduje przegrzewanie mebli, marnowanie energii i psucie artykułów spożywczych.</p>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn" aria-expanded="false">
                <h3>Co to jest procedura wygrzewania jastrychu i czy norma ją definiuje?</h3>
                <div class="rk-faq-icon-wrapper">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <p>Tak, norma PN-EN 1264-4 precyzyjnie określa proces pierwszego uruchomienia grzewczego jastrychu. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">Wygrzewanie wylewki betonowej</a> może nastąpić najwcześniej po 21 dniach od zalania (dla anhydrytu po 7 dniach). Rozpoczyna się od temperatury zasilania 25°C przez 3 dni, a następnie podnosi się ją do temperatury projektowej na kolejne 4 dni w celu uwolnienia naprężeń i wilgoci technologicznej.</p>
                    
                    <div class="rk-faq-highlight">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Pominięcie wygrzewania skutkuje nieodwracalnym pękaniem płytek!
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(function(item) {
        var btn = item.querySelector('.rk-faq-btn');
        var content = item.querySelector('.rk-faq-content');
        
        btn.addEventListener('click', function() {
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie (opcjonalne - działanie akordeonu)
            faqItems.forEach(function(innerItem) {
                innerItem.classList.remove('active');
                innerItem.querySelector('.rk-faq-btn').setAttribute('aria-expanded', 'false');
                innerItem.querySelector('.rk-faq-content').style.maxHeight = null;
            });

            // Jeśli nie był aktywny, otwórz kliknięty
            if (isActive === false) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
                // Przypisanie dokładnej wysokości do płynnej animacji
                content.style.maxHeight = content.scrollHeight + 50 + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0ea5e9;
    --rk-fin-light-blue: #e0f2fe;
    --rk-fin-green: #10b981;
    --rk-fin-red: #ef4444;
    --rk-fin-gray: #64748b;
    --rk-fin-bg: #ffffff;
    --rk-fin-border: #cbd5e1;
}

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

/* Sekcja Nagłówkowa */
.rk-fin-header {
    padding: 40px 50px;
    background: var(--rk-fin-dark);
    color: #ffffff;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-fin-blue);
}

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

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

/* Interaktywny Widget Weryfikacyjny */
.rk-fin-widget {
    padding: 40px 50px;
    background: #f8fafc;
}

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

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

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

.rk-fin-tab:hover {
    border-color: var(--rk-fin-blue);
    background: var(--rk-fin-light-blue);
    color: var(--rk-fin-blue);
}

.rk-fin-tab.active {
    background: var(--rk-fin-blue);
    border-color: var(--rk-fin-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.3);
}

.rk-fin-tab svg {
    width: 20px;
    height: 20px;
}

/* Obszar wyświetlania danych */
.rk-fin-display {
    background: #ffffff;
    border: 1px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 35px;
    display: flex;
    align-items: flex-start;
    gap: 30px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.rk-fin-display-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--rk-fin-light-blue);
    color: var(--rk-fin-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-fin-display-icon svg { width: 40px; height: 40px; }

.rk-fin-display-content h4 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

.rk-fin-display-content .rk-alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fef2f2;
    border-left: 4px solid var(--rk-fin-red);
    border-radius: 0 6px 6px 0;
    color: #991b1b;
    font-size: 14px;
    font-weight: 600;
    margin-top: 10px;
}

/* Konkluzja i Tagi */
.rk-fin-conclusion {
    padding: 30px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-fin-border);
}

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

.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.rk-mat-tag {
    background: #f1f5f9;
    color: var(--rk-fin-dark);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

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

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

.rk-fin-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s ease;
    border: none;
    width: 100%;
    max-width: 500px;
}

.rk-fin-btn-cta:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-widget, .rk-fin-conclusion, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-title { font-size: 24px; }
    .rk-fin-tabs { flex-direction: column; }
    .rk-fin-display { flex-direction: column; align-items: center; text-align: center; padding: 25px 20px; }
    .rk-fin-display-content .rk-alert { text-align: left; }
    .rk-fin-btn-cta { padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie i kluczowe wnioski inżynieryjne z normy PN-EN 1264",
    "description": "Kodeks techniczny ogrzewania podłogowego. Poznaj maksymalną temperaturę podłogi, opór cieplny okładziny oraz limity długości pętli rury chroniące przed awarią.",
    "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-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-limity",
    "name": "Graniczne parametry instalacyjne normy PN-EN 1264",
    "description": "Zestawienie twardych danych technicznych dotyczących maksymalnych limitów operacyjnych dla wbudowanych systemów płaszczyznowych (temperatura, izolacja, hydraulika).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma pn en 1264",
      "maksymalna temperatura podłogi",
      "opór cieplny okładziny",
      "długość pętli ogrzewania podłogowego",
      "profesjonalny projekt instalacji"
    ],
    "measurementTechnique": "Wartości bezwzględne wynikające ze standardu europejskiego stosowane w procesie weryfikacji odbiorczej instalacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura w strefie stałego przebywania: 29°C",
        "Maksymalny dopuszczalny opór cieplny okładziny: 0,15 m2K/W",
        "Maksymalna długość pętli dla rury 16x2 mm: 100-120 metrów"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-weryfikator",
    "name": "Interaktywny Weryfikator Standardów PN-EN 1264",
    "description": "Symulator wizualizujący konsekwencje przekroczenia kluczowych limitów inżynieryjnych w wodnym ogrzewaniu podłogowym (niedogrzanie, awaria pompy, przegrzanie posadzki).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container">
    <div class="rk-fin-header">
        <h2 class="rk-fin-title">Podsumowanie i kluczowe wnioski inżynieryjne</h2>
        <p class="rk-fin-subtitle">
            Norma PN-EN 1264 to kompletny kodeks techniczny, który oddziela profesjonalne projektowanie instalacji HVAC od intuicyjnego układania rur przez przypadkowych wykonawców.
        </p>
    </div>

    <div class="rk-fin-widget">
        <h3 class="rk-fin-widget-title">Sprawdź 3 fundamenty bezpieczeństwa instalacji</h3>
        
        <div class="rk-fin-tabs" id="rkFinTabs">
            <button class="rk-fin-tab active" data-target="temp">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                Max. 29°C
            </button>
            <button class="rk-fin-tab" data-target="opor">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="16" width="20" height="4" rx="1"></rect><path d="M6 12h12M10 8h4M12 4v4"></path></svg>
                Max. 0,15 m²K/W
            </button>
            <button class="rk-fin-tab" data-target="petla">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Max. 120 m
            </button>
        </div>

        <div class="rk-fin-display" id="rkFinDisplay">
            <div class="rk-fin-display-icon">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
            </div>
            <div class="rk-fin-display-content">
                <h4>Ograniczenie temperatury w strefie mieszkalnej</h4>
                <p>Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Projektowanie instalacji wymagającej wyższych temperatur zasilania dla zrównoważenia strat ciepła to błąd inżynieryjny.</p>
                <p>Bezpieczeństwo konstrukcyjne oraz zdrowie domowników zależą od utrzymania tego limitu.</p>
                <div class="rk-alert">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Przegrzewanie posadzki obniża żywotność paneli.
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-conclusion">
        <p>
            Bezpieczeństwo konstrukcyjne, gwarancja stabilności posadzki oraz wysoka efektywność energetyczna nowoczesnych źródeł ciepła, takich jak <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">pompy ciepła</a> czy kotły kondensacyjne, są nierozerwalnie związane z przestrzeganiem reżimu matematycznego tej normy.
        </p>
        <p>
            Każda inwestycja w ogrzewanie płaszczyznowe powinna rozpoczynać się od sporządzenia profesjonalnego projektu instalacji opartego na rzeczywistych <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">obliczeniach strat ciepła budowlanego</a>. Próba oszczędności na etapie inżynieryjnym i działanie &#8222;na oko&#8221; skutkuje wadami, których usunięcie po stwardnieniu betonu wiąże się z ogromnymi kosztami naprawczymi.
        </p>
        <p style="font-weight: 700; color: var(--rk-fin-dark); margin-top: 20px;">
            💡 Jako specjalista HVAC rekomenduję: zawsze żądaj od swojego projektanta lub instalatora jasnej deklaracji zgodności wykonanych obliczeń z normą PN-EN 1264.
        </p>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># norma pn en 1264</span>
            <span class="rk-mat-tag"># profesjonalny projekt instalacji</span>
            <span class="rk-mat-tag"># obliczenia strat ciepła</span>
            <span class="rk-mat-tag"># maksymalna temperatura podłogi</span>
            <span class="rk-mat-tag"># opór cieplny okładziny</span>
            <span class="rk-mat-tag"># długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># koszt usunięcia awarii wylewki</span>
            <span class="rk-mat-tag"># efektywne ogrzewanie płaszczyznowe</span>
        </div>
    </div>

    <div class="rk-fin-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-fin-btn-cta">
            CZYTAJ DALEJ NA BLOGU EKSPERCKIM
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-fin-tab');
    var display = document.getElementById('rkFinDisplay');

    var contentData = {
        'temp': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>',
            title: 'Ograniczenie temperatury w strefie mieszkalnej',
            text1: 'Maksymalna temperatura w sferze mieszkalnej to bezwzględnie <strong>29°C</strong>. Próba ogrzania nieocieplonego domu wyłącznie podłogówką grozi łamaniem tego prawa.',
            text2: 'Zdrowie użytkowników oraz bezpieczeństwo materiałów podłogowych wymagają utrzymania parametrów niskotemperaturowych.',
            alert: 'Przegrzewanie posadzki skraca żywotność rur i klejów.'
        },
        'opor': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>',
            title: 'Bariera przewodnictwa posadzki',
            text1: 'Graniczny opór cieplny okładziny podłogowej wynosi <strong>0,15 m²K/W</strong>. Stosowanie grubych dywanów lub izolacyjnych podkładów blokuje strumień ciepła.',
            text2: 'Brak weryfikacji tego parametru przed wykonaniem <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color: var(--rk-fin-blue); font-weight: 700; text-decoration: none;">rozstawu rur</a> spowoduje permanentne niedogrzanie salonu.',
            alert: 'Zawsze konsultuj zmianę podłogi z projektantem!'
        },
        'petla': {
            icon: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path><line x1="4" y1="22" x2="4" y2="15"></line></svg>',
            title: 'Krytyczne opory hydrauliczne obiegu',
            text1: 'Maksymalna długość pętli rury 16 mm nie powinna przekraczać <strong>100–120 m</strong>, aby utrzymać opory hydrauliczne w ryzach.',
            text2: 'Tworzenie pętli o długości 150 m prowadzi do zjawiska, w którym woda przestaje płynąć na końcu układu. Pompa obiegowa nie jest w stanie pokonać tarcia.',
            alert: 'Zbyt długa pętla = zimna strefa na środku pokoju.'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            var target = this.getAttribute('data-target');
            var data = contentData[target];

            if (data !== undefined) {
                // Remove active class from all
                tabs.forEach(function(t) { t.classList.remove('active'); });
                // Add active to clicked
                this.classList.add('active');

                // Update content cleanly
                display.innerHTML = 
                    '<div class="rk-fin-display-icon">' + data.icon + '</div>' +
                    '<div class="rk-fin-display-content">' +
                        '<h4>' + data.title + '</h4>' +
                        '<p>' + data.text1 + '</p>' +
                        '<p>' + data.text2 + '</p>' +
                        '<div class="rk-alert">' +
                            '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> ' +
                            data.alert +
                        '</div>' +
                    '</div>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-slate: #475569;
    --rk-dl-blue: #2563eb;
    --rk-dl-blue-light: #eff6ff;
    --rk-dl-emerald: #059669;
    --rk-dl-emerald-light: #ecfdf5;
    --rk-dl-bg: #ffffff;
    --rk-dl-gray: #f8fafc;
    --rk-dl-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-dl-header {
    padding: 35px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-emerald);
    text-align: center;
}

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(5, 150, 105, 0.2);
    color: #6ee7b7;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(5, 150, 105, 0.3);
}

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

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

/* Pozioma Nawigacja (Przyciski na górze) */
.rk-dl-nav {
    display: flex;
    background: var(--rk-dl-gray);
    padding: 20px 40px;
    gap: 20px;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-nav-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-dl-slate);
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-dl-nav-btn:hover {
    border-color: #94a3b8;
}

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

.rk-dl-nav-btn svg {
    flex-shrink: 0;
}

/* Obszar Treści (Grafika / Pobieranie pod spodem) */
.rk-dl-content {
    padding: 40px;
    background: var(--rk-dl-bg);
}

.rk-dl-view {
    display: none;
}

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

/* Widok 1: Podgląd Grafiki */
.rk-dl-preview-wrapper {
    background: var(--rk-dl-gray);
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.rk-dl-preview-img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15);
    border: 1px solid var(--rk-dl-border);
    display: block;
    margin: 0 auto;
}

/* Widok 2: Sekcja Pobierania */
.rk-dl-download-wrapper {
    background: var(--rk-dl-emerald-light);
    border: 2px solid var(--rk-dl-emerald);
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
}

.rk-dl-file-specs {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-dl-spec-badge {
    background: #ffffff;
    color: #065f46;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
    border: 1px solid #a7f3d0;
}

.rk-dl-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-emerald);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 12px;
    text-decoration: none;
    text-transform: uppercase;
}

.rk-dl-action-btn:hover {
    background: #047857;
}

/* Stopka (Na samym dole) */
.rk-dl-footer {
    background: var(--rk-dl-gray);
    padding: 25px 40px;
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 20px;
    align-items: center;
}

.rk-dl-footer-icon {
    width: 48px;
    height: 48px;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-slate);
    flex-shrink: 0;
}

.rk-dl-footer-text {
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-slate);
    margin: 0;
}

.rk-dl-footer-text strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
    display: block;
    margin-bottom: 4px;
}

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

/* Tagi SEO */
.rk-dl-tags {
    padding: 0 40px 30px;
    background: var(--rk-dl-gray);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-dl-tag {
    background: #ffffff;
    color: var(--rk-dl-slate);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid var(--rk-dl-border);
    text-decoration: none;
}

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

@media (max-width: 768px) {
    .rk-dl-header, .rk-dl-content, .rk-dl-footer, .rk-dl-tags { padding: 25px 20px; }
    .rk-dl-nav { padding: 20px; flex-direction: column; gap: 10px; }
    .rk-dl-footer { flex-direction: column; text-align: center; }
    .rk-dl-action-btn { width: 100%; padding: 15px 20px; font-size: 16px; }
    .rk-dl-file-specs { flex-direction: column; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#article-pobieranie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/"
    },
    "headline": "Materiały do pobrania: Infografika PN-EN 1264 w formacie PDF",
    "description": "Zdobądź inżynieryjną ściągawkę z normy PN-EN 1264. Darmowy plik PDF dla instalatorów przygotowany przez Roberta Kucharskiego do pobrania i wydruku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-18",
    "dateModified": "2026-06-18"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Inżynieryjna Infografika: Norma PN-EN 1264 (PDF)",
    "description": "Wizualne zestawienie parametrów technicznych ogrzewania podłogowego w postaci zoptymalizowanego dokumentu PDF przeznaczonego na place budowy.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "norma pn-en 1264 do druku",
      "ściągawka instalatora podłogówki",
      "schemat układania rur ogrzewania",
      "parametry podłogówki pdf"
    ],
    "measurementTechnique": "Kompilacja kluczowych wytycznych hydraulicznych i konstrukcyjnych w formacie grafiki wektorowej/PDF wysokiej rozdzielczości.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku miniatury: WebP (Szybkie ładowanie)",
        "Format pliku bazowego: PDF (Gotowy do druku)",
        "Ograniczenia licencyjne: Zakaz modyfikacji, obowiązek zachowania logotypu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/#webapp-dystrybucja",
    "name": "Centrum Pobierania Materiałów Edukacyjnych HVAC",
    "description": "Interaktywny widget dystrybucyjny o układzie horyzontalnym umożliwiający podgląd miniatury materiału szkoleniowego (WebP) oraz bezpieczne pobranie zasobu bazowego (PDF).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-center-modern">
    <div class="rk-dl-header">
        <div class="rk-dl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            Materiały dla Ciebie
        </div>
        <h2>Pobierz infografikę z normą PN-EN 1264</h2>
        <p>Przygotowałem dla Ciebie czytelną, inżynieryjną ściągawkę. Pobierz darmowy plik PDF, wydrukuj go i zabierz ze sobą na budowę, aby uniknąć kosztownych błędów.</p>
    </div>

    <div class="rk-dl-nav" id="rkDlNav">
        <button class="rk-dl-nav-btn active" data-view="podglad">
            <svg width="22" height="22" 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><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
            Podgląd Grafiki
        </button>

        <button class="rk-dl-nav-btn" data-view="pobieranie">
            <svg width="22" height="22" 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="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
            Pobierz Plik PDF
        </button>
    </div>

    <div class="rk-dl-content">
        
        <div class="rk-dl-view active" id="view-podglad">
            <div class="rk-dl-preview-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.webp" alt="Podgląd infografiki przedstawiającej normę PN-EN 1264" class="rk-dl-preview-img" loading="lazy">
            </div>
        </div>

        <div class="rk-dl-view" id="view-pobieranie">
            <div class="rk-dl-download-wrapper">
                <div class="rk-dl-file-specs">
                    <span class="rk-dl-spec-badge">Format: PDF</span>
                    <span class="rk-dl-spec-badge">Rozdzielczość: Druk (300 DPI)</span>
                    <span class="rk-dl-spec-badge">Rozmiar A4 / A3</span>
                </div>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-PN-EN-1264-Norma-ktora-definiuje-ogrzewanie-podlogowe.pdf" download="Infografika-PN-EN-1264.pdf" class="rk-dl-action-btn">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz Dokument PDF
                </a>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <div class="rk-dl-footer-icon">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><path d="M15 9.354a4 4 0 1 0 0 5.292"></path></svg>
        </div>
        <p class="rk-dl-footer-text">
            <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. Zobacz nasze inne <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekty z pompą ciepła</a>.
        </p>
    </div>

    <div class="rk-dl-tags">
        <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-dl-tag"># wylewka betonowa na podłogówkę</a>
        <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-dl-tag"># kalkulator doboru pompy</a>
        <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/" class="rk-dl-tag"># pojemność wodna instalacji pdf</a>
        <a href="#" class="rk-dl-tag"># schemat podłogówki do druku</a>
        <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-dl-tag"># rozdzielacz podłogówki schemat</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var navBtns = document.querySelectorAll('#rkDlNav .rk-dl-nav-btn');
    
    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var targetId = this.getAttribute('data-view');
            
            // Twarde usunięcie klas 'active' - brak animacji
            navBtns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Bezpieczne ukrycie widoków (użycie prostego if)
            var viewPodglad = document.getElementById('view-podglad');
            var viewPobieranie = document.getElementById('view-pobieranie');
            
            if (viewPodglad !== null) { viewPodglad.classList.remove('active'); }
            if (viewPobieranie !== null) { viewPobieranie.classList.remove('active'); }
            
            // Włączenie odpowiedniego przycisku i widoku
            this.classList.add('active');
            var activeView = document.getElementById('view-' + targetId);
            
            if (activeView !== null) {
                activeView.classList.add('active');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264: Norma, która definiuje ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 31 Dec 2025 08:26:13 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[norma pn-en 12831]]></category>
		<category><![CDATA[obciążenie cieplne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka wodna]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[temperatura efektywna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3019</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe kojarzy się z komfortem, równomiernym ciepłem i niższymi rachunkami, ale tylko wtedy, gdy jest prawidłowo zaprojektowane. Właśnie dlatego tak duże znaczenie ma Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego. To ona określa, jak obliczać rzeczywiste zapotrzebowanie cieplne budynku, uwzględniając nie tylko temperaturę powietrza, ale także temperaturę przegród i odczuwalny komfort użytkownika. W artykule wyjaśniamy, dlaczego temperatura efektywna zmienia podejście do projektowania podłogówki i jak przekłada się to na realne oszczędności oraz wygodę na lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Planując budowę lub modernizację domu, wybór&nbsp;<strong>ogrzewania podłogowego</strong>&nbsp;to jedna z najlepszych decyzji gwarantujących długoterminowy komfort. Jednak, aby system działał efektywnie, ekonomicznie i zapewniał przyjemne ciepło, jego projekt musi opierać się na solidnych fundamentach obliczeniowych. Tu z pomocą przychodzi&nbsp;<strong>norma PN-EN 12831</strong>, często nazywana „biblią” projektantów instalacji grzewczych. W niniejszym artykule w przystępny sposób wyjaśnimy, czym jest ta techniczna specyfikacja i dlaczego jest tak istotna właśnie dla&nbsp;<strong>wodnego ogrzewania podłogowego</strong>.</p>



<h2 class="wp-block-heading">Czym właściwie jest norma PN-EN 12831?</h2>



<p class="wp-block-paragraph"><strong>Norma PN-EN 12831</strong>&nbsp;(a ściślej jej aktualna część:&nbsp;<strong>PN-EN 12831-1:2017-08</strong>) to oficjalny, zharmonizowany dokument, który precyzyjnie określa&nbsp;<strong>metodologię obliczania projektowego obciążenia cieplnego budynków</strong>. W dużym uproszczeniu odpowiada na fundamentalne pytanie:&nbsp;<strong>Ile ciepła musi dostarczyć nasza instalacja grzewcza, aby w największe mrozy utrzymać w pomieszczeniach założoną, komfortową temperaturę?</strong></p>



<p class="wp-block-paragraph">Jej stosowanie jest nie tylko dobrą praktyką inżynierską, ale często&nbsp;<strong>wymogiem prawnym</strong>&nbsp;przy ubieganiu się o pozwolenia budowlane czy dotacje (np. w programie „Czyste Powietrze”). Norma zapewnia, że system grzewczy będzie odpowiednio dobrany – ani przewymiarowany (co pociąga za sobą wyższe koszty inwestycyjne i eksploatacyjne), ani zbyt słaby (co prowadzi do niedogrzania budynku).</p>



<h3 class="wp-block-heading">Dlaczego dla podłogówki ta norma jest szczególnie ważna?</h3>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl">Wodne ogrzewanie podłogowe</a></strong> to system grzewczy <strong>powierzchniowy i niskotemperaturowy</strong>. Działa inaczej niż tradycyjne grzejniki, które nagrzewają się do wysokiej temperatury (np. 70°C) i szybko oddają ciepło głównie przez konwekcję (ruch powietrza). Podłogówka to wielkopowierzchniowy „kaloryfer” wylany w wylewce, pracujący w temperaturze zasilania zwykle między 35 a 55°C. Oddaje ciepło w sposób <strong>jednorodny i łagodny</strong>, w około 70% przez <strong>promieniowanie podczerwone</strong>.</p>



<p class="wp-block-paragraph">To fundamentalna różnica w fizyce działania, która&nbsp;<strong>musi</strong>&nbsp;znaleźć odzwierciedlenie w obliczeniach. I tutaj właśnie&nbsp;<strong>norma PN-EN 12831</strong>&nbsp;wprowadza kluczowe pojęcie, które zmienia postrzeganie strat cieplnych w pomieszczeniu z podłogówką.</p>



<h2 class="wp-block-heading">Rewolucyjne pojęcie: temperatura efektywna (θ&lt;sub>eff&lt;/sub>)</h2>



<p class="wp-block-paragraph">To serce obliczeń dla ogrzewania powierzchniowego według&nbsp;<strong>normy PN-EN 12831</strong>. Dla systemów konwekcyjnych (grzejników) przyjmuje się, że komfort zapewnia określona&nbsp;<strong>temperatura powietrza</strong>&nbsp;w pomieszczeniu (np. 20°C). Straty ciepła oblicza się właśnie jako potrzebę utrzymania tej temperatury powietrza.</p>



<p class="wp-block-paragraph">Jednak nasze odczucie ciepła zależy nie tylko od temperatury powietrza, ale także od&nbsp;<strong>temperatury otaczających nas powierzchni</strong>&nbsp;(tzw. temperatura promieniowania). Zimna ściana lub okno „wyciąga” z nas ciepło przez promieniowanie, nawet jeśli termometr pokazuje 22°C.</p>



<p class="wp-block-paragraph"><strong>Ogrzewanie podłogowe radykalnie zmienia tę sytuację.</strong>&nbsp;Ciepła podłoga ogrzewa nie tylko powietrze, ale przede wszystkim&nbsp;<strong>wszystkie przegrody i przedmioty w pomieszczeniu</strong>&nbsp;przez promieniowanie. W efekcie ściany, meble i sufit stają się przyjemnie „dotłoczone”, a my odczuwamy wyższy komfort termiczny przy tej samej lub nawet nieco niższej temperaturze powietrza.</p>



<p class="wp-block-paragraph"><strong>Norma PN-EN 12831</strong>&nbsp;wychodzi naprzeciw tym zjawiskom, wprowadzając do obliczeń&nbsp;<strong>temperaturę efektywną</strong>. Jest to&nbsp;<strong>średnia ważona temperatury powietrza i średniej temperatury powierzchni przegród</strong>.</p>



<h2 class="wp-block-heading">Definicja temperatury efektywnej według normy PN-EN 12831.</h2>



<style>
.table-pnen12831 {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-pnen12831 th,
.table-pnen12831 td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  vertical-align: top;
}

.table-pnen12831 th {
  background: #f4f4f4;
  font-weight: 600;
  width: 30%;
}

@media (max-width: 768px) {
  .table-pnen12831,
  .table-pnen12831 tbody,
  .table-pnen12831 tr,
  .table-pnen12831 td,
  .table-pnen12831 th {
    display: block;
    width: 100%;
  }

  .table-pnen12831 tr {
    margin-bottom: 15px;
  }

  .table-pnen12831 th {
    background: none;
    padding-bottom: 5px;
  }

  .table-pnen12831 td {
    padding-top: 5px;
  }
}
</style>

<table class="table-pnen12831">
  <tr>
    <th>Wzór uproszczony</th>
    <td>
      θ<sub>eff</sub> = A · θ<sub>int</sub> + (1 − A) · θ<sub>s</sub>
    </td>
  </tr>
  <tr>
    <th>θ<sub>eff</sub></th>
    <td>Poszukiwana temperatura efektywna [°C]</td>
  </tr>
  <tr>
    <th>θ<sub>int</sub></th>
    <td>Projektowa temperatura powietrza w pomieszczeniu (np. +20°C)</td>
  </tr>
  <tr>
    <th>θ<sub>s</sub></th>
    <td>
      Średnia temperatura wewnętrznych powierzchni wszystkich przegród
      (ścian, okien, sufitu) otaczających pomieszczenie [°C]
    </td>
  </tr>
  <tr>
    <th>A</th>
    <td>
      Współczynnik korygujący, zwykle przyjmowany jako <strong>0,5</strong>
      dla standardowych pomieszczeń
    </td>
  </tr>
</table>




<p class="wp-block-paragraph">Powyższa tabela porządkuje <strong>kluczowe pojęcia i symbole</strong> wykorzystywane w normie <strong>PN-EN 12831</strong> przy obliczaniu temperatury efektywnej θ&lt;sub&gt;eff&lt;/sub&gt;. Norma ta uwzględnia fakt, że <strong>odczuwalny komfort cieplny</strong> w pomieszczeniu nie zależy wyłącznie od temperatury powietrza, lecz również od temperatury wewnętrznych powierzchni przegród, takich jak ściany, okna czy sufit.</p>



<p class="wp-block-paragraph">Zastosowany wzór uproszczony pokazuje, w jaki sposób temperatura powietrza θ&lt;sub&gt;int&lt;/sub&gt; oraz średnia temperatura przegród θ&lt;sub&gt;s&lt;/sub&gt; są łączone za pomocą współczynnika korygującego A. Dzięki temu projektant instalacji grzewczej może <strong>dokładniej ocenić warunki cieplne w pomieszczeniu</strong> i lepiej dopasować parametry systemu ogrzewania do rzeczywistego komfortu użytkowników.</p>



<h2 class="wp-block-heading">Przykład obliczeniowy temperatury efektywnej zgodnie z PN-EN 12831</h2>



<style>
.table-pnen12831-example {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-pnen12831-example th,
.table-pnen12831-example td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  vertical-align: top;
}

.table-pnen12831-example th {
  background: #f4f4f4;
  font-weight: 600;
  width: 35%;
}

.table-pnen12831-example .result {
  background: #eef6ff;
  font-weight: 600;
}

@media (max-width: 768px) {
  .table-pnen12831-example,
  .table-pnen12831-example tbody,
  .table-pnen12831-example tr,
  .table-pnen12831-example td,
  .table-pnen12831-example th {
    display: block;
    width: 100%;
  }

  .table-pnen12831-example tr {
    margin-bottom: 15px;
  }

  .table-pnen12831-example th {
    background: none;
    padding-bottom: 5px;
  }

  .table-pnen12831-example td {
    padding-top: 5px;
  }
}
</style>

<table class="table-pnen12831-example">
  <tr>
    <th>Dane wejściowe</th>
    <td>
      θ<sub>int</sub> = 20°C<br>
      θ<sub>s</sub> = 17°C<br>
      A = 0,5
    </td>
  </tr>
  <tr>
    <th>Wzór</th>
    <td>
      θ<sub>eff</sub> = A · θ<sub>int</sub> + (1 − A) · θ<sub>s</sub>
    </td>
  </tr>
  <tr>
    <th>Podstawienie</th>
    <td>
      θ<sub>eff</sub> = 0,5 · 20 + (1 − 0,5) · 17
    </td>
  </tr>
  <tr>
    <th>Obliczenie</th>
    <td>
      θ<sub>eff</sub> = 10 + 8,5
    </td>
  </tr>
  <tr class="result">
    <th>Wynik</th>
    <td>
      θ<sub>eff</sub> = <strong>18,5°C</strong>
    </td>
  </tr>
</table>




<p class="wp-block-paragraph">Powyższa tabela przedstawia <strong>praktyczny przykład obliczenia temperatury efektywnej θ&lt;sub&gt;eff&lt;/sub&gt;</strong>, która jest wykorzystywana w normie <strong>PN-EN 12831</strong> do bardziej realistycznej oceny warunków komfortu cieplnego w pomieszczeniu.</p>



<p class="wp-block-paragraph">W przykładzie przyjęto <strong>projektową temperaturę powietrza θ&lt;sub&gt;int&lt;/sub&gt; = 20°C</strong>, średnią temperaturę wewnętrznych powierzchni przegród <strong>θ&lt;sub&gt;s&lt;/sub&gt; = 17°C</strong> oraz standardowy współczynnik korygujący <strong>A = 0,5</strong>. Po podstawieniu danych do wzoru widać wyraźnie, że <strong>odczuwalna temperatura w pomieszczeniu wynosi 18,5°C</strong>, a więc jest niższa niż sama temperatura powietrza.</p>



<p class="wp-block-paragraph">To właśnie ten efekt pokazuje, dlaczego w nowoczesnym projektowaniu instalacji grzewczych – szczególnie przy <strong>ogrzewaniu podłogowym</strong> – tak istotna jest temperatura przegród, a nie wyłącznie wskazanie termometru. Dzięki uwzględnieniu temperatury efektywnej możliwe jest <strong>dokładniejsze dopasowanie mocy grzewczej</strong>, lepszy komfort użytkowników oraz ograniczenie ryzyka przegrzewania pomieszczeń.</p>



<h2 class="wp-block-heading">Temperatura powietrza a temperatura odczuwalna – porównanie praktyczne.</h2>



<p class="wp-block-paragraph">Poniższa tabela pokazuje <strong>różnicę między temperaturą powietrza a temperaturą odczuwalną (efektywną)</strong> w pomieszczeniu. Zestawienie jasno obrazuje, dlaczego samo utrzymywanie określonej temperatury na termostacie <strong>nie zawsze oznacza realny komfort cieplny</strong>. Kluczowe znaczenie ma tu temperatura przegród, która w normie PN-EN 12831 wpływa bezpośrednio na temperaturę efektywną.</p>



<style>
.table-thermal-compare {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 16px;
}

.table-thermal-compare th,
.table-thermal-compare td {
  border: 1px solid #dcdcdc;
  padding: 12px;
  text-align: center;
  vertical-align: middle;
}

.table-thermal-compare th {
  background: #f4f4f4;
  font-weight: 600;
}

.table-thermal-compare .cool {
  background: #fff5f5;
}

.table-thermal-compare .warm {
  background: #f1f8f4;
}

@media (max-width: 768px) {
  .table-thermal-compare,
  .table-thermal-compare thead,
  .table-thermal-compare tbody,
  .table-thermal-compare tr,
  .table-thermal-compare th,
  .table-thermal-compare td {
    display: block;
    width: 100%;
  }

  .table-thermal-compare thead {
    display: none;
  }

  .table-thermal-compare tr {
    margin-bottom: 15px;
    border: 1px solid #ddd;
  }

  .table-thermal-compare td {
    text-align: right;
    padding-left: 50%;
    position: relative;
  }

  .table-thermal-compare td::before {
    content: attr(data-label);
    position: absolute;
    left: 12px;
    width: 45%;
    text-align: left;
    font-weight: 600;
  }
}
</style>

<table class="table-thermal-compare">
  <thead>
    <tr>
      <th>Przypadek</th>
      <th>Temperatura powietrza θ<sub>int</sub></th>
      <th>Temperatura przegród θ<sub>s</sub></th>
      <th>Temperatura odczuwalna θ<sub>eff</sub></th>
      <th>Subiektywne odczucie</th>
    </tr>
  </thead>
  <tbody>
    <tr class="cool">
      <td data-label="Przypadek">Chłodne przegrody</td>
      <td data-label="Temperatura powietrza">20°C</td>
      <td data-label="Temperatura przegród">16–17°C</td>
      <td data-label="Temperatura odczuwalna">≈ 18–18,5°C</td>
      <td data-label="Odczucie">Chłodno, dyskomfort</td>
    </tr>
    <tr class="warm">
      <td data-label="Przypadek">Ciepłe przegrody</td>
      <td data-label="Temperatura powietrza">20°C</td>
      <td data-label="Temperatura przegród">19–20°C</td>
      <td data-label="Temperatura odczuwalna">≈ 19,5–20°C</td>
      <td data-label="Odczucie">Komfort cieplny</td>
    </tr>
  </tbody>
</table>




<h3 class="wp-block-heading">Praktyczny przykład obliczeniowy.</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie łazienkę o&nbsp;<strong>temperaturze projektowej powietrza</strong>&nbsp;θ&lt;sub&gt;int&lt;/sub&gt;&nbsp;=&nbsp;<strong>24°C</strong>.<br>Ściana zewnętrzna z oknem ma temperaturę powierzchni wewnętrznej 18°C. Pozostałe ściany wewnętrzne, sufit i podłoga (ale nie ta grzewcza!) mają średnią temperaturę 22°C. Po uśrednieniu otrzymujemy&nbsp;<strong>średnią temperaturę powierzchni</strong>&nbsp;θ&lt;sub&gt;s&lt;/sub&gt;&nbsp;=&nbsp;<strong>20,5°C</strong>.</p>



<p class="wp-block-paragraph"><strong>Obliczamy temperaturę efektywną dla ogrzewania podłogowego:</strong><br>θ&lt;sub&gt;eff&lt;/sub&gt;&nbsp;= 0,5 · 24°C + 0,5 · 20,5°C =&nbsp;<strong>22,25°C</strong></p>



<p class="wp-block-paragraph"><strong>Co to oznacza?</strong>&nbsp;Dla zapewnienia komfortu użytkownika w tej łazience z&nbsp;<strong>ogrzewaniem podłogowym</strong>, system musi zrównoważyć straty ciepła potrzebne do utrzymania&nbsp;<strong>efektywnej temperatury 22,25°C</strong>, a nie pełnych 24°C.</p>



<p class="wp-block-paragraph">Gdybyśmy projektowali w tej samej łazience&nbsp;<strong>grzejnik</strong>, obliczenia prowadzilibyśmy wprost dla 24°C.&nbsp;<strong>Straty ciepła obliczone dla ogrzewania podłogowego będą zatem niższe!</strong>&nbsp;To właśnie&nbsp;<strong>główna korzyść i sedno zastosowania normy PN-EN 12831</strong>&nbsp;w tym kontekście.</p>



<h2 class="wp-block-heading">Jak to przekłada się na projekt i koszty?</h2>



<p class="wp-block-paragraph">Zastosowanie&nbsp;<strong>temperatury efektywnej</strong>&nbsp;ma bezpośrednie i bardzo korzystne konsekwencje:</p>



<ol start="1" class="wp-block-list">
<li><strong>Obniżenie projektowego obciążenia cieplnego budynku:</strong> W praktyce oznacza to, że <strong>zapotrzebowanie na ciepło</strong> całego domu z ogrzewaniem podłogowym, obliczone zgodnie z <strong>normą PN-EN 12831</strong>, może być <strong>o 10% do nawet 20% niższe</strong> niż dla identycznego budynku z grzejnikami. To nie jest oszczędność „na papierze”, tylko realne odzwierciedlenie wyższego komfortu i sprawności systemu powierzchniowego.</li>



<li><strong>Optymalizacja źródła ciepła:</strong> Niższe zapotrzebowanie na moc oznacza, że możemy wybrać <strong>mniejszy kocioł, mniej wydajną (lub tańszą) pompę ciepła czy mniejszą ilość kolektorów słonecznych</strong>. To <strong>bezpośrednia redukcja kosztów inwestycyjnych</strong>.</li>



<li><strong>Niższe koszty eksploatacji:</strong> System pracujący w oparciu o prawidłowe, niższe parametry projektowe będzie zużywał mniej energii, by utrzymać komfort. Dzieje się tak dlatego, że rzeczywiste straty budynku są właśnie takie, jak obliczono – niższe.</li>



<li><strong>Właściwe dobranie pętli podłogowych:</strong> W projekcie <strong>instalacji podłogowej</strong> dla każdego pomieszczenia inżynier, znając już rzeczywiste straty cieplne (obliczone z θ&lt;sub>eff&lt;/sub>), dobiera <strong>rozstaw rur</strong>, <strong>średnicę</strong> oraz <strong>długość pętli</strong>. Dzięki temu każdy fragment podłogi będzie emitował dokładnie tyle ciepła, ile potrzeba, unikając przegrzewania lub niedogrzania.</li>
</ol>



<h3 class="wp-block-heading">Strefy brzegowe – gdzie norma wymaga szczególnej uwagi.</h3>



<p class="wp-block-paragraph">Nie cała podłoga jest jednak taka sama.&nbsp;<strong>Norma PN-EN 12831</strong>&nbsp;wyraźnie wskazuje na konieczność oddzielnego traktowania tzw.&nbsp;<strong>stref brzegowych</strong>. Są to pasy o szerokości około 1 metra wzdłuż ścian zewnętrznych, drzwi balkonowych czy dużych okien. W tych miejscach straty ciepła przez przegrodę są największe (tzw. mostki cieplne).</p>



<p class="wp-block-paragraph">Dlatego w projekcie ogrzewania podłogowego, oprócz obliczeń głównych, <strong>konieczne jest sprawdzenie i ewentualne zwiększenie mocy grzewczej w strefach brzegowych</strong>. Robi się to najczęściej poprzez <strong><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">zagęszczenie pętli grzewczych</a></strong> (np. rozstaw co 10 cm zamiast standardowych 15-20 cm) lub zastosowanie dodatkowej, niezależnej pętli o wyższej temperaturze zasilania. Jest to kluczowe dla wyeliminowania uczucia „zimnej podłogi” przy oknie i zabezpieczenia przed wykraplaniem wilgoci.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a norma PN-EN 12831 – nierozerwalny związek</h2>



<p class="wp-block-paragraph"><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">Projekt ogrzewania podłogowego</a></strong>, który ma być gwarantem komfortu i efektywności, <strong>musi zaczynać się od obliczeń wykonanych zgodnie z normą PN-EN 12831-1</strong>. To nie jest opcja, a <strong>podstawa</strong>. Prawidłowo wykonane obliczenia strat ciepła z użyciem <strong>temperatury efektywnej</strong> stanowią punkt wyjścia do dalszych, bardziej szczegółowych etapów projektowania systemu podłogowego, które reguluje już inna, równie ważna norma – <strong>PN-EN 1264</strong> (dotycząca bezpośrednio wymagań, wykonania i obliczeń dla ogrzewania powierzchniowego).</p>



<p class="wp-block-paragraph"><strong>Dobry <a href="https://projekt-ogrzewania.pl/kontakt/">projektant</a> nie ogranicza się tylko do wbicia liczb do programu.</strong> Analizuje orientację pomieszczeń względem stron świata, rodzaj i jakość okien, izolacyjność przegród oraz sposób użytkowania budynku. Wszystkie te dane wpływają na parametry wejściowe do obliczeń według <strong>normy PN-EN 12831</strong>, a finalnie na precyzyjny rozkład pętli grzewczych na planie budynku, schemat hydrauliczny z <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielaczami</a> oraz specyfikację materiałową.</p>



<p class="wp-block-paragraph">Inwestor, zlecając projekt, powinien oczekiwać dokumentu, który w sposób przejrzysty wykazuje, że obliczenia zostały wykonane zgodnie z tą normą. To inwestycja w pewność, że wydane pieniądze przyniosą oczekiwany efekt – ciepły, zdrowy i tani w utrzymaniu dom.</p>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767167045104"><strong class="schema-faq-question"><strong>Czym jest norma PN-EN 12831?</strong></strong> <p class="schema-faq-answer">Norma PN-EN 12831 to dokument określający sposób obliczania projektowego obciążenia cieplnego budynków, czyli ilości ciepła potrzebnej do utrzymania komfortowej temperatury zimą.</p> </div> <div class="schema-faq-section" id="faq-question-1767167054102"><strong class="schema-faq-question"><strong>Dlaczego norma PN-EN 12831 jest tak ważna przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Ponieważ uwzględnia temperaturę efektywną, a nie tylko temperaturę powietrza, co lepiej oddaje rzeczywisty komfort cieplny przy ogrzewaniu powierzchniowym.</p> </div> <div class="schema-faq-section" id="faq-question-1767167073369"><strong class="schema-faq-question"><strong>Co to jest temperatura efektywna?</strong></strong> <p class="schema-faq-answer">Temperatura efektywna to średnia ważona temperatury powietrza i temperatury powierzchni przegród, która lepiej opisuje to, jak ciepło odczuwają użytkownicy.</p> </div> <div class="schema-faq-section" id="faq-question-1767167087477"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe zawsze wymaga mniejszej mocy niż grzejniki?</strong></strong> <p class="schema-faq-answer">W wielu przypadkach tak, ponieważ ciepłe przegrody poprawiają komfort i pozwalają obniżyć projektowe obciążenie cieplne nawet o 10–20%.</p> </div> <div class="schema-faq-section" id="faq-question-1767167106268"><strong class="schema-faq-question"><strong>Czy <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a> musi być wykonany zgodnie z PN-EN 12831?</strong></strong> <p class="schema-faq-answer">Tak, jeśli ma być poprawny technicznie, komfortowy i ekonomiczny. To podstawa do dalszego projektowania zgodnie z normą PN-EN 1264.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph"><strong>Podsumowując, norma PN-EN 12831 to znacznie więcej niż suchy, techniczny dokument.</strong> To <strong>narzędzie</strong>, które pozwala w sposób naukowy i ustandaryzowany „oswoić” fizykę budynku i wykorzystać unikalne zalety <strong>wodnego ogrzewania podłogowego</strong>. Jej zastosowanie jest gwarancją, że system nie będzie oparty na przeczuciach lub nadmiernych marginesach bezpieczeństwa, lecz na racjonalnych, optymalnych obliczeniach. </p>



<p class="wp-block-paragraph">Dzięki temu końcowy użytkownik przez dziesiątki lat może cieszyć się niewidocznym, cichym i niezwykle przyjemnym ciepłem, które emanuje z podłogi, jednocześnie płacąc niższe rachunki za energię. To połączenie komfortu i ekonomii, które czyni <strong>ogrzewanie podłogowe</strong> projektowanym zgodnie z <strong>normą PN-EN 12831</strong> jednym z najlepszych rozwiązań dla nowoczesnego, energooszczędnego budownictwa.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="z6mjNc6Byi"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=KvnvA82AIp#?secret=z6mjNc6Byi" data-secret="z6mjNc6Byi" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">Norma PN-EN 12831: Klucz do efektywnego i komfortowego ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</title>
		<link>https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Nov 2025 08:28:46 +0000</pubDate>
				<category><![CDATA[Izolacje termiczne]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Materiały do podłogówki]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy i regulacje]]></category>
		<category><![CDATA[Normy i standardy]]></category>
		<category><![CDATA[Normy techniczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Styropian]]></category>
		<category><![CDATA[eps 100]]></category>
		<category><![CDATA[eps 200]]></category>
		<category><![CDATA[grubość styropianu]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[styropian]]></category>
		<category><![CDATA[warunki techniczne]]></category>
		<category><![CDATA[współczynnik lambda]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2850</guid>

					<description><![CDATA[<p>Planując instalację ogrzewania podłogowego, jednym z najważniejszych, choć często niedocenianych aspektów, jest odpowiednie dobranie izolacji termicznej. Wiele osób zadaje sobie wtedy kluczowe pytanie: ile styropianu pod ogrzewanie podłogowe będzie optymalne? Odpowiedź nie jest jednoznaczna, ponieważ zależy od typu konstrukcji, lokalizacji oraz parametrów technicznych samego materiału. W naszym kompleksowym artykule w techniczny i szczegółowy sposób wyjaśniamy, jak precyzyjnie obliczyć wymaganą grubość warstwy izolacyjnej, jakie normy prawne muszą być spełnione oraz na jakie zaawansowane parametry, takie jak współczynnik lambda czy wytrzymałość na ściskanie, należy zwrócić uwagę. Dowiesz się również, jak uniknąć kosztownych błędów i zapewnić swojemu systemowi grzewczemu maksymalną efektywność energetyczną na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-insulation-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-orange-soft: #fff2ec;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-insulation-guide,
  #rk-insulation-guide * {
    box-sizing: border-box;
  }

  #rk-insulation-guide img,
  #rk-insulation-guide svg {
    max-width: 100%;
  }

  #rk-insulation-guide a {
    color: var(--rk-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-insulation-guide button,
  #rk-insulation-guide input,
  #rk-insulation-guide select {
    font: inherit;
  }

  #rk-insulation-guide button,
  #rk-insulation-guide summary,
  #rk-insulation-guide a {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4,
  #rk-insulation-guide p,
  #rk-insulation-guide ul,
  #rk-insulation-guide ol,
  #rk-insulation-guide blockquote {
    margin-top: 0;
  }

  #rk-insulation-guide h2,
  #rk-insulation-guide h3,
  #rk-insulation-guide h4 {
    color: var(--rk-dark);
    line-height: 1.18;
    letter-spacing: -0.025em;
  }

  #rk-insulation-guide h2 {
    margin-bottom: 22px;
    font-size: clamp(30px, 4vw, 48px);
    scroll-margin-top: 30px;
  }

  #rk-insulation-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(22px, 2.4vw, 29px);
  }

  #rk-insulation-guide h4 {
    margin-bottom: 9px;
    font-size: 20px;
  }

  #rk-insulation-guide p:last-child,
  #rk-insulation-guide ul:last-child,
  #rk-insulation-guide ol:last-child {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 28px 80px rgba(16, 37, 54, 0.11);
  }

  #rk-insulation-guide .rk-ins-progress-track {
    position: sticky;
    z-index: 20;
    top: 0;
    height: 5px;
    background: rgba(255, 255, 255, 0.2);
  }

  #rk-insulation-guide .rk-ins-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
  }

  #rk-insulation-guide .rk-ins-hero {
    position: relative;
    overflow: hidden;
    padding: 62px 58px 54px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 15%, rgba(40, 201, 218, 0.24), transparent 28%),
      radial-gradient(circle at 78% 105%, rgba(255, 116, 56, 0.24), transparent 34%),
      linear-gradient(135deg, #0f2637 0%, #123f55 64%, #174c5c 100%);
  }

  #rk-insulation-guide .rk-ins-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    top: -140px;
    width: 420px;
    height: 420px;
    border: 38px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
  }

  #rk-insulation-guide .rk-ins-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 920px;
  }

  #rk-insulation-guide .rk-ins-eyebrow,
  #rk-insulation-guide .rk-ins-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-eyebrow {
    color: #91f4ff;
  }

  #rk-insulation-guide .rk-ins-eyebrow b {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.14);
  }

  #rk-insulation-guide .rk-ins-hero-title {
    max-width: 900px;
    margin-bottom: 20px;
    color: var(--rk-white);
    font-size: clamp(38px, 6vw, 68px);
    font-weight: 950;
    line-height: 1.02;
    letter-spacing: -0.05em;
  }

  #rk-insulation-guide .rk-ins-hero-lead {
    max-width: 830px;
    margin-bottom: 26px;
    color: #dcecf2;
    font-size: clamp(19px, 2.3vw, 24px);
    line-height: 1.55;
  }

  #rk-insulation-guide .rk-ins-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-insulation-guide .rk-ins-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 999px;
    color: #e7f7fa;
    background: rgba(255, 255, 255, 0.07);
    font-size: 13px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 24px 32px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-nav strong {
    display: block;
    width: 100%;
    margin-bottom: 2px;
    color: var(--rk-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-nav a:hover,
  #rk-insulation-guide .rk-ins-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-1px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-section {
    padding: 64px 58px;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-insulation-guide .rk-ins-section:nth-of-type(even) {
    background: #fbfdfe;
  }

  #rk-insulation-guide .rk-ins-intro {
    max-width: 930px;
    margin-bottom: 30px;
    color: var(--rk-text);
    font-size: 20px;
  }

  #rk-insulation-guide .rk-ins-answer {
    display: grid;
    grid-template-columns: 1.45fr 0.8fr;
    overflow: hidden;
    margin: 30px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
  }

  #rk-insulation-guide .rk-ins-answer-main,
  #rk-insulation-guide .rk-ins-answer-side {
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-answer-main {
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-answer-side {
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-answer-side p {
    color: #dcebf0;
  }

  #rk-insulation-guide .rk-ins-formula {
    margin: 28px 0;
    padding: 25px 28px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-dark);
    color: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-formula strong {
    display: block;
    margin-bottom: 8px;
    color: #8ff5ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(21px, 3vw, 31px);
    letter-spacing: -0.03em;
  }

  #rk-insulation-guide .rk-ins-formula span {
    color: #d9e8ed;
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-grid-2,
  #rk-insulation-guide .rk-ins-grid-3,
  #rk-insulation-guide .rk-ins-grid-4 {
    display: grid;
    gap: 18px;
    margin: 28px 0;
  }

  #rk-insulation-guide .rk-ins-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-insulation-guide .rk-ins-card,
  #rk-insulation-guide .rk-ins-location,
  #rk-insulation-guide .rk-ins-error,
  #rk-insulation-guide .rk-ins-step {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, 0.05);
  }

  #rk-insulation-guide .rk-ins-card-number,
  #rk-insulation-guide .rk-ins-error b {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-card h3,
  #rk-insulation-guide .rk-ins-location h3,
  #rk-insulation-guide .rk-ins-error h3,
  #rk-insulation-guide .rk-ins-step h3 {
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-card p,
  #rk-insulation-guide .rk-ins-location p,
  #rk-insulation-guide .rk-ins-error p,
  #rk-insulation-guide .rk-ins-step p {
    color: var(--rk-text);
    font-size: 16px;
  }

  #rk-insulation-guide .rk-ins-location {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(2) {
    border-top-color: var(--rk-green);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(3) {
    border-top-color: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-location:nth-child(4) {
    border-top-color: var(--rk-purple);
  }

  #rk-insulation-guide .rk-ins-callout {
    margin: 28px 0;
    padding: 24px 26px;
    border: 1px solid #eed68d;
    border-radius: 18px;
    background: var(--rk-yellow-soft);
  }

  #rk-insulation-guide .rk-ins-callout strong {
    display: block;
    margin-bottom: 7px;
    color: #78550b;
    font-size: 18px;
  }

  #rk-insulation-guide .rk-ins-callout p {
    color: #6f5a25;
  }

  #rk-insulation-guide .rk-ins-table-wrap {
    margin: 30px 0;
  }

  #rk-insulation-guide .rk-ins-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    font-size: 15px;
  }

  #rk-insulation-guide .rk-ins-table th,
  #rk-insulation-guide .rk-ins-table td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-insulation-guide .rk-ins-table th:last-child,
  #rk-insulation-guide .rk-ins-table td:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-table thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 13px;
    letter-spacing: 0.035em;
  }

  #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-table-caption {
    margin-top: 10px;
    color: var(--rk-muted);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-tool {
    overflow: hidden;
    margin-top: 30px;
    border-radius: 24px;
    color: var(--rk-white);
    background: var(--rk-dark);
    box-shadow: 0 24px 65px rgba(16, 37, 54, 0.18);
  }

  #rk-insulation-guide .rk-ins-tool-head {
    padding: 34px 36px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    background:
      radial-gradient(circle at 93% 15%, rgba(40, 201, 218, 0.2), transparent 25%),
      linear-gradient(135deg, #123146, #16485a);
  }

  #rk-insulation-guide .rk-ins-tool-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
    font-size: clamp(27px, 4vw, 40px);
  }

  #rk-insulation-guide .rk-ins-tool-head p {
    max-width: 880px;
    color: #d7e9ef;
  }

  #rk-insulation-guide .rk-ins-tool-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
    grid-template-areas:
      "form results"
      "form cross-section"
      "chart diagnostics";
    gap: 20px;
    align-items: start;
    padding: 28px;
  }

  #rk-insulation-guide .rk-ins-tool-column {
    display: grid;
    gap: 18px;
    align-content: start;
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
    grid-area: form;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
    height: 100%;
  }

  #rk-insulation-guide .rk-ins-tool-column-right {
    display: contents;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1) {
    grid-area: results;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2) {
    grid-area: cross-section;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
    grid-area: chart;
    align-self: stretch;
    display: flex;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
    grid-area: diagnostics;
    align-self: stretch;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
  }

  #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
    flex: 1 1 auto;
    min-height: 260px;
    height: 100%;
    aspect-ratio: auto;
  }

  #rk-insulation-guide .rk-ins-tool-panel {
    min-width: 0;
    padding: 24px;
    border: 1px solid rgba(160, 213, 228, 0.25);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
  }

  #rk-insulation-guide .rk-ins-tool-panel h4 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: 22px;
  }

  #rk-insulation-guide .rk-ins-tool-panel > p {
    margin-bottom: 18px;
    color: #bfd5de;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-subhead {
    margin: 24px 0 15px;
    padding-top: 20px;
    border-top: 1px solid rgba(160, 213, 228, 0.22);
    color: #78ecf7;
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.085em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }

  #rk-insulation-guide .rk-ins-field {
    min-width: 0;
  }

  #rk-insulation-guide .rk-ins-field.is-wide {
    grid-column: 1 / -1;
  }

  #rk-insulation-guide .rk-ins-field[hidden] {
    display: none;
  }

  #rk-insulation-guide .rk-ins-field label {
    display: block;
    margin-bottom: 7px;
    color: #e8f6f9;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-insulation-guide .rk-ins-field input,
  #rk-insulation-guide .rk-ins-field select {
    width: 100%;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid #b8ccd4;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-white);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-field input:focus,
  #rk-insulation-guide .rk-ins-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 4px rgba(40, 201, 218, 0.15);
  }

  #rk-insulation-guide .rk-ins-field small {
    display: block;
    margin-top: 6px;
    color: #9fb8c3;
    font-size: 11px;
    line-height: 1.4;
  }

  #rk-insulation-guide .rk-ins-layer-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
  }

  #rk-insulation-guide .rk-ins-layer-label strong {
    color: var(--rk-white);
    font-size: 17px;
  }

  #rk-insulation-guide .rk-ins-layer-label span {
    padding: 5px 9px;
    border-radius: 999px;
    color: #9cf4fc;
    background: rgba(40, 201, 218, 0.12);
    font-size: 11px;
    font-weight: 900;
  }

  #rk-insulation-guide .rk-ins-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
  }

  #rk-insulation-guide .rk-ins-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 13px;
    background: rgba(4, 22, 34, 0.35);
  }

  #rk-insulation-guide .rk-ins-result span {
    display: block;
    margin-bottom: 5px;
    color: #9eb7c1;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: 0.045em;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-result strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-white);
    font-size: clamp(20px, 3vw, 29px);
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-result small {
    display: block;
    margin-top: 5px;
    color: #8fa8b3;
    font-size: 10px;
  }

  #rk-insulation-guide .rk-ins-result.is-accent strong {
    color: #75edf8;
  }

  #rk-insulation-guide .rk-ins-result.is-warning strong {
    color: #ffd26d;
  }

  #rk-insulation-guide .rk-ins-result.is-danger strong {
    color: #ff968a;
  }

  #rk-insulation-guide .rk-ins-result.is-good strong {
    color: #79efc7;
  }

  #rk-insulation-guide .rk-ins-status {
    margin-top: 14px;
    padding: 15px 17px;
    border-left: 5px solid var(--rk-cyan);
    border-radius: 0 12px 12px 0;
    color: #d9edf2;
    background: rgba(40, 201, 218, 0.09);
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-status.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.13);
  }

  #rk-insulation-guide .rk-ins-section-stack {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 370px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #eef4f6;
  }

  #rk-insulation-guide .rk-ins-stack-layer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 34px;
    padding: 7px 12px;
    border-bottom: 1px solid rgba(16, 37, 54, 0.16);
    color: var(--rk-dark);
    font-size: 12px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-stack-layer small {
    color: inherit;
    font-size: 10px;
    opacity: 0.78;
  }

  #rk-insulation-guide .rk-ins-stack-finish {
    background: repeating-linear-gradient(90deg, #cba36f 0, #cba36f 28px, #b78d57 29px, #b78d57 31px);
  }

  #rk-insulation-guide .rk-ins-stack-heating {
    position: relative;
    background: #d9d4cd;
  }

  #rk-insulation-guide .rk-ins-stack-heating::after {
    content: "";
    position: absolute;
    left: 12%;
    right: 12%;
    bottom: 14px;
    height: 10px;
    border-radius: 999px;
    background: repeating-linear-gradient(90deg, var(--rk-orange) 0, var(--rk-orange) 35px, transparent 35px, transparent 67px);
    opacity: 0.88;
  }

  #rk-insulation-guide .rk-ins-stack-layer2 {
    background: #dcecf2;
  }

  #rk-insulation-guide .rk-ins-stack-layer1 {
    background: #edf5f7;
  }

  #rk-insulation-guide .rk-ins-stack-service {
    background: #becbd0;
  }

  #rk-insulation-guide .rk-ins-stack-base {
    min-height: 46px;
    border-bottom: 0;
    color: var(--rk-white);
    background: #667b84;
  }

  #rk-insulation-guide .rk-ins-chart-wrap {
    overflow: hidden;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #f8fbfc;
  }

  #rk-insulation-guide .rk-ins-chart {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 680 / 330;
  }

  #rk-insulation-guide .rk-ins-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 12px 16px 15px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 11px;
    font-weight: 850;
  }

  #rk-insulation-guide .rk-ins-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-insulation-guide .rk-ins-chart-legend i {
    width: 20px;
    height: 4px;
    border-radius: 99px;
    background: var(--rk-cyan);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(2) i {
    background: var(--rk-orange);
  }

  #rk-insulation-guide .rk-ins-chart-legend span:nth-child(3) i {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-yellow);
  }

  #rk-insulation-guide .rk-ins-diagnostics {
    display: grid;
    gap: 9px;
  }

  #rk-insulation-guide .rk-ins-diagnostic {
    padding: 13px 14px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 10px 10px 0;
    color: #d7e9ef;
    background: rgba(40, 201, 218, 0.08);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-warning {
    border-left-color: var(--rk-yellow);
    background: rgba(231, 173, 47, 0.1);
  }

  #rk-insulation-guide .rk-ins-diagnostic.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.12);
  }

  #rk-insulation-guide .rk-ins-tool-note {
    margin: 0;
    padding: 0 28px 28px;
    color: #9fb6c0;
    font-size: 12px;
  }

  #rk-insulation-guide .rk-ins-mid-cta,
  #rk-insulation-guide .rk-ins-final-cta {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 46px 58px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 20%, rgba(255, 116, 56, 0.25), transparent 27%),
      linear-gradient(135deg, #12384d, #0f2b3e);
  }

  #rk-insulation-guide .rk-ins-mid-cta h3,
  #rk-insulation-guide .rk-ins-final-cta .rk-ins-cta-title {
    max-width: 820px;
    margin-bottom: 14px;
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
  }

  #rk-insulation-guide .rk-ins-mid-cta p,
  #rk-insulation-guide .rk-ins-final-cta p {
    max-width: 900px;
    color: #d9e9ee;
  }

  #rk-insulation-guide .rk-ins-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 18px;
    padding: 14px 23px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-orange);
    box-shadow: 0 12px 28px rgba(255, 116, 56, 0.27);
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease;
  }

  #rk-insulation-guide .rk-ins-cta-button:hover,
  #rk-insulation-guide .rk-ins-cta-button:focus-visible {
    color: var(--rk-white);
    background: #ef5f27;
    transform: translateY(-2px);
    outline: none;
  }

  #rk-insulation-guide .rk-ins-disclosure {
    display: block;
    max-width: 780px;
    margin-top: 12px;
    color: #9fb7c0;
    font-size: 11px;
  }

  #rk-insulation-guide .rk-ins-example {
    margin: 28px 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), var(--rk-white));
  }

  #rk-insulation-guide .rk-ins-example h3 {
    font-size: 24px;
  }

  #rk-insulation-guide .rk-ins-example-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-insulation-guide .rk-ins-example-stat {
    padding: 15px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-example-stat span {
    display: block;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-example-stat strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 23px;
  }

  #rk-insulation-guide .rk-ins-error {
    border-top: 5px solid var(--rk-red);
    background: linear-gradient(180deg, var(--rk-red-soft), var(--rk-white) 56%);
  }

  #rk-insulation-guide .rk-ins-error b {
    color: var(--rk-red);
  }

  #rk-insulation-guide .rk-ins-steps {
    display: grid;
    gap: 14px;
    margin: 28px 0;
    counter-reset: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    counter-increment: rk-ins-step;
  }

  #rk-insulation-guide .rk-ins-step::before {
    content: counter(rk-ins-step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 19px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-faq {
    display: grid;
    gap: 12px;
    margin-top: 28px;
  }

  #rk-insulation-guide .rk-ins-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }

  #rk-insulation-guide .rk-ins-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.4;
    list-style: none;
  }

  #rk-insulation-guide .rk-ins-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-insulation-guide .rk-ins-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

  #rk-insulation-guide .rk-ins-faq details[open] summary::after {
    content: "−";
  }

  #rk-insulation-guide .rk-ins-faq-answer {
    padding: 0 20px 20px;
    color: var(--rk-text);
  }

  #rk-insulation-guide .rk-ins-source-box {
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-insulation-guide .rk-ins-source-box ul {
    margin-bottom: 0;
  }

  #rk-insulation-guide .rk-ins-source-box li + li {
    margin-top: 9px;
  }

  #rk-insulation-guide .rk-ins-update {
    margin-top: 16px;
    color: var(--rk-muted);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-insulation-guide .rk-ins-author {
    margin: 42px 58px;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 16px 45px rgba(16, 37, 54, 0.08);
  }

  #rk-insulation-guide .rk-ins-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  #rk-insulation-guide .rk-ins-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 30px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-insulation-guide .rk-ins-author-title {
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 950;
    line-height: 1.1;
  }

  #rk-insulation-guide .rk-ins-author-head p {
    margin: 7px 0 0;
    color: #cfe2e8;
    font-size: 14px;
  }

  #rk-insulation-guide .rk-ins-author-mark {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #8df2fc;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-insulation-guide .rk-ins-author-layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
  }

  #rk-insulation-guide .rk-ins-author-side {
    padding: 28px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(16, 37, 54, 0.16);
  }

  #rk-insulation-guide .rk-ins-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-insulation-guide .rk-ins-author-name {
    color: var(--rk-dark);
    font-size: 22px;
    font-weight: 950;
  }

  #rk-insulation-guide .rk-ins-author-role {
    margin-top: 6px;
    color: var(--rk-text);
    font-size: 13px;
  }

  #rk-insulation-guide .rk-ins-author-social-label {
    margin-top: 20px;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-insulation-guide .rk-ins-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }

  #rk-insulation-guide .rk-ins-author-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-insulation-guide .rk-ins-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-insulation-guide .rk-ins-author-main {
    padding: 30px;
  }

  #rk-insulation-guide .rk-ins-author-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 25px 25px 25px 68px;
    border: 0;
    border-radius: 16px;
    background: var(--rk-cyan-soft);
  }

  #rk-insulation-guide .rk-ins-author-quote::before {
    content: "„";
    position: absolute;
    left: 22px;
    top: 1px;
    color: var(--rk-blue);
    font-family: Georgia, serif;
    font-size: 76px;
    line-height: 1;
  }

  #rk-insulation-guide .rk-ins-author-quote p {
    color: var(--rk-dark);
    font-size: 18px;
    font-weight: 750;
  }

  #rk-insulation-guide .rk-ins-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 13px 13px 0 0;
  }

  #rk-insulation-guide .rk-ins-author-tab {
    padding: 12px 10px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-dark);
    background: var(--rk-soft);
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
  }

  #rk-insulation-guide .rk-ins-author-tab:last-child {
    border-right: 0;
  }

  #rk-insulation-guide .rk-ins-author-panel {
    display: none;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 13px 13px;
    color: var(--rk-text);
    font-size: 15px;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout .rk-ins-author-panel-about,
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout .rk-ins-author-panel-exp,
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout .rk-ins-author-panel-sites {
    display: block;
  }

  #rk-insulation-guide #rk-ins-author-about:checked ~ .rk-ins-author-layout label[for="rk-ins-author-about"],
  #rk-insulation-guide #rk-ins-author-exp:checked ~ .rk-ins-author-layout label[for="rk-ins-author-exp"],
  #rk-insulation-guide #rk-ins-author-sites:checked ~ .rk-ins-author-layout label[for="rk-ins-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-insulation-guide .rk-ins-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 13px;
  }

  #rk-insulation-guide .rk-ins-site-links a {
    padding: 7px 10px;
    border-radius: 8px;
    background: var(--rk-soft);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
  }

  @media (max-width: 980px) {
    #rk-insulation-guide .rk-ins-tool-grid,
    #rk-insulation-guide .rk-ins-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-areas: none;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child {
      grid-area: auto;
      align-self: start;
    }

    #rk-insulation-guide .rk-ins-tool-grid > .rk-ins-tool-column:first-child > .rk-ins-tool-panel {
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
      align-content: start;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel {
      grid-area: auto;
      align-self: start;
      height: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(1),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(2),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3),
    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(4) {
      grid-area: auto;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart-wrap {
      display: block;
    }

    #rk-insulation-guide .rk-ins-tool-column-right > .rk-ins-tool-panel:nth-child(3) .rk-ins-chart {
      min-height: 0;
      height: auto;
      aspect-ratio: 680 / 330;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: 1 / -1;
    }

    #rk-insulation-guide .rk-ins-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-insulation-guide .rk-ins-grid-4,
    #rk-insulation-guide .rk-ins-example-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    #rk-insulation-guide {
      margin: 0 auto 45px;
      font-size: 17px;
    }

    #rk-insulation-guide .rk-ins-shell {
      border-right: 0;
      border-left: 0;
      border-radius: 0;
    }

    #rk-insulation-guide .rk-ins-hero,
    #rk-insulation-guide .rk-ins-section,
    #rk-insulation-guide .rk-ins-mid-cta,
    #rk-insulation-guide .rk-ins-final-cta {
      padding: 42px 20px;
    }

    #rk-insulation-guide .rk-ins-hero-title {
      font-size: clamp(36px, 12vw, 53px);
    }

    #rk-insulation-guide .rk-ins-nav {
      gap: 8px;
      padding: 18px 16px;
    }

    #rk-insulation-guide .rk-ins-nav a {
      flex: 1 1 calc(50% - 8px);
      justify-content: center;
      min-width: 0;
      padding: 9px 10px;
      border-radius: 12px;
      font-size: 12px;
      text-align: center;
    }

    #rk-insulation-guide .rk-ins-answer,
    #rk-insulation-guide .rk-ins-grid-2,
    #rk-insulation-guide .rk-ins-grid-3,
    #rk-insulation-guide .rk-ins-grid-4,
    #rk-insulation-guide .rk-ins-example-grid,
    #rk-insulation-guide .rk-ins-tool-column-right {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:first-child,
    #rk-insulation-guide .rk-ins-tool-column-right .rk-ins-tool-panel:last-child {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-head {
      padding: 28px 20px 24px;
    }

    #rk-insulation-guide .rk-ins-tool-grid {
      grid-template-columns: minmax(0, 1fr);
      padding: 16px;
    }

    #rk-insulation-guide .rk-ins-tool-panel {
      padding: 19px;
    }

    #rk-insulation-guide .rk-ins-fields,
    #rk-insulation-guide .rk-ins-results {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-field.is-wide {
      grid-column: auto;
    }

    #rk-insulation-guide .rk-ins-tool-note {
      padding: 0 18px 22px;
    }

    #rk-insulation-guide .rk-ins-table,
    #rk-insulation-guide .rk-ins-table tbody,
    #rk-insulation-guide .rk-ins-table tr,
    #rk-insulation-guide .rk-ins-table td {
      display: block;
      width: 100%;
    }

    #rk-insulation-guide .rk-ins-table {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-insulation-guide .rk-ins-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-insulation-guide .rk-ins-table tr {
      overflow: hidden;
      margin-bottom: 14px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
      box-shadow: 0 8px 22px rgba(16, 37, 54, 0.05);
    }

    #rk-insulation-guide .rk-ins-table td,
    #rk-insulation-guide .rk-ins-table tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.15fr);
      gap: 12px;
      padding: 12px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
      overflow-wrap: anywhere;
    }

    #rk-insulation-guide .rk-ins-table td::before {
      content: attr(data-label);
      color: var(--rk-muted);
      font-size: 10px;
      font-weight: 950;
      letter-spacing: 0.055em;
      text-transform: uppercase;
    }

    #rk-insulation-guide .rk-ins-table tr td:last-child {
      border-bottom: 0;
    }

    #rk-insulation-guide .rk-ins-step {
      grid-template-columns: 42px minmax(0, 1fr);
      gap: 13px;
      padding: 17px;
    }

    #rk-insulation-guide .rk-ins-step::before {
      width: 40px;
      height: 40px;
      border-radius: 12px;
    }

    #rk-insulation-guide .rk-ins-author {
      margin: 30px 16px;
    }

    #rk-insulation-guide .rk-ins-author-head {
      display: block;
      padding: 25px 22px;
    }

    #rk-insulation-guide .rk-ins-author-mark {
      display: inline-flex;
      margin-top: 17px;
    }

    #rk-insulation-guide .rk-ins-author-main {
      padding: 24px 18px;
    }

    #rk-insulation-guide .rk-ins-author-quote {
      padding: 65px 20px 22px;
    }

    #rk-insulation-guide .rk-ins-author-quote::before {
      left: 20px;
      top: 3px;
    }

    #rk-insulation-guide .rk-ins-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-insulation-guide .rk-ins-author-tab {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-insulation-guide .rk-ins-cta-button {
      width: 100%;
    }
  }

  @media (max-width: 410px) {
    #rk-insulation-guide .rk-ins-nav a {
      flex-basis: 100%;
    }

    #rk-insulation-guide .rk-ins-table td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-insulation-guide *,
    #rk-insulation-guide *::before,
    #rk-insulation-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-insulation-guide" aria-label="Ile styropianu pod ogrzewanie podłogowe — poradnik i kalkulator">
  <div class="rk-ins-shell">
    <div class="rk-ins-progress-track" aria-hidden="true"><div class="rk-ins-progress" id="rk-ins-progress"></div></div>

    <header class="rk-ins-hero">
      <div class="rk-ins-hero-inner">
        <span class="rk-ins-eyebrow"><b aria-hidden="true"></b> Izolacja podłogi • aktualizacja 2026</span>
        <div class="rk-ins-hero-title">Nie dobieraj styropianu z jednej liczby w centymetrach</div>
        <p class="rk-ins-hero-lead">Sprawdź osobno opór cieplny izolacji, geometrię przegrody, wysokość warstw i parametry mechaniczne płyt. Następnie oblicz ilość materiału bez udawania, że prosty kalkulator zastępuje projekt podłogi na gruncie.</p>
        <div class="rk-ins-meta">
          <span><i aria-hidden="true"></i> Czytanie: około 22 minuty</span>
          <span><i aria-hidden="true"></i> Jeden analizator interaktywny</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 30 sierpnia 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-ins-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty — wszystkie główne części poradnika</strong>
      <a href="#rk-ins-answer">Szybka odpowiedź</a>
      <a href="#rk-ins-no-single-value">Dlaczego nie jedna grubość?</a>
      <a href="#rk-ins-law">Wymagania prawne</a>
      <a href="#rk-ins-three-checks">Trzy kontrole</a>
      <a href="#rk-ins-locations">Miejsce podłogi</a>
      <a href="#rk-ins-analyzer">Analizator</a>
      <a href="#rk-ins-results-reading">Jak czytać wynik?</a>
      <a href="#rk-ins-label">Etykieta i DoP</a>
      <a href="#rk-ins-materials">EPS, grafit i XPS</a>
      <a href="#rk-ins-height">Wysokość warstw</a>
      <a href="#rk-ins-layers">Jedna czy dwie warstwy?</a>
      <a href="#rk-ins-services">Instalacje w podłodze</a>
      <a href="#rk-ins-membranes">Folia i izolacje</a>
      <a href="#rk-ins-quantity">Ilość materiału</a>
      <a href="#rk-ins-heating-design">Wpływ na podłogówkę</a>
      <a href="#rk-ins-errors">Najczęstsze błędy</a>
      <a href="#rk-ins-checklist">Checklista</a>
      <a href="#rk-ins-faq">FAQ</a>
      <a href="#rk-ins-sources">Źródła</a>
    </nav>

    <main>
      <section class="rk-ins-section" id="rk-ins-answer">
        <span class="rk-ins-kicker">Odpowiedź w 60 sekund</span>
        <h2>Ile styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Nie ma jednej grubości właściwej dla każdego domu. Na podłodze na gruncie 15 cm EPS jest popularnym rozwiązaniem, ale nie stanowi uniwersalnego minimum wpisanego do przepisów. Wynik zależy od deklarowanej lambdy, geometrii podłogi, połączenia ze ścianami, pozostałych warstw, wymagań cieplnych i obciążeń.</p>

        <div class="rk-ins-answer">
          <div class="rk-ins-answer-main">
            <h3>Najpierw określ wymaganie, później centymetry</h3>
            <p><strong>Dla podłogi na gruncie trzeba sprawdzić całą przegrodę, a nie samą płytę EPS.</strong> Osobno kontroluje się opór izolacji pod systemem grzewczym oraz właściwości mechaniczne materiału pod jastrychem.</p>
          </div>
          <div class="rk-ins-answer-side">
            <h3>Co można policzyć od razu?</h3>
            <p>Z grubości i deklarowanej lambdy można wiarygodnie policzyć opór samej izolacji. Z powierzchni i grubości obliczymy także m³ materiału oraz liczbę paczek.</p>
          </div>
        </div>

        <div class="rk-ins-formula" aria-label="Wzór na opór cieplny warstwy izolacji">
          <strong>R<sub>izol</sub> = Σ(d<sub>i</sub> ÷ λ<sub>i</sub>)</strong>
          <span>Grubość d podajemy w metrach, a deklarowaną przewodność cieplną λ w W/(mK). Wynik R otrzymujemy w m²K/W.</span>
        </div>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Grubość</th><th>R przy λ = 0,036</th><th>R przy λ = 0,031</th><th>Co oznacza wynik?</th></tr></thead>
            <tbody>
              <tr><td data-label="Grubość"><strong>10 cm</strong></td><td data-label="R • λ 0,036">2,78 m²K/W</td><td data-label="R • λ 0,031">3,23 m²K/W</td><td data-label="Interpretacja">Opór samej izolacji, bez oceny całej podłogi.</td></tr>
              <tr><td data-label="Grubość"><strong>15 cm</strong></td><td data-label="R • λ 0,036">4,17 m²K/W</td><td data-label="R • λ 0,031">4,84 m²K/W</td><td data-label="Interpretacja">Ta sama grubość może dawać inny opór zależnie od λ.</td></tr>
              <tr><td data-label="Grubość"><strong>20 cm</strong></td><td data-label="R • λ 0,036">5,56 m²K/W</td><td data-label="R • λ 0,031">6,45 m²K/W</td><td data-label="Interpretacja">Większe R nie potwierdza jeszcze nośności ani zgodności całej przegrody.</td></tr>
            </tbody>
          </table>
          <p class="rk-ins-table-caption">Wartości obliczono wyłącznie dla jednorodnej warstwy izolacyjnej. Nie są gotowym współczynnikiem U podłogi na gruncie.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-no-single-value">
        <span class="rk-ins-kicker">Centymetry bez kontekstu wprowadzają w błąd</span>
        <h2>Dlaczego nie istnieje jedna prawidłowa grubość styropianu?</h2>
        <p class="rk-ins-intro">Pytanie „10 czy 15 cm?” jest dopiero początkiem. Dziesięć centymetrów płyty o λ = 0,031 ma inny opór niż 10 cm materiału o λ = 0,040, a podłoga nad salonem pracuje w innych warunkach niż podłoga na gruncie albo strop nad nieogrzewanym garażem.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">01 • Ciepło</span><h3>Lambda i wszystkie warstwy</h3><p>Liczy się deklarowana przewodność materiału, jego grubość oraz układ całej przegrody. Sama nazwa „biały” lub „grafitowy” nie jest parametrem obliczeniowym.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">02 • Geometria</span><h3>Powierzchnia i obwód</h3><p>W podłodze na gruncie znaczenie ma relacja powierzchni do obwodu wystawionego oraz rozwiązanie krawędzi. Dwa domy po 120 m² nie muszą mieć identycznej wymiany ciepła.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">03 • Konstrukcja</span><h3>Obciążenia i wysokość</h3><p>Płyta musi przenosić przewidziane obciążenia, a cały układ zmieścić okładzinę, jastrych lub suchy system, instalacje i izolację.</p></article>
        </div>

        <p>Dlatego nie będziemy wybierać materiału z samej nazwy źródła ciepła. Podłoga nie „wie”, czy wodę ogrzała pompa ciepła, kocioł gazowy czy inne urządzenie. Źródło wpływa na pożądane temperatury pracy, ale nie wyznacza automatycznie grubości i klasy izolacji.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-law">
        <span class="rk-ins-kicker">Warunki techniczne określają efekt</span>
        <h2>Co rzeczywiście mówią przepisy o podłodze na gruncie?</h2>
        <p class="rk-ins-intro">W obowiązującym tekście warunków technicznych dla podłogi na gruncie w pomieszczeniu o temperaturze obliczeniowej co najmniej 16°C podano maksymalną wartość współczynnika przenikania ciepła U<sub>C(max)</sub> równą 0,30 W/(m²K). Przepis nie zapisuje jednej obowiązkowej grubości ani klasy EPS.</p>

        <div class="rk-ins-formula" aria-label="Maksymalny współczynnik przenikania ciepła podłogi na gruncie">
          <strong>U<sub>C(max)</sub> = 0,30 W/(m²K)</strong>
          <span>Podłoga na gruncie w pomieszczeniu ogrzewanym do temperatury obliczeniowej co najmniej 16°C — zgodnie z obowiązującym tekstem warunków technicznych.</span>
        </div>

        <div class="rk-ins-callout">
          <strong>To nie jest proste U = 1/R izolacji</strong>
          <p>Metodyka dla przegród stykających się z gruntem uwzględnia geometrię podłogi, obwód wystawiony, grunt i rozwiązanie krawędzi. Nie wolno odjąć umownego „oporu gruntu” i na tej podstawie ogłosić normowej liczby centymetrów.</p>
        </div>

        <p>W praktyce należy skoordynować projekt architektoniczno-budowlany, charakterystykę energetyczną, detal podłogi i obliczenia cieplne. Jeżeli zmieniasz materiał albo grubość na budowie, porównuj opór i właściwości produktu, ale nie zastępuj tym weryfikacji całej przegrody.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-three-checks">
        <span class="rk-ins-kicker">Nie mieszaj trzech różnych ocen</span>
        <h2>Współczynnik U, opór R i nośność — trzy osobne kontrole</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Przegroda</span><h3>Współczynnik U</h3><p>Opisuje przenikanie ciepła przez całą przegrodę w określonych warunkach. Dla podłogi na gruncie wymaga metody uwzględniającej kontakt z gruntem i geometrię.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Warstwa</span><h3>Opór R izolacji</h3><p>Wynika z grubości i lambdy każdej warstwy. Można go sumować dla kilku materiałów, ale sam nie jest kompletnym U podłogi na gruncie.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Konstrukcja</span><h3>Parametry mechaniczne</h3><p>CS(10) opisuje naprężenie przy 10-procentowym odkształceniu. Długotrwałą pracę trzeba oceniać razem z obciążeniem, pełnym kodem produktu i — gdy jest deklarowane — pełzaniem przy ściskaniu.</p></article>
        </div>

        <p><strong>Wysoki opór cieplny nie gwarantuje odpowiedniej nośności, a wysoka wartość CS(10) nie gwarantuje wymaganej izolacyjności.</strong> Produkt musi spełnić oba zestawy wymagań oraz być przeznaczony do planowanego zastosowania.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-locations">
        <span class="rk-ins-kicker">Najpierw ustal, co znajduje się pod podłogą</span>
        <h2>Podłoga na gruncie, piętro, piwnica czy przestrzeń zewnętrzna?</h2>
        <p class="rk-ins-intro">To samo 5, 10 albo 15 cm będzie miało inne znaczenie zależnie od warunków po drugiej stronie przegrody.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-location"><h3>Podłoga na gruncie</h3><p>Potrzebna jest ocena całej przegrody zgodnie z metodyką dla kontaktu z gruntem. Ważne są powierzchnia, obwód zewnętrzny, warstwy, grunt i detal obwodowy.</p></article>
          <article class="rk-ins-location"><h3>Strop nad ogrzewanym pomieszczeniem</h3><p>Różnica temperatur jest zwykle mała. O doborze warstw mogą silniej decydować akustyka, wymagania podłogi pływającej, instalacje i dostępna wysokość.</p></article>
          <article class="rk-ins-location"><h3>Strop nad piwnicą lub garażem</h3><p>Temperatura poniżej stropu może być znacznie niższa. Wymagania cieplne oraz rozwiązanie mostków trzeba sprawdzić dla konkretnej przegrody.</p></article>
          <article class="rk-ins-location"><h3>Podłoga nad przejazdem lub powietrzem</h3><p>Przegroda oddziela wnętrze od środowiska zewnętrznego. Nie należy stosować do niej uproszczeń właściwych dla stropu między ogrzewanymi pomieszczeniami.</p></article>
        </div>

        <p>W remontowanym budynku dochodzą ograniczenia progów, schodów i istniejących drzwi. Zobacz również, jak planować <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">ogrzewanie podłogowe w remontowanym budynku</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-analyzer">
        <span class="rk-ins-kicker">Jedno narzędzie zamiast kilku pozornie dokładnych kalkulatorów</span>
        <h2>Interaktywny analizator izolacji i warstw podłogi</h2>
        <p class="rk-ins-intro">Wpisz dane z projektu i etykiety materiału. Narzędzie policzy opór samej izolacji, ilość płyt, paczki i bilans wysokości. Dla podłogi na gruncie pokaże również wymiar charakterystyczny B′, ale celowo nie poda uproszczonego współczynnika U.</p>

        <div class="rk-ins-tool" id="rk-ins-tool">
          <div class="rk-ins-tool-head">
            <h3>Policz R izolacji, m³, paczki i wysokość</h3>
            <p>Każda wartość pozostaje edytowalna. Lambdę, CS(10) i wydajność paczki przepisz z dokumentacji konkretnego materiału, a wysokości z przekroju architektonicznego.</p>
          </div>

          <div class="rk-ins-tool-grid">
            <div class="rk-ins-tool-column">
              <div class="rk-ins-tool-panel">
                <h4>Dane podłogi</h4>
                <p>Najpierw określ położenie przegrody oraz rzeczywistą przestrzeń pomiędzy podłożem a gotową posadzką.</p>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field is-wide">
                    <label for="rk-ins-floor-type">Położenie analizowanej podłogi</label>
                    <select id="rk-ins-floor-type">
                      <option value="ground">Podłoga na gruncie</option>
                      <option value="heated">Strop nad ogrzewanym pomieszczeniem</option>
                      <option value="unheated">Strop nad nieogrzewaną piwnicą lub garażem</option>
                      <option value="outside">Podłoga nad przejazdem lub powietrzem zewnętrznym</option>
                    </select>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-area">Powierzchnia podłogi [m²]</label>
                    <input type="number" id="rk-ins-area" min="1" max="2000" step="1" value="120" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field" id="rk-ins-perimeter-wrap">
                    <label for="rk-ins-perimeter">Obwód wystawiony P [m]</label>
                    <input type="number" id="rk-ins-perimeter" min="1" max="1000" step="0.1" value="46" inputmode="decimal">
                    <small>Obwód oddzielający ogrzewaną podłogę od środowiska zewnętrznego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-available-height">Dostępna wysokość od podłoża [mm]</label>
                    <input type="number" id="rk-ins-available-height" min="20" max="1000" step="1" value="230" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-finish">Okładzina z klejem lub podkładem [mm]</label>
                    <input type="number" id="rk-ins-finish" min="0" max="100" step="1" value="15" inputmode="decimal">
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-heating-layer">Warstwa grzewcza nad izolacją [mm]</label>
                    <input type="number" id="rk-ins-heating-layer" min="10" max="250" step="1" value="70" inputmode="decimal">
                    <small>Łączna grubość od wierzchu izolacji do spodu okładziny: np. system z rurą i jastrychem albo płyty systemu suchego.</small>
                  </div>
                  <div class="rk-ins-field">
                    <label for="rk-ins-service-layer">Warstwa wyrównawcza lub instalacyjna [mm]</label>
                    <input type="number" id="rk-ins-service-layer" min="0" max="300" step="1" value="0" inputmode="decimal">
                  </div>
                </div>

                <div class="rk-ins-subhead">Dolna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 1</strong><span>najbliżej podłoża</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer1-thickness">Grubość d₁ [mm]</label><input type="number" id="rk-ins-layer1-thickness" min="0" max="400" step="1" value="100" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-lambda">Deklarowana λD₁ [W/(mK)]</label><input type="number" id="rk-ins-layer1-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer1-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer1-pack" min="0.1" max="100" step="0.01" value="3.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-cs">Deklarowane CS(10) [kPa]</label><input type="number" id="rk-ins-cs" min="10" max="1000" step="10" value="100" inputmode="decimal"><small>Parametr pomocniczy — nie jest dopuszczalnym obciążeniem długotrwałym.</small></div>
                </div>

                <div class="rk-ins-subhead">Górna warstwa izolacji</div>
                <div class="rk-ins-layer-label"><strong>Warstwa 2</strong><span>wpisz 0 mm, aby ją wyłączyć</span></div>
                <div class="rk-ins-fields">
                  <div class="rk-ins-field"><label for="rk-ins-layer2-thickness">Grubość d₂ [mm]</label><input type="number" id="rk-ins-layer2-thickness" min="0" max="400" step="1" value="50" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-lambda">Deklarowana λD₂ [W/(mK)]</label><input type="number" id="rk-ins-layer2-lambda" min="0.020" max="0.080" step="0.001" value="0.036" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-layer2-pack">Pokrycie jednej paczki [m²]</label><input type="number" id="rk-ins-layer2-pack" min="0.1" max="100" step="0.01" value="6.0" inputmode="decimal"></div>
                  <div class="rk-ins-field"><label for="rk-ins-waste">Zapas montażowy [%]</label><input type="number" id="rk-ins-waste" min="0" max="30" step="1" value="5" inputmode="decimal"><small>Zapas wpływa na ilość zakupu i liczbę paczek, nie na opór ułożonej warstwy.</small></div>
                </div>
              </div>
            </div>

            <div class="rk-ins-tool-column rk-ins-tool-column-right">
              <div class="rk-ins-tool-panel">
                <h4>Wynik na żywo</h4>
                <p>Wartości materiałowe i geometryczne dla wpisanego wariantu.</p>
                <div class="rk-ins-results" aria-live="polite">
                  <div class="rk-ins-result is-accent"><span>Łączna izolacja</span><strong id="rk-ins-result-thickness">150 mm</strong><small id="rk-ins-result-split">100 + 50 mm</small></div>
                  <div class="rk-ins-result is-accent"><span>Opór izolacji R</span><strong id="rk-ins-result-r">4,17</strong><small>m²K/W — bez pozostałych warstw</small></div>
                  <div class="rk-ins-result"><span>Objętość ułożona</span><strong id="rk-ins-result-volume">18,00 m³</strong><small>bez zapasu zakupowego</small></div>
                  <div class="rk-ins-result"><span>Objętość do zakupu</span><strong id="rk-ins-result-purchase">18,90 m³</strong><small id="rk-ins-result-waste-note">z zapasem 5%</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 1</span><strong id="rk-ins-result-pack1">42</strong><small id="rk-ins-result-pack1-note">dla 3,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Paczki warstwy 2</span><strong id="rk-ins-result-pack2">21</strong><small id="rk-ins-result-pack2-note">dla 6,00 m²/paczkę</small></div>
                  <div class="rk-ins-result"><span>Wykorzystana wysokość</span><strong id="rk-ins-result-used">235 mm</strong><small>wszystkie wpisane warstwy</small></div>
                  <div class="rk-ins-result" id="rk-ins-balance-card"><span>Rezerwa wysokości</span><strong id="rk-ins-result-balance">−5 mm</strong><small>wartość ujemna oznacza kolizję</small></div>
                </div>
                <div class="rk-ins-status" id="rk-ins-height-status">Warstwy przekraczają dostępną wysokość o 5 mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.</div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Dynamiczny przekrój podłogi</h4>
                <p>Proporcje aktualizują się razem z wpisanymi grubościami. Schemat pokazuje kolejność, nie detal wykonawczy.</p>
                <div class="rk-ins-section-stack" id="rk-ins-stack" aria-label="Dynamiczny przekrój warstw podłogi">
                  <div class="rk-ins-stack-layer rk-ins-stack-finish" id="rk-ins-stack-finish"><span>Okładzina</span><small>15 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-heating" id="rk-ins-stack-heating"><span>Warstwa grzewcza</span><small>70 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer2" id="rk-ins-stack-layer2"><span>Izolacja 2</span><small>50 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-layer1" id="rk-ins-stack-layer1"><span>Izolacja 1</span><small>100 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-service" id="rk-ins-stack-service"><span>Warstwa instalacyjna</span><small>0 mm</small></div>
                  <div class="rk-ins-stack-layer rk-ins-stack-base"><span>Podłoże konstrukcyjne</span><small>poziom odniesienia</small></div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Opór R a grubość</h4>
                <p>Linie porównują wartości λ wpisane dla obu warstw. Punkt pokazuje opór ich rzeczywistej kombinacji.</p>
                <div class="rk-ins-chart-wrap">
                  <svg class="rk-ins-chart" id="rk-ins-chart" viewBox="0 0 680 330" role="img" aria-labelledby="rk-ins-chart-title rk-ins-chart-desc">
                    <title id="rk-ins-chart-title">Wykres oporu cieplnego izolacji w zależności od grubości</title>
                    <desc id="rk-ins-chart-desc">Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw.</desc>
                  </svg>
                  <div class="rk-ins-chart-legend">
                    <span><i></i><b id="rk-ins-legend1">λ₁ 0,036</b></span>
                    <span><i></i><b id="rk-ins-legend2">λ₂ 0,036</b></span>
                    <span><i></i><b>Twój układ</b></span>
                  </div>
                </div>
              </div>

              <div class="rk-ins-tool-panel">
                <h4>Diagnostyka wyniku</h4>
                <p>Narzędzie oddziela to, co można policzyć z podanych danych, od tego, czego bez projektu stwierdzić nie wolno.</p>
                <div class="rk-ins-diagnostics" id="rk-ins-diagnostics" aria-live="polite"></div>
                <div class="rk-ins-results">
                  <div class="rk-ins-result"><span>Wymiar B′</span><strong id="rk-ins-result-bprime">5,22 m</strong><small id="rk-ins-result-bprime-note">2A/P — informacja geometryczna</small></div>
                  <div class="rk-ins-result"><span>Ocena U podłogi</span><strong>Nie wyznaczono</strong><small>potrzebny pełny model przegrody</small></div>
                </div>
              </div>
            </div>
          </div>
          <p class="rk-ins-tool-note">Analizator nie jest kalkulatorem współczynnika U podłogi na gruncie, projektem konstrukcji ani doborem dopuszczalnego obciążenia. Wyniki materiałowe zależą od poprawności danych wpisanych z dokumentacji konkretnego produktu.</p>
        </div>
      </section>

      <aside class="rk-ins-mid-cta" aria-label="Indywidualny projekt po analizie warstw">
        <span class="rk-ins-kicker" style="color:#83f1fb">Co pozostaje poza kalkulatorem?</span>
        <h3>Analizator zmieścił warstwy i policzył materiał, ale nie zna całego budynku</h3>
        <p>Nie widzi mostka na połączeniu podłogi ze ścianą, pełnej geometrii, parametrów gruntu, obciążeń, stref bez rur, dylatacji ani hydrauliki pętli. Jeżeli chcesz skoordynować izolację, poziom posadzki, rozstaw rur, długości obwodów i temperaturę pracy, potrzebny jest indywidualny projekt.</p>
        <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt dopasowany do warstw podłogi</a>
        <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </aside>

      <section class="rk-ins-section" id="rk-ins-results-reading">
        <span class="rk-ins-kicker">Wynik ma granice</span>
        <h2>Jak prawidłowo czytać wynik analizatora?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik pewny</span><h3>R izolacji</h3><p>Jeżeli grubość i λD wpisano prawidłowo, obliczenie oporu jednorodnych warstw jest prostą zależnością geometryczną.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik zakupowy</span><h3>m³ i paczki</h3><p>Objętość ułożona wynika z powierzchni oraz łącznej grubości. Liczba paczek zależy od wpisanego pokrycia konkretnego opakowania i zapasu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Wynik projektowy</span><h3>U i nośność</h3><p>Tych parametrów narzędzie nie potwierdza. Wymagają danych o całej przegrodzie, geometrii, obciążeniach i długotrwałej pracy materiału.</p></article>
        </div>

        <p>Wymiar B′ jest informacją o geometrii podłogi na gruncie. Pokazuje, dlaczego sama powierzchnia nie wystarcza: zwarty rzut ma inną relację powierzchni do obwodu niż długi, rozczłonkowany budynek. Narzędzie nie wykorzystuje B′ do pozornego, uproszczonego obliczenia U.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-label">
        <span class="rk-ins-kicker">Kupuj parametry, nie kolor</span>
        <h2>Jak czytać etykietę styropianu i deklarację właściwości?</h2>
        <p class="rk-ins-intro">Pełna nazwa handlowa „EPS 100” nie zastępuje kodu oznaczenia, przeznaczenia ani deklaracji właściwości użytkowych. Do porównania potrzebujesz dokumentu dla konkretnego wariantu i grubości.</p>

        <div class="rk-ins-table-wrap">
          <table class="rk-ins-table">
            <thead><tr><th>Parametr</th><th>Co opisuje?</th><th>Jak go używać?</th><th>Czego nie dowodzi?</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>λD</strong></td><td data-label="Znaczenie">Deklarowana przewodność cieplna.</td><td data-label="Zastosowanie">Do obliczenia oporu warstwy R = d/λ.</td><td data-label="Ograniczenie">Nie potwierdza nośności.</td></tr>
              <tr><td data-label="Parametr"><strong>CS(10)</strong></td><td data-label="Znaczenie">Naprężenie ściskające przy 10% odkształceniu.</td><td data-label="Zastosowanie">Do porównania klasy mechanicznej z projektem i przeznaczeniem.</td><td data-label="Ograniczenie">Nie jest dopuszczalnym obciążeniem przez cały okres użytkowania.</td></tr>
              <tr><td data-label="Parametr"><strong>CC</strong></td><td data-label="Znaczenie">Pełzanie przy ściskaniu w określonym czasie i warunkach.</td><td data-label="Zastosowanie">Pomaga ocenić długotrwałe odkształcenie, gdy parametr jest deklarowany i wymagany.</td><td data-label="Ograniczenie">Nie zastępuje obliczeń obciążenia układu.</td></tr>
              <tr><td data-label="Parametr"><strong>T</strong></td><td data-label="Znaczenie">Tolerancja grubości.</td><td data-label="Zastosowanie">Ważna dla równości i sumowania warstw.</td><td data-label="Ograniczenie">Nie mówi o izolacyjności ani akustyce.</td></tr>
              <tr><td data-label="Parametr"><strong>SD lub CP</strong></td><td data-label="Znaczenie">Parametry używane w wyrobach o funkcji akustycznej.</td><td data-label="Zastosowanie">Sprawdza się je w projekcie podłogi pływającej na stropie.</td><td data-label="Ograniczenie">Nie można ich zastąpić samym symbolem EPS 100.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Deklaracja właściwości użytkowych jest podstawowym źródłem informacji o parametrach wyrobu budowlanego. Komisja Europejska wyjaśnia, że dokument przekazuje informacje o właściwościach produktu objętego normą zharmonizowaną lub europejską oceną techniczną. Nie opieraj odbioru materiału na „teście kciukiem” ani domniemanej gęstości.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-materials">
        <span class="rk-ins-kicker">Materiał dobieramy do funkcji i deklaracji</span>
        <h2>Biały EPS, grafitowy EPS czy XPS pod podłogówkę?</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS biały</span><h3>Większa grubość przy wyższej λ</h3><p>Może być właściwym rozwiązaniem, jeśli deklarowane właściwości cieplne i mechaniczne odpowiadają projektowi, a w przekroju jest wystarczająco dużo miejsca.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">EPS grafitowy</span><h3>Większy R przy tej samej grubości</h3><p>Niższa deklarowana lambda pozwala uzyskać większy opór w ograniczonej wysokości. Kolor nie zwalnia z kontroli CS(10), przeznaczenia i dokumentów.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">XPS</span><h3>Inna struktura i zastosowania</h3><p>Zwykle wybiera się go tam, gdzie ważne są określone właściwości mechaniczne lub zachowanie przy kontakcie z wilgocią. Ma małą, ale nie „zerową” nasiąkliwość i nie jest automatycznie najlepszy w każdym salonie.</p></article>
        </div>

        <div class="rk-ins-callout">
          <strong>EPS 100 nie jest zapisanym w prawie minimum dla każdej podłogi</strong>
          <p>Wybierz produkt przeznaczony do podłóg i zweryfikuj jego pełne parametry z obciążeniem oraz układem jastrychu. W podłogach akustycznych mogą występować materiały o innej charakterystyce, dobrane jako część konkretnego systemu.</p>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-height">
        <span class="rk-ins-kicker">Poziom gotowej posadzki jest granicą</span>
        <h2>Jak zmieścić izolację i wszystkie warstwy podłogi?</h2>
        <p class="rk-ins-intro">Najczęstszy błąd koordynacyjny polega na zarezerwowaniu miejsca wyłącznie na styropian i jastrych. W rzeczywistym przekroju trzeba uwzględnić wszystkie warstwy od podłoża do górnej powierzchni okładziny.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od góry</span><h3>Okładzina i warstwa grzewcza</h3><p>Płytka z klejem, panel z podkładem albo drewno mają własną grubość. Poniżej znajduje się pełna warstwa systemu mokrego lub suchego, a nie sama średnica rury.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Od dołu</span><h3>Podłoże i instalacje</h3><p>Nierówności, przewody wodne, kanalizacja, peszle i inne instalacje mogą wymagać osobnej warstwy wyrównawczej. Nie wolno ukrywać brakującej wysokości przez przypadkowe ściskanie płyt.</p></article>
        </div>

        <p>Grubość i rodzaj jastrychu ustala się dla konkretnego systemu. Szczegóły omawia poradnik o <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewce na ogrzewanie podłogowe</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-layers">
        <span class="rk-ins-kicker">Mijanka pomaga, ale nie jest celem samym w sobie</span>
        <h2>Jedna czy dwie warstwy styropianu pod ogrzewanie podłogowe?</h2>
        <p class="rk-ins-intro">Dwie warstwy ułatwiają przesunięcie spoin i osłonięcie miejscowych nieciągłości, ale zdanie „nigdy nie układaj jednej grubej warstwy” jest zbyt kategoryczne. Liczy się zaprojektowany układ, równe podparcie oraz dopasowane płyty.</p>

        <div class="rk-ins-grid-2">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ jednowarstwowy</span><h3>Może być poprawny</h3><p>Jeżeli płyty są przeznaczone do zastosowania, podłoże jest równe, spoiny dopasowane, instalacje nie tworzą pustek, a wymagany opór i nośność są zapewnione.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Układ dwuwarstwowy</span><h3>Ułatwia przesunięcie spoin</h3><p>Górna warstwa może przykryć łączenia dolnej. Spoin nie ustawia się w jednej linii, ale nie ma jednej uniwersalnej wartości przesunięcia odpowiedniej do wszystkich formatów płyt.</p></article>
        </div>

        <h3>Co jest ważniejsze od samej liczby warstw?</h3>
        <ul>
          <li>stabilne, równe i czyste podłoże,</li>
          <li>pełne podparcie płyt bez kołysania,</li>
          <li>ściśle dopasowane krawędzie,</li>
          <li>brak krzyżujących się pustek i przypadkowych klinów,</li>
          <li>ciągłość przy ścianach, słupach i przejściach instalacyjnych.</li>
        </ul>
      </section>

      <section class="rk-ins-section" id="rk-ins-services">
        <span class="rk-ins-kicker">Rury instalacyjne nie mogą podwieszać posadzki</span>
        <h2>Jak prowadzić instalacje w warstwie izolacji?</h2>
        <p class="rk-ins-intro">Przewody wodne, kanalizacyjne i elektryczne często przebiegają pod podłogówką. Problemem nie jest samo ich występowanie, lecz przypadkowe wycinanie płyt, brak podparcia i tworzenie wysokich garbów.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Plan</span><h3>Wyznacz trasy wcześniej</h3><p>Skoordynuj podejścia przed zamówieniem grubości warstw. Kolizje powinny zostać rozwiązane na rzucie, a nie podczas układania ostatniej płyty.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podparcie</span><h3>Nie zostawiaj pustych kieszeni</h3><p>Wycięcia muszą odpowiadać przebiegowi instalacji, a pozostałe warstwy tworzyć stabilną płaszczyznę pod system grzewczy.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Poziom</span><h3>Rozważ warstwę wyrównawczą</h3><p>Jeżeli instalacji jest dużo, poprawnym rozwiązaniem może być zaprojektowana warstwa instalacyjna lub wyrównawcza zamiast poszatkowania warstwy nośnej.</p></article>
        </div>

        <p>Przed montażem rur ogrzewania warto przejść przez listę błędów opisanych w poradniku o <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">samodzielnym wykonywaniu podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-membranes">
        <span class="rk-ins-kicker">Każda warstwa ma inną funkcję</span>
        <h2>Folia, hydroizolacja i izolacja brzegowa nie zastępują styropianu</h2>
        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">Folia rozdzielająca</span><h3>Chroni układ podczas wykonywania</h3><p>Może ograniczać wpływanie zaczynu między płyty i pełnić funkcję warstwy rozdzielającej. Nadruk pomaga zachować geometrię rur, ale folia nie zastępuje termoizolacji.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydroizolacja</span><h3>Kontroluje wodę i wilgoć</h3><p>Jej miejsce oraz ciągłość wynikają z projektu przegrody. Nie należy przypisywać styropianowi funkcji zabezpieczenia przeciwwodnego.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Taśma brzegowa</span><h3>Oddziela jastrych od przegród</h3><p>Przejmuje odkształcenia i ogranicza sztywne połączenia przy ścianach. Musi współpracować z układem dylatacji oraz grubością jastrychu.</p></article>
        </div>

        <p>Bez szczeliny powietrznej metalizowana powierzchnia pod jastrychem nie tworzy samodzielnej „izolacji odbijającej ciepło”. Więcej o detalach przeczytasz w artykule o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-quantity">
        <span class="rk-ins-kicker">Zamówienie liczymy osobno dla każdej grubości</span>
        <h2>Ile m², m³ i paczek styropianu zamówić?</h2>
        <p class="rk-ins-intro">Każda pełna warstwa wymaga pokrycia całej przeznaczonej powierzchni. Objętość instalowana wynika z pola i grubości, natomiast liczba paczek z wydajności opakowania dla konkretnej płyty.</p>

        <div class="rk-ins-formula" aria-label="Wzory na ilość styropianu">
          <strong>V = A × d &nbsp; | &nbsp; N = zaokrąglenie w górę [A × (1 + zapas) ÷ A<sub>paczki</sub>]</strong>
          <span>Objętość V podajemy w m³, powierzchnię A w m², grubość d w metrach, a pokrycie paczki w m² dla danej grubości.</span>
        </div>

        <div class="rk-ins-example">
          <h3>Przykład: 120 m², warstwy 10 + 5 cm, zapas 5%</h3>
          <p>W posadzce znajdzie się 18,00 m³ izolacji. Zakup z pięcioprocentowym zapasem odpowiada 18,90 m³. Paczki trzeba jednak policzyć oddzielnie, ponieważ opakowanie płyt 100 mm zwykle pokrywa inną powierzchnię niż opakowanie płyt 50 mm.</p>
          <div class="rk-ins-example-grid">
            <div class="rk-ins-example-stat"><span>Powierzchnia</span><strong>120 m²</strong></div>
            <div class="rk-ins-example-stat"><span>Grubość</span><strong>150 mm</strong></div>
            <div class="rk-ins-example-stat"><span>Wbudowane</span><strong>18,00 m³</strong></div>
            <div class="rk-ins-example-stat"><span>Zakup 5%</span><strong>18,90 m³</strong></div>
          </div>
        </div>

        <p>Nie licz paczek z jednej umownej objętości, jeśli producent podaje inne pakowanie dla różnych grubości. W analizatorze możesz wpisać rzeczywiste m² przypadające na paczkę każdej warstwy.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-heating-design">
        <span class="rk-ins-kicker">Izolacja i instalacja wpływają na siebie, ale nie automatycznie</span>
        <h2>Jak izolacja wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-ins-intro">Opór warstw pod systemem wpływa na strumień ciepła kierowany w dół. Nie można jednak z samej zmiany 10 na 15 cm wyznaczyć nowego rozstawu rur, przepływu ani mocy pompy.</p>

        <div class="rk-ins-grid-3">
          <article class="rk-ins-card"><span class="rk-ins-card-number">OZC</span><h3>Straty pomieszczenia</h3><p>Wymagana moc wynika z bilansu wszystkich przegród, wentylacji i temperatur obliczeniowych. Zmiana jednej warstwy musi zostać wprowadzona do modelu.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Podłoga</span><h3>Moc z powierzchni czynnej</h3><p>Rozstaw zależy od wymaganych W/m², konstrukcji, oporu okładziny i temperatury wody, a nie od samego symbolu EPS.</p></article>
          <article class="rk-ins-card"><span class="rk-ins-card-number">Hydraulika</span><h3>Długości i przepływy</h3><p>Opór pętli wynika głównie z przepływu, długości, średnicy wewnętrznej, medium i armatury. Nie wolno nazywać pompy „przeciążoną” tylko dlatego, że zmieniono grubość izolacji.</p></article>
        </div>

        <p>Najpierw wykonuje się <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, później sprawdza moc powierzchniową i <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego</a>, a następnie długości, przepływy i straty ciśnienia. Pełny zakres dokumentacji opisuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
      </section>

      <section class="rk-ins-section" id="rk-ins-errors">
        <span class="rk-ins-kicker">Błędy, których jastrych już nie pokaże</span>
        <h2>Najczęstsze błędy przy izolacji pod ogrzewaniem podłogowym</h2>
        <div class="rk-ins-grid-2">
          <article class="rk-ins-error"><b>Błąd 01</b><h3>Dobór wyłącznie z centymetrów</h3><p>Pomija lambdę, miejsce przegrody, geometrię, obciążenia i pozostałe warstwy.</p></article>
          <article class="rk-ins-error"><b>Błąd 02</b><h3>Liczenie U podłogi na gruncie ze wzoru 1/R</h3><p>Nie odtwarza metodyki wymiany ciepła z gruntem i może dać pozornie dokładny, ale błędnie opisany wynik.</p></article>
          <article class="rk-ins-error"><b>Błąd 03</b><h3>Zakup z samej nazwy EPS 100</h3><p>Nie sprawdza pełnego kodu, λD, przeznaczenia, tolerancji, deklaracji i długotrwałego obciążenia.</p></article>
          <article class="rk-ins-error"><b>Błąd 04</b><h3>Brak bilansu wysokości</h3><p>Po ułożeniu izolacji brakuje miejsca na zaprojektowaną warstwę grzewczą, okładzinę albo poziom progów.</p></article>
          <article class="rk-ins-error"><b>Błąd 05</b><h3>Układanie na nierównym podłożu</h3><p>Płyty kołyszą się, a obciążenia nie są przekazywane równomiernie na warstwy konstrukcyjne.</p></article>
          <article class="rk-ins-error"><b>Błąd 06</b><h3>Przypadkowe wycinanie wokół instalacji</h3><p>Powstają pustki, uskoki i niepodparte fragmenty pod przyszłym jastrychem.</p></article>
          <article class="rk-ins-error"><b>Błąd 07</b><h3>Mylenie folii z termoizolacją</h3><p>Metalizowana folia bez szczeliny powietrznej nie zastępuje oporu zapewnianego przez właściwą warstwę izolacyjną.</p></article>
          <article class="rk-ins-error"><b>Błąd 08</b><h3>Automatyczna zmiana rozstawu rur</h3><p>Rozstawu, przepływu i temperatury nie wyznacza się wyłącznie z grubości styropianu.</p></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-checklist">
        <span class="rk-ins-kicker">Kontrola przed przykryciem warstw</span>
        <h2>Checklista przed ułożeniem rur i wykonaniem wylewki</h2>
        <div class="rk-ins-steps">
          <article class="rk-ins-step"><div><h3>Potwierdź miejsce i wymagania przegrody</h3><p>Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zmierz dostępną wysokość</h3><p>Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach.</p></div></article>
          <article class="rk-ins-step"><div><h3>Zbierz dokumenty materiału</h3><p>Sprawdź nazwę wariantu, przeznaczenie, λD, CS(10), tolerancję grubości i inne parametry wymagane przez projekt.</p></div></article>
          <article class="rk-ins-step"><div><h3>Policz opór każdej warstwy</h3><p>Dodaj d/λ dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie.</p></div></article>
          <article class="rk-ins-step"><div><h3>Skoordynuj instalacje podpodłogowe</h3><p>Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni.</p></div></article>
          <article class="rk-ins-step"><div><h3>Ułóż płyty na równym podłożu</h3><p>Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych.</p></div></article>
          <article class="rk-ins-step"><div><h3>Wykonaj warstwy rozdzielające i brzegowe</h3><p>Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą.</p></div></article>
          <article class="rk-ins-step"><div><h3>Odbierz warstwy przed montażem rur</h3><p>Zrób zdjęcia, zachowaj etykiety i DoP, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem.</p></div></article>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-faq">
        <span class="rk-ins-kicker">Najczęstsze pytania inwestorów</span>
        <h2>FAQ — styropian pod ogrzewanie podłogowe</h2>
        <div class="rk-ins-faq">
          <details><summary>Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?</summary><div class="rk-ins-faq-answer"><p>Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy λ = 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie.</p></div></details>
          <details><summary>Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie automatycznie. Piętnaście centymetrów przy λ = 0,036 daje R izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem.</p></div></details>
          <details><summary>Ile styropianu dać pod podłogówkę na piętrze?</summary><div class="rk-ins-faq-answer"><p>Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i wysokość. Nie należy kopiować automatycznie 15 cm z parteru ani przyjmować 3–5 cm bez sprawdzenia projektu.</p></div></details>
          <details><summary>Czy pod podłogówkę zawsze trzeba stosować EPS 100?</summary><div class="rk-ins-faq-answer"><p>Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego.</p></div></details>
          <details><summary>Czy grafitowy styropian pozwala zmniejszyć grubość?</summary><div class="rk-ins-faq-answer"><p>Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać konkretną λD, właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty.</p></div></details>
          <details><summary>Czy XPS jest zawsze lepszy od EPS?</summary><div class="rk-ins-faq-answer"><p>Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt. Wyższa cena lub wytrzymałość nie czynią go automatycznie najlepszym materiałem dla każdego pomieszczenia.</p></div></details>
          <details><summary>Czy metalizowana folia odbija ciepło do pomieszczenia?</summary><div class="rk-ins-faq-answer"><p>Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur.</p></div></details>
          <details><summary>Czy lepiej układać styropian w jednej czy dwóch warstwach?</summary><div class="rk-ins-faq-answer"><p>Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem.</p></div></details>
          <details><summary>Jak policzyć m³ styropianu na 100 m² podłogi?</summary><div class="rk-ins-faq-answer"><p>Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek.</p></div></details>
          <details><summary>Czy kalkulator oblicza współczynnik U podłogi na gruncie?</summary><div class="rk-ins-faq-answer"><p>Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B′. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy.</p></div></details>
        </div>
      </section>

      <section class="rk-ins-section" id="rk-ins-sources">
        <span class="rk-ins-kicker">Źródła publiczne i normatywne</span>
        <h2>Podstawa techniczna opracowania</h2>
        <div class="rk-ins-source-box">
          <ul>
            <li><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="noopener nofollow">Elektroniczny Dziennik Ustaw — obowiązujący tekst warunków technicznych</a>, w tym wymaganie U<sub>C(max)</sub> dla podłogi na gruncie.</li>
            <li><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="noopener nofollow">ISO 13370:2017</a> — metody obliczania przenoszenia ciepła przez podłogi i inne elementy budynku stykające się z gruntem.</li>
            <li><a href="https://www.iso.org/standard/40966.html" target="_blank" rel="noopener nofollow">ISO 10456:2007</a> — zasady dotyczące deklarowanych i projektowych wartości cieplnych materiałów oraz wyrobów.</li>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> — podstawy projektowania oraz wyznaczania mocy wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</li>
            <li><a href="https://single-market-economy.ec.europa.eu/sectors/construction/construction-products-regulation-cpr/declaration-performance-and-ce-marking_en" target="_blank" rel="noopener nofollow">Komisja Europejska — deklaracja właściwości użytkowych i oznakowanie CE</a>.</li>
          </ul>
          <p>Normy mogą być chronione prawem autorskim i odpłatne. Artykuł omawia zasady oraz zakres metod, ale nie zastępuje pełnego tekstu norm, dokumentacji projektowej ani deklaracji właściwości konkretnego produktu.</p>
        </div>
        <div class="rk-ins-update">Ostatnia aktualizacja merytoryczna: 30 sierpnia 2026 r.</div>
      </section>
    </main>

    <section class="rk-ins-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-about" checked="">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-exp">
      <input type="radio" name="rk-ins-author-tabs" id="rk-ins-author-sites">

      <header class="rk-ins-author-head">
        <div><span class="rk-ins-kicker" style="color:#83f1fb">Autor opracowania</span><div class="rk-ins-author-title">Robert Kucharski</div><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-ins-author-mark">IZOLACJE • PODŁOGÓWKA • HVAC</span>
      </header>

      <div class="rk-ins-author-layout">
        <aside class="rk-ins-author-side">
          <div class="rk-ins-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
          <div class="rk-ins-author-name">Robert Kucharski</div>
          <div class="rk-ins-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-ins-author-social-label">Znajdziesz mnie również:</div>
          <div class="rk-ins-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
          </div>
        </aside>

        <div class="rk-ins-author-main">
          <blockquote class="rk-ins-author-quote"><p>„Dobra izolacja podłogi nie zaczyna się od pytania o liczbę centymetrów. Najpierw trzeba wiedzieć, co izolujemy, jaki opór ma materiał, jakie obciążenia przenosi i czy cały przekrój zmieści się w budynku.”</p></blockquote>
          <div class="rk-ins-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-ins-author-tab" for="rk-ins-author-about">O autorze</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-exp">Doświadczenie</label>
            <label class="rk-ins-author-tab" for="rk-ins-author-sites">Portale</label>
          </div>
          <div class="rk-ins-author-panel rk-ins-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe, łącząc obliczenia strat ciepła z doborem temperatur, rozstawów, przepływów, długości pętli, strat ciśnienia i nastaw rozdzielaczy.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-exp"><p>W dokumentacji koordynuję założenia cieplne z rzeczywistym układem warstw podłogi. Dzięki temu instalacja nie jest dopasowywana „na oko” dopiero po ułożeniu izolacji i wykonaniu progów.</p></div>
          <div class="rk-ins-author-panel rk-ins-author-panel-sites"><p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p><div class="rk-ins-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
        </div>
      </div>
    </section>

    <section class="rk-ins-final-cta" aria-label="Projekt ogrzewania podłogowego skoordynowany z warstwami">
      <span class="rk-ins-kicker" style="color:#83f1fb">Zamknij decyzje przed wejściem wykonawcy</span>
      <div class="rk-ins-cta-title">Otrzymaj projekt podłogówki dopasowany do budynku i posadzki</div>
      <p>Dokumentacja łączy straty ciepła, powierzchnie czynne, temperaturę zasilania i powrotu, rozstawy rur, długości pętli, przepływy oraz nastawy. Warstwy podłogi stają się jednym z założeń projektu, a nie niespodzianką odkrytą podczas montażu.</p>
      <a class="rk-ins-cta-button rk-ins-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      <small class="rk-ins-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#article",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "headline": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Techniczny poradnik o doborze izolacji pod ogrzewanie podłogowe z analizatorem oporu R, objętości, liczby paczek i wysokości warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        {"@type": "Thing", "name": "Izolacja pod ogrzewanie podłogowe"},
        {"@type": "Thing", "name": "Styropian podłogowy"},
        {"@type": "Thing", "name": "Opór cieplny izolacji"},
        {"@type": "Thing", "name": "Podłoga na gruncie"}
      ],
      "keywords": [
        "ile styropianu pod ogrzewanie podłogowe",
        "jaka grubość styropianu pod podłogówkę",
        "styropian pod podłogówkę 10 czy 15 cm",
        "opór cieplny izolacji podłogowej",
        "ile m3 styropianu na podłogę"
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/",
      "name": "Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości",
      "description": "Jak dobrać izolację pod podłogówkę i obliczyć jej opór, objętość, liczbę paczek oraz wysokość wszystkich warstw.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"},
        {"@type": "ListItem", "position": 3, "name": "Ile styropianu pod ogrzewanie podłogowe?", "item": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#application",
      "name": "Interaktywny analizator izolacji i warstw podłogi",
      "url": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#rk-ins-analyzer",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Narzędzie oblicza opór cieplny warstw izolacji, objętość materiału, zapas, liczbę paczek, bilans wysokości i wymiar charakterystyczny podłogi na gruncie."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#howto",
      "name": "Jak sprawdzić izolację przed ułożeniem ogrzewania podłogowego?",
      "description": "Kolejność kontroli przegrody, materiału, wysokości, instalacji i wykonania przed zakryciem izolacji.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Potwierdź miejsce i wymagania przegrody", "text": "Ustal, czy analizujesz grunt, ogrzewane pomieszczenie, piwnicę, garaż czy przestrzeń zewnętrzną. Sprawdź projekt budowlany i cieplny."},
        {"@type": "HowToStep", "position": 2, "name": "Zmierz dostępną wysokość", "text": "Porównaj poziom podłoża z gotową posadzką przy drzwiach, schodach, oknach tarasowych, odpływach i sąsiednich pomieszczeniach."},
        {"@type": "HowToStep", "position": 3, "name": "Zbierz dokumenty materiału", "text": "Sprawdź nazwę wariantu, przeznaczenie, deklarowaną lambdę, CS(10), tolerancję grubości i inne parametry wymagane przez projekt."},
        {"@type": "HowToStep", "position": 4, "name": "Policz opór każdej warstwy", "text": "Dodaj iloraz grubości i lambdy dla warstwy dolnej i górnej. Nie nazywaj otrzymanej sumy współczynnikiem U podłogi na gruncie."},
        {"@type": "HowToStep", "position": 5, "name": "Skoordynuj instalacje podpodłogowe", "text": "Usuń kolizje, przewidź warstwę wyrównawczą i zapewnij stabilne podparcie płyt bez pustych kieszeni."},
        {"@type": "HowToStep", "position": 6, "name": "Ułóż płyty na równym podłożu", "text": "Dopasuj krawędzie, przesuń spoiny kolejnej warstwy i zachowaj ciągłość przy przejściach oraz elementach konstrukcyjnych."},
        {"@type": "HowToStep", "position": 7, "name": "Wykonaj warstwy rozdzielające i brzegowe", "text": "Zastosuj rozwiązania wskazane w projekcie jastrychu, hydroizolacji i dylatacji. Nie zamieniaj jednej funkcji na drugą."},
        {"@type": "HowToStep", "position": 8, "name": "Odbierz warstwy przed montażem rur", "text": "Zrób zdjęcia, zachowaj etykiety i deklaracje, sprawdź poziomy, stabilność, szczeliny oraz zgodność z dokumentacją przed zakryciem."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Czy 10 cm styropianu pod ogrzewanie podłogowe wystarczy?", "acceptedAnswer": {"@type": "Answer", "text": "Nie da się tego potwierdzić bez lokalizacji podłogi, lambdy materiału, pełnego układu warstw i obliczeń przegrody. Dziesięć centymetrów przy lambda 0,036 daje opór samej izolacji około 2,78 m²K/W, ale nie jest to kompletne U podłogi na gruncie."}},
        {"@type": "Question", "name": "Czy 15 cm EPS spełnia wymagania dla każdej podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie automatycznie. Piętnaście centymetrów przy lambda 0,036 daje opór izolacji około 4,17 m²K/W. Zgodność całej podłogi zależy również od geometrii, krawędzi, pozostałych warstw i metody obliczeniowej dla kontaktu z gruntem."}},
        {"@type": "Question", "name": "Ile styropianu dać pod podłogówkę na piętrze?", "acceptedAnswer": {"@type": "Answer", "text": "Na stropie pomiędzy ogrzewanymi pomieszczeniami kryteria są inne niż na gruncie. Znaczenie mają wymagania akustyczne, konstrukcja podłogi pływającej, instalacje i dostępna wysokość. Wartość trzeba potwierdzić w projekcie."}},
        {"@type": "Question", "name": "Czy pod podłogówkę zawsze trzeba stosować EPS 100?", "acceptedAnswer": {"@type": "Answer", "text": "Nie istnieje taka uniwersalna reguła prawna. Produkt powinien być przeznaczony do podłóg i dobrany do obciążeń, jastrychu oraz okresu użytkowania. CS(10) jest ważnym parametrem porównawczym, ale nie stanowi samodzielnego dopuszczalnego obciążenia długotrwałego."}},
        {"@type": "Question", "name": "Czy grafitowy styropian pozwala zmniejszyć grubość?", "acceptedAnswer": {"@type": "Answer", "text": "Niższa deklarowana lambda daje większy opór przy tej samej grubości, więc może pomóc przy ograniczonej wysokości. Trzeba jednak porównać właściwości mechaniczne, przeznaczenie i pełną przegrodę, a nie sam kolor płyty."}},
        {"@type": "Question", "name": "Czy XPS jest zawsze lepszy od EPS?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. XPS może mieć właściwości korzystne w określonych warunkach wilgotnościowych lub mechanicznych, ale powinien być użyty tam, gdzie uzasadnia to projekt."}},
        {"@type": "Question", "name": "Czy metalizowana folia odbija ciepło do pomieszczenia?", "acceptedAnswer": {"@type": "Answer", "text": "Bez odpowiedniej szczeliny powietrznej nie należy traktować jej jak samodzielnej refleksyjnej izolacji cieplnej. Pod jastrychem pełni przede wszystkim funkcje wykonawcze i rozdzielające, a nadruk pomaga w montażu rur."}},
        {"@type": "Question", "name": "Czy lepiej układać styropian w jednej czy dwóch warstwach?", "acceptedAnswer": {"@type": "Answer", "text": "Dwie warstwy ułatwiają przesunięcie spoin, lecz poprawny może być również zaprojektowany układ jednowarstwowy. Najważniejsze są równe podłoże, pełne podparcie, dopasowanie płyt, ciągłość izolacji oraz zgodność właściwości materiału z projektem."}},
        {"@type": "Question", "name": "Jak policzyć m3 styropianu na 100 m2 podłogi?", "acceptedAnswer": {"@type": "Answer", "text": "Pomnóż powierzchnię przez łączną grubość wyrażoną w metrach. Dla 100 m² i 15 cm otrzymasz 15 m³ materiału wbudowanego. Do zakupu dodaj uzasadniony zapas i przelicz każdą grubość na liczbę pełnych paczek."}},
        {"@type": "Question", "name": "Czy kalkulator oblicza współczynnik U podłogi na gruncie?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Narzędzie celowo oblicza opór samej izolacji, ilość materiału, paczki, wysokość i wymiar geometryczny B prim. Kompletne U podłogi na gruncie wymaga modelu uwzględniającego geometrię, grunt, krawędzie i wszystkie warstwy."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-insulation-guide");
  if (!root) {
    return;
  }

  var byId = function (id) {
    return document.getElementById(id);
  };

  var readNumber = function (id, fallback, minimum, maximum) {
    var field = byId(id);
    var value = parseFloat(field.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    return Math.min(maximum, Math.max(minimum, value));
  };

  var format = function (value, digits) {
    return Number(value).toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  };

  var setText = function (id, value) {
    var element = byId(id);
    if (element) {
      element.textContent = value;
    }
  };

  var svgNamespace = "http://www.w3.org/2000/svg";

  var svgElement = function (name, attributes, textValue) {
    var node = document.createElementNS(svgNamespace, name);
    Object.keys(attributes).forEach(function (key) {
      node.setAttribute(key, attributes[key]);
    });
    if (typeof textValue === "string") {
      node.textContent = textValue;
    }
    return node;
  };

  var drawChart = function (lambda1, lambda2, totalThickness, totalR) {
    var chart = byId("rk-ins-chart");
    if (!chart) {
      return;
    }

    while (chart.firstChild) {
      chart.removeChild(chart.firstChild);
    }

    chart.appendChild(svgElement("title", {id: "rk-ins-chart-title"}, "Wykres oporu cieplnego izolacji w zależności od grubości"));
    chart.appendChild(svgElement("desc", {id: "rk-ins-chart-desc"}, "Dwie linie dla wpisanych wartości przewodzenia ciepła oraz punkt pokazujący aktualną kombinację warstw."));

    var left = 60;
    var top = 28;
    var right = 650;
    var bottom = 274;
    var width = right - left;
    var height = bottom - top;
    var xMaximum = Math.max(300, Math.ceil(totalThickness / 50) * 50);
    var minimumLambda = Math.min(lambda1, lambda2);
    var theoreticalR = (xMaximum / 1000) / minimumLambda;
    var yMaximum = Math.max(8, Math.ceil(Math.max(theoreticalR, totalR) / 2) * 2);

    chart.appendChild(svgElement("rect", {x: 0, y: 0, width: 680, height: 330, fill: "#f8fbfc"}));

    var xStep = xMaximum / 6;
    var yStep = yMaximum / 4;
    var index;

    for (index = 0; index <= 6; index += 1) {
      var xValue = xStep * index;
      var x = left + (xValue / xMaximum) * width;
      chart.appendChild(svgElement("line", {x1: x, y1: top, x2: x, y2: bottom, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: x, y: 296, fill: "#617684", "font-size": 11, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(xValue, 0)));
    }

    for (index = 0; index <= 4; index += 1) {
      var yValue = yStep * index;
      var y = bottom - (yValue / yMaximum) * height;
      chart.appendChild(svgElement("line", {x1: left, y1: y, x2: right, y2: y, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: 49, y: y + 4, fill: "#617684", "font-size": 11, "text-anchor": "end", "font-family": "system-ui, sans-serif"}, format(yValue, 1)));
    }

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("line", {x1: left, y1: top, x2: left, y2: bottom, stroke: "#526b78", "stroke-width": 2}));
    chart.appendChild(svgElement("text", {x: 355, y: 320, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, "łączna grubość izolacji [mm]"));
    chart.appendChild(svgElement("text", {x: 18, y: 151, fill: "#344d5a", "font-size": 12, "font-weight": 800, "text-anchor": "middle", "font-family": "system-ui, sans-serif", transform: "rotate(-90 18 151)"}, "opór R [m²K/W]"));

    var endpointR1 = (xMaximum / 1000) / lambda1;
    var endpointR2 = (xMaximum / 1000) / lambda2;
    var endpointY1 = bottom - (endpointR1 / yMaximum) * height;
    var endpointY2 = bottom - (endpointR2 / yMaximum) * height;

    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY1, stroke: "#28c9da", "stroke-width": 5, "stroke-linecap": "round"}));
    chart.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: endpointY2, stroke: "#ff7438", "stroke-width": 4, "stroke-linecap": "round", "stroke-dasharray": "10 7"}));

    var markerX = left + (Math.min(totalThickness, xMaximum) / xMaximum) * width;
    var markerY = bottom - (Math.min(totalR, yMaximum) / yMaximum) * height;
    chart.appendChild(svgElement("line", {x1: markerX, y1: markerY, x2: markerX, y2: bottom, stroke: "#e7ad2f", "stroke-width": 2, "stroke-dasharray": "5 5"}));
    chart.appendChild(svgElement("circle", {cx: markerX, cy: markerY, r: 8, fill: "#e7ad2f", stroke: "#ffffff", "stroke-width": 3}));
    chart.appendChild(svgElement("text", {x: markerX, y: Math.max(18, markerY - 14), fill: "#74510a", "font-size": 12, "font-weight": 900, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, format(totalThickness, 0) + " mm • R " + format(totalR, 2)));
  };

  var updateStack = function (finish, heating, layer2, layer1, service) {
    var values = [
      {id: "rk-ins-stack-finish", value: finish, label: "Okładzina"},
      {id: "rk-ins-stack-heating", value: heating, label: "Warstwa grzewcza"},
      {id: "rk-ins-stack-layer2", value: layer2, label: "Izolacja 2"},
      {id: "rk-ins-stack-layer1", value: layer1, label: "Izolacja 1"},
      {id: "rk-ins-stack-service", value: service, label: "Warstwa instalacyjna"}
    ];

    values.forEach(function (item) {
      var node = byId(item.id);
      if (!node) {
        return;
      }
      if (item.value <= 0) {
        node.style.display = "none";
        return;
      }
      node.style.display = "flex";
      node.style.flexGrow = String(Math.max(8, item.value));
      node.style.flexBasis = "0";
      node.querySelector("span").textContent = item.label;
      node.querySelector("small").textContent = format(item.value, 0) + " mm";
    });
  };

  var addDiagnostic = function (container, textValue, stateClass) {
    var item = document.createElement("div");
    item.className = "rk-ins-diagnostic";
    if (stateClass) {
      item.classList.add(stateClass);
    }
    item.textContent = textValue;
    container.appendChild(item);
  };

  var update = function () {
    var floorType = byId("rk-ins-floor-type").value;
    var area = readNumber("rk-ins-area", 120, 1, 2000);
    var perimeter = readNumber("rk-ins-perimeter", 46, 1, 1000);
    var availableHeight = readNumber("rk-ins-available-height", 230, 20, 1000);
    var finish = readNumber("rk-ins-finish", 15, 0, 100);
    var heating = readNumber("rk-ins-heating-layer", 70, 10, 250);
    var service = readNumber("rk-ins-service-layer", 0, 0, 300);
    var layer1 = readNumber("rk-ins-layer1-thickness", 100, 0, 400);
    var lambda1 = readNumber("rk-ins-layer1-lambda", 0.036, 0.020, 0.080);
    var pack1 = readNumber("rk-ins-layer1-pack", 3, 0.1, 100);
    var csValue = readNumber("rk-ins-cs", 100, 10, 1000);
    var layer2 = readNumber("rk-ins-layer2-thickness", 50, 0, 400);
    var lambda2 = readNumber("rk-ins-layer2-lambda", 0.036, 0.020, 0.080);
    var pack2 = readNumber("rk-ins-layer2-pack", 6, 0.1, 100);
    var waste = readNumber("rk-ins-waste", 5, 0, 30);

    var totalThickness = layer1 + layer2;
    var r1 = (layer1 / 1000) / lambda1;
    var r2 = (layer2 / 1000) / lambda2;
    var totalR = r1 + r2;
    var installedVolume = area * totalThickness / 1000;
    var reserveFactor = 1 + waste / 100;
    var purchaseVolume = installedVolume * reserveFactor;
    var purchaseArea = area * reserveFactor;
    var packs1 = layer1 > 0 ? Math.ceil(purchaseArea / pack1) : 0;
    var packs2 = layer2 > 0 ? Math.ceil(purchaseArea / pack2) : 0;
    var usedHeight = finish + heating + service + totalThickness;
    var balance = availableHeight - usedHeight;
    var isGround = floorType === "ground";
    var bPrime = isGround ? (2 * area) / perimeter : 0;

    setText("rk-ins-result-thickness", format(totalThickness, 0) + " mm");
    setText("rk-ins-result-split", format(layer1, 0) + " + " + format(layer2, 0) + " mm");
    setText("rk-ins-result-r", format(totalR, 2));
    setText("rk-ins-result-volume", format(installedVolume, 2) + " m³");
    setText("rk-ins-result-purchase", format(purchaseVolume, 2) + " m³");
    setText("rk-ins-result-waste-note", "z zapasem " + format(waste, 0) + "%");
    setText("rk-ins-result-pack1", format(packs1, 0));
    setText("rk-ins-result-pack1-note", "dla " + format(pack1, 2) + " m²/paczkę");
    setText("rk-ins-result-pack2", format(packs2, 0));
    setText("rk-ins-result-pack2-note", layer2 > 0 ? "dla " + format(pack2, 2) + " m²/paczkę" : "warstwa wyłączona");
    setText("rk-ins-result-used", format(usedHeight, 0) + " mm");
    setText("rk-ins-result-balance", (balance < 0 ? "−" : "+") + format(Math.abs(balance), 0) + " mm");

    var balanceCard = byId("rk-ins-balance-card");
    balanceCard.classList.remove("is-good", "is-warning", "is-danger");
    var heightStatus = byId("rk-ins-height-status");
    heightStatus.classList.remove("is-danger");

    if (balance < 0) {
      balanceCard.classList.add("is-danger");
      heightStatus.classList.add("is-danger");
      heightStatus.textContent = "Warstwy przekraczają dostępną wysokość o " + format(Math.abs(balance), 0) + " mm. Trzeba zmienić przekrój, a nie ściskać izolację na budowie.";
    } else if (balance < 10) {
      balanceCard.classList.add("is-warning");
      heightStatus.textContent = "Pozostało tylko " + format(balance, 0) + " mm rezerwy. Sprawdź tolerancje wykonawcze, nierówności podłoża, grubość kleju i rzeczywisty poziom progów.";
    } else {
      balanceCard.classList.add("is-good");
      heightStatus.textContent = "Wpisany układ mieści się w dostępnej wysokości z rezerwą " + format(balance, 0) + " mm. To kontrola geometryczna, nie odbiór całej konstrukcji.";
    }

    var perimeterWrap = byId("rk-ins-perimeter-wrap");
    perimeterWrap.hidden = !isGround;

    if (isGround) {
      setText("rk-ins-result-bprime", format(bPrime, 2) + " m");
      setText("rk-ins-result-bprime-note", "2A/P — informacja geometryczna");
    } else {
      setText("rk-ins-result-bprime", "—");
      setText("rk-ins-result-bprime-note", "dotyczy podłogi na gruncie");
    }

    setText("rk-ins-legend1", "λ₁ " + format(lambda1, 3));
    setText("rk-ins-legend2", "λ₂ " + format(lambda2, 3));

    updateStack(finish, heating, layer2, layer1, service);
    drawChart(lambda1, lambda2, totalThickness, totalR);

    var diagnostics = byId("rk-ins-diagnostics");
    diagnostics.innerHTML = "";

    if (floorType === "ground") {
      addDiagnostic(diagnostics, "Podłoga na gruncie: obowiązujące wymaganie Uc(max) dla pomieszczenia ogrzewanego do co najmniej 16°C wynosi 0,30 W/(m²K). Samo R izolacji i B′ nie wystarczają do potwierdzenia zgodności.", "is-warning");
    } else if (floorType === "heated") {
      addDiagnostic(diagnostics, "Strop nad ogrzewanym pomieszczeniem: oprócz przepływu ciepła sprawdź akustykę, konstrukcję podłogi pływającej i dopuszczalne odkształcenia warstw.", "");
    } else if (floorType === "unheated") {
      addDiagnostic(diagnostics, "Strop nad nieogrzewaną piwnicą lub garażem: potrzebna jest temperatura po stronie nieogrzewanej oraz pełne obliczenie całej przegrody.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Podłoga nad powietrzem zewnętrznym: nie stosuj uproszczeń dla stropu między ogrzewanymi pomieszczeniami. Sprawdź wymagania przegrody zewnętrznej i mostki.", "is-warning");
    }

    if (balance < 0) {
      addDiagnostic(diagnostics, "Kolizja wysokości: brakuje " + format(Math.abs(balance), 0) + " mm. Nie redukuj przypadkowo jastrychu ani izolacji bez uzgodnienia nowego przekroju.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Bilans wysokości: układ wykorzystuje " + format(usedHeight, 0) + " z dostępnych " + format(availableHeight, 0) + " mm.", "");
    }

    addDiagnostic(diagnostics, "Wpisane CS(10) = " + format(csValue, 0) + " kPa. Ta wartość opisuje naprężenie przy 10% odkształceniu i sama nie potwierdza dopuszczalnego obciążenia długotrwałego.", csValue < 70 ? "is-warning" : "");
    addDiagnostic(diagnostics, "Opór R = " + format(totalR, 2) + " m²K/W dotyczy wyłącznie dwóch wpisanych warstw izolacji. Lambdy powinny pochodzić z deklaracji właściwości konkretnego wyrobu.", "");
  };

  var fields = root.querySelectorAll("#rk-ins-tool input, #rk-ins-tool select");
  Array.prototype.forEach.call(fields, function (field) {
    field.addEventListener("input", update);
    field.addEventListener("change", update);
  });

  var progress = byId("rk-ins-progress");
  var updateProgress = function () {
    if (!progress) {
      return;
    }
    var rootTop = window.scrollY + root.getBoundingClientRect().top;
    var distance = root.scrollHeight - window.innerHeight;
    if (distance <= 0) {
      progress.style.width = "100%";
      return;
    }
    var current = window.scrollY - rootTop;
    var percentage = Math.min(100, Math.max(0, current / distance * 100));
    progress.style.width = percentage + "%";
  };

  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", updateProgress);

  update();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">Ile styropianu pod ogrzewanie podłogowe? Grubość, opór R i kalkulator ilości.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maksymalna temperatura zasilania podłogówki.</title>
		<link>https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 12 Jul 2025 07:21:09 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędność energii]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja podłogowa]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[maksymalna temperatura zasilania podłogówki]]></category>
		<category><![CDATA[normy en 1264]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[temperatura wody]]></category>
		<category><![CDATA[zawory mieszające]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2671</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to rozwiązanie, które łączy komfort z efektywnością energetyczną, ale kluczem do jego prawidłowego działania jest odpowiednia temperatura wody. W artykule wyjaśniamy, jaka jest maksymalna temperatura zasilania podłogówki, jakie czynniki na nią wpływają i jak uniknąć typowych błędów. Dowiedz się, jak profesjonalny projekt i odpowiednie ustawienia mogą zapewnić ciepło w Twoim domu, chroniąc jednocześnie posadzkę i obniżając rachunki za ogrzewanie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-temp-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e8fbff;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }

  #rk-temp-guide,
  #rk-temp-guide * {
    box-sizing: border-box;
  }

  #rk-temp-guide img,
  #rk-temp-guide svg {
    max-width: 100%;
  }

  #rk-temp-guide button,
  #rk-temp-guide input,
  #rk-temp-guide select,
  #rk-temp-guide label,
  #rk-temp-guide summary,
  #rk-temp-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-temp-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-temp-guide p,
  #rk-temp-guide ul,
  #rk-temp-guide ol {
    margin-top: 0;
    margin-bottom: 1.1em;
  }

  #rk-temp-guide h2,
  #rk-temp-guide h3,
  #rk-temp-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-temp-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.75rem, 4vw, 2.7rem);
    line-height: 1.08;
  }

  #rk-temp-guide h3 {
    margin-bottom: 10px;
    font-size: clamp(1.08rem, 2.2vw, 1.35rem);
    line-height: 1.22;
  }

  #rk-temp-guide h4 {
    margin-bottom: 8px;
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-temp-guide .rk-temp-shell {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 32px;
    background: var(--rk-white);
    box-shadow: 0 28px 70px rgba(16, 37, 54, 0.11);
  }

  #rk-temp-guide .rk-temp-progress-track {
    position: sticky;
    z-index: 60;
    top: 0;
    height: 5px;
    background: rgba(213, 228, 235, 0.86);
  }

  #rk-temp-guide .rk-temp-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-cyan));
  }

  #rk-temp-guide .rk-temp-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(40px, 7vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 17%, rgba(255, 106, 61, 0.38), transparent 27%),
      radial-gradient(circle at 76% 96%, rgba(37, 199, 216, 0.28), transparent 35%),
      linear-gradient(126deg, #0f2233, #143d53 72%, #2e3944);
  }

  #rk-temp-guide .rk-temp-hero::after {
    position: absolute;
    right: -75px;
    bottom: -110px;
    width: 370px;
    height: 370px;
    border: 42px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
    content: "";
  }

  #rk-temp-guide .rk-temp-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 930px;
  }

  #rk-temp-guide .rk-temp-eyebrow,
  #rk-temp-guide .rk-temp-kicker {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 17px;
    color: var(--rk-orange);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-temp-guide .rk-temp-eyebrow {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #e2fbff;
    background: rgba(255, 255, 255, 0.06);
  }

  #rk-temp-guide .rk-temp-eyebrow b {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 106, 61, 0.16);
  }

  #rk-temp-guide .rk-temp-hero-title {
    max-width: 920px;
    margin-bottom: 22px;
    color: var(--rk-white);
    font-size: clamp(2.1rem, 5.1vw, 4.2rem);
    font-weight: 980;
    letter-spacing: -0.058em;
    line-height: 1;
  }

  #rk-temp-guide .rk-temp-hero-lead {
    max-width: 860px;
    margin-bottom: 25px;
    color: #d9e9f0;
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.7;
  }

  #rk-temp-guide .rk-temp-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 24px;
    color: #c5dae3;
    font-size: 0.74rem;
    font-weight: 800;
  }

  #rk-temp-guide .rk-temp-meta span {
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }

  #rk-temp-guide .rk-temp-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-temp-guide .rk-temp-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 20px clamp(22px, 5vw, 58px);
    border-bottom: 1px solid var(--rk-line);
    background: #f8fbfc;
  }

  #rk-temp-guide .rk-temp-nav strong,
  #rk-temp-guide .rk-temp-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 39px;
    padding: 8px 13px;
    border-radius: 999px;
    font-size: 0.76rem;
    line-height: 1.25;
  }

  #rk-temp-guide .rk-temp-nav strong {
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-temp-guide .rk-temp-nav a {
    color: var(--rk-dark);
    text-decoration: none;
    background: #edf4f7;
    transition: transform 0.18s ease, background 0.18s ease;
  }

  #rk-temp-guide .rk-temp-nav a:hover,
  #rk-temp-guide .rk-temp-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-2px);
  }

  #rk-temp-guide .rk-temp-section {
    scroll-margin-top: 30px;
    padding: clamp(42px, 7vw, 78px) clamp(22px, 6vw, 72px);
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-temp-guide .rk-temp-section:nth-of-type(even) {
    background: linear-gradient(180deg, #fbfdfe, #f6fafc);
  }

  #rk-temp-guide .rk-temp-intro {
    max-width: 920px;
    color: var(--rk-text);
    font-size: 1.05rem;
  }

  #rk-temp-guide .rk-temp-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);
    gap: 18px;
    margin: 27px 0;
  }

  #rk-temp-guide .rk-temp-answer-main,
  #rk-temp-guide .rk-temp-answer-side {
    padding: clamp(22px, 4vw, 34px);
    border-radius: 22px;
  }

  #rk-temp-guide .rk-temp-answer-main {
    color: #dcecf2;
    background: var(--rk-dark);
  }

  #rk-temp-guide .rk-temp-answer-main h3 {
    color: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-answer-main strong {
    color: #7eeeff;
  }

  #rk-temp-guide .rk-temp-answer-side {
    border: 1px solid #ffd6c6;
    background: var(--rk-orange-soft);
  }

  #rk-temp-guide .rk-temp-answer p:last-child,
  #rk-temp-guide .rk-temp-card p:last-child,
  #rk-temp-guide .rk-temp-panel p:last-child,
  #rk-temp-guide .rk-temp-notice p:last-child,
  #rk-temp-guide .rk-temp-source-box p:last-child {
    margin-bottom: 0;
  }

  #rk-temp-guide .rk-temp-grid-2,
  #rk-temp-guide .rk-temp-grid-3,
  #rk-temp-guide .rk-temp-grid-4 {
    display: grid;
    gap: 18px;
    margin-top: 25px;
  }

  #rk-temp-guide .rk-temp-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-temp-guide .rk-temp-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-temp-guide .rk-temp-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-temp-guide .rk-temp-card,
  #rk-temp-guide .rk-temp-panel {
    position: relative;
    padding: 23px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
    box-shadow: 0 11px 26px rgba(16, 37, 54, 0.055);
  }

  #rk-temp-guide .rk-temp-card-number {
    display: inline-flex;
    margin-bottom: 14px;
    padding: 5px 10px;
    border-radius: 999px;
    color: var(--rk-blue);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    background: var(--rk-cyan-soft);
  }

  #rk-temp-guide .rk-temp-formula {
    margin: 28px 0;
    padding: 25px clamp(20px, 4vw, 34px);
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 20px 20px 0;
    color: #dcecf2;
    background: linear-gradient(135deg, var(--rk-dark), #183f53);
  }

  #rk-temp-guide .rk-temp-formula strong {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-white);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1.05rem, 2.4vw, 1.45rem);
  }

  #rk-temp-guide .rk-temp-formula span {
    display: block;
    color: #c8dde5;
    font-size: 0.86rem;
  }

  #rk-temp-guide .rk-temp-table-wrap {
    margin: 26px 0;
    overflow-x: auto;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-temp-guide table {
    width: 100%;
    border: 0;
    border-collapse: collapse;
    font-size: 0.9rem;
  }

  #rk-temp-guide th,
  #rk-temp-guide td {
    padding: 15px 17px;
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-temp-guide th {
    color: var(--rk-white);
    font-size: 0.73rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--rk-dark);
  }

  #rk-temp-guide tbody tr:last-child td {
    border-bottom: 0;
  }

  #rk-temp-guide tbody tr:nth-child(even) td {
    background: #f7fafb;
  }

  #rk-temp-guide .rk-temp-notice {
    margin: 25px 0;
    padding: 21px 23px;
    border: 1px solid #edd78d;
    border-radius: 18px;
    color: #5a4a16;
    background: var(--rk-yellow-soft);
  }

  #rk-temp-guide .rk-temp-notice.is-danger {
    border-color: #efb7b0;
    color: #742c25;
    background: var(--rk-red-soft);
  }

  #rk-temp-guide .rk-temp-notice.is-info {
    border-color: #b7e5ed;
    color: #174b5b;
    background: var(--rk-cyan-soft);
  }

  #rk-temp-guide .rk-temp-tool {
    overflow: hidden;
    margin-top: 27px;
    border: 1px solid #32566a;
    border-radius: 26px;
    color: #dcecf2;
    background: var(--rk-dark);
    box-shadow: 0 24px 50px rgba(16, 37, 54, 0.18);
  }

  #rk-temp-guide .rk-temp-tool-head {
    padding: clamp(25px, 5vw, 42px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.13);
    background: linear-gradient(120deg, #12364b, #1a4f61);
  }

  #rk-temp-guide .rk-temp-tool-head h3 {
    margin-bottom: 11px;
    color: var(--rk-white);
    font-size: clamp(1.35rem, 3vw, 2.05rem);
  }

  #rk-temp-guide .rk-temp-tool-head p {
    max-width: 900px;
    margin-bottom: 0;
  }

  #rk-temp-guide .rk-temp-tool-body {
    padding: clamp(22px, 4vw, 38px);
  }

  #rk-temp-guide .rk-temp-tool-block {
    margin-bottom: 24px;
    padding: clamp(19px, 3vw, 28px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.035);
  }

  #rk-temp-guide .rk-temp-tool-block h4 {
    margin-bottom: 17px;
    color: #82eefb;
    font-size: 0.77rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-temp-guide .rk-temp-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-temp-guide .rk-temp-field {
    min-width: 0;
  }

  #rk-temp-guide .rk-temp-field label {
    display: block;
    margin-bottom: 7px;
    color: #dcecf2;
    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.4;
  }

  #rk-temp-guide .rk-temp-field input,
  #rk-temp-guide .rk-temp-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #9db4bf;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    outline: 0;
  }

  #rk-temp-guide .rk-temp-field input:focus,
  #rk-temp-guide .rk-temp-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 3px rgba(37, 199, 216, 0.2);
  }

  #rk-temp-guide .rk-temp-field small {
    display: block;
    margin-top: 6px;
    color: #a8c0ca;
    font-size: 0.66rem;
    line-height: 1.4;
  }

  #rk-temp-guide .rk-temp-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 19px;
  }

  #rk-temp-guide .rk-temp-calculate,
  #rk-temp-guide .rk-temp-reset {
    min-height: 48px;
    padding: 11px 19px;
    border: 0;
    border-radius: 11px;
    font-weight: 900;
    cursor: pointer;
  }

  #rk-temp-guide .rk-temp-calculate {
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }

  #rk-temp-guide .rk-temp-reset {
    color: #dcecf2;
    background: #2a4b5d;
  }

  #rk-temp-guide .rk-temp-calculate:hover,
  #rk-temp-guide .rk-temp-calculate:focus-visible,
  #rk-temp-guide .rk-temp-reset:hover,
  #rk-temp-guide .rk-temp-reset:focus-visible {
    transform: translateY(-2px);
    filter: brightness(1.06);
  }

  #rk-temp-guide .rk-temp-results {
    margin-top: 25px;
  }

  #rk-temp-guide .rk-temp-results h3 {
    color: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-result-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
  }

  #rk-temp-guide .rk-temp-result-card {
    min-height: 116px;
    padding: 17px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 15px;
    background: #173547;
  }

  #rk-temp-guide .rk-temp-result-card.is-main {
    border-color: rgba(37, 199, 216, 0.7);
    background: #12465a;
  }

  #rk-temp-guide .rk-temp-result-card small {
    display: block;
    min-height: 36px;
    color: #a9c1cb;
    font-size: 0.68rem;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-temp-guide .rk-temp-result-card strong {
    display: block;
    margin-top: 7px;
    color: var(--rk-white);
    font-size: clamp(1.22rem, 2.5vw, 1.65rem);
    line-height: 1.15;
  }

  #rk-temp-guide .rk-temp-status {
    margin-top: 16px;
    padding: 19px 21px;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 0 16px 16px 0;
    color: #f7edc3;
    background: rgba(231, 173, 47, 0.13);
  }

  #rk-temp-guide .rk-temp-status.is-ok {
    border-color: #42d4a4;
    color: #cff7e9;
    background: rgba(66, 212, 164, 0.11);
  }

  #rk-temp-guide .rk-temp-status.is-danger {
    border-color: #ff725f;
    color: #ffd9d3;
    background: rgba(255, 114, 95, 0.12);
  }

  #rk-temp-guide .rk-temp-status h4 {
    margin-bottom: 6px;
    color: inherit;
  }

  #rk-temp-guide .rk-temp-status p {
    margin-bottom: 0;
  }

  #rk-temp-guide .rk-temp-warnings {
    display: grid;
    gap: 8px;
    margin: 15px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-temp-guide .rk-temp-warnings li {
    padding: 10px 12px;
    border-radius: 10px;
    color: #d8e8ee;
    font-size: 0.75rem;
    line-height: 1.5;
    background: rgba(255, 255, 255, 0.055);
  }

  #rk-temp-guide .rk-temp-chart-panel {
    margin-top: 24px;
    padding: clamp(17px, 3vw, 27px);
    border-radius: 20px;
    color: var(--rk-text);
    background: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-chart-panel h3 {
    color: var(--rk-dark);
  }

  #rk-temp-guide .rk-temp-chart-wrap {
    overflow-x: auto;
  }

  #rk-temp-guide .rk-temp-chart {
    display: block;
    width: 100%;
    min-width: 660px;
    height: auto;
  }

  #rk-temp-guide .rk-temp-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: 12px;
    color: var(--rk-text);
    font-size: 0.72rem;
    font-weight: 800;
  }

  #rk-temp-guide .rk-temp-chart-legend span {
    display: inline-flex;
    gap: 7px;
    align-items: center;
  }

  #rk-temp-guide .rk-temp-chart-legend i {
    width: 19px;
    height: 4px;
    border-radius: 99px;
    background: currentColor;
  }

  #rk-temp-guide .rk-temp-model-note {
    margin-top: 16px;
    color: #b4cbd4;
    font-size: 0.69rem;
    line-height: 1.55;
  }

  #rk-temp-guide .rk-temp-inline-cta,
  #rk-temp-guide .rk-temp-final-cta {
    color: #dcecf2;
    background:
      radial-gradient(circle at 90% 20%, rgba(255, 106, 61, 0.27), transparent 30%),
      linear-gradient(125deg, #102536, #174b5e);
  }

  #rk-temp-guide .rk-temp-inline-cta {
    margin-top: 25px;
    padding: clamp(23px, 4vw, 34px);
    border: 1px solid rgba(37, 199, 216, 0.34);
    border-radius: 20px;
  }

  #rk-temp-guide .rk-temp-inline-cta h3,
  #rk-temp-guide .rk-temp-final-cta h2 {
    color: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    margin-top: 6px;
    padding: 12px 21px;
    border-radius: 12px;
    color: var(--rk-dark);
    text-decoration: none;
    background: linear-gradient(90deg, var(--rk-cyan), #75edda);
    box-shadow: 0 12px 25px rgba(37, 199, 216, 0.19);
    transition: transform 0.18s ease, filter 0.18s ease;
  }

  #rk-temp-guide .rk-temp-cta-button:hover,
  #rk-temp-guide .rk-temp-cta-button:focus-visible {
    color: var(--rk-dark);
    transform: translateY(-2px);
    filter: brightness(1.06);
  }

  #rk-temp-guide .rk-temp-disclosure {
    display: block;
    margin-top: 12px;
    color: #abc3cc;
    font-size: 0.65rem;
    line-height: 1.5;
  }

  #rk-temp-guide .rk-temp-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
    counter-reset: rk-temp-step;
  }

  #rk-temp-guide .rk-temp-step {
    position: relative;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    counter-increment: rk-temp-step;
  }

  #rk-temp-guide .rk-temp-step::before {
    display: inline-grid;
    width: 37px;
    height: 37px;
    margin-bottom: 14px;
    border-radius: 50%;
    place-items: center;
    color: var(--rk-white);
    font-size: 0.78rem;
    font-weight: 950;
    background: var(--rk-blue);
    content: counter(rk-temp-step, decimal-leading-zero);
  }

  #rk-temp-guide .rk-temp-checklist {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  #rk-temp-guide .rk-temp-checkitem {
    position: relative;
    padding: 15px 15px 15px 46px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-checkitem::before {
    position: absolute;
    top: 14px;
    left: 15px;
    display: grid;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    place-items: center;
    color: var(--rk-white);
    font-size: 0.69rem;
    font-weight: 950;
    background: var(--rk-green);
    content: "✓";
  }

  #rk-temp-guide .rk-temp-errors {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  #rk-temp-guide .rk-temp-error {
    padding: 22px;
    border: 1px solid #efc2bc;
    border-radius: 17px;
    background: var(--rk-red-soft);
  }

  #rk-temp-guide .rk-temp-error b {
    display: inline-block;
    margin-bottom: 10px;
    color: var(--rk-red);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-temp-guide .rk-temp-faq details {
    overflow: hidden;
    margin-bottom: 11px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    background: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-faq summary {
    position: relative;
    padding: 17px 51px 17px 19px;
    color: var(--rk-dark);
    font-weight: 900;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-temp-guide .rk-temp-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-temp-guide .rk-temp-faq summary::after {
    position: absolute;
    top: 50%;
    right: 18px;
    color: var(--rk-blue);
    font-size: 1.3rem;
    transform: translateY(-50%);
    content: "+";
  }

  #rk-temp-guide .rk-temp-faq details[open] summary::after {
    content: "−";
  }

  #rk-temp-guide .rk-temp-faq-answer {
    padding: 0 19px 18px;
    color: var(--rk-text);
  }

  #rk-temp-guide .rk-temp-source-box {
    padding: clamp(22px, 4vw, 32px);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-temp-guide .rk-temp-update {
    display: inline-flex;
    margin-top: 18px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-green);
    font-size: 0.7rem;
    font-weight: 900;
    background: var(--rk-green-soft);
  }

  #rk-temp-guide .rk-temp-author {
    position: relative;
    border-bottom: 1px solid var(--rk-line);
    background: #f4f9fb;
  }

  #rk-temp-guide .rk-temp-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
  }

  #rk-temp-guide .rk-temp-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    padding: 31px clamp(22px, 5vw, 48px);
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-temp-guide .rk-temp-author-head h2 {
    margin-bottom: 5px;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
  }

  #rk-temp-guide .rk-temp-author-head p {
    margin-bottom: 0;
    color: var(--rk-text);
  }

  #rk-temp-guide .rk-temp-author-mark {
    flex: 0 0 auto;
    padding: 9px 13px;
    border-radius: 999px;
    color: var(--rk-blue);
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    background: var(--rk-cyan-soft);
  }

  #rk-temp-guide .rk-temp-author-layout {
    display: grid;
    grid-template-columns: 285px minmax(0, 1fr);
  }

  #rk-temp-guide .rk-temp-author-side {
    padding: 34px 28px;
    color: #d9e9f0;
    text-align: center;
    background: var(--rk-dark);
  }

  #rk-temp-guide .rk-temp-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 20px;
    overflow: hidden;
    border: 6px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
  }

  #rk-temp-guide .rk-temp-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-temp-guide .rk-temp-author-name {
    color: var(--rk-white);
    font-size: 1.25rem;
    font-weight: 950;
  }

  #rk-temp-guide .rk-temp-author-role {
    margin-top: 8px;
    color: #b9cfd8;
    font-size: 0.74rem;
    line-height: 1.55;
  }

  #rk-temp-guide .rk-temp-author-social-label {
    margin-top: 25px;
    color: #93adb8;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-temp-guide .rk-temp-author-social {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 11px;
  }

  #rk-temp-guide .rk-temp-author-social a {
    display: grid;
    width: 43px;
    height: 43px;
    border: 1px solid #496879;
    border-radius: 50%;
    place-items: center;
    color: #d9e9f0;
    transition: transform 0.18s ease, border-color 0.18s ease;
  }

  #rk-temp-guide .rk-temp-author-social a:hover,
  #rk-temp-guide .rk-temp-author-social a:focus-visible {
    border-color: var(--rk-cyan);
    color: var(--rk-white);
    transform: translateY(-2px);
  }

  #rk-temp-guide .rk-temp-author-social svg {
    width: 21px;
    height: 21px;
    fill: currentColor;
  }

  #rk-temp-guide .rk-temp-author-main {
    padding: clamp(29px, 5vw, 45px);
  }

  #rk-temp-guide .rk-temp-author-quote {
    position: relative;
    margin: 0 0 24px;
    padding: 23px 23px 23px 68px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-temp-guide .rk-temp-author-quote::before {
    position: absolute;
    top: 5px;
    left: 21px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 4rem;
    line-height: 1;
    content: "“";
  }

  #rk-temp-guide .rk-temp-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-weight: 850;
  }

  #rk-temp-guide .rk-temp-author-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
  }

  #rk-temp-guide .rk-temp-author-tab {
    padding: 9px 14px;
    border-radius: 999px;
    color: var(--rk-muted);
    font-size: 0.72rem;
    font-weight: 900;
    background: #e7f0f4;
    cursor: pointer;
  }

  #rk-temp-guide .rk-temp-author-panel {
    display: none;
    color: var(--rk-text);
  }

  #rk-temp-author-about:checked ~ .rk-temp-author-layout .rk-temp-author-panel-about,
  #rk-temp-author-exp:checked ~ .rk-temp-author-layout .rk-temp-author-panel-exp,
  #rk-temp-author-sites:checked ~ .rk-temp-author-layout .rk-temp-author-panel-sites {
    display: block;
  }

  #rk-temp-author-about:checked ~ .rk-temp-author-layout label[for="rk-temp-author-about"],
  #rk-temp-author-exp:checked ~ .rk-temp-author-layout label[for="rk-temp-author-exp"],
  #rk-temp-author-sites:checked ~ .rk-temp-author-layout label[for="rk-temp-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-temp-guide .rk-temp-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }

  #rk-temp-guide .rk-temp-site-links a {
    padding: 8px 12px;
    border-radius: 10px;
    text-decoration: none;
    background: var(--rk-cyan-soft);
  }

  #rk-temp-guide .rk-temp-final-cta {
    scroll-margin-top: 30px;
    padding: clamp(42px, 7vw, 72px) clamp(22px, 6vw, 72px);
    text-align: center;
  }

  #rk-temp-guide .rk-temp-final-cta p {
    max-width: 850px;
    margin-right: auto;
    margin-left: auto;
  }

  @media (max-width: 980px) {
    #rk-temp-guide .rk-temp-grid-4,
    #rk-temp-guide .rk-temp-result-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-temp-guide .rk-temp-grid-3,
    #rk-temp-guide .rk-temp-steps,
    #rk-temp-guide .rk-temp-checklist {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-temp-guide .rk-temp-fields {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    #rk-temp-guide {
      margin: 16px auto 45px;
      font-size: 16px;
    }

    #rk-temp-guide .rk-temp-shell {
      border-radius: 20px;
    }

    #rk-temp-guide .rk-temp-answer,
    #rk-temp-guide .rk-temp-grid-2,
    #rk-temp-guide .rk-temp-errors,
    #rk-temp-guide .rk-temp-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-temp-guide .rk-temp-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-temp-guide .rk-temp-author-side {
      padding-bottom: 29px;
    }

    #rk-temp-guide table,
    #rk-temp-guide thead,
    #rk-temp-guide tbody,
    #rk-temp-guide tr,
    #rk-temp-guide th,
    #rk-temp-guide td {
      display: block;
      width: 100%;
    }

    #rk-temp-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-temp-guide tbody tr {
      margin-bottom: 13px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-temp-guide td,
    #rk-temp-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(118px, 0.75fr) minmax(0, 1.25fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-temp-guide td::before {
      color: var(--rk-dark);
      font-size: 0.7rem;
      font-weight: 900;
      line-height: 1.45;
      content: attr(data-label);
    }
  }

  @media (max-width: 560px) {
    #rk-temp-guide .rk-temp-grid-3,
    #rk-temp-guide .rk-temp-grid-4,
    #rk-temp-guide .rk-temp-steps,
    #rk-temp-guide .rk-temp-checklist,
    #rk-temp-guide .rk-temp-fields,
    #rk-temp-guide .rk-temp-result-grid {
      grid-template-columns: 1fr;
    }

    #rk-temp-guide .rk-temp-result-card small {
      min-height: 0;
    }

    #rk-temp-guide .rk-temp-tool-actions,
    #rk-temp-guide .rk-temp-calculate,
    #rk-temp-guide .rk-temp-reset,
    #rk-temp-guide .rk-temp-cta-button {
      width: 100%;
    }

    #rk-temp-guide td,
    #rk-temp-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-temp-guide .rk-temp-author-main {
      padding: 24px 18px;
    }

    #rk-temp-guide .rk-temp-author-quote {
      padding: 55px 18px 20px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-temp-guide *,
    #rk-temp-guide *::before,
    #rk-temp-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-temp-guide" data-rk-temp-version="2026-08-30" aria-label="Maksymalna temperatura zasilania ogrzewania podłogowego">
  <div class="rk-temp-shell">
    <div class="rk-temp-progress-track" aria-hidden="true"><div class="rk-temp-progress" id="rk-temp-progress"></div></div>

    <header class="rk-temp-hero">
      <div class="rk-temp-hero-inner">
        <span class="rk-temp-eyebrow"><b aria-hidden="true"></b> Temperatura podłogówki • obliczenia i bezpieczne granice</span>
        <div class="rk-temp-hero-title" role="heading" aria-level="2">Maksymalna temperatura zasilania nie jest jedną liczbą dla każdej podłogi</div>
        <p class="rk-temp-hero-lead">Oddziel temperaturę wody od temperatury powierzchni. Oblicz wymaganą moc czynnej podłogi, sprawdź ograniczenie strefy i okładziny, a następnie porównaj zasilanie 30–55°C na wspólnym wykresie.</p>
        <div class="rk-temp-meta">
          <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 30 sierpnia 2026 r.</span>
          <span><i aria-hidden="true"></i> Interaktywny analizator i wykres</span>
        </div>
      </div>
    </header>

    <nav class="rk-temp-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty</strong>
      <a href="#rk-temp-answer">Szybka odpowiedź</a>
      <a href="#rk-temp-temperatures">Pięć temperatur</a>
      <a href="#rk-temp-standard">Czy norma mówi 55°C?</a>
      <a href="#rk-temp-surface">Temperatura powierzchni</a>
      <a href="#rk-temp-tool">Analizator</a>
      <a href="#rk-temp-result-reading">Interpretacja wyniku</a>
      <a href="#rk-temp-load">Strata i powierzchnia czynna</a>
      <a href="#rk-temp-spacing">Rozstaw rur</a>
      <a href="#rk-temp-covering">Okładzina</a>
      <a href="#rk-temp-construction">Konstrukcja podłogi</a>
      <a href="#rk-temp-sources-heat">Pompa i kocioł</a>
      <a href="#rk-temp-control">Mieszanie i sterowanie</a>
      <a href="#rk-temp-diagnostics">Zimna podłoga</a>
      <a href="#rk-temp-commissioning">Wygrzewanie jastrychu</a>
      <a href="#rk-temp-overheating">Za wysoka temperatura</a>
      <a href="#rk-temp-examples">Przykłady</a>
      <a href="#rk-temp-howto">Checklista ustawienia</a>
      <a href="#rk-temp-faq">FAQ</a>
      <a href="#rk-temp-sources">Źródła</a>
      <a href="#rk-temp-author">Autor</a>
      <a href="#rk-temp-project">Projekt</a>
    </nav>

    <main>
      <section class="rk-temp-section" id="rk-temp-answer">
        <span class="rk-temp-kicker">Odpowiedź w 60 sekund</span>
        <h2>Jaka jest maksymalna temperatura zasilania podłogówki?</h2>
        <p class="rk-temp-intro"><strong>Nie ma jednej maksymalnej temperatury zasilania właściwej dla każdej podłogówki.</strong> Dopuszczalną wartością jest najniższa z granic wynikających z obliczeń systemu, maksymalnej temperatury powierzchni, instrukcji okładziny i jastrychu, dopuszczalnych parametrów elementów instalacji oraz nastaw zabezpieczeń.</p>

        <div class="rk-temp-answer">
          <div class="rk-temp-answer-main">
            <h3>Najważniejsza zasada projektowa</h3>
            <p>Najpierw wyznacza się wymaganą moc z 1 m² czynnej podłogi. Następnie sprawdza się, czy przy konkretnej konstrukcji, rozstawie, oporze okładziny oraz temperaturze zasilania i powrotu można ją uzyskać <strong>bez przekroczenia dopuszczalnej temperatury powierzchni</strong>.</p>
          </div>
          <aside class="rk-temp-answer-side">
            <h3>Co oznacza 55°C?</h3>
            <p>To wartość spotykana jako wysoka granica w części systemów i ustawień zabezpieczających. Nie jest automatycznie temperaturą zalecaną ani bezpieczną dla każdej posadzki.</p>
          </aside>
        </div>

        <div class="rk-temp-grid-4">
          <article class="rk-temp-card"><span class="rk-temp-card-number">30–35°C</span><h3>Częsty zakres roboczy</h3><p>Może wystarczać w dobrze zaprojektowanym, niskotemperaturowym budynku. Nie jest jednak gwarantowany dla każdego pomieszczenia.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">40–45°C</span><h3>Wartość wymagająca sprawdzenia</h3><p>Może pojawić się przy większym obciążeniu, szerokim rozstawie albo opornej okładzinie. Trzeba policzyć temperaturę powierzchni.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">50–55°C</span><h3>Wysokie zasilanie</h3><p>Nie oznacza automatycznie awarii, ale nie może być oceniane bez konstrukcji podłogi, przepływu i ograniczeń materiałowych.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">θF,max</span><h3>Granica powierzchni</h3><p>To właśnie temperatura użytkowej powierzchni, a nie sama liczba na zasilaniu, chroni komfort oraz wykończenie podłogi.</p></article>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-temperatures">
        <span class="rk-temp-kicker">Najczęstsze źródło nieporozumień</span>
        <h2>Temperatura zasilania, powrotu, wody i podłogi to różne wartości</h2>
        <p class="rk-temp-intro">Zasilanie 40°C nie oznacza powierzchni podłogi o temperaturze 40°C. Pomiędzy wodą w rurze a pomieszczeniem znajdują się ścianka przewodu, jastrych, klej, okładzina oraz opór przejmowania ciepła z powierzchni do powietrza.</p>

        <div class="rk-temp-grid-3">
          <article class="rk-temp-card"><span class="rk-temp-card-number">θV</span><h3>Temperatura zasilania</h3><p>Temperatura wody wpływającej do pętli. Zwykle jest najwyższą temperaturą czynnika w danym obwodzie.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">θR</span><h3>Temperatura powrotu</h3><p>Temperatura wody opuszczającej pętlę po przekazaniu części energii do konstrukcji podłogi.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">ΔT</span><h3>Spadek temperatury wody</h3><p>Różnica θV − θR. Wiąże moc obwodu z wymaganym przepływem i nie powinna być mylona z różnicą woda–pomieszczenie.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">θm</span><h3>Średnia temperatura wody</h3><p>W prostym przybliżeniu to średnia z zasilania i powrotu. W analizie wymiany ciepła można użyć średniej logarytmicznej różnicy temperatur.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">θF,m</span><h3>Temperatura powierzchni</h3><p>Średnia temperatura gotowej posadzki widziana przez użytkownika. To ona jest związana z komfortem i granicami strefy.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">θi</span><h3>Temperatura pomieszczenia</h3><p>Temperatura obliczeniowa wnętrza. Ta sama podłoga oddaje inną moc w pokoju 20°C i w łazience 24°C.</p></article>
        </div>

        <div class="rk-temp-formula">
          <strong>ΔT<sub>wody</sub> = θ<sub>V</sub> − θ<sub>R</sub></strong>
          <span>Artykuł o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatury zasilania i powrotu</a> rozwija wpływ ΔT na przepływ i pracę pętli.</span>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-standard">
        <span class="rk-temp-kicker">Norma i poprawna interpretacja</span>
        <h2>Czy norma określa 55°C jako uniwersalne maksimum?</h2>
        <p class="rk-temp-intro">Nie należy przedstawiać normowej metodyki jako jednego zdania „maksimum wynosi 55°C”. Projektowanie systemu powierzchniowego polega na połączeniu obciążenia pomieszczenia, powierzchni czynnej, konstrukcji, rozstawu rur, oporu wykończenia, temperatury powierzchni oraz temperatury czynnika.</p>

        <div class="rk-temp-grid-2">
          <article class="rk-temp-panel">
            <h3>Co wyznacza metodyka obliczeniowa?</h3>
            <ul>
              <li>charakterystykę cieplną konkretnego układu warstw,</li>
              <li>zależność mocy od różnicy temperatur,</li>
              <li>krzywe charakterystyczne i krzywe graniczne,</li>
              <li>temperaturę powierzchni oraz możliwy strumień ciepła,</li>
              <li>projektową temperaturę czynnika dla określonego przypadku.</li>
            </ul>
          </article>
          <article class="rk-temp-panel">
            <h3>Czego nie wolno z tego wyciągać?</h3>
            <ul>
              <li>że każda podłoga może bezpiecznie pracować przy 55°C,</li>
              <li>że 55°C jest temperaturą zalecaną do codziennej pracy,</li>
              <li>że płytki automatycznie dopuszczają dowolne wysokie zasilanie,</li>
              <li>że źródło ciepła samodzielnie wyznacza temperaturę podłogówki.</li>
            </ul>
          </article>
        </div>

        <div class="rk-temp-notice is-info"><p>Podstawę stanowią zasady obliczania wydajności i wymiarowania opisane w <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a> oraz <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021</a>. Oficjalny opis <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1" target="_blank" rel="noopener nofollow">BS EN 1264-3</a> również odwołuje się do charakterystyk i krzywych granicznych dla konkretnego pomieszczenia.</p></div>
      </section>

      <section class="rk-temp-section" id="rk-temp-surface">
        <span class="rk-temp-kicker">Komfort i ograniczenie mocy</span>
        <h2>Maksymalna temperatura powierzchni ogrzewanej podłogi</h2>
        <p class="rk-temp-intro">Granice powierzchni odnoszą się do określonej strefy i temperatury pomieszczenia. Dodatkowo dokumentacja okładziny może narzucić wartość niższą — wtedy to ona staje się ograniczeniem dla projektu.</p>

        <div class="rk-temp-table-wrap">
          <table>
            <thead><tr><th>Strefa</th><th>Temperatura pomieszczenia</th><th>Przykładowa granica powierzchni</th><th>Znaczenie</th></tr></thead>
            <tbody>
              <tr><td data-label="Strefa"><strong>Stałe przebywanie ludzi</strong></td><td data-label="Temperatura pomieszczenia">20°C</td><td data-label="Granica powierzchni">29°C</td><td data-label="Znaczenie">Typowa granica komfortu dla głównej powierzchni pomieszczenia.</td></tr>
              <tr><td data-label="Strefa"><strong>Łazienka</strong></td><td data-label="Temperatura pomieszczenia">24°C</td><td data-label="Granica powierzchni">33°C</td><td data-label="Znaczenie">Różnica względem pomieszczenia pozostaje równa 9 K.</td></tr>
              <tr><td data-label="Strefa"><strong>Strefa brzegowa</strong></td><td data-label="Temperatura pomieszczenia">20°C</td><td data-label="Granica powierzchni">35°C</td><td data-label="Znaczenie">Dotyczy świadomie wydzielonej strefy, a nie całej podłogi salonu.</td></tr>
              <tr><td data-label="Strefa"><strong>Okładzina z niższym limitem</strong></td><td data-label="Temperatura pomieszczenia">Zgodnie z projektem</td><td data-label="Granica powierzchni">Według deklaracji</td><td data-label="Znaczenie">Niższa wartość producenta wykończenia ma pierwszeństwo.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-temp-formula">
          <strong>q = 8,92 × (θ<sub>F,m</sub> − θ<sub>i</sub>)<sup>1,1</sup></strong>
          <span>Zależność opisuje orientacyjny strumień ciepła oddawany przez powierzchnię do pomieszczenia. Nie jest bezpośrednim wzorem na temperaturę zasilania.</span>
        </div>

        <p>Jeżeli wymagana moc pomieszczenia wymuszałaby wyższą temperaturę powierzchni niż dopuszczalna, samo podniesienie zasilania nie jest prawidłowym rozwiązaniem. Potrzebne może być ograniczenie strat, zwiększenie powierzchni grzewczej albo dodatkowy emiter.</p>
      </section>

      <section class="rk-temp-section" id="rk-temp-tool">
        <span class="rk-temp-kicker">Jedno narzędzie zamiast kilku pozornie dokładnych suwaków</span>
        <h2>Analizator temperatury zasilania i limitu powierzchni</h2>
        <p class="rk-temp-intro">Wpisz dane jednego pomieszczenia. Narzędzie obliczy wymaganą moc z czynnej podłogi, temperaturę powierzchni wynikającą z tej mocy oraz porówna wybrane zasilanie z przejrzystym modelem referencyjnym. Wszystkie pola, wyniki i wykres są ułożone kolejno pełną szerokością — bez pustych kolumn.</p>

        <div class="rk-temp-tool">
          <div class="rk-temp-tool-head">
            <span class="rk-temp-kicker" style="color:#80f1ff">Model edukacyjny • wspólne warunki porównania</span>
            <h3>Sprawdź, czy wybrane parametry są możliwe, graniczne czy niewystarczające</h3>
            <p>Model referencyjny zakłada rurę 16×2 mm, równomierny układ pętli i typową wymianę ciepła z powierzchni. Nie odtwarza krzywej konkretnego systemu ani wszystkich strat w dół.</p>
          </div>

          <div class="rk-temp-tool-body">
            <form id="rk-temp-form" aria-label="Analizator temperatury zasilania ogrzewania podłogowego">
              <div class="rk-temp-tool-block">
                <h4>Krok 1. Pomieszczenie i powierzchnia czynna</h4>
                <div class="rk-temp-fields">
                  <div class="rk-temp-field">
                    <label for="rk-temp-load-input">Projektowa strata ciepła [W]</label>
                    <input id="rk-temp-load-input" type="number" min="50" max="20000" step="10" value="1100" inputmode="decimal">
                    <small>Najlepiej z obliczeń dla konkretnego pomieszczenia.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-total-area">Powierzchnia pomieszczenia [m²]</label>
                    <input id="rk-temp-total-area" type="number" min="1" max="300" step="0.1" value="24" inputmode="decimal">
                    <small>Całe pole po obrysie pomieszczenia.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-active-area">Rzeczywiście ogrzewana powierzchnia [m²]</label>
                    <input id="rk-temp-active-area" type="number" min="0.5" max="300" step="0.1" value="20" inputmode="decimal">
                    <small>Bez trwałej zabudowy i fragmentów wyłączonych.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-room">Temperatura pomieszczenia [°C]</label>
                    <input id="rk-temp-room" type="number" min="15" max="30" step="0.5" value="20" inputmode="decimal">
                    <small>Dla łazienki zwykle sprawdza się wariant 24°C.</small>
                  </div>
                </div>
              </div>

              <div class="rk-temp-tool-block">
                <h4>Krok 2. Strefa i okładzina</h4>
                <div class="rk-temp-fields">
                  <div class="rk-temp-field">
                    <label for="rk-temp-zone">Rodzaj analizowanej strefy</label>
                    <select id="rk-temp-zone">
                      <option value="occupied" selected>Stałe przebywanie — 29°C</option>
                      <option value="bathroom">Łazienka — 33°C</option>
                      <option value="edge">Strefa brzegowa — 35°C</option>
                      <option value="custom">Własny limit</option>
                    </select>
                    <small>Strefa brzegowa powinna być świadomie wydzielona.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-zone-custom">Własny limit strefy [°C]</label>
                    <input id="rk-temp-zone-custom" type="number" min="20" max="40" step="0.5" value="29" inputmode="decimal">
                    <small>Używany tylko po wybraniu opcji „Własny limit”.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-floor-preset">Wykończenie — punkt startowy</label>
                    <select id="rk-temp-floor-preset">
                      <option value="tile" selected>Płytki — R 0,01</option>
                      <option value="vinyl">Winyl — R 0,03</option>
                      <option value="laminate">Panel — R 0,07</option>
                      <option value="wood">Drewno — R 0,10</option>
                      <option value="custom">Własne dane</option>
                    </select>
                    <small>Wartości są przykładem; wpisz dane konkretnej okładziny.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-floor-r">Opór całego wykończenia R [m²K/W]</label>
                    <input id="rk-temp-floor-r" type="number" min="0" max="0.3" step="0.01" value="0.01" inputmode="decimal">
                    <small>Okładzina, podkład i warstwy ponad jastrychem.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-floor-limit">Niższy limit okładziny [°C] — opcjonalnie</label>
                    <input id="rk-temp-floor-limit" type="number" min="20" max="40" step="0.5" value="" placeholder="np. 27" inputmode="decimal">
                    <small>Zostaw puste, jeżeli nie wprowadzasz osobnego ograniczenia produktu.</small>
                  </div>
                </div>
              </div>

              <div class="rk-temp-tool-block">
                <h4>Krok 3. Układ rur i sprawdzane temperatury</h4>
                <div class="rk-temp-fields">
                  <div class="rk-temp-field">
                    <label for="rk-temp-spacing-input">Rozstaw rur</label>
                    <select id="rk-temp-spacing-input">
                      <option value="10">10 cm</option>
                      <option value="15" selected>15 cm</option>
                      <option value="20">20 cm</option>
                    </select>
                    <small>Wykres zawsze pokaże wszystkie trzy warianty.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-construction-input">Referencyjna konstrukcja</label>
                    <select id="rk-temp-construction-input">
                      <option value="conductive">Mokra, przewodząca</option>
                      <option value="standard" selected>Mokra, standardowa</option>
                      <option value="dry">Lekka / sucha</option>
                    </select>
                    <small>To porównanie, a nie katalogowa charakterystyka systemu.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-supply">Temperatura zasilania [°C]</label>
                    <input id="rk-temp-supply" type="number" min="20" max="60" step="0.5" value="35" inputmode="decimal">
                    <small>Sprawdzana wartość na wejściu do pętli.</small>
                  </div>
                  <div class="rk-temp-field">
                    <label for="rk-temp-return">Temperatura powrotu [°C]</label>
                    <input id="rk-temp-return" type="number" min="15" max="58" step="0.5" value="28" inputmode="decimal">
                    <small>Musi być niższa od temperatury zasilania.</small>
                  </div>
                </div>
                <div class="rk-temp-tool-actions">
                  <button class="rk-temp-calculate" type="submit">Przelicz wariant</button>
                  <button class="rk-temp-reset" id="rk-temp-reset" type="button">Przywróć przykład</button>
                </div>
              </div>
            </form>

            <div class="rk-temp-results" id="rk-temp-results" aria-live="polite">
              <h3>Wynik dla wpisanego pomieszczenia</h3>
              <div class="rk-temp-result-grid">
                <div class="rk-temp-result-card is-main"><small>Wymagana moc czynnej podłogi</small><strong id="rk-temp-result-q">— W/m²</strong></div>
                <div class="rk-temp-result-card"><small>Wymagana średnia temperatura powierzchni</small><strong id="rk-temp-result-surface-required">—°C</strong></div>
                <div class="rk-temp-result-card"><small>Efektywny limit powierzchni</small><strong id="rk-temp-result-surface-limit">—°C</strong></div>
                <div class="rk-temp-result-card"><small>Teoretyczny limit mocy powierzchni</small><strong id="rk-temp-result-q-limit">— W/m²</strong></div>
                <div class="rk-temp-result-card"><small>Średnia temperatura wody</small><strong id="rk-temp-result-water-mean">—°C</strong></div>
                <div class="rk-temp-result-card"><small>Logarytmiczna różnica woda–pokój</small><strong id="rk-temp-result-lmtd">— K</strong></div>
                <div class="rk-temp-result-card is-main"><small>Referencyjna moc przy wybranych parametrach</small><strong id="rk-temp-result-q-reference">— W/m²</strong></div>
                <div class="rk-temp-result-card"><small>Orientacyjne zasilanie wymagane w modelu</small><strong id="rk-temp-result-supply-needed">—°C</strong></div>
              </div>

              <div class="rk-temp-status" id="rk-temp-status">
                <h4 id="rk-temp-status-title">Wprowadź dane i sprawdź wariant</h4>
                <p id="rk-temp-status-copy">Wynik pokaże osobno ograniczenie powierzchni oraz możliwości uproszczonego modelu referencyjnego.</p>
              </div>
              <ul class="rk-temp-warnings" id="rk-temp-warnings" aria-label="Uwagi do wyniku"></ul>
            </div>

            <div class="rk-temp-chart-panel">
              <h3>Dynamiczny wykres temperatury zasilania i mocy</h3>
              <p>Linie 10, 15 i 20 cm korzystają z tej samej konstrukcji, oporu okładziny, temperatury pomieszczenia i spadku temperatury wody. Dzięki temu wykres pokazuje wpływ rozstawu bez mieszania pozostałych założeń.</p>
              <div class="rk-temp-chart-wrap">
                <svg class="rk-temp-chart" id="rk-temp-chart" viewBox="0 0 760 430" role="img" aria-labelledby="rk-temp-chart-title rk-temp-chart-desc">
                  <title id="rk-temp-chart-title">Porównanie orientacyjnej mocy ogrzewania podłogowego przy różnej temperaturze zasilania</title>
                  <desc id="rk-temp-chart-desc">Wykres pokazuje linie dla rozstawu rur 10, 15 i 20 centymetrów, wymaganą moc pomieszczenia, limit temperatury powierzchni oraz aktualny punkt obliczeniowy.</desc>
                  <rect x="0" y="0" width="760" height="430" rx="18" fill="#f8fbfc"></rect>
                  <g id="rk-temp-chart-grid"></g>
                  <g id="rk-temp-chart-limit-zone"></g>
                  <g id="rk-temp-chart-lines"></g>
                  <g id="rk-temp-chart-markers"></g>
                  <g id="rk-temp-chart-labels"></g>
                </svg>
              </div>
              <div class="rk-temp-chart-legend" aria-label="Legenda wykresu">
                <span style="color:#078fbe"><i></i> rozstaw 10 cm</span>
                <span style="color:#16836b"><i></i> rozstaw 15 cm</span>
                <span style="color:#695ac9"><i></i> rozstaw 20 cm</span>
                <span style="color:#ff6a3d"><i></i> moc wymagana</span>
                <span style="color:#d94b3d"><i></i> limit powierzchni</span>
              </div>
            </div>

            <p class="rk-temp-model-note">Model służy do porównywania zależności. Rzeczywista charakterystyka wymaga danych systemowych obejmujących średnicę i położenie rury, przewodność oraz grubość warstw, opór okładziny, straty w dół, przepływ i geometrię pomieszczenia. Nie ustawiaj źródła ciepła wyłącznie na podstawie wyniku tego narzędzia.</p>

            <div class="rk-temp-inline-cta">
              <h3>Wynik graniczny oznacza, że trzeba policzyć całe pomieszczenie, a nie tylko podnieść temperaturę</h3>
              <p>Analizator sprawdza wymaganą moc i ograniczenie powierzchni, ale nie zna rzeczywistego przebiegu pętli, grubości i przewodności wszystkich warstw, strat w dół, długości obwodów, przepływów ani charakterystyki konkretnego systemu. Jeżeli wariant wymaga wysokiego zasilania, potrzebne są obliczenia pomieszczenie po pomieszczeniu.</p>
              <a class="rk-temp-cta-button rk-temp-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczoną temperaturą zasilania</a>
              <small class="rk-temp-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-result-reading">
        <span class="rk-temp-kicker">Bez fałszywej pewności</span>
        <h2>Jak interpretować wynik analizatora?</h2>
        <p class="rk-temp-intro">Narzędzie ocenia dwa niezależne warunki: czy wymagana moc mieści się pod limitem powierzchni oraz czy wybrane temperatury wystarczają w referencyjnym modelu konstrukcji. Pozytywny wynik nie zastępuje danych konkretnego systemu.</p>

        <div class="rk-temp-grid-3">
          <article class="rk-temp-card"><span class="rk-temp-card-number">Możliwy</span><h3>Model ma zapas</h3><p>Referencyjna moc jest wyższa od wymaganej, a obliczona powierzchnia pozostaje poniżej efektywnego limitu. Nadal trzeba sprawdzić hydraulikę i realny układ warstw.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">Graniczny</span><h3>Brakuje bezpiecznego marginesu</h3><p>Niewielka zmiana powierzchni czynnej, oporu okładziny lub temperatury może odwrócić ocenę. To sygnał do użycia właściwej krzywej systemowej.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">Niewystarczający</span><h3>Nie podnoś zasilania w ciemno</h3><p>Sprawdź stratę ciepła, powierzchnię, rozstaw, konstrukcję i limit posadzki. Jeżeli granicą jest powierzchnia, potrzebny może być dodatkowy emiter.</p></article>
        </div>

        <div class="rk-temp-notice"><p><strong>Orientacyjne wymagane zasilanie nie jest nastawą wykonawczą.</strong> Jest wynikiem jednego modelu porównawczego przy zachowaniu wpisanego ΔT. Projekt powinien korzystać z charakterystyki konkretnej konstrukcji podłogi.</p></div>
      </section>

      <section class="rk-temp-section" id="rk-temp-load">
        <span class="rk-temp-kicker">Początek poprawnego obliczenia</span>
        <h2>Strata ciepła i powierzchnia czynna wyznaczają wymaganą moc podłogi</h2>
        <p class="rk-temp-intro">Powierzchnia pokoju nie zawsze jest powierzchnią grzewczą. Trwała zabudowa, brodzik, wanna, komin, szafa bez prześwitu lub wyłączony pas podłogi mogą znacząco zwiększyć obciążenie pozostałego pola.</p>

        <div class="rk-temp-formula">
          <strong>q<sub>wym</sub> = Q<sub>pomieszczenia</sub> ÷ A<sub>czynna</sub></strong>
          <span>Q oznacza projektową stratę ciepła w watach, natomiast A<sub>czynna</sub> — rzeczywiście ogrzewaną powierzchnię w metrach kwadratowych.</span>
        </div>

        <div class="rk-temp-grid-2">
          <article class="rk-temp-panel"><h3>Przykład bez zmiany strat</h3><p>Pomieszczenie potrzebuje 1200 W. Przy 24 m² aktywnej podłogi wymaganie wynosi 50 W/m². Po zmniejszeniu czynnego pola do 16 m² rośnie do 75 W/m² — mimo że źródło ciepła i temperatura zewnętrzna się nie zmieniły.</p></article>
          <article class="rk-temp-panel"><h3>Skąd wziąć Q?</h3><p>Najlepiej z obliczeń pomieszczenie po pomieszczeniu. Uśrednione W/m² dla całego domu może ukryć łazienkę, narożny pokój albo salon z dużymi przeszkleniami. Zobacz poradnik o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.</p></article>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-spacing">
        <span class="rk-temp-kicker">Temperatura to tylko jeden parametr</span>
        <h2>Rozstaw rur wpływa na wymaganą temperaturę, ale nie działa samodzielnie</h2>
        <p class="rk-temp-intro">Gęstszy rozstaw zwykle poprawia równomierność temperatury powierzchni i pozwala uzyskać tę samą moc przy niższej temperaturze wody. Nie oznacza jednak, że 10 cm zawsze jest prawidłowe, a 15 lub 20 cm błędne.</p>

        <div class="rk-temp-grid-3">
          <article class="rk-temp-card"><span class="rk-temp-card-number">10 cm</span><h3>Większa ilość rury</h3><p>Może być korzystna przy niskich parametrach, małej powierzchni czynnej lub wyższym obciążeniu. Zwiększa metraż rury i często liczbę pętli.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">15 cm</span><h3>Częsty wariant pośredni</h3><p>Może spełnić wymaganie w wielu pomieszczeniach, jeżeli charakterystyka konstrukcji i temperatura wody dają potrzebną moc.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">20 cm</span><h3>Wymaga sprawdzenia równomierności</h3><p>Może być wystarczający przy niskim obciążeniu, ale szerszy rozstaw zwiększa różnice temperatur na powierzchni.</p></article>
        </div>

        <p style="margin-top:23px">Pełne porównanie znajduje się w artykule <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur w ogrzewaniu podłogowym: 10 czy 15 cm</a>. Przy dużych przeszkleniach osobnego sprawdzenia wymaga <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefa brzegowa</a>.</p>
      </section>

      <section class="rk-temp-section" id="rk-temp-covering">
        <span class="rk-temp-kicker">Nie dobieraj z samej nazwy materiału</span>
        <h2>Płytki, panele, winyl i drewno ograniczają podłogę w różny sposób</h2>
        <p class="rk-temp-intro">Okładzina wpływa przez opór cieplny całego wykończenia oraz deklarowaną maksymalną temperaturę powierzchni. Sama etykieta „panel” albo „drewno” nie wystarcza do wyznaczenia temperatury zasilania.</p>

        <div class="rk-temp-grid-2">
          <article class="rk-temp-panel"><h3>Opór cieplny zmienia wydajność</h3><p>Im większy R całego zestawu, tym większej różnicy temperatur potrzeba do przeniesienia tej samej mocy. Do obliczeń wprowadza się okładzinę razem z podkładem, klejem i innymi warstwami ponad konstrukcją grzewczą.</p></article>
          <article class="rk-temp-panel"><h3>Limit powierzchni może być niższy</h3><p>Instrukcja konkretnego produktu może ograniczyć powierzchnię bardziej niż ogólna granica strefy. Wówczas nie wolno „odzyskiwać mocy” przez przegrzanie wykończenia.</p></article>
        </div>

        <div class="rk-temp-notice is-info"><p>Nie wpisuj do analizatora wartości przykładowej tylko dlatego, że materiał nazywa się „panel”. Odczytaj R oraz temperaturę dopuszczalną z dokumentacji konkretnego zestawu. Szersze omówienie: <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">wpływ okładziny na wydajność ogrzewania podłogowego</a>.</p></div>
      </section>

      <section class="rk-temp-section" id="rk-temp-construction">
        <span class="rk-temp-kicker">Warstwy pomiędzy rurą i pomieszczeniem</span>
        <h2>Konstrukcja podłogi i jastrych zmieniają wymaganą temperaturę wody</h2>
        <p class="rk-temp-intro">Znaczenie mają między innymi położenie rury, jej średnica, przewodność materiału, grubość warstwy nad rurą, kontakt pomiędzy elementami, izolacja w dół i opór wykończenia. Dlatego nie istnieje uniwersalne przeliczenie „dodatkowy centymetr = określone podniesienie zasilania”.</p>

        <div class="rk-temp-grid-3">
          <article class="rk-temp-card"><span class="rk-temp-card-number">System mokry</span><h3>Jastrych otacza rurę</h3><p>Przewodność i grubość wpływają na rozchodzenie ciepła oraz bezwładność. Minimalne przykrycie wynika z kompletnej specyfikacji systemu.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">System suchy</span><h3>Liczy się kontakt i płyta</h3><p>Blachy przewodzące, płyty i szczeliny tworzą inną charakterystykę niż masywny jastrych. Nie można przenosić współczynników bez sprawdzenia.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">Izolacja</span><h3>Ciepło może odpływać w dół</h3><p>Wydajność do pomieszczenia i całkowita moc przekazywana przez rurę nie zawsze są tym samym, szczególnie nad chłodną przegrodą.</p></article>
        </div>

        <p style="margin-top:23px">Grubsza, cięższa konstrukcja zwykle reaguje wolniej. Zjawisko to opisuje artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-temp-section" id="rk-temp-sources-heat">
        <span class="rk-temp-kicker">Źródło ciepła a odbiornik</span>
        <h2>Temperatura podłogówki przy pompie ciepła i kotle kondensacyjnym</h2>
        <p class="rk-temp-intro">Podłoga przy takich samych temperaturach zasilania i powrotu nie rozpoznaje, które urządzenie ogrzało wodę. Źródło wpływa natomiast na sprawność wytwarzania ciepła, możliwości regulacji oraz sposób zabezpieczenia instalacji.</p>

        <div class="rk-temp-grid-2">
          <article class="rk-temp-panel">
            <h3>Pompa ciepła</h3>
            <p>Niższa wymagana temperatura zasilania zazwyczaj tworzy korzystniejsze warunki pracy pompy ciepła. Nie będziemy jednak przypisywać każdemu podniesieniu o 5 K identycznego spadku COP, ponieważ zależy on od modelu urządzenia, temperatury dolnego źródła i punktu pracy.</p>
            <h4>Cel projektowy</h4>
            <p>Ograniczyć wymaganą temperaturę przez poprawne obliczenia, powierzchnię czynną, rozstaw oraz właściwą konstrukcję — bez niedogrzewania pomieszczeń.</p>
          </article>
          <article class="rk-temp-panel">
            <h3>Kocioł kondensacyjny</h3>
            <p>Niskotemperaturowy obieg sprzyja kondensacji, ale samo hasło „kocioł gazowy” nie uzasadnia ustawienia 45 lub 55°C. Parametry nadal wynikają z odbiornika i zapotrzebowania budynku.</p>
            <h4>Cel projektowy</h4>
            <p>Utrzymać możliwie niskie parametry pokrywające obciążenie i zapewnić zakres pracy zgodny z hydrauliką oraz automatyką kotła.</p>
          </article>
        </div>

        <p style="margin-top:23px">Zależności między źródłem i instalacją rozwija dział <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> oraz poradnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>.</p>
      </section>

      <section class="rk-temp-section" id="rk-temp-control">
        <span class="rk-temp-kicker">Ograniczenie i dopasowanie temperatury</span>
        <h2>Zawór mieszający, krzywa grzewcza i zabezpieczenie podłogówki</h2>
        <p class="rk-temp-intro">Zawór mieszający nie jest obowiązkowym elementem każdej instalacji. Jego potrzeba zależy od temperatury źródła, liczby obiegów, układu hydraulicznego i sposobu sterowania.</p>

        <div class="rk-temp-grid-3">
          <article class="rk-temp-card"><span class="rk-temp-card-number">Obieg bezpośredni</span><h3>Źródło pracuje na parametry podłogi</h3><p>W poprawnie zaprojektowanym układzie pompa ciepła albo kocioł może zasilać podłogówkę bez osobnego mieszania, jeżeli spełnia wymagania hydrauliczne i regulacyjne.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">Obieg mieszany</span><h3>Różne temperatury odbiorników</h3><p>Gdy źródło lub drugi obieg pracuje wyżej, zawór mieszający może przygotować właściwe zasilanie dla podłogówki. Zobacz zasady działania <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zaworu mieszającego</a>.</p></article>
          <article class="rk-temp-card"><span class="rk-temp-card-number">Pogodówka</span><h3>Temperatura zmienia się z pogodą</h3><p><a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza</a> dobiera zasilanie do warunków zewnętrznych, a limit maksymalny chroni przed niepożądanym wzrostem.</p></article>
        </div>

        <div class="rk-temp-notice"><p><strong>Ogranicznik nie naprawia złej krzywej.</strong> Jeżeli instalacja stale dobija do maksymalnego zasilania, trzeba sprawdzić obciążenie, przepływy, powierzchnię czynną, charakterystykę podłogi i ustawienia źródła.</p></div>
      </section>

      <section class="rk-temp-section" id="rk-temp-diagnostics">
        <span class="rk-temp-kicker">Objaw nie jest diagnozą</span>
        <h2>Wysoka temperatura zasilania, ale podłoga nadal jest zimna</h2>
        <p class="rk-temp-intro">Podnoszenie temperatury może jedynie zamaskować problem z przepływem albo sterowaniem. Zanim zmienisz limit, sprawdź instalację w uporządkowanej kolejności.</p>

        <div class="rk-temp-steps">
          <article class="rk-temp-step"><h3>Sprawdź temperatury rzeczywiste</h3><p>Porównaj odczyt przy źródle, rozdzielaczu oraz na zasilaniu i powrocie obwodu. Nie opieraj diagnozy na samej wartości zadanej.</p></article>
          <article class="rk-temp-step"><h3>Sprawdź, czy jest przepływ</h3><p>Zweryfikuj pompę, zawory, filtr, siłowniki i rotametry. Brak przepływu nie zostanie naprawiony wyższym zasilaniem.</p></article>
          <article class="rk-temp-step"><h3>Odpowietrz pętle osobno</h3><p>Powietrze może blokować jeden lub kilka obwodów. Samo automatyczne odpowietrzanie rozdzielacza nie zawsze usuwa gaz z długiej pętli.</p></article>
          <article class="rk-temp-step"><h3>Skontroluj równoważenie</h3><p>Krótkie pętle mogą przejmować przepływ, a obieg krytyczny pozostać niedogrzany. Nastawy powinny wynikać z mocy i oporu obwodów.</p></article>
          <article class="rk-temp-step"><h3>Daj konstrukcji czas</h3><p>Masywna posadzka reaguje wolno. Ocenę wykonuj po ustabilizowaniu warunków, a nie kilkanaście minut po zmianie nastawy.</p></article>
          <article class="rk-temp-step"><h3>Zweryfikuj okładzinę i pole</h3><p>Wysoki opór wykończenia albo mała powierzchnia czynna może ograniczać moc mimo poprawnej pracy źródła.</p></article>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-commissioning">
        <span class="rk-temp-kicker">Dwa różne tryby pracy</span>
        <h2>Temperatura robocza a wygrzewanie jastrychu</h2>
        <p class="rk-temp-intro">Codzienna praca instalacji służy pokrywaniu strat ciepła budynku. Wygrzewanie lub ogrzewanie funkcjonalne jastrychu jest osobną procedurą technologiczną wykonywaną według dokumentacji zastosowanego materiału i systemu.</p>

        <div class="rk-temp-grid-2">
          <article class="rk-temp-panel"><h3>Eksploatacja budynku</h3><p>Temperatura zmienia się wraz z zapotrzebowaniem, zwykle przez automatykę pogodową. Priorytetem jest komfort, pokrycie strat i możliwie niskie parametry.</p></article>
          <article class="rk-temp-panel"><h3>Procedura jastrychu</h3><p>Ma określony moment rozpoczęcia, etapy, temperatury i czas. Nie można jej tworzyć z uniwersalnego internetowego harmonogramu bez identyfikacji jastrychu.</p></article>
        </div>

        <div class="rk-temp-notice is-danger"><p>Nie używaj maksymalnej temperatury roboczej jako automatycznej temperatury wygrzewania. Zachowaj protokół, zalecenia wykonawcy jastrychu oraz dokumentację systemu podłogowego.</p></div>
      </section>

      <section class="rk-temp-section" id="rk-temp-overheating">
        <span class="rk-temp-kicker">Skutek zależy od materiału i czasu</span>
        <h2>Co może oznaczać zbyt wysoka temperatura zasilania?</h2>
        <p class="rk-temp-intro">Nie będziemy przypisywali jednej liczbie automatycznego pękania płytek albo procentowej utraty trwałości rury. Ryzyko zależy od temperatury rzeczywistej, czasu ekspozycji, materiałów, dylatacji, wilgotności i jakości wykonania.</p>

        <div class="rk-temp-errors">
          <article class="rk-temp-error"><b>Skutek 01</b><h3>Przekroczenie komfortu powierzchni</h3><p>Podłoga może stać się nieprzyjemnie ciepła, a różnice temperatur w pomieszczeniu wzrosnąć. To sygnał do kontroli regulacji.</p></article>
          <article class="rk-temp-error"><b>Skutek 02</b><h3>Przekroczenie warunków okładziny</h3><p>Drewno, winyl, laminat, klej lub podkład mogą mieć własne ograniczenia. Ich skutki ocenia się według dokumentacji konkretnego produktu.</p></article>
          <article class="rk-temp-error"><b>Skutek 03</b><h3>Niepotrzebnie wysoka praca źródła</h3><p>Wyższy parametr może pogarszać warunki pracy pompy ciepła lub ograniczać kondensację kotła, choć wielkość zmiany zależy od urządzenia.</p></article>
          <article class="rk-temp-error"><b>Skutek 04</b><h3>Nadmierne wahania konstrukcji</h3><p>Gwałtowne zmiany mogą zwiększać naprężenia. Znaczenie mają dylatacje, wilgotność, tempo nagrzewania i właściwości jastrychu.</p></article>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-examples">
        <span class="rk-temp-kicker">Te same temperatury, inne wyniki</span>
        <h2>Przykłady pokazujące, dlaczego nie wystarczy jedna wartość zasilania</h2>
        <p class="rk-temp-intro">Poniższe warianty nie są gotowymi nastawami. Pokazują jedynie, które dane zmieniają ocenę temperatury przy zachowaniu tej samej instalacji jako punktu odniesienia.</p>

        <div class="rk-temp-table-wrap">
          <table>
            <thead><tr><th>Przypadek</th><th>Co się zmienia?</th><th>Wpływ na wymaganą temperaturę</th><th>Właściwa reakcja</th></tr></thead>
            <tbody>
              <tr><td data-label="Przypadek"><strong>Salon z mniejszym polem czynnym</strong></td><td data-label="Co się zmienia?">Ta sama strata rozkłada się na mniejszej powierzchni.</td><td data-label="Wpływ">Rośnie wymagane W/m² oraz temperatura powierzchni.</td><td data-label="Reakcja">Przeliczyć pole, rozstaw i możliwość dodatkowego emitera.</td></tr>
              <tr><td data-label="Przypadek"><strong>Zmiana płytek na drewno</strong></td><td data-label="Co się zmienia?">Rośnie opór, a dopuszczalna powierzchnia może spaść.</td><td data-label="Wpływ">Może być potrzebna większa różnica temperatur, ale limit okładziny ogranicza podnoszenie.</td><td data-label="Reakcja">Użyć deklarowanego R i limitu konkretnego wykończenia.</td></tr>
              <tr><td data-label="Przypadek"><strong>Rozstaw 15 zamiast 10 cm</strong></td><td data-label="Co się zmienia?">Maleje ilość rury w polu i zmienia się równomierność.</td><td data-label="Wpływ">Dla tej samej mocy zwykle potrzeba wyższej temperatury czynnika.</td><td data-label="Reakcja">Porównać oba warianty przy identycznych pozostałych danych.</td></tr>
              <tr><td data-label="Przypadek"><strong>Wysokie zasilanie, mały przepływ</strong></td><td data-label="Co się zmienia?">Duży spadek temperatury i nierównomierna praca pętli.</td><td data-label="Wpływ">Sama temperatura na wejściu nie zapewnia zakładanej średniej mocy.</td><td data-label="Reakcja">Sprawdzić hydraulikę, pompę, zawory i nastawy obwodu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-howto">
        <span class="rk-temp-kicker">Procedura bez ustawiania na oko</span>
        <h2>Jak wyznaczyć i ustawić temperaturę zasilania podłogówki?</h2>
        <div class="rk-temp-steps">
          <article class="rk-temp-step"><h3>Oblicz straty pomieszczeń</h3><p>Ustal projektową moc potrzebną w każdym pomieszczeniu, a nie tylko średnią dla całego domu.</p></article>
          <article class="rk-temp-step"><h3>Wyznacz powierzchnię czynną</h3><p>Odejmij trwałą zabudowę oraz pola, pod którymi rury nie będą ułożone.</p></article>
          <article class="rk-temp-step"><h3>Zbierz dane podłogi</h3><p>Określ konstrukcję, rozstaw, średnicę rury, opór okładziny i jej limit powierzchni.</p></article>
          <article class="rk-temp-step"><h3>Użyj charakterystyki systemu</h3><p>Porównaj wymaganą moc z krzywą właściwą dla wszystkich przyjętych warstw i temperatur.</p></article>
          <article class="rk-temp-step"><h3>Sprawdź pętle i przepływy</h3><p>Temperatura nie zrekompensuje zbyt dużych oporów, złego podziału albo braku równoważenia.</p></article>
          <article class="rk-temp-step"><h3>Ustaw krzywą i limit</h3><p>Zacznij od wartości wynikających z projektu, obserwuj stabilną pracę i koryguj niewielkimi krokami.</p></article>
        </div>

        <h3 style="margin-top:31px">Checklista przed zmianą maksymalnego limitu</h3>
        <div class="rk-temp-checklist">
          <div class="rk-temp-checkitem">Obciążenie każdego pomieszczenia</div>
          <div class="rk-temp-checkitem">Rzeczywista powierzchnia grzewcza</div>
          <div class="rk-temp-checkitem">Temperatura zasilania i powrotu</div>
          <div class="rk-temp-checkitem">Przepływy na wszystkich pętlach</div>
          <div class="rk-temp-checkitem">Rozstaw i długości obwodów</div>
          <div class="rk-temp-checkitem">Opór całego wykończenia</div>
          <div class="rk-temp-checkitem">Limit temperatury okładziny</div>
          <div class="rk-temp-checkitem">Rodzaj i grubość jastrychu</div>
          <div class="rk-temp-checkitem">Stan filtrów i odpowietrzenie</div>
          <div class="rk-temp-checkitem">Krzywa grzewcza i jej przesunięcie</div>
          <div class="rk-temp-checkitem">Maksimum ustawione w automatyce</div>
          <div class="rk-temp-checkitem">Czas na stabilizację konstrukcji</div>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-faq">
        <span class="rk-temp-kicker">Najczęstsze pytania użytkowników</span>
        <h2>Maksymalna temperatura zasilania podłogówki — FAQ</h2>
        <div class="rk-temp-faq">
          <details><summary>Czy 55°C to maksymalna temperatura zasilania każdej podłogówki?</summary><div class="rk-temp-faq-answer"><p>Nie. Wartość 55°C może pojawiać się jako wysoka granica w niektórych systemach lub ustawieniach ochronnych, ale dopuszczalna temperatura konkretnej instalacji zależy od obliczeń, konstrukcji podłogi, temperatury powierzchni, okładziny i dokumentacji wszystkich elementów.</p></div></details>
          <details><summary>Czy 45°C to za dużo na ogrzewanie podłogowe?</summary><div class="rk-temp-faq-answer"><p>Nie można odpowiedzieć wyłącznie na podstawie jednej liczby. Trzeba znać powrót, temperaturę pomieszczenia, rozstaw, konstrukcję, opór okładziny, przepływ i wymaganą moc. W wielu instalacjach 45°C będzie wartością wysoką, ale ocena wymaga obliczenia powierzchni.</p></div></details>
          <details><summary>Czy podłogówka może pracować na 50°C?</summary><div class="rk-temp-faq-answer"><p>Techniczna możliwość nie oznacza automatycznej poprawności. Należy sprawdzić temperaturę powierzchni, limit okładziny, dopuszczalne parametry systemu i przyczynę wymagania tak wysokiej temperatury. W instalacji z pompą ciepła będzie to także niekorzystny punkt pracy.</p></div></details>
          <details><summary>Jaka temperatura zasilania podłogówki jest typowa?</summary><div class="rk-temp-faq-answer"><p>W wielu nowych, dobrze izolowanych budynkach spotyka się pracę w zakresie około 30–40°C, zależnie od pogody. Nie jest to jednak uniwersalna nastawa. Parametr musi pokryć straty najbardziej wymagającego pomieszczenia przy zachowaniu ograniczeń podłogi.</p></div></details>
          <details><summary>Jaka jest maksymalna temperatura powierzchni podłogi?</summary><div class="rk-temp-faq-answer"><p>W typowym przykładzie obliczeniowym przyjmuje się 29°C w strefie stałego przebywania ludzi, 33°C w łazience przy temperaturze pomieszczenia 24°C oraz 35°C w wydzielonej strefie brzegowej. Okładzina może wymagać niższej wartości.</p></div></details>
          <details><summary>Jaka temperatura podłogówki jest właściwa pod panele lub drewno?</summary><div class="rk-temp-faq-answer"><p>Nie wyznacza się jej z samej nazwy materiału. Potrzebne są deklarowany opór cieplny całego wykończenia oraz maksymalna temperatura jego powierzchni. Dwa produkty tego samego rodzaju mogą mieć inne ograniczenia.</p></div></details>
          <details><summary>Czy pompa ciepła zawsze powinna zasilać podłogówkę temperaturą 35°C?</summary><div class="rk-temp-faq-answer"><p>Nie. 35°C jest popularnym punktem odniesienia, ale rzeczywista wartość zmienia się z temperaturą zewnętrzną i wymaganiami budynku. Celem jest możliwie niskie zasilanie, które nadal pokrywa obciążenie wszystkich pomieszczeń.</p></div></details>
          <details><summary>Czy przy kotle gazowym potrzebny jest zawór mieszający?</summary><div class="rk-temp-faq-answer"><p>Nie zawsze. Kocioł może bezpośrednio obsługiwać właściwie zaprojektowany obieg niskotemperaturowy. Mieszanie jest potrzebne między innymi wtedy, gdy źródło lub drugi obieg pracuje na wyższych parametrach albo wymaga tego schemat hydrauliczny.</p></div></details>
          <details><summary>Dlaczego przy wysokim zasilaniu podłoga jest chłodna?</summary><div class="rk-temp-faq-answer"><p>Możliwe przyczyny to brak lub zbyt mały przepływ, zapowietrzenie, zamknięty zawór, problem z pompą, brudny filtr, niewłaściwe równoważenie, duży opór okładziny albo odczyt temperatury w innym miejscu niż zasilanie pętli.</p></div></details>
          <details><summary>Czy można szybciej nagrzać dom przez ustawienie 55°C?</summary><div class="rk-temp-faq-answer"><p>Nie powinno się tego robić bez sprawdzenia ograniczeń. Masywna podłoga ma dużą bezwładność, a gwałtowne podnoszenie temperatury może przekroczyć limit powierzchni i okładziny. Poprawne sterowanie dopasowuje temperaturę do zapotrzebowania oraz dynamiki budynku.</p></div></details>
          <details><summary>Czy analizator podaje gotową nastawę źródła ciepła?</summary><div class="rk-temp-faq-answer"><p>Nie. Oblicza wymaganą moc powierzchni, sprawdza ograniczenia i porównuje warianty w modelu referencyjnym. Ostateczna nastawa wymaga charakterystyki konkretnego systemu, projektu hydraulicznego i danych automatyki źródła.</p></div></details>
          <details><summary>Co zrobić, gdy wymagana moc przekracza limit podłogi?</summary><div class="rk-temp-faq-answer"><p>Nie należy po prostu podnosić zasilania. Trzeba sprawdzić straty budynku, zwiększyć czynną powierzchnię, zmienić konstrukcję lub rozstaw, obniżyć opór wykończenia albo zastosować dodatkową powierzchnię grzewczą lub inny emiter.</p></div></details>
        </div>
      </section>

      <section class="rk-temp-section" id="rk-temp-sources">
        <span class="rk-temp-kicker">Podstawa techniczna opracowania</span>
        <h2>Źródła i ograniczenia modelu obliczeniowego</h2>
        <div class="rk-temp-source-box">
          <p>Komfort cieplny i definicje systemów powierzchniowych: <a href="https://www.iso.org/standard/74682.html" target="_blank" rel="noopener nofollow">ISO 11855-1:2021</a>. Metody obliczania mocy, temperatury powierzchni oraz charakterystyk: <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a>. Wymiarowanie, krzywe charakterystyczne i graniczne: <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021</a> oraz oficjalny opis <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1" target="_blank" rel="noopener nofollow">BS EN 1264-3</a>.</p>
          <p>Analizator korzysta z normowej zależności między średnią temperaturą powierzchni i strumieniem ciepła do pomieszczenia. Część łącząca temperaturę wody z mocą jest jawnie opisanym modelem oporowym służącym do porównania rozstawów. Nie zastępuje krzywej wydajności konkretnego systemu, projektu ani instrukcji materiałów.</p>
        </div>
        <div class="rk-temp-update">Ostatnia aktualizacja merytoryczna: 30 sierpnia 2026 r.</div>
      </section>
    </main>

    <section class="rk-temp-author" id="rk-temp-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-temp-author-tabs" id="rk-temp-author-about" checked>
      <input type="radio" name="rk-temp-author-tabs" id="rk-temp-author-exp">
      <input type="radio" name="rk-temp-author-tabs" id="rk-temp-author-sites">

      <header class="rk-temp-author-head">
        <div><span class="rk-temp-kicker">Autor opracowania</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-temp-author-mark">E‑E‑A‑T • HVAC</span>
      </header>

      <div class="rk-temp-author-layout">
        <aside class="rk-temp-author-side">
          <div class="rk-temp-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
          <div class="rk-temp-author-name">Robert Kucharski</div>
          <div class="rk-temp-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-temp-author-social-label">Profile autora</div>
          <div class="rk-temp-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
          </div>
        </aside>

        <div class="rk-temp-author-main">
          <blockquote class="rk-temp-author-quote"><p>„Temperatura zasilania nie jest celem samym w sobie. Jest jednym z parametrów potrzebnych do pokrycia strat pomieszczenia bez przekroczenia dopuszczalnej temperatury powierzchni i ograniczeń konkretnej podłogi.”</p></blockquote>
          <div class="rk-temp-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-temp-author-tab" for="rk-temp-author-about" role="tab">O autorze</label>
            <label class="rk-temp-author-tab" for="rk-temp-author-exp" role="tab">Doświadczenie</label>
            <label class="rk-temp-author-tab" for="rk-temp-author-sites" role="tab">Portale</label>
          </div>
          <div class="rk-temp-author-panel rk-temp-author-panel-about"><p>Robert Kucharski projektuje wodne instalacje ogrzewania podłogowego i przygotowuje opracowania techniczne dla inwestorów oraz wykonawców. Łączy obliczenia strat ciepła z doborem temperatury zasilania i powrotu, rozstawów, długości pętli, przepływów, oporów hydraulicznych, rozdzielaczy, pomp oraz automatyki.</p><p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz profil i pozostałe opracowania autora</a>.</p></div>
          <div class="rk-temp-author-panel rk-temp-author-panel-exp"><p>W dokumentacji każda decyzja cieplna jest sprawdzana razem z geometrią i hydrauliką instalacji. Temperatura zasilania wynika z obciążenia pomieszczeń, aktywnej powierzchni, konstrukcji podłogi i źródła ciepła, a nie z jednej tabeli wartości dla całego domu. Publikacje autora rozdzielają szybkie oszacowania edukacyjne od danych, które muszą znaleźć się w projekcie wykonawczym.</p></div>
          <div class="rk-temp-author-panel rk-temp-author-panel-sites"><p>Autor jest właścicielem trzech serwisów poświęconych instalacjom, budowie i remontom. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo oraz kontekst linkowania.</p><div class="rk-temp-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
        </div>
      </div>
    </section>

    <section class="rk-temp-final-cta" id="rk-temp-project" aria-label="Profesjonalny projekt ogrzewania podłogowego">
      <span class="rk-temp-kicker" style="color:#7af0ff">Od temperatury do kompletnej dokumentacji</span>
      <h2>Otrzymaj temperaturę, rozstaw i przepływ obliczone dla każdego pomieszczenia</h2>
      <p>Projekt ogrzewania podłogowego łączy obciążenie cieplne, aktywne powierzchnie, konstrukcję i okładziny z przebiegiem pętli, długościami, przepływami, oporami hydraulicznymi, nastawami rozdzielacza oraz parametrami współpracy ze źródłem ciepła.</p>
      <a class="rk-temp-cta-button rk-temp-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
      <small class="rk-temp-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<!-- RK_TEMP_SCHEMA: TechArticle, WebPage, BreadcrumbList, WebApplication, HowTo, FAQPage, Person, 3×Organization, WebSite -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#article",
      "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
      "headline": "Maksymalna temperatura zasilania podłogówki – bezpieczny limit, powierzchnia i obliczenia",
      "description": "Sprawdź maksymalną temperaturę zasilania podłogówki. Oblicz wymaganą moc, temperaturę powierzchni i porównaj ustawienia 30–55°C.",
      "dateModified": "2026-08-30",
      "inLanguage": "pl-PL",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "reviewedBy": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "accountablePerson": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Temperatura zasilania",
        "Projektowanie instalacji",
        "Automatyka grzewcza"
      ],
      "keywords": [
        "maksymalna temperatura zasilania podłogówki",
        "maksymalna temperatura wody w podłogówce",
        "temperatura zasilania ogrzewania podłogowego",
        "maksymalna temperatura powierzchni podłogi",
        "temperatura podłogówki przy pompie ciepła",
        "temperatura podłogówki przy kotle gazowym",
        "temperatura zasilania pod panele",
        "krzywa grzewcza ogrzewania podłogowego"
      ],
      "about": [
        {"@type": "Thing", "name": "Wodne ogrzewanie podłogowe"},
        {"@type": "Thing", "name": "Temperatura zasilania"},
        {"@type": "Thing", "name": "Temperatura powierzchni podłogi"},
        {"@type": "Thing", "name": "Krzywa grzewcza"}
      ],
      "citation": [
        "https://www.iso.org/standard/74682.html",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#webpage",
      "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/",
      "name": "Maksymalna temperatura zasilania podłogówki – bezpieczny limit, powierzchnia i obliczenia",
      "description": "Sprawdź maksymalną temperaturę zasilania podłogówki. Oblicz wymaganą moc, temperaturę powierzchni i porównaj ustawienia 30–55°C.",
      "dateModified": "2026-08-30",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#breadcrumb"
      },
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#article"},
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#application"},
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Maksymalna temperatura zasilania podłogówki",
          "item": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#application",
      "name": "Analizator temperatury zasilania i limitu powierzchni podłogi",
      "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-tool",
      "description": "Bezpłatne narzędzie obliczające wymaganą moc czynnej podłogi, wymaganą temperaturę powierzchni, jej limit oraz referencyjną wydajność dla rozstawów 10, 15 i 20 cm.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC calculation tool",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript oraz obsługa standardów HTML5 i SVG",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "featureList": [
        "Obliczanie wymaganej mocy jednostkowej z powierzchni czynnej",
        "Obliczanie wymaganej średniej temperatury powierzchni",
        "Porównanie limitu strefy i okładziny",
        "Obliczanie maksymalnego strumienia ciepła z limitu powierzchni",
        "Referencyjne porównanie rozstawów 10, 15 i 20 cm",
        "Dynamiczny wykres mocy i temperatury zasilania",
        "Ostrzeżenia o małej powierzchni i wysokim oporze okładziny"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#howto",
      "name": "Jak wyznaczyć i ustawić temperaturę zasilania podłogówki",
      "description": "Sześć kroków od obciążenia cieplnego pomieszczeń do ustawienia krzywej grzewczej i maksymalnego limitu zasilania.",
      "inLanguage": "pl-PL",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz straty pomieszczeń",
          "text": "Ustal projektową moc potrzebną w każdym pomieszczeniu, a nie tylko średnią dla całego domu.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wyznacz powierzchnię czynną",
          "text": "Odejmij trwałą zabudowę oraz pola, pod którymi rury nie będą ułożone.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Zbierz dane podłogi",
          "text": "Określ konstrukcję, rozstaw, średnicę rury, opór okładziny i jej limit powierzchni.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Użyj charakterystyki systemu",
          "text": "Porównaj wymaganą moc z krzywą właściwą dla wszystkich przyjętych warstw i temperatur.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Sprawdź pętle i przepływy",
          "text": "Temperatura nie zrekompensuje zbyt dużych oporów, złego podziału albo braku równoważenia.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Ustaw krzywą i limit",
          "text": "Zacznij od wartości wynikających z projektu, obserwuj stabilną pracę i koryguj niewielkimi krokami.",
          "url": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#rk-temp-howto"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy 55°C to maksymalna temperatura zasilania każdej podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Wartość 55°C może pojawiać się jako wysoka granica w niektórych systemach lub ustawieniach ochronnych, ale dopuszczalna temperatura konkretnej instalacji zależy od obliczeń, konstrukcji podłogi, temperatury powierzchni, okładziny i dokumentacji wszystkich elementów."}
        },
        {
          "@type": "Question",
          "name": "Czy 45°C to za dużo na ogrzewanie podłogowe?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie można odpowiedzieć wyłącznie na podstawie jednej liczby. Trzeba znać powrót, temperaturę pomieszczenia, rozstaw, konstrukcję, opór okładziny, przepływ i wymaganą moc. W wielu instalacjach 45°C będzie wartością wysoką, ale ocena wymaga obliczenia powierzchni."}
        },
        {
          "@type": "Question",
          "name": "Czy podłogówka może pracować na 50°C?",
          "acceptedAnswer": {"@type": "Answer", "text": "Techniczna możliwość nie oznacza automatycznej poprawności. Należy sprawdzić temperaturę powierzchni, limit okładziny, dopuszczalne parametry systemu i przyczynę wymagania tak wysokiej temperatury. W instalacji z pompą ciepła będzie to także niekorzystny punkt pracy."}
        },
        {
          "@type": "Question",
          "name": "Jaka temperatura zasilania podłogówki jest typowa?",
          "acceptedAnswer": {"@type": "Answer", "text": "W wielu nowych, dobrze izolowanych budynkach spotyka się pracę w zakresie około 30–40°C, zależnie od pogody. Nie jest to jednak uniwersalna nastawa. Parametr musi pokryć straty najbardziej wymagającego pomieszczenia przy zachowaniu ograniczeń podłogi."}
        },
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna temperatura powierzchni podłogi?",
          "acceptedAnswer": {"@type": "Answer", "text": "W typowym przykładzie obliczeniowym przyjmuje się 29°C w strefie stałego przebywania ludzi, 33°C w łazience przy temperaturze pomieszczenia 24°C oraz 35°C w wydzielonej strefie brzegowej. Okładzina może wymagać niższej wartości."}
        },
        {
          "@type": "Question",
          "name": "Jaka temperatura podłogówki jest właściwa pod panele lub drewno?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie wyznacza się jej z samej nazwy materiału. Potrzebne są deklarowany opór cieplny całego wykończenia oraz maksymalna temperatura jego powierzchni. Dwa produkty tego samego rodzaju mogą mieć inne ograniczenia."}
        },
        {
          "@type": "Question",
          "name": "Czy pompa ciepła zawsze powinna zasilać podłogówkę temperaturą 35°C?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. 35°C jest popularnym punktem odniesienia, ale rzeczywista wartość zmienia się z temperaturą zewnętrzną i wymaganiami budynku. Celem jest możliwie niskie zasilanie, które nadal pokrywa obciążenie wszystkich pomieszczeń."}
        },
        {
          "@type": "Question",
          "name": "Czy przy kotle gazowym potrzebny jest zawór mieszający?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie zawsze. Kocioł może bezpośrednio obsługiwać właściwie zaprojektowany obieg niskotemperaturowy. Mieszanie jest potrzebne między innymi wtedy, gdy źródło lub drugi obieg pracuje na wyższych parametrach albo wymaga tego schemat hydrauliczny."}
        },
        {
          "@type": "Question",
          "name": "Dlaczego przy wysokim zasilaniu podłoga jest chłodna?",
          "acceptedAnswer": {"@type": "Answer", "text": "Możliwe przyczyny to brak lub zbyt mały przepływ, zapowietrzenie, zamknięty zawór, problem z pompą, brudny filtr, niewłaściwe równoważenie, duży opór okładziny albo odczyt temperatury w innym miejscu niż zasilanie pętli."}
        },
        {
          "@type": "Question",
          "name": "Czy można szybciej nagrzać dom przez ustawienie 55°C?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie powinno się tego robić bez sprawdzenia ograniczeń. Masywna podłoga ma dużą bezwładność, a gwałtowne podnoszenie temperatury może przekroczyć limit powierzchni i okładziny. Poprawne sterowanie dopasowuje temperaturę do zapotrzebowania oraz dynamiki budynku."}
        },
        {
          "@type": "Question",
          "name": "Czy analizator podaje gotową nastawę źródła ciepła?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Oblicza wymaganą moc powierzchni, sprawdza ograniczenia i porównuje warianty w modelu referencyjnym. Ostateczna nastawa wymaga charakterystyki konkretnego systemu, projektu hydraulicznego i danych automatyki źródła."}
        },
        {
          "@type": "Question",
          "name": "Co zrobić, gdy wymagana moc przekracza limit podłogi?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie należy po prostu podnosić zasilania. Trzeba sprawdzić straty budynku, zwiększyć czynną powierzchnię, zmienić konstrukcję lub rozstaw, obniżyć opór wykończenia albo zastosować dodatkową powierzchnię grzewczą lub inny emiter."}
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "width": 600,
        "height": 600
      },
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "description": "Projektant wodnych instalacji ogrzewania podłogowego i autor opracowań technicznych dotyczących obliczeń cieplnych, hydrauliki, źródeł ciepła oraz automatyki. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "projektowanie ogrzewania podłogowego",
        "obliczenia obciążenia cieplnego",
        "temperatura zasilania instalacji",
        "hydraulika instalacji grzewczych",
        "równoważenie hydrauliczne",
        "pompy ciepła"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ],
      "owns": [
        {"@id": "https://projekt-ogrzewania.pl/#organization"},
        {"@id": "https://remont.biz.pl/#organization"},
        {"@id": "https://sobir.pl/#organization"}
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "description": "Serwis poświęcony projektowaniu wodnego ogrzewania podłogowego, należący do Roberta Kucharskiego.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "owner": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "description": "Serwis budowlano-remontowy należący do Roberta Kucharskiego.",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "owner": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "description": "Portal o budowie, instalacjach i technologii domu należący do Roberta Kucharskiego.",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "owner": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Projektowanie ogrzewania podłogowego i techniczna wiedza o instalacjach grzewczych.",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "copyrightHolder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    }
  ]
}
</script>

<!-- RK_TEMP_SCRIPT -->
<script>
(function () {
  "use strict";

  function initializeTemperatureAnalyzer() {
    var root = document.getElementById("rk-temp-guide");
    if (!root) {
      return false;
    }
    if (root.getAttribute("data-rk-temp-ready") === "1") {
      return true;
    }

    var form = document.getElementById("rk-temp-form");
    var chart = document.getElementById("rk-temp-chart");
    if (!form) {
      return false;
    }
    if (!chart) {
      return false;
    }

    function byId(id) {
      return document.getElementById(id);
    }

    function clamp(value, minimum, maximum) {
      return Math.min(maximum, Math.max(minimum, value));
    }

    function parseNumber(value, fallback) {
      var normalized = String(value).replace(",", ".").trim();
      var parsed = Number(normalized);
      if (!Number.isFinite(parsed)) {
        return fallback;
      }
      return parsed;
    }

    function numberFromId(id, fallback) {
      var element = byId(id);
      if (!element) {
        return fallback;
      }
      return parseNumber(element.value, fallback);
    }

    function optionalNumberFromId(id) {
      var element = byId(id);
      if (!element) {
        return null;
      }
      if (String(element.value).trim() === "") {
        return null;
      }
      var parsed = parseNumber(element.value, NaN);
      if (!Number.isFinite(parsed)) {
        return null;
      }
      return parsed;
    }

    function formatNumber(value, digits) {
      if (!Number.isFinite(value)) {
        return "—";
      }
      return new Intl.NumberFormat("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      }).format(value);
    }

    function zoneSurfaceLimit(zone, customValue) {
      if (zone === "bathroom") {
        return 33;
      }
      if (zone === "edge") {
        return 35;
      }
      if (zone === "custom") {
        return customValue;
      }
      return 29;
    }

    function constructionResistance(type) {
      if (type === "conductive") {
        return 0.018;
      }
      if (type === "dry") {
        return 0.047;
      }
      return 0.028;
    }

    function spacingResistance(spacing) {
      if (spacing === 10) {
        return 0.015;
      }
      if (spacing === 20) {
        return 0.043;
      }
      return 0.028;
    }

    function totalReferenceResistance(spacing, floorResistance, construction) {
      var surfaceTransferResistance = 0.0926;
      return surfaceTransferResistance + floorResistance + constructionResistance(construction) + spacingResistance(spacing);
    }

    function logMeanDifference(supply, returnTemperature, room) {
      var firstDifference = supply - room;
      var secondDifference = returnTemperature - room;
      if (firstDifference <= 0) {
        return 0;
      }
      if (secondDifference <= 0) {
        return 0;
      }
      if (Math.abs(firstDifference - secondDifference) < 0.0001) {
        return firstDifference;
      }
      return (firstDifference - secondDifference) / Math.log(firstDifference / secondDifference);
    }

    function heatFluxFromSurface(surfaceTemperature, room) {
      var difference = surfaceTemperature - room;
      if (difference <= 0) {
        return 0;
      }
      return 8.92 * Math.pow(difference, 1.1);
    }

    function surfaceFromHeatFlux(heatFlux, room) {
      if (heatFlux <= 0) {
        return room;
      }
      return room + Math.pow(heatFlux / 8.92, 1 / 1.1);
    }

    function referenceHeatFlux(supply, returnTemperature, room, spacing, floorResistance, construction) {
      var lmtd = logMeanDifference(supply, returnTemperature, room);
      var resistance = totalReferenceResistance(spacing, floorResistance, construction);
      if (lmtd <= 0) {
        return 0;
      }
      return lmtd / resistance;
    }

    function estimateRequiredSupply(requiredFlux, room, waterDrop, spacing, floorResistance, construction) {
      var resistance = totalReferenceResistance(spacing, floorResistance, construction);
      var targetDifference = requiredFlux * resistance;
      var low = room + waterDrop + 0.05;
      var high = 70;
      var highDifference = logMeanDifference(high, high - waterDrop, room);
      var lowDifference = logMeanDifference(low, low - waterDrop, room);
      var index;

      if (targetDifference > highDifference) {
        return null;
      }
      if (targetDifference <= lowDifference) {
        return low;
      }

      for (index = 0; index < 70; index += 1) {
        var middle = (low + high) / 2;
        var middleDifference = logMeanDifference(middle, middle - waterDrop, room);
        if (middleDifference < targetDifference) {
          low = middle;
        } else {
          high = middle;
        }
      }
      return (low + high) / 2;
    }

    function setText(id, value) {
      var element = byId(id);
      if (element) {
        element.textContent = value;
      }
    }

    function clearNode(node) {
      if (!node) {
        return;
      }
      while (node.firstChild) {
        node.removeChild(node.firstChild);
      }
    }

    function svgElement(name, attributes, textValue) {
      var element = document.createElementNS("http://www.w3.org/2000/svg", name);
      Object.keys(attributes).forEach(function (key) {
        element.setAttribute(key, String(attributes[key]));
      });
      if (typeof textValue === "string") {
        element.textContent = textValue;
      }
      return element;
    }

    function addWarning(list, copy) {
      var item = document.createElement("li");
      item.textContent = copy;
      list.appendChild(item);
    }

    function drawChart(data) {
      var gridGroup = byId("rk-temp-chart-grid");
      var limitGroup = byId("rk-temp-chart-limit-zone");
      var linesGroup = byId("rk-temp-chart-lines");
      var markersGroup = byId("rk-temp-chart-markers");
      var labelsGroup = byId("rk-temp-chart-labels");
      clearNode(gridGroup);
      clearNode(limitGroup);
      clearNode(linesGroup);
      clearNode(markersGroup);
      clearNode(labelsGroup);

      var left = 72;
      var right = 728;
      var top = 28;
      var bottom = 354;
      var width = right - left;
      var height = bottom - top;
      var xMin = Math.max(25, Math.ceil(data.room + data.waterDrop + 1));
      var xMax = 60;
      if (xMin >= xMax) {
        xMin = 25;
      }

      var maximumAtSixty = referenceHeatFlux(xMax, xMax - data.waterDrop, data.room, 10, data.floorResistance, data.construction);
      var yLargest = Math.max(100, data.requiredFlux * 1.22, data.limitFlux * 1.1, maximumAtSixty * 1.08);
      var yMax = Math.ceil(yLargest / 20) * 20;

      function mapX(value) {
        return left + ((value - xMin) / (xMax - xMin)) * width;
      }

      function mapY(value) {
        var bounded = clamp(value, 0, yMax);
        return bottom - (bounded / yMax) * height;
      }

      var tickIndex;
      for (tickIndex = 0; tickIndex <= 5; tickIndex += 1) {
        var xValue = xMin + ((xMax - xMin) / 5) * tickIndex;
        var xPosition = mapX(xValue);
        gridGroup.appendChild(svgElement("line", {x1: xPosition, y1: top, x2: xPosition, y2: bottom, stroke: "#d8e6eb", "stroke-width": 1}));
        labelsGroup.appendChild(svgElement("text", {x: xPosition, y: bottom + 25, fill: "#607783", "font-size": 12, "text-anchor": "middle"}, formatNumber(xValue, 0) + "°C"));

        var yValue = (yMax / 5) * tickIndex;
        var yPosition = mapY(yValue);
        gridGroup.appendChild(svgElement("line", {x1: left, y1: yPosition, x2: right, y2: yPosition, stroke: "#d8e6eb", "stroke-width": 1}));
        labelsGroup.appendChild(svgElement("text", {x: left - 12, y: yPosition + 4, fill: "#607783", "font-size": 12, "text-anchor": "end"}, formatNumber(yValue, 0)));
      }

      gridGroup.appendChild(svgElement("line", {x1: left, y1: top, x2: left, y2: bottom, stroke: "#718995", "stroke-width": 1.5}));
      gridGroup.appendChild(svgElement("line", {x1: left, y1: bottom, x2: right, y2: bottom, stroke: "#718995", "stroke-width": 1.5}));
      labelsGroup.appendChild(svgElement("text", {x: (left + right) / 2, y: 414, fill: "#334b58", "font-size": 13, "font-weight": 800, "text-anchor": "middle"}, "temperatura zasilania [°C]"));
      labelsGroup.appendChild(svgElement("text", {x: 18, y: (top + bottom) / 2, fill: "#334b58", "font-size": 13, "font-weight": 800, "text-anchor": "middle", transform: "rotate(-90 18 " + ((top + bottom) / 2) + ")"}, "orientacyjna moc [W/m²]"));

      if (data.limitFlux < yMax) {
        var limitY = mapY(data.limitFlux);
        limitGroup.appendChild(svgElement("rect", {x: left, y: top, width: width, height: Math.max(0, limitY - top), fill: "#d94b3d", opacity: 0.055}));
        limitGroup.appendChild(svgElement("line", {x1: left, y1: limitY, x2: right, y2: limitY, stroke: "#d94b3d", "stroke-width": 2, "stroke-dasharray": "8 6"}));
        labelsGroup.appendChild(svgElement("text", {x: right - 5, y: limitY - 8, fill: "#b53b30", "font-size": 11, "font-weight": 850, "text-anchor": "end"}, "limit powierzchni " + formatNumber(data.limitFlux, 0) + " W/m²"));
      }

      var demandY = mapY(data.requiredFlux);
      markersGroup.appendChild(svgElement("line", {x1: left, y1: demandY, x2: right, y2: demandY, stroke: "#ff6a3d", "stroke-width": 2.5, "stroke-dasharray": "10 6"}));
      labelsGroup.appendChild(svgElement("text", {x: right - 5, y: demandY + 16, fill: "#d75229", "font-size": 11, "font-weight": 850, "text-anchor": "end"}, "wymagane " + formatNumber(data.requiredFlux, 0) + " W/m²"));

      var series = [
        {spacing: 10, color: "#078fbe"},
        {spacing: 15, color: "#16836b"},
        {spacing: 20, color: "#695ac9"}
      ];

      series.forEach(function (item) {
        var points = [];
        var pointIndex;
        for (pointIndex = 0; pointIndex <= 45; pointIndex += 1) {
          var supply = xMin + ((xMax - xMin) / 45) * pointIndex;
          var returnTemperature = supply - data.waterDrop;
          var flux = referenceHeatFlux(supply, returnTemperature, data.room, item.spacing, data.floorResistance, data.construction);
          points.push(mapX(supply).toFixed(2) + "," + mapY(flux).toFixed(2));
        }
        linesGroup.appendChild(svgElement("polyline", {
          points: points.join(" "),
          fill: "none",
          stroke: item.color,
          "stroke-width": item.spacing === data.spacing ? 5 : 3,
          "stroke-linecap": "round",
          "stroke-linejoin": "round",
          opacity: item.spacing === data.spacing ? 1 : 0.78
        }));
      });

      if (data.supply >= xMin) {
        if (data.supply <= xMax) {
          var pointX = mapX(data.supply);
          var pointY = mapY(data.referenceFlux);
          markersGroup.appendChild(svgElement("line", {x1: pointX, y1: top, x2: pointX, y2: bottom, stroke: "#102536", "stroke-width": 1.5, "stroke-dasharray": "5 5", opacity: 0.7}));
          markersGroup.appendChild(svgElement("circle", {cx: pointX, cy: pointY, r: 7, fill: "#ff6a3d", stroke: "#ffffff", "stroke-width": 3}));
          labelsGroup.appendChild(svgElement("text", {x: pointX + 10, y: pointY - 12, fill: "#102536", "font-size": 11, "font-weight": 900}, "Twój punkt"));
        }
      }
    }

    function invalidResult(message) {
      var status = byId("rk-temp-status");
      status.className = "rk-temp-status is-danger";
      setText("rk-temp-status-title", "Popraw dane wejściowe");
      setText("rk-temp-status-copy", message);
    }

    function calculate() {
      var load = numberFromId("rk-temp-load-input", 1100);
      var totalArea = numberFromId("rk-temp-total-area", 24);
      var activeArea = numberFromId("rk-temp-active-area", 20);
      var room = numberFromId("rk-temp-room", 20);
      var zone = byId("rk-temp-zone").value;
      var customZoneLimit = numberFromId("rk-temp-zone-custom", 29);
      var zoneLimit = zoneSurfaceLimit(zone, customZoneLimit);
      var optionalFloorLimit = optionalNumberFromId("rk-temp-floor-limit");
      var floorLimit = optionalFloorLimit === null ? zoneLimit : optionalFloorLimit;
      var effectiveLimit = Math.min(zoneLimit, floorLimit);
      var floorResistance = numberFromId("rk-temp-floor-r", 0.01);
      var spacing = parseInt(byId("rk-temp-spacing-input").value, 10);
      var construction = byId("rk-temp-construction-input").value;
      var supply = numberFromId("rk-temp-supply", 35);
      var returnTemperature = numberFromId("rk-temp-return", 28);
      var waterDrop = supply - returnTemperature;
      var warnings = byId("rk-temp-warnings");
      clearNode(warnings);

      if (load <= 0) {
        invalidResult("Projektowa strata ciepła musi być większa od zera.");
        return;
      }
      if (totalArea <= 0) {
        invalidResult("Powierzchnia pomieszczenia musi być większa od zera.");
        return;
      }
      if (activeArea <= 0) {
        invalidResult("Powierzchnia czynna musi być większa od zera.");
        return;
      }
      if (activeArea > totalArea) {
        invalidResult("Powierzchnia rzeczywiście ogrzewana nie może być większa od całej powierzchni pomieszczenia.");
        return;
      }
      if (returnTemperature >= supply) {
        invalidResult("Temperatura powrotu musi być niższa od temperatury zasilania.");
        return;
      }
      if (returnTemperature <= room) {
        invalidResult("W modelu grzewczym temperatura powrotu musi być wyższa od temperatury pomieszczenia.");
        return;
      }
      if (effectiveLimit <= room) {
        invalidResult("Limit powierzchni musi być wyższy od temperatury pomieszczenia.");
        return;
      }
      if (floorResistance < 0) {
        invalidResult("Opór cieplny wykończenia nie może być ujemny.");
        return;
      }

      var requiredFlux = load / activeArea;
      var requiredSurface = surfaceFromHeatFlux(requiredFlux, room);
      var limitFlux = heatFluxFromSurface(effectiveLimit, room);
      var waterMean = (supply + returnTemperature) / 2;
      var lmtd = logMeanDifference(supply, returnTemperature, room);
      var referenceFlux = referenceHeatFlux(supply, returnTemperature, room, spacing, floorResistance, construction);
      var referenceSurface = surfaceFromHeatFlux(referenceFlux, room);
      var neededSupply = estimateRequiredSupply(requiredFlux, room, waterDrop, spacing, floorResistance, construction);

      setText("rk-temp-result-q", formatNumber(requiredFlux, 1) + " W/m²");
      setText("rk-temp-result-surface-required", formatNumber(requiredSurface, 1) + "°C");
      setText("rk-temp-result-surface-limit", formatNumber(effectiveLimit, 1) + "°C");
      setText("rk-temp-result-q-limit", formatNumber(limitFlux, 0) + " W/m²");
      setText("rk-temp-result-water-mean", formatNumber(waterMean, 1) + "°C");
      setText("rk-temp-result-lmtd", formatNumber(lmtd, 1) + " K");
      setText("rk-temp-result-q-reference", formatNumber(referenceFlux, 1) + " W/m²");

      if (requiredFlux > limitFlux) {
        setText("rk-temp-result-supply-needed", "poza limitem");
      } else {
        if (neededSupply === null) {
          setText("rk-temp-result-supply-needed", "powyżej modelu");
        } else {
          setText("rk-temp-result-supply-needed", formatNumber(Math.round(neededSupply * 2) / 2, 1) + "°C");
        }
      }

      var status = byId("rk-temp-status");
      status.className = "rk-temp-status";
      if (requiredFlux > limitFlux) {
        status.className = "rk-temp-status is-danger";
        setText("rk-temp-status-title", "Niewystarczające ze względu na limit powierzchni");
        setText("rk-temp-status-copy", "Wymagana moc oznacza średnią powierzchnię około " + formatNumber(requiredSurface, 1) + "°C, a efektywny limit wynosi " + formatNumber(effectiveLimit, 1) + "°C. Samo podnoszenie zasilania nie rozwiązuje tego ograniczenia.");
      } else {
        if (referenceSurface > effectiveLimit) {
          status.className = "rk-temp-status is-danger";
          setText("rk-temp-status-title", "Wybrana temperatura przekracza limit w modelu");
          setText("rk-temp-status-copy", "Referencyjna moc odpowiada średniej powierzchni około " + formatNumber(referenceSurface, 1) + "°C. Zmniejsz zasilanie albo zweryfikuj model na charakterystyce konkretnego systemu.");
        } else {
          if (referenceFlux >= requiredFlux * 1.05) {
            status.className = "rk-temp-status is-ok";
            setText("rk-temp-status-title", "Wariant referencyjnie możliwy");
            setText("rk-temp-status-copy", "Model pokazuje orientacyjny zapas " + formatNumber(referenceFlux - requiredFlux, 1) + " W/m², a temperatura powierzchni pozostaje pod limitem. Wynik wymaga jeszcze sprawdzenia konkretnej konstrukcji i hydrauliki.");
          } else {
            if (referenceFlux >= requiredFlux * 0.95) {
              setText("rk-temp-status-title", "Wariant graniczny");
              setText("rk-temp-status-copy", "Wynik znajduje się blisko wymaganej mocy. Niewielka zmiana powierzchni czynnej, oporu okładziny, przepływu albo warstw może zmienić ocenę.");
            } else {
              status.className = "rk-temp-status is-danger";
              setText("rk-temp-status-title", "Wybrane parametry są niewystarczające w modelu");
              setText("rk-temp-status-copy", "Brakuje około " + formatNumber(requiredFlux - referenceFlux, 1) + " W/m². Sprawdź rozstaw, konstrukcję, opór okładziny i powierzchnię, zanim podniesiesz temperaturę zasilania.");
            }
          }
        }
      }

      var activeShare = activeArea / totalArea;
      if (activeShare < 0.65) {
        addWarning(warnings, "Powierzchnia czynna stanowi tylko " + formatNumber(activeShare * 100, 0) + "% pomieszczenia. Małe pole znacząco podnosi wymagane W/m².");
      }
      if (floorResistance > 0.15) {
        addWarning(warnings, "Opór wykończenia przekracza 0,15 m²K/W. Zweryfikuj dopuszczenie całego zestawu do ogrzewania podłogowego.");
      }
      if (optionalFloorLimit !== null) {
        if (optionalFloorLimit < zoneLimit) {
          addWarning(warnings, "O wyniku decyduje niższy limit okładziny: " + formatNumber(optionalFloorLimit, 1) + "°C.");
        }
      }
      if (supply >= 50) {
        addWarning(warnings, "Sprawdzasz wysokie zasilanie " + formatNumber(supply, 1) + "°C. Nie traktuj go jako nastawy bez potwierdzenia temperatury powierzchni i dokumentacji systemu.");
      }
      if (waterDrop < 2) {
        addWarning(warnings, "Różnica zasilanie–powrót jest mniejsza niż 2 K. Zweryfikuj stabilność pomiarów oraz przepływ.");
      }
      if (waterDrop > 10) {
        addWarning(warnings, "Różnica zasilanie–powrót przekracza 10 K. Sprawdź przepływ i równoważenie pętli.");
      }
      if (zone === "bathroom") {
        if (Math.abs(room - 24) > 0.6) {
          addWarning(warnings, "Dla przykładowej granicy łazienki 33°C sprawdź również projektową temperaturę pomieszczenia 24°C.");
        }
      }
      if (!warnings.firstChild) {
        addWarning(warnings, "Brak dodatkowych ostrzeżeń z danych wejściowych. Nadal obowiązuje weryfikacja charakterystyki konkretnego systemu i hydrauliki pętli.");
      }

      drawChart({
        room: room,
        waterDrop: clamp(waterDrop, 1, 15),
        floorResistance: floorResistance,
        construction: construction,
        spacing: spacing,
        supply: supply,
        requiredFlux: requiredFlux,
        limitFlux: limitFlux,
        referenceFlux: referenceFlux
      });
    }

    var floorPresets = {
      tile: {resistance: "0.01"},
      vinyl: {resistance: "0.03"},
      laminate: {resistance: "0.07"},
      wood: {resistance: "0.10"}
    };

    byId("rk-temp-floor-preset").addEventListener("change", function () {
      var selected = this.value;
      if (floorPresets[selected]) {
        byId("rk-temp-floor-r").value = floorPresets[selected].resistance;
      }
      calculate();
    });

    byId("rk-temp-zone").addEventListener("change", function () {
      var customField = byId("rk-temp-zone-custom");
      if (this.value === "custom") {
        customField.removeAttribute("disabled");
      } else {
        customField.setAttribute("disabled", "disabled");
      }
      calculate();
    });

    form.addEventListener("submit", function (event) {
      event.preventDefault();
      calculate();
    });

    form.addEventListener("input", function () {
      calculate();
    });

    form.addEventListener("change", function () {
      calculate();
    });

    byId("rk-temp-reset").addEventListener("click", function () {
      form.reset();
      byId("rk-temp-zone-custom").setAttribute("disabled", "disabled");
      calculate();
    });

    function updateReadingProgress() {
      var progress = byId("rk-temp-progress");
      if (!progress) {
        return;
      }
      var rectangle = root.getBoundingClientRect();
      var total = root.offsetHeight - window.innerHeight;
      var passed = -rectangle.top;
      var ratio = total > 0 ? clamp(passed / total, 0, 1) : 0;
      progress.style.width = (ratio * 100).toFixed(2) + "%";
    }

    byId("rk-temp-zone-custom").setAttribute("disabled", "disabled");
    root.setAttribute("data-rk-temp-ready", "1");
    window.addEventListener("scroll", updateReadingProgress, {passive: true});
    window.addEventListener("resize", updateReadingProgress);
    calculate();
    updateReadingProgress();
    return true;
  }

  function startTemperatureAnalyzer() {
    if (initializeTemperatureAnalyzer()) {
      return;
    }
    window.setTimeout(initializeTemperatureAnalyzer, 350);
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", startTemperatureAnalyzer);
  } else {
    startTemperatureAnalyzer();
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">Maksymalna temperatura zasilania podłogówki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma EN ISO 15875.</title>
		<link>https://projekt-ogrzewania.pl/norma-en-iso-15875/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 27 Feb 2025 18:39:53 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Normy i certyfikaty]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezpieczeństwo instalacji]]></category>
		<category><![CDATA[certyfikaty jakości]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[norma en iso 15875]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[tworzywa sztuczne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2301</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Dowiedz się, dlaczego norma EN ISO 15875 jest kluczowa dla bezpieczeństwa i trwałości Twojej instalacji. W artykule omawiamy wymagania tej normy, korzyści z jej stosowania oraz praktyczne wskazówki dotyczące projektowania systemów grzewczych. Sprawdź, jak wybrać odpowiednie rury i uniknąć błędów, które mogą wpłynąć na efektywność ogrzewania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">Norma EN ISO 15875.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wybór odpowiednich materiałów do <em>ogrzewania podłogowego</em> ma kluczowe znaczenie dla efektywności i bezpieczeństwa całej instalacji. Jednym z najważniejszych dokumentów potwierdzających jakość rur stosowanych w tego typu systemach jest <strong>norma EN ISO 15875</strong>. </p>



<p class="wp-block-paragraph">W artykule przyjrzymy się, dlaczego ten standard jest tak istotny, jakie wymagania stawia przed producentami oraz jak wpływa na trwałość i niezawodność instalacji grzewczych. Dowiesz się również, jak wykorzystać go w praktyce podczas projektowania ogrzewania podłogowego.</p>



<h2 class="wp-block-heading">Czym jest norma EN ISO 15875 i dlaczego warto ją znać?</h2>



<p class="wp-block-paragraph"><strong>Norma EN ISO 15875</strong> to międzynarodowy standard określający <strong>wymagania dla <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur z tworzyw sztucznych</a></strong> stosowanych w instalacjach wodnych, w tym w systemach ogrzewania podłogowego. Dokument ten precyzuje kryteria dotyczące:</p>



<ul class="wp-block-list">
<li><strong>Materiałów</strong> – dopuszczalnych rodzajów tworzyw (np. PE-X, PB),</li>



<li><strong>Wytrzymałości mechanicznej</strong> – odporności na uszkodzenia i odkształcenia,</li>



<li><strong>Odporności termicznej</strong> – stabilności w wysokich temperaturach,</li>



<li><strong>Bezpieczeństwa sanitarnego</strong> – braku negatywnego wpływu na jakość wody.</li>
</ul>



<p class="wp-block-paragraph">Certyfikacja zgodnie z tą normą oznacza, że produkt przeszedł rygorystyczne testy, a jego parametry są zgodne z europejskimi wymaganiami. To właśnie dlatego <strong>rury oznaczone EN ISO 15875</strong> są rekomendowane przez ekspertów jako podstawa niezawodnych instalacji grzewczych.</p>



<h2 class="wp-block-heading">Wymagania normy EN ISO 15875 – na co zwrócić uwagę?</h2>



<p class="wp-block-paragraph">Aby rury mogły spełnić <strong>normę EN ISO 15875</strong>, muszą przejść serię badań, które potwierdzają ich właściwości techniczne. Oto najważniejsze aspekty oceniane w procesie certyfikacji:</p>



<h3 class="wp-block-heading">1. Odporność na wysokie temperatury i ciśnienie.</h3>



<p class="wp-block-paragraph">W systemach <strong><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></strong> rury narażone są na działanie wody o temperaturze nawet do <strong>70°C</strong> (w zależności od projektu). Norma wymaga, aby tworzywo zachowało stabilność przez co najmniej <strong>50 lat</strong> w takich warunkach. Przykładem są rury PE-X, które dzięki sieciowanej strukturze wykazują wyjątkową odporność na rozciąganie i pękanie.</p>



<h3 class="wp-block-heading">2. Minimalizacja strat ciepła.</h3>



<p class="wp-block-paragraph"><strong>Dobrze izolowane rury</strong> to mniejsze zużycie energii i niższe rachunki. Norma EN ISO 15875 określa dopuszczalne współczynniki przewodzenia ciepła, co przekłada się na optymalną grubość ścianek rur. Na przykład rury PB (polibutylenowe) charakteryzują się niższym współczynnikiem niż PE-X, co może być istotne w projektach wymagających wysokiej efektywności.</p>



<h3 class="wp-block-heading">3. Bezpieczeństwo dla zdrowia.</h3>



<p class="wp-block-paragraph">W przypadku instalacji łączących ogrzewanie podłogowe z systemem ciepłej wody użytkowej, norma gwarantuje, że materiały nie uwalniają szkodliwych substancji. Przykładowo, rury certyfikowane <strong>EN ISO 15875</strong> są wolne od metali ciężkich i ftalanów.</p>



<h2 class="wp-block-heading">Korzyści stosowania rur zgodnych z normą EN ISO 15875</h2>



<p class="wp-block-paragraph">Inwestycja w certyfikowane produkty to nie tylko spełnienie wymogów prawnych, ale też szereg praktycznych zalet:</p>



<ul class="wp-block-list">
<li><strong>Długowieczność</strong> – instalacje wytrzymują nawet kilkadziesiąt lat bez awarii,</li>



<li><strong>Oszczędność energii</strong> – precyzyjna dystrybucja ciepła redukuje straty,</li>



<li><strong>Bezpieczeństwo</strong> – brak ryzyka przecieków czy pęknięć,</li>



<li><strong>Gwarancja producenta</strong> – wiele firm udziela nawet 10-letniej ochrony na swoje produkty.</li>
</ul>



<h3 class="wp-block-heading">Przykłady zastosowań w praktyce</h3>



<p class="wp-block-paragraph">W projektach <strong>ogrzewania podłogowego</strong> w domach jednorodzinnych często wykorzystuje się rury PE-X ze względu na ich elastyczność i łatwość układania. Z kolei w obiektach przemysłowych, gdzie wymagana jest większa odporność na obciążenia mechaniczne, sprawdzają się rury PB. W obu przypadkach norma EN ISO 15875 działa jako „filtrujący” standard, eliminujący produkty niskiej jakości.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a norma EN ISO 15875 – kluczowe etapy</h2>



<p class="wp-block-paragraph">Planując instalację grzewczą, warto uwzględnić wymagania normy już na etapie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektu ogrzewania podłogowego</a>. Oto jak to zrobić:</p>



<h3 class="wp-block-heading">1. Wybór materiałów.</h3>



<p class="wp-block-paragraph">Zawsze sprawdzaj, czy rury posiadają certyfikat <strong>EN ISO 15875</strong>. Unikaj produktów bez oznaczeń lub z niejasnymi deklaracjami. Przykład: rury marki Kisan, TECE, Uponor lub Rehau są standardowo certyfikowane, co potwierdzają dokumentacje techniczne.</p>



<h3 class="wp-block-heading">2. Rozmieszczenie rur.</h3>



<p class="wp-block-paragraph">Norma nie reguluje bezpośrednio układu pętli grzewczych, ale zaleca zachowanie minimalnych odległości między rurami (zwykle ok. 10-30 cm), aby uniknąć lokalnych przegrzewów. W projektach złożonych, np. w łazienkach z wieloma strefami grzewczymi, warto użyć rur o mniejszych średnicach (np. 14 mm), które łatwiej dopasować do kształtu pomieszczenia.</p>



<h3 class="wp-block-heading">3. Dokumentacja i gwarancje.</h3>



<p class="wp-block-paragraph">Przechowuj certyfikaty zgodności z normą – mogą być wymagane przez inspektorów nadzoru budowlanego lub w przypadku roszczeń gwarancyjnych. Niektóre firmy, jak np. Viega, oferują dodatkowe ubezpieczenie instalacji, pod warunkiem użycia certyfikowanych komponentów.</p>



<h3 class="wp-block-heading">4. Testy ciśnieniowe.</h3>



<p class="wp-block-paragraph">Przed zalaniem posadzki, przeprowadź próbę szczelności instalacji zgodnie z parametrami normy (np. ciśnienie 6 bar przez 24 godziny). To pozwoli wykryć ewentualne wady materiałów lub montażu.</p>



<h2 class="wp-block-heading">FAQ:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1740680812103"><strong class="schema-faq-question"><strong>Dlaczego norma EN ISO 15875 jest ważna w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Norma EN ISO 15875 gwarantuje, że rury spełniają wymagania dotyczące wytrzymałości, odporności termicznej i bezpieczeństwa, co przekłada się na trwałość i niezawodność instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1740680822708"><strong class="schema-faq-question"><strong>Jakie materiały są dopuszczone przez normę EN ISO 15875?</strong></strong> <p class="schema-faq-answer">Norma dopuszcza rury z tworzyw sztucznych, takich jak PE-X (polietylen sieciowany) i PB (polibutylen), które są odporne na wysokie temperatury i ciśnienie.</p> </div> <div class="schema-faq-section" id="faq-question-1740680838734"><strong class="schema-faq-question"><strong>Czy rury zgodne z normą EN ISO 15875 są droższe?</strong></strong> <p class="schema-faq-answer">Choć mogą być nieco droższe, ich wyższa jakość i dłuższa żywotność sprawiają, że inwestycja zwraca się dzięki mniejszym kosztom eksploatacji i napraw.</p> </div> <div class="schema-faq-section" id="faq-question-1740680846736"><strong class="schema-faq-question"><strong>Jak sprawdzić, czy rury są zgodne z normą EN ISO 15875?</strong></strong> <p class="schema-faq-answer">Należy szukać certyfikatów zgodności wydanych przez producenta lub niezależne instytucje certyfikujące. Informacje te często znajdują się na opakowaniu lub w dokumentacji technicznej.</p> </div> <div class="schema-faq-section" id="faq-question-1740680859276"><strong class="schema-faq-question"><strong>Czy norma EN ISO 15875 dotyczy tylko ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Nie, norma dotyczy również innych instalacji wodnych, ale w przypadku ogrzewania podłogowego jest szczególnie istotna ze względu na specyficzne warunki pracy rur.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Dlaczego norma EN ISO 15875 to niezbędny standard?</h2>



<p class="wp-block-paragraph">Stosowanie rur zgodnych z <strong>normą EN ISO 15875</strong> to inwestycja w bezawaryjność i energooszczędność ogrzewania podłogowego. Dzięki precyzyjnym wymaganiom dotyczącym wytrzymałości, bezpieczeństwa i trwałości, standard ten stał się synonimem jakości w branży instalacyjnej. Niezależnie od tego, czy projektujesz system dla małego mieszkania, czy wielkopowierzchniowego magazynu – wybór certyfikowanych komponentów to najlepsza droga do sukcesu.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="YkhGD03zx4"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">Projekt ogrzewania podłogowego &#8211; do 100 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 100 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/embed/#?secret=kROEAMOUhR#?secret=YkhGD03zx4" data-secret="YkhGD03zx4" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/">Norma EN ISO 15875.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Norma obliczeń ogrzewania podłogowego EN 1264.</title>
		<link>https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 17 Feb 2025 18:37:11 +0000</pubDate>
				<category><![CDATA[EN 1264]]></category>
		<category><![CDATA[Niskotemperaturowe systemy grzewcze]]></category>
		<category><![CDATA[Normy budowlane]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budownictwo]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[norma en 1264]]></category>
		<category><![CDATA[obliczenia cieplne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[trwałość instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2241</guid>

					<description><![CDATA[<p>Projektowanie ogrzewania podłogowego wymaga precyzji i wiedzy technicznej. Norma obliczeń ogrzewania podłogowego EN 1264 to kluczowy dokument, który określa zasady projektowania, obliczeń i montażu systemów grzewczych. Dzięki niej możliwe jest zapewnienie efektywności energetycznej, komfortu użytkowania oraz trwałości instalacji. W artykule szczegółowo omawiamy strukturę normy, metody obliczeniowe oraz praktyczne wskazówki dla projektantów i instalatorów. Dowiesz się, jak uniknąć błędów i zoptymalizować system grzewczy w swoim domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma obliczeń ogrzewania podłogowego EN 1264.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-en-guide {
    --rk-dark: #102536;
    --rk-navy: #153c52;
    --rk-blue: #078fbe;
    --rk-cyan: #27c8d8;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff6d38;
    --rk-red: #df4537;
    --rk-red-soft: #fff0ee;
    --rk-yellow: #efb93d;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-purple: #6b5bd2;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6b7d89;
    --rk-line: #d5e5ec;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3ec;
    --rk-white: #fff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-en-guide,
  #rk-en-guide * { box-sizing: border-box; }

  #rk-en-guide img,
  #rk-en-guide svg { max-width: 100%; }

  #rk-en-guide button,
  #rk-en-guide input,
  #rk-en-guide select,
  #rk-en-guide label,
  #rk-en-guide summary,
  #rk-en-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-en-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-en-guide p,
  #rk-en-guide ul,
  #rk-en-guide ol { margin-top: 0; margin-bottom: 1.15em; }

  #rk-en-guide h2,
  #rk-en-guide h3,
  #rk-en-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 950;
    letter-spacing: -0.035em;
  }

  #rk-en-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.8rem, 4vw, 2.72rem);
    line-height: 1.08;
  }

  #rk-en-guide h3 {
    margin-bottom: 10px;
    font-size: clamp(1.06rem, 2.2vw, 1.33rem);
    line-height: 1.22;
  }

  #rk-en-guide .rk-en-shell {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 32px;
    background: var(--rk-white);
    box-shadow: 0 28px 70px rgba(16, 37, 54, .11);
  }

  #rk-en-guide .rk-en-progress-track {
    position: sticky;
    z-index: 50;
    top: 0;
    height: 5px;
    background: rgba(213, 229, 236, .86);
  }

  #rk-en-guide .rk-en-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-orange), var(--rk-cyan));
  }

  #rk-en-guide .rk-en-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 74px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 17%, rgba(255,109,56,.36), transparent 29%),
      radial-gradient(circle at 78% 92%, rgba(39,200,216,.21), transparent 33%),
      linear-gradient(126deg, #0f2233, #143e55 74%, #2b3743);
  }

  #rk-en-guide .rk-en-hero::after {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 360px;
    height: 360px;
    border: 42px solid rgba(255,255,255,.045);
    border-radius: 50%;
  }

  #rk-en-guide .rk-en-hero > * { position: relative; z-index: 2; }

  #rk-en-guide .rk-en-eyebrow,
  #rk-en-guide .rk-en-kicker {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-bottom: 17px;
    color: var(--rk-orange);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-en-guide .rk-en-eyebrow {
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    color: #ddfbff;
    background: rgba(255,255,255,.055);
  }

  #rk-en-guide .rk-en-eyebrow b {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255,109,56,.16);
  }

  #rk-en-guide .rk-en-hero-title {
    max-width: 980px;
    margin-bottom: 22px;
    color: var(--rk-white) !important;
    font-size: clamp(2.12rem, 5.1vw, 4.25rem);
    font-weight: 980;
    letter-spacing: -.058em;
    line-height: 1;
  }

  #rk-en-guide .rk-en-hero-lead {
    max-width: 900px;
    margin-bottom: 25px;
    color: #d8e9f0;
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.68;
  }

  #rk-en-guide .rk-en-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 24px;
    color: #c6dbe4;
    font-size: .72rem;
    font-weight: 800;
  }

  #rk-en-guide .rk-en-meta span { display: inline-flex; gap: 8px; align-items: center; }
  #rk-en-guide .rk-en-meta i { width: 7px; height: 7px; border-radius: 50%; background: var(--rk-orange); }

  #rk-en-guide .rk-en-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 17px clamp(22px, 5vw, 58px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-en-guide .rk-en-nav a {
    padding: 8px 13px;
    border: 1px solid #c8dfe7;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: .69rem;
    font-weight: 900;
    line-height: 1.35;
    text-decoration: none;
  }

  #rk-en-guide .rk-en-nav a:hover,
  #rk-en-guide .rk-en-nav a:focus-visible { color: var(--rk-white); border-color: var(--rk-blue); background: var(--rk-blue); }

  #rk-en-guide .rk-en-body { padding: clamp(30px, 6vw, 68px); }
  #rk-en-guide .rk-en-section { scroll-margin-top: 30px; margin-top: clamp(56px, 8vw, 88px); }
  #rk-en-guide .rk-en-section:first-child { margin-top: 0; }
  #rk-en-guide .rk-en-lead { color: var(--rk-text); font-size: clamp(1rem, 2vw, 1.14rem); line-height: 1.75; }

  #rk-en-guide .rk-en-dropcap::first-letter {
    float: left;
    margin: .08em .11em 0 0;
    color: var(--rk-orange);
    font-size: 3.35em;
    font-weight: 980;
    line-height: .8;
  }

  #rk-en-guide .rk-en-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(270px, .65fr);
    gap: 16px;
    margin-top: 24px;
  }

  #rk-en-guide .rk-en-answer-main,
  #rk-en-guide .rk-en-answer-side,
  #rk-en-guide .rk-en-card,
  #rk-en-guide .rk-en-concept,
  #rk-en-guide .rk-en-factor {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-en-guide .rk-en-answer-main { background: linear-gradient(145deg, var(--rk-white), var(--rk-cyan-soft)); }
  #rk-en-guide .rk-en-answer-side { border-color: #ffd1c2; background: var(--rk-warm); }
  #rk-en-guide .rk-en-answer p,
  #rk-en-guide .rk-en-card p,
  #rk-en-guide .rk-en-concept p,
  #rk-en-guide .rk-en-factor p { margin-bottom: 0; color: var(--rk-text); font-size: .79rem; line-height: 1.62; }

  #rk-en-guide .rk-en-grid-2,
  #rk-en-guide .rk-en-grid-3,
  #rk-en-guide .rk-en-grid-4,
  #rk-en-guide .rk-en-concepts,
  #rk-en-guide .rk-en-factors {
    display: grid;
    gap: 15px;
    margin-top: 24px;
  }

  #rk-en-guide .rk-en-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-en-guide .rk-en-grid-3,
  #rk-en-guide .rk-en-concepts,
  #rk-en-guide .rk-en-factors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-en-guide .rk-en-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  #rk-en-guide .rk-en-card { box-shadow: 0 10px 28px rgba(16,37,54,.055); }
  #rk-en-guide .rk-en-card-number,
  #rk-en-guide .rk-en-concept b,
  #rk-en-guide .rk-en-factor b {
    display: inline-flex;
    min-width: 44px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    padding: 6px 10px;
    border-radius: 12px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: .68rem;
    font-weight: 950;
  }

  #rk-en-guide .rk-en-concept b,
  #rk-en-guide .rk-en-factor b { background: var(--rk-dark); }

  #rk-en-guide .rk-en-callout {
    margin-top: 24px;
    padding: 24px 27px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-cyan-soft);
  }

  #rk-en-guide .rk-en-callout.is-warning { border-left-color: var(--rk-orange); background: var(--rk-warm); }
  #rk-en-guide .rk-en-callout.is-danger { border-left-color: var(--rk-red); background: var(--rk-red-soft); }
  #rk-en-guide .rk-en-callout p:last-child { margin-bottom: 0; }

  #rk-en-guide .rk-en-process {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
  }

  #rk-en-guide .rk-en-process-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-en-guide .rk-en-process-step:not(:last-child)::after {
    content: "→";
    position: absolute;
    z-index: 2;
    top: 50%;
    right: -18px;
    width: 24px;
    color: var(--rk-orange);
    font-size: 1.25rem;
    font-weight: 950;
    text-align: center;
    transform: translateY(-50%);
  }

  #rk-en-guide .rk-en-process-step b { display: block; margin-bottom: 8px; color: var(--rk-blue); font-size: .67rem; letter-spacing: .06em; }
  #rk-en-guide .rk-en-process-step strong { display: block; color: var(--rk-dark); line-height: 1.35; }
  #rk-en-guide .rk-en-process-step small { display: block; margin-top: 7px; color: var(--rk-text); font-size: .67rem; line-height: 1.5; }

  #rk-en-guide .rk-en-table-wrap {
    overflow: hidden;
    margin-top: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
  }

  #rk-en-guide table { width: 100%; margin: 0; border-collapse: collapse; table-layout: fixed; }
  #rk-en-guide th,
  #rk-en-guide td { padding: 17px 15px; border: 0; border-bottom: 1px solid var(--rk-line); vertical-align: top; text-align: left; overflow-wrap: anywhere; }
  #rk-en-guide th { color: var(--rk-white); background: var(--rk-dark); font-size: .69rem; font-weight: 900; letter-spacing: .02em; line-height: 1.4; }
  #rk-en-guide td { color: var(--rk-text); font-size: .78rem; line-height: 1.58; }
  #rk-en-guide tr:last-child td { border-bottom: 0; }
  #rk-en-guide tbody tr:nth-child(even) td { background: var(--rk-soft); }

  #rk-en-guide .rk-en-formulas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    margin-top: 24px;
  }

  #rk-en-guide .rk-en-formula {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: linear-gradient(145deg, var(--rk-white), var(--rk-cyan-soft));
  }

  #rk-en-guide .rk-en-formula span { display: block; margin-bottom: 9px; color: var(--rk-blue); font-size: .66rem; font-weight: 950; letter-spacing: .07em; text-transform: uppercase; }
  #rk-en-guide .rk-en-formula strong { display: block; overflow-wrap: anywhere; color: var(--rk-dark); font-size: clamp(1.05rem, 2.4vw, 1.55rem); line-height: 1.4; }
  #rk-en-guide .rk-en-formula p { margin: 11px 0 0; color: var(--rk-text); font-size: .72rem; line-height: 1.58; }

  #rk-en-guide .rk-en-audit {
    overflow: hidden;
    margin-top: 25px;
    border: 1px solid #badce8;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 20px 48px rgba(16,37,54,.09);
  }

  #rk-en-guide .rk-en-audit-head {
    padding: clamp(28px, 5vw, 48px);
    color: var(--rk-white);
    background: radial-gradient(circle at 91% 15%, rgba(255,109,56,.35), transparent 29%), linear-gradient(125deg, var(--rk-dark), #164a62);
  }

  #rk-en-guide .rk-en-audit-head h2 { color: var(--rk-white) !important; }
  #rk-en-guide .rk-en-audit-head p { max-width: 900px; margin-bottom: 0; color: #d8eaf1; }
  #rk-en-guide .rk-en-audit-layout { display: grid; grid-template-columns: minmax(310px, .85fr) minmax(0, 1.15fr); }
  #rk-en-guide .rk-en-audit-form { padding: clamp(25px, 4vw, 38px); border-right: 1px solid var(--rk-line); background: var(--rk-soft); }
  #rk-en-guide .rk-en-audit-output { min-width: 0; padding: clamp(25px, 4vw, 42px); }
  #rk-en-guide .rk-en-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  #rk-en-guide .rk-en-field { min-width: 0; }
  #rk-en-guide .rk-en-field.is-full { grid-column: 1 / -1; }

  #rk-en-guide .rk-en-field label {
    display: block;
    min-height: 2.6em;
    margin-bottom: 6px;
    color: var(--rk-dark);
    font-size: .69rem;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-en-guide .rk-en-field input {
    width: 100%;
    min-height: 49px;
    padding: 10px 12px;
    border: 1px solid #bcd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .82rem;
    font-weight: 760;
    outline: 0;
  }

  #rk-en-guide .rk-en-field input:focus { border-color: var(--rk-blue); box-shadow: 0 0 0 4px rgba(7,143,190,.12); }
  #rk-en-guide .rk-en-field small { display: block; margin-top: 5px; color: var(--rk-muted); font-size: .61rem; line-height: 1.42; }

  #rk-en-guide .rk-en-checks { display: grid; gap: 9px; margin-top: 18px; }
  #rk-en-guide .rk-en-check {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 12px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-white);
    cursor: pointer;
  }

  #rk-en-guide .rk-en-check input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--rk-blue); }
  #rk-en-guide .rk-en-check span { color: var(--rk-text); font-size: .71rem; font-weight: 760; line-height: 1.45; }
  #rk-en-guide .rk-en-audit-reset {
    width: 100%;
    min-height: 48px;
    margin-top: 16px;
    padding: 11px 16px;
    border: 1px solid #bcd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-weight: 900;
    cursor: pointer;
  }

  #rk-en-guide .rk-en-audit-reset:hover,
  #rk-en-guide .rk-en-audit-reset:focus-visible { color: var(--rk-white); border-color: var(--rk-blue); background: var(--rk-blue); }

  #rk-en-guide .rk-en-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 19px; }
  #rk-en-guide .rk-en-metric { min-width: 0; padding: 16px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-soft); }
  #rk-en-guide .rk-en-metric small { display: block; min-height: 2.7em; color: var(--rk-muted); font-size: .61rem; font-weight: 850; line-height: 1.35; }
  #rk-en-guide .rk-en-metric strong { display: block; margin-top: 6px; color: var(--rk-dark); font-size: clamp(1.05rem, 2.5vw, 1.57rem); font-weight: 950; line-height: 1.15; overflow-wrap: anywhere; }

  #rk-en-guide .rk-en-audit-status { margin-bottom: 18px; padding: 18px 20px; border-left: 6px solid var(--rk-green); border-radius: 0 15px 15px 0; background: var(--rk-green-soft); }
  #rk-en-guide .rk-en-audit-status.is-warning { border-left-color: var(--rk-yellow); background: var(--rk-yellow-soft); }
  #rk-en-guide .rk-en-audit-status.is-danger { border-left-color: var(--rk-red); background: var(--rk-red-soft); }
  #rk-en-guide .rk-en-audit-status strong,
  #rk-en-guide .rk-en-audit-status span { display: block; }
  #rk-en-guide .rk-en-audit-status span { margin-top: 4px; color: var(--rk-text); font-size: .75rem; line-height: 1.53; }

  #rk-en-guide .rk-en-chart { margin-bottom: 18px; padding: 20px; border: 1px solid var(--rk-line); border-radius: 18px; background: var(--rk-soft); }
  #rk-en-guide .rk-en-chart-title { margin-bottom: 13px; color: var(--rk-dark); font-size: .72rem; font-weight: 950; }
  #rk-en-guide .rk-en-bar-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) 116px; gap: 10px; align-items: center; margin-top: 11px; }
  #rk-en-guide .rk-en-bar-row span,
  #rk-en-guide .rk-en-bar-row strong { color: var(--rk-dark); font-size: .68rem; line-height: 1.35; }
  #rk-en-guide .rk-en-bar-row strong { text-align: right; }
  #rk-en-guide .rk-en-bar-track { height: 18px; overflow: hidden; border-radius: 999px; background: #dcebf0; }
  #rk-en-guide .rk-en-bar { display: block; width: 0; height: 100%; border-radius: inherit; transition: width .22s ease; }
  #rk-en-guide .rk-en-bar.is-required { background: linear-gradient(90deg, var(--rk-orange), #ef4937); }
  #rk-en-guide .rk-en-bar.is-available { background: linear-gradient(90deg, var(--rk-blue), var(--rk-cyan)); }

  #rk-en-guide .rk-en-audit-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
  #rk-en-guide .rk-en-audit-list li { position: relative; margin: 0; padding: 11px 13px 11px 42px; border: 1px solid var(--rk-line); border-radius: 13px; color: var(--rk-text); background: var(--rk-white); font-size: .72rem; line-height: 1.48; }
  #rk-en-guide .rk-en-audit-list li::before { content: "!"; position: absolute; top: 11px; left: 12px; display: inline-flex; width: 21px; height: 21px; align-items: center; justify-content: center; border-radius: 50%; color: var(--rk-white); background: var(--rk-blue); font-size: .63rem; font-weight: 950; }
  #rk-en-guide .rk-en-tool-note { padding: 18px clamp(25px, 4vw, 42px); border-top: 1px solid var(--rk-line); color: var(--rk-muted); background: #fbfdfe; font-size: .68rem; line-height: 1.55; }

  #rk-en-guide .rk-en-inline-cta,
  #rk-en-guide .rk-en-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background: radial-gradient(circle at 91% 16%, rgba(255,109,56,.39), transparent 28%), linear-gradient(125deg, var(--rk-dark), #17475e);
  }

  #rk-en-guide .rk-en-inline-cta { margin-top: 25px; padding: clamp(28px, 5vw, 48px); }
  #rk-en-guide .rk-en-final-cta { margin-top: clamp(56px, 8vw, 88px); padding: clamp(31px, 5vw, 55px); }
  #rk-en-guide .rk-en-inline-cta h2,
  #rk-en-guide .rk-en-final-cta h2 { max-width: 920px; color: var(--rk-white) !important; }
  #rk-en-guide .rk-en-inline-cta p,
  #rk-en-guide .rk-en-final-cta p { max-width: 930px; color: #d7e9f1; }

  #rk-en-guide .rk-en-cta-button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
    padding: 13px 23px;
    border-radius: 14px;
    color: var(--rk-white) !important;
    background: linear-gradient(135deg, var(--rk-orange), #ef4937);
    box-shadow: 0 14px 30px rgba(239,73,55,.25);
    font-weight: 950;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
  }

  #rk-en-guide .rk-en-cta-button:hover,
  #rk-en-guide .rk-en-cta-button:focus-visible { color: var(--rk-white) !important; transform: translateY(-2px); box-shadow: 0 18px 36px rgba(239,73,55,.32); }
  #rk-en-guide .rk-en-disclosure { display: block; margin-top: 12px; color: #b9d0db; font-size: .64rem; line-height: 1.5; }

  #rk-en-guide .rk-en-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; counter-reset: en-step; }
  #rk-en-guide .rk-en-step { position: relative; min-width: 0; padding: 24px 24px 24px 77px; border: 1px solid var(--rk-line); border-radius: 19px; background: var(--rk-white); }
  #rk-en-guide .rk-en-step::before { counter-increment: en-step; content: counter(en-step, decimal-leading-zero); position: absolute; top: 23px; left: 21px; display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 13px; color: var(--rk-white); background: var(--rk-dark); font-size: .67rem; font-weight: 950; }
  #rk-en-guide .rk-en-step p { margin-bottom: 0; color: var(--rk-text); font-size: .76rem; line-height: 1.58; }

  #rk-en-guide .rk-en-myths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  #rk-en-guide .rk-en-myth { min-width: 0; padding: 23px; border: 1px solid #ffd0c2; border-radius: 20px; background: linear-gradient(135deg, #fff5f0, #fffdfb); }
  #rk-en-guide .rk-en-myth b { display: inline-flex; margin-bottom: 10px; padding: 5px 9px; border-radius: 8px; color: var(--rk-white); background: var(--rk-red); font-size: .62rem; }
  #rk-en-guide .rk-en-myth p { margin-bottom: 0; color: var(--rk-text); font-size: .76rem; line-height: 1.58; }

  #rk-en-guide .rk-en-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; margin: 0; padding: 0; list-style: none; }
  #rk-en-guide .rk-en-checklist li { position: relative; margin: 0; padding: 14px 15px 14px 48px; border: 1px solid var(--rk-line); border-radius: 14px; color: var(--rk-text); background: var(--rk-soft); font-size: .76rem; line-height: 1.52; }
  #rk-en-guide .rk-en-checklist li::before { content: "✓"; position: absolute; top: 13px; left: 14px; display: inline-flex; width: 23px; height: 23px; align-items: center; justify-content: center; border-radius: 50%; color: var(--rk-white); background: var(--rk-green); font-size: .67rem; font-weight: 950; }

  #rk-en-guide .rk-en-faq { display: grid; gap: 10px; }
  #rk-en-guide .rk-en-faq details { overflow: hidden; border: 1px solid var(--rk-line); border-radius: 15px; background: var(--rk-white); }
  #rk-en-guide .rk-en-faq summary { position: relative; padding: 17px 54px 17px 19px; color: var(--rk-dark); font-size: .86rem; font-weight: 900; line-height: 1.45; cursor: pointer; list-style: none; }
  #rk-en-guide .rk-en-faq summary::-webkit-details-marker { display: none; }
  #rk-en-guide .rk-en-faq summary::after { content: "+"; position: absolute; top: 50%; right: 18px; display: inline-flex; width: 27px; height: 27px; align-items: center; justify-content: center; border-radius: 50%; color: var(--rk-white); background: var(--rk-blue); transform: translateY(-50%); }
  #rk-en-guide .rk-en-faq details[open] summary::after { content: "–"; }
  #rk-en-guide .rk-en-faq-answer { padding: 0 19px 18px; color: var(--rk-text); font-size: .78rem; line-height: 1.62; }
  #rk-en-guide .rk-en-faq-answer p:last-child { margin-bottom: 0; }

  #rk-en-guide .rk-en-sources { padding: 19px 21px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-soft); }
  #rk-en-guide .rk-en-sources p { margin-bottom: 0; color: var(--rk-text); font-size: .72rem; line-height: 1.58; }

  #rk-en-guide .rk-en-author { overflow: hidden; margin-top: clamp(56px, 8vw, 88px); border: 1px solid #cbdfe7; border-radius: 28px; background: var(--rk-white); box-shadow: 0 20px 45px rgba(16,37,54,.08); }
  #rk-en-guide .rk-en-author > input { position: absolute; opacity: 0; pointer-events: none; }
  #rk-en-guide .rk-en-author-head { display: flex; gap: 22px; align-items: flex-start; justify-content: space-between; padding: clamp(28px, 5vw, 48px); border-bottom: 5px solid var(--rk-cyan); color: var(--rk-white); background: var(--rk-dark); }
  #rk-en-guide .rk-en-author-head h2 { margin-bottom: 5px; color: var(--rk-white) !important; font-size: clamp(2rem, 4.5vw, 3.6rem); }
  #rk-en-guide .rk-en-author-head p { margin-bottom: 0; color: #d8e8ef; }
  #rk-en-guide .rk-en-author-mark { flex: 0 0 auto; padding: 11px 16px; border: 1px solid rgba(39,200,216,.45); border-radius: 999px; color: #79f1ff; font-size: .68rem; font-weight: 950; letter-spacing: .06em; }
  #rk-en-guide .rk-en-author-layout { display: grid; grid-template-columns: minmax(280px, .65fr) minmax(0, 1.35fr); }
  #rk-en-guide .rk-en-author-side { padding: clamp(28px, 5vw, 48px); border-right: 1px solid var(--rk-line); background: var(--rk-soft); text-align: center; }
  #rk-en-guide .rk-en-author-photo { width: min(210px, 75%); margin: 0 auto 22px; overflow: hidden; border: 10px solid var(--rk-white); border-radius: 50%; box-shadow: 0 18px 34px rgba(16,37,54,.13); aspect-ratio: 1; }
  #rk-en-guide .rk-en-author-photo img { width: 100%; height: 100%; object-fit: cover; }
  #rk-en-guide .rk-en-author-name { color: var(--rk-dark); font-size: 1.35rem; font-weight: 950; }
  #rk-en-guide .rk-en-author-role { margin-top: 6px; color: var(--rk-blue); font-size: .68rem; font-weight: 950; letter-spacing: .04em; line-height: 1.45; text-transform: uppercase; }
  #rk-en-guide .rk-en-author-social-label { margin-top: 26px; color: var(--rk-muted); font-size: .64rem; font-weight: 900; }
  #rk-en-guide .rk-en-author-social { display: flex; justify-content: center; gap: 10px; margin-top: 10px; }
  #rk-en-guide .rk-en-author-social a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid #c5dce5; border-radius: 50%; color: var(--rk-white); background: var(--rk-dark); text-decoration: none; }
  #rk-en-guide .rk-en-author-social a:hover,
  #rk-en-guide .rk-en-author-social a:focus-visible { color: var(--rk-white); background: var(--rk-blue); transform: translateY(-2px); }
  #rk-en-guide .rk-en-author-social svg { width: 21px; height: 21px; fill: currentColor; }
  #rk-en-guide .rk-en-author-main { min-width: 0; padding: clamp(28px, 5vw, 48px); }
  #rk-en-guide .rk-en-author-quote { margin: 0 0 25px; padding: 24px 27px 24px 62px; border: 0; border-radius: 19px; background: var(--rk-cyan-soft); }
  #rk-en-guide .rk-en-author-quote p { position: relative; margin: 0; color: var(--rk-dark); font-size: clamp(1rem, 2vw, 1.2rem); font-style: italic; font-weight: 850; line-height: 1.62; }
  #rk-en-guide .rk-en-author-quote p::before { content: "“"; position: absolute; top: -20px; left: -42px; color: var(--rk-cyan); font-size: 4rem; font-style: normal; line-height: 1; }
  #rk-en-guide .rk-en-author-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--rk-line); border-radius: 15px 15px 0 0; background: var(--rk-soft); }
  #rk-en-guide .rk-en-author-tab { padding: 13px 10px; color: var(--rk-muted); font-size: .67rem; font-weight: 950; text-align: center; cursor: pointer; }
  #rk-en-guide .rk-en-author-tab + .rk-en-author-tab { border-left: 1px solid var(--rk-line); }
  #rk-en-guide .rk-en-author-panel { display: none; min-height: 190px; padding: 24px; border: 1px solid var(--rk-line); border-top: 0; border-radius: 0 0 15px 15px; color: var(--rk-text); }
  #rk-en-guide .rk-en-author-panel p:last-child { margin-bottom: 0; }
  #rk-en-author-about:checked ~ .rk-en-author-layout .rk-en-author-panel-about,
  #rk-en-author-exp:checked ~ .rk-en-author-layout .rk-en-author-panel-exp,
  #rk-en-author-sites:checked ~ .rk-en-author-layout .rk-en-author-panel-sites { display: block; }
  #rk-en-author-about:checked ~ .rk-en-author-layout label[for="rk-en-author-about"],
  #rk-en-author-exp:checked ~ .rk-en-author-layout label[for="rk-en-author-exp"],
  #rk-en-author-sites:checked ~ .rk-en-author-layout label[for="rk-en-author-sites"] { color: var(--rk-blue); background: var(--rk-white); box-shadow: inset 0 -4px 0 var(--rk-blue); }
  #rk-en-guide .rk-en-site-links { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }
  #rk-en-guide .rk-en-site-links a { padding: 8px 12px; border: 1px solid var(--rk-line); border-radius: 999px; background: var(--rk-soft); font-size: .69rem; text-decoration: none; }

  @media (max-width: 1040px) {
    #rk-en-guide .rk-en-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-en-guide .rk-en-process-step:nth-child(2)::after { display: none; }
    #rk-en-guide .rk-en-audit-layout,
    #rk-en-guide .rk-en-author-layout { grid-template-columns: 1fr; }
    #rk-en-guide .rk-en-audit-form { border-right: 0; border-bottom: 1px solid var(--rk-line); }
    #rk-en-guide .rk-en-author-side { border-right: 0; border-bottom: 1px solid var(--rk-line); }
    #rk-en-guide .rk-en-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 760px) {
    #rk-en-guide { margin: 18px auto 45px; font-size: 16px; }
    #rk-en-guide .rk-en-shell { border-radius: 22px; }
    #rk-en-guide .rk-en-hero { padding: 32px 24px 38px; }
    #rk-en-guide .rk-en-hero-title { font-size: clamp(2rem, 12vw, 3.15rem); line-height: 1.02; }
    #rk-en-guide .rk-en-nav { gap: 7px; padding: 14px 18px; }
    #rk-en-guide .rk-en-nav a { flex: 1 1 auto; padding: 8px 10px; text-align: center; }
    #rk-en-guide .rk-en-body { padding: 26px 20px 38px; }
    #rk-en-guide .rk-en-answer,
    #rk-en-guide .rk-en-grid-2,
    #rk-en-guide .rk-en-grid-3,
    #rk-en-guide .rk-en-grid-4,
    #rk-en-guide .rk-en-concepts,
    #rk-en-guide .rk-en-factors,
    #rk-en-guide .rk-en-process,
    #rk-en-guide .rk-en-formulas,
    #rk-en-guide .rk-en-fields,
    #rk-en-guide .rk-en-metrics,
    #rk-en-guide .rk-en-steps,
    #rk-en-guide .rk-en-myths,
    #rk-en-guide .rk-en-checklist { grid-template-columns: 1fr; }
    #rk-en-guide .rk-en-field.is-full { grid-column: auto; }
    #rk-en-guide .rk-en-process-step::after { display: none !important; }
    #rk-en-guide .rk-en-metric small { min-height: 0; }
    #rk-en-guide .rk-en-bar-row { grid-template-columns: 72px minmax(0, 1fr); }
    #rk-en-guide .rk-en-bar-row strong { grid-column: 1 / -1; text-align: left; }
    #rk-en-guide .rk-en-step { padding: 22px 20px 22px 72px; }
    #rk-en-guide .rk-en-author-head { display: block; }
    #rk-en-guide .rk-en-author-mark { display: inline-flex; margin-top: 18px; }
    #rk-en-guide .rk-en-author-tabs { grid-template-columns: 1fr; }
    #rk-en-guide .rk-en-author-tab + .rk-en-author-tab { border-top: 1px solid var(--rk-line); border-left: 0; }
    #rk-en-guide .rk-en-author-quote { padding: 22px 20px 22px 54px; }

    #rk-en-guide .rk-en-table-wrap { overflow: visible; border: 0; border-radius: 0; background: transparent; }
    #rk-en-guide table,
    #rk-en-guide thead,
    #rk-en-guide tbody,
    #rk-en-guide tr,
    #rk-en-guide th,
    #rk-en-guide td { display: block; width: 100%; }
    #rk-en-guide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    #rk-en-guide tr { overflow: hidden; margin-bottom: 14px; border: 1px solid var(--rk-line); border-radius: 16px; background: var(--rk-white); box-shadow: 0 8px 20px rgba(16,37,54,.05); }
    #rk-en-guide td,
    #rk-en-guide tbody tr:nth-child(even) td { position: relative; padding: 13px 14px 13px 44%; border-bottom: 1px solid var(--rk-line); background: var(--rk-white); min-height: 48px; }
    #rk-en-guide td:last-child { border-bottom: 0; }
    #rk-en-guide td::before { content: attr(data-label); position: absolute; top: 13px; left: 14px; width: calc(40% - 18px); color: var(--rk-dark); font-size: .64rem; font-weight: 950; line-height: 1.35; }
  }

  @media (max-width: 430px) {
    #rk-en-guide .rk-en-body { padding-right: 15px; padding-left: 15px; }
    #rk-en-guide .rk-en-inline-cta,
    #rk-en-guide .rk-en-final-cta { padding: 26px 21px; }
    #rk-en-guide td,
    #rk-en-guide tbody tr:nth-child(even) td { padding-left: 14px; padding-top: 42px; }
    #rk-en-guide td::before { top: 11px; width: calc(100% - 28px); }
    #rk-en-guide .rk-en-cta-button { width: 100%; }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-en-guide *,
    #rk-en-guide *::before,
    #rk-en-guide *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  }
</style>

<article id="rk-en-guide">
  <div class="rk-en-shell">
    <div class="rk-en-progress-track" aria-hidden="true"><div class="rk-en-progress" id="rk-en-progress"></div></div>

    <header class="rk-en-hero">
      <span class="rk-en-eyebrow"><b></b> EN 1264 • moc powierzchniowa • wymiarowanie</span>
      <div class="rk-en-hero-title">Od obciążenia cieplnego pomieszczenia do sprawdzonej mocy podłogi</div>
      <p class="rk-en-hero-lead">EN 1264 nie zastępuje obliczenia strat ciepła i nie sprowadza podłogówki do jednego wzoru. Porządkujemy pięć części normy, pokazujemy prawidłową kolejność obliczeń i udostępniamy weryfikator porównujący moc wymaganą z mocą zadeklarowaną dla konkretnego systemu.</p>
      <div class="rk-en-meta">
        <span><i></i> Autor: Robert Kucharski</span>
        <span><i></i> Aktualizacja techniczna: 28 sierpnia 2026 r.</span>
        <span><i></i> EN 1264 • EN 12831 • ogrzewanie podłogowe</span>
      </div>
    </header>

    <nav class="rk-en-nav" aria-label="Na skróty">
      <a href="#rk-en-answer">Szybka odpowiedź</a>
      <a href="#rk-en-parts">Pięć części</a>
      <a href="#rk-en-chain">EN 12831 a EN 1264</a>
      <a href="#rk-en-tool">Weryfikator</a>
      <a href="#rk-en-method">Metoda</a>
      <a href="#rk-en-curve">Dane systemu</a>
      <a href="#rk-en-temperature">Temperatury</a>
      <a href="#rk-en-example">Przykład</a>
      <a href="#rk-en-hydraulics">Hydraulika</a>
      <a href="#rk-en-installation">Montaż</a>
      <a href="#rk-en-errors">Mity</a>
      <a href="#rk-en-faq">FAQ</a>
      <a href="#rk-en-author">Autor</a>
    </nav>

    <div class="rk-en-body">
      <section class="rk-en-section" id="rk-en-answer">
        <span class="rk-en-kicker">Najkrótsza poprawna odpowiedź</span>
        <h2>Co naprawdę określa norma EN 1264?</h2>
        <p class="rk-en-lead rk-en-dropcap">Seria EN 1264 opisuje wodne, wbudowane systemy ogrzewania i chłodzenia płaszczyznowego. Dla podłogówki porządkuje sposób wyznaczania mocy cieplnej, wykorzystanie charakterystyk systemu, wymiarowanie oraz wymagania instalacyjne. Nie wyznacza jednak projektowego obciążenia cieplnego budynku — ten wynik trzeba dostarczyć z osobnego obliczenia.</p>

        <div class="rk-en-answer">
          <div class="rk-en-answer-main">
            <h3>EN 12831 mówi, ile ciepła potrzebuje pomieszczenie</h3>
            <p>Wynikiem jest projektowe obciążenie cieplne wyrażone w watach. Oblicza się je dla konkretnych temperatur wewnętrznych i zewnętrznych, przegród, mostków oraz wentylacji.</p>
          </div>
          <aside class="rk-en-answer-side">
            <h3>EN 1264 sprawdza, czy powierzchnia może tę moc oddać</h3>
            <p>Do oceny potrzebne są między innymi powierzchnia aktywna, konstrukcja systemu, rozstaw, opór okładziny, temperatura czynnika i ograniczenia temperatury powierzchni.</p>
          </aside>
        </div>

        <div class="rk-en-callout is-warning"><p><strong>Norma nie jest gotowym projektem.</strong> Samo powołanie się na EN 1264 nie określa trasy rur, długości pętli, przepływów ani nastaw rozdzielacza. Te wartości muszą wynikać z obliczeń konkretnego budynku i hydrauliki instalacji.</p></div>
      </section>

      <section class="rk-en-section" id="rk-en-parts">
        <span class="rk-en-kicker">Aktualny zakres dokumentów</span>
        <h2>Pięć części EN 1264 — bez pomieszania ich funkcji</h2>
        <p class="rk-en-lead">Obecny artykuł błędnie przypisywał części 3 wymagania konstrukcyjne, a część 5 opisywał jako regulację dynamiczną. Prawidłowy podział wygląda następująco.</p>

        <div class="rk-en-table-wrap">
          <table>
            <thead><tr><th>Część</th><th>Rzeczywisty zakres</th><th>Znaczenie w praktyce</th><th>Czego nie należy jej przypisywać</th></tr></thead>
            <tbody>
              <tr><td data-label="Część"><strong>EN 1264-1</strong></td><td data-label="Rzeczywisty zakres">Definicje, symbole oraz wspólna terminologia systemów płaszczyznowych.</td><td data-label="Znaczenie w praktyce">Ujednolica oznaczenia używane w obliczeniach i dokumentacji.</td><td data-label="Czego nie należy jej przypisywać">Nie jest metodą obliczenia strat ciepła ani instrukcją montażu.</td></tr>
              <tr><td data-label="Część"><strong>EN 1264-2</strong></td><td data-label="Rzeczywisty zakres">Ogrzewanie podłogowe — wyznaczanie mocy cieplnej metodami obliczeniowymi i badaniami.</td><td data-label="Znaczenie w praktyce">Daje podstawę charakterystyk oraz krzywych wiążących system z różnicą temperatur.</td><td data-label="Czego nie należy jej przypisywać">Nie oblicza obciążenia cieplnego budynku z przegród i wentylacji.</td></tr>
              <tr><td data-label="Część"><strong>EN 1264-3</strong></td><td data-label="Rzeczywisty zakres">Wymiarowanie systemów ogrzewania i chłodzenia płaszczyznowego.</td><td data-label="Znaczenie w praktyce">Wykorzystuje wyniki części 2 i 5, krzywe charakterystyczne, ograniczenia powierzchni oraz straty ciśnienia.</td><td data-label="Czego nie należy jej przypisywać">Nie sprowadza doboru do jednej minimalnej grubości EPS.</td></tr>
              <tr><td data-label="Część"><strong>EN 1264-4</strong></td><td data-label="Rzeczywisty zakres">Instalacja wbudowanych wodnych systemów płaszczyznowych.</td><td data-label="Znaczenie w praktyce">Porządkuje wymagania wykonawcze, warstwy, przygotowanie i kontrolę instalacji.</td><td data-label="Czego nie należy jej przypisywać">Nie jest ogólną normą automatyki pogodowej.</td></tr>
              <tr><td data-label="Część"><strong>EN 1264-5</strong></td><td data-label="Rzeczywisty zakres">Moc ogrzewania ściennego i sufitowego oraz chłodzenia podłogowego, ściennego i sufitowego.</td><td data-label="Znaczenie w praktyce">Rozszerza wykorzystanie wyników części 2 na inne powierzchnie i tryb chłodzenia.</td><td data-label="Czego nie należy jej przypisywać">Nie opisuje „systemów dynamicznych” reagujących na pogodę.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Szersze omówienie struktury dokumentów znajduje się w przewodniku <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 — norma definiująca ogrzewanie podłogowe</a>. Ta strona koncentruje się na kolejności obliczeń i sprawdzaniu mocy.</p>
      </section>

      <section class="rk-en-section" id="rk-en-chain">
        <span class="rk-en-kicker">Dwa różne pytania obliczeniowe</span>
        <h2>EN 12831 a EN 1264 — od zapotrzebowania do emitera</h2>
        <p class="rk-en-lead">Najpierw trzeba ustalić moc potrzebną pomieszczeniu w warunkach projektowych. Dopiero później można sprawdzić, czy wybrany system podłogowy odda tę moc przy dopuszczalnej temperaturze powierzchni i parametrach wody.</p>

        <div class="rk-en-process" aria-label="Kolejność obliczeń ogrzewania podłogowego">
          <div class="rk-en-process-step"><b>ETAP 1 • EN 12831</b><strong>Obciążenie cieplne</strong><small>Wynik dla każdego pomieszczenia, a nie jedna średnia liczba W/m² dla domu.</small></div>
          <div class="rk-en-process-step"><b>ETAP 2 • EN 1264-2</b><strong>Moc systemu</strong><small>Charakterystyka konkretnej konstrukcji przy określonych warunkach pracy.</small></div>
          <div class="rk-en-process-step"><b>ETAP 3 • EN 1264-3</b><strong>Wymiarowanie</strong><small>Powierzchnia aktywna, temperatura, rozstaw, okładzina i ograniczenia.</small></div>
          <div class="rk-en-process-step"><b>ETAP 4 • PROJEKT</b><strong>Hydraulika i rzut</strong><small>Pętle, przepływy, opory, rozdzielacze, nastawy oraz dokumentacja wykonawcza.</small></div>
        </div>

        <div class="rk-en-formulas">
          <div class="rk-en-formula"><span>Moc wymagana na m²</span><strong>q<sub>req</sub> = Φ<sub>HL</sub> ÷ A<sub>F</sub></strong><p>Obciążenie cieplne pomieszczenia dzielimy przez rzeczywiście ogrzewaną powierzchnię, nie przez cały metraż użytkowy.</p></div>
          <div class="rk-en-formula"><span>Moc dostępna</span><strong>Φ<sub>avail</sub> = q<sub>sys</sub> × A<sub>F</sub></strong><p>Moc jednostkowa musi pochodzić z danych właściwych dla konkretnego systemu i warunków projektowych.</p></div>
          <div class="rk-en-formula"><span>Wstępne pokrycie</span><strong>C = Φ<sub>avail</sub> ÷ Φ<sub>HL</sub> × 100%</strong><p>Wartość powyżej 100% zamyka tylko porównanie mocy. Nie potwierdza jeszcze hydrauliki ani wykonania.</p></div>
        </div>

        <div class="rk-en-callout"><p><strong>Powierzchnia aktywna ma znaczenie.</strong> Stała zabudowa, wanna, brodzik, kominek lub inne wyłączone pola mogą zmniejszyć powierzchnię oddawania ciepła. Dzielenie obciążenia przez całą powierzchnię pokoju zaniża wymaganą moc jednostkową.</p></div>
      </section>

      <section class="rk-en-section" id="rk-en-tool">
        <span class="rk-en-kicker">Narzędzie edukacyjne i kontrolne</span>
        <h2>Interaktywny weryfikator obliczeń EN 1264</h2>
        <p class="rk-en-lead">Wprowadź wynik obciążenia cieplnego, powierzchnię aktywną oraz moc jednostkową odczytaną z danych konkretnego systemu dla przyjętych parametrów. Narzędzie porówna moce i wskaże brakujące etapy.</p>

        <div class="rk-en-audit" id="rk-en-verifier">
          <div class="rk-en-audit-head">
            <span class="rk-en-eyebrow"><b></b> Wymagane kontra dostępne</span>
            <h2>Sprawdź wstępne pokrycie mocy pomieszczenia</h2>
            <p>To nie jest generator mocy systemu. Wartość q<sub>sys</sub> wpisujesz z charakterystyki producenta lub wyników właściwych dla wybranej konstrukcji, rozstawu, okładziny i temperatury.</p>
          </div>

          <div class="rk-en-audit-layout">
            <form class="rk-en-audit-form" id="rk-en-form">
              <div class="rk-en-fields">
                <div class="rk-en-field">
                  <label for="rk-en-load">Obciążenie pomieszczenia Φ<sub>HL</sub> [W]</label>
                  <input id="rk-en-load" type="number" min="1" max="30000" step="10" value="800" inputmode="decimal">
                  <small>Wynik obliczenia dla pomieszczenia, najlepiej według EN 12831.</small>
                </div>
                <div class="rk-en-field">
                  <label for="rk-en-area">Powierzchnia aktywna A<sub>F</sub> [m²]</label>
                  <input id="rk-en-area" type="number" min="0.5" max="1000" step="0.1" value="12" inputmode="decimal">
                  <small>Powierzchnia, na której rzeczywiście pracuje ogrzewanie podłogowe.</small>
                </div>
                <div class="rk-en-field">
                  <label for="rk-en-qsys">Moc systemu q<sub>sys</sub> [W/m²]</label>
                  <input id="rk-en-qsys" type="number" min="1" max="300" step="1" value="72" inputmode="decimal">
                  <small>Odczyt dla konkretnego systemu oraz przyjętych parametrów projektu.</small>
                </div>
                <div class="rk-en-field">
                  <label for="rk-en-floor-r">Opór okładziny R<sub>λ,B</sub> [m²K/W]</label>
                  <input id="rk-en-floor-r" type="number" min="0" max="0.5" step="0.01" value="0.10" inputmode="decimal">
                  <small>Łącznie okładzina i warstwy leżące nad systemem, jeśli dotyczą wyniku.</small>
                </div>
              </div>

              <div class="rk-en-checks" aria-label="Kontrola danych projektowych">
                <label class="rk-en-check"><input id="rk-en-check-load" type="checkbox" checked=""><span>Mam obciążenie cieplne policzone osobno dla tego pomieszczenia.</span></label>
                <label class="rk-en-check"><input id="rk-en-check-data" type="checkbox" checked=""><span>q<sub>sys</sub> pochodzi z danych dokładnie tego systemu i wariantu podłogi.</span></label>
                <label class="rk-en-check"><input id="rk-en-check-surface" type="checkbox"><span>Sprawdzono temperaturę powierzchni w strefie użytkowej i brzegowej.</span></label>
                <label class="rk-en-check"><input id="rk-en-check-hydraulic" type="checkbox"><span>Policzono przepływ, stratę ciśnienia, długości pętli i równoważenie.</span></label>
                <label class="rk-en-check"><input id="rk-en-check-install" type="checkbox"><span>Warstwy, izolacja, dylatacje i próba szczelności mają wytyczne wykonawcze.</span></label>
              </div>
              <button class="rk-en-audit-reset" id="rk-en-reset" type="button">Przywróć przykład</button>
            </form>

            <div class="rk-en-audit-output" aria-live="polite">
              <div class="rk-en-metrics">
                <div class="rk-en-metric"><small>Wymagane q<sub>req</sub></small><strong id="rk-en-out-qreq">66,7 W/m²</strong></div>
                <div class="rk-en-metric"><small>Dostępna moc</small><strong id="rk-en-out-available">864 W</strong></div>
                <div class="rk-en-metric"><small>Różnica mocy</small><strong id="rk-en-out-diff">+64 W</strong></div>
                <div class="rk-en-metric"><small>Pokrycie wstępne</small><strong id="rk-en-out-ratio">108%</strong></div>
              </div>

              <div class="rk-en-audit-status is-warning" id="rk-en-status">
                <strong id="rk-en-status-title">Moc jest wstępnie pokryta, ale brakuje kontroli projektu</strong>
                <span id="rk-en-status-text">Porównanie nie potwierdza jeszcze temperatury powierzchni, hydrauliki ani warunków wykonania.</span>
              </div>

              <div class="rk-en-chart" role="img" aria-label="Porównanie mocy wymaganej i dostępnej">
                <div class="rk-en-chart-title">Porównanie mocy całkowitej pomieszczenia</div>
                <div class="rk-en-bar-row"><span>Wymagana</span><div class="rk-en-bar-track"><i class="rk-en-bar is-required" id="rk-en-bar-required"></i></div><strong id="rk-en-chart-required">800 W</strong></div>
                <div class="rk-en-bar-row"><span>Dostępna</span><div class="rk-en-bar-track"><i class="rk-en-bar is-available" id="rk-en-bar-available"></i></div><strong id="rk-en-chart-available">864 W</strong></div>
              </div>

              <ul class="rk-en-audit-list" id="rk-en-missing-list">
                <li>Sprawdź temperaturę powierzchni w przyjętych warunkach.</li>
                <li>Policz przepływy, straty ciśnienia oraz długości pętli.</li>
                <li>Uzupełnij wymagania wykonawcze przed montażem.</li>
              </ul>
            </div>
          </div>

          <div class="rk-en-tool-note"><strong>Zakres narzędzia:</strong> porównanie bilansu mocy oraz kontrola kompletności danych. Weryfikator nie wyznacza charakterystyki systemu, temperatury zasilania, rozstawu rur, przepływu ani zgodności całej instalacji z normą.</div>
        </div>

        <section class="rk-en-inline-cta" aria-label="Projekt ogrzewania podłogowego z obliczeniami">
          <span class="rk-en-kicker" style="color:#79f1ff">Wynik weryfikatora to dopiero punkt kontrolny</span>
          <h2>Masz bilans mocy, ale brakuje rozstawów, temperatury i hydrauliki?</h2>
          <p>Do wykonania instalacji trzeba jeszcze dobrać temperaturę zasilania i powrotu, rozstawy, podział na pętle, przepływy, opory oraz nastawy rozdzielacza. Wszystkie te wartości powinny wynikać z jednego projektu, a nie z niezależnych założeń na budowie.</p>
          <a class="rk-en-cta-button rk-en-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego z obliczeniami</a>
          <small class="rk-en-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </section>
      </section>

      <section class="rk-en-section" id="rk-en-method">
        <span class="rk-en-kicker">Nie jeden wzór, lecz zestaw zależności</span>
        <h2>Jak wygląda prawidłowa ścieżka obliczeń?</h2>
        <p class="rk-en-lead">Moc podłogi zależy jednocześnie od konstrukcji systemu, średniej różnicy temperatur, geometrii rur, przewodzenia warstw oraz oporu okładziny. Dlatego przypadkowe dzielenie różnicy temperatur przez sumę oporów całej podłogi nie odtwarza metody EN 1264.</p>

        <div class="rk-en-myth">
          <b>STARY BŁĘDNY PRZYKŁAD</b>
          <h3>Dlaczego wynik 224 W/m² z poprzedniej wersji był niepoprawny?</h3>
          <p>Wyrażenie <strong>10 K × 20 m² ÷ 0,892 m²K/W</strong> daje około 224 W, a nie 224 W/m². Co ważniejsze, do jednego oporu dodano izolację pod rurami, wylewkę i okładzinę, jak gdyby ciepło przepływało przez wszystkie te warstwy w jednym kierunku. W systemie podłogowym występują osobne strumienie w górę i w dół, a moc użytkową wyznacza się z charakterystyki właściwej dla konstrukcji.</p>
        </div>

        <div class="rk-en-steps" style="margin-top:24px">
          <div class="rk-en-step"><h3>Policz obciążenie pomieszczeń</h3><p>Wyznacz Φ<sub>HL</sub> dla każdego pomieszczenia przy projektowych temperaturach. Średni wskaźnik dla całego domu nie wystarcza do doboru poszczególnych pól grzewczych.</p></div>
          <div class="rk-en-step"><h3>Określ powierzchnię aktywną</h3><p>Odejmij pola trwale wyłączone zgodnie z założeniami projektu. Wymagana moc jednostkowa rośnie, gdy ta sama moc ma zostać oddana z mniejszej powierzchni.</p></div>
          <div class="rk-en-step"><h3>Wybierz konstrukcję systemu</h3><p>Ustal średnicę i położenie rury, rozstaw, rodzaj jastrychu lub płyt, warstwy przewodzące oraz sposób izolowania od dołu.</p></div>
          <div class="rk-en-step"><h3>Ustal opór okładziny</h3><p>Uwzględnij nie tylko panel, drewno albo płytkę, lecz również podkład, klej i inne warstwy znajdujące się nad systemem grzewczym.</p></div>
          <div class="rk-en-step"><h3>Odczytaj charakterystykę mocy</h3><p>Korzystaj z danych odpowiadających wybranej konstrukcji i warunkom. Wyniku jednego systemu nie wolno przenosić na inny panel, rurę lub grubość warstw.</p></div>
          <div class="rk-en-step"><h3>Dobierz temperaturę pracy</h3><p>Znajdź parametry zasilania i powrotu, które zapewniają wymaganą moc bez przekroczenia ograniczeń temperatury powierzchni.</p></div>
          <div class="rk-en-step"><h3>Policz przepływy i opory</h3><p>Wyznacz przepływ z mocy i projektowej różnicy temperatur, a następnie sprawdź stratę ciśnienia pętli wraz z rozdzielaczem i armaturą.</p></div>
          <div class="rk-en-step"><h3>Przenieś wyniki na rzut</h3><p>Dopiero teraz ustal liczbę pętli, ich przebieg, długości, dobiegi, strefy brzegowe, przejścia przez dylatacje i nastawy wykonawcze.</p></div>
        </div>
      </section>

      <section class="rk-en-section" id="rk-en-curve">
        <span class="rk-en-kicker">Charakterystyka dotyczy konkretnego układu</span>
        <h2>Skąd wziąć moc q<sub>sys</sub> do obliczeń?</h2>
        <p class="rk-en-lead">Moc jednostkowa nie jest stałą właściwością „rury 16 mm”. Powinna pochodzić z charakterystyki cieplnej systemu wyznaczonej dla określonego układu warstw i warunków. W dokumentacji producenta może występować jako tabela, nomogram lub krzywa.</p>

        <div class="rk-en-concepts">
          <div class="rk-en-concept"><b>Δθ</b><h3>Różnica temperatur</h3><p>Zmiana temperatury czynnika względem pomieszczenia przesuwa punkt pracy na charakterystyce, ale nie można analizować jej bez temperatury powierzchni.</p></div>
          <div class="rk-en-concept"><b>T</b><h3>Rozstaw rur</h3><p>Wpływa na moc i równomierność temperatury powierzchni. Norma nie ustanawia jednego obowiązkowego rozstawu dla każdego salonu lub łazienki.</p></div>
          <div class="rk-en-concept"><b>R</b><h3>Opór okładziny</h3><p>Większy opór ogranicza strumień do pomieszczenia i może wymagać innego rozstawu albo temperatury pracy.</p></div>
          <div class="rk-en-concept"><b>s<sub>u</sub></b><h3>Warstwa nad rurą</h3><p>Materiał i grubość warstwy przewodzącej zmieniają rozkład temperatury oraz odpowiedź cieplną powierzchni.</p></div>
          <div class="rk-en-concept"><b>D</b><h3>Średnica i położenie rury</h3><p>Geometria przewodu jest częścią systemu. Sam rodzaj tworzywa nie określa jego mocy powierzchniowej.</p></div>
          <div class="rk-en-concept"><b>A<sub>F</sub></b><h3>Powierzchnia grzejna</h3><p>Moc jednostkową mnoży się przez powierzchnię rzeczywiście aktywną, a nie automatycznie przez cały metraż pomieszczenia.</p></div>
        </div>

        <div class="rk-en-callout is-warning"><p><strong>Nie kopiuj jednej tabeli do wszystkich produktów.</strong> Wynik systemu mokrego z rurą w jastrychu nie jest automatycznie wynikiem systemu suchego z lamelą. Tak samo zmiana okładziny albo podkładu może unieważnić przyjęty punkt pracy.</p></div>
        <p>Praktyczne znaczenie rozstawu rozwijamy w artykule <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a>, a wpływ warstw w przewodniku <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina podłogowa wpływa na wydajność</a>.</p>
      </section>

      <section class="rk-en-section" id="rk-en-temperature">
        <span class="rk-en-kicker">Ograniczenie, a nie cel projektowy</span>
        <h2>Temperatura powierzchni podłogi i opór okładziny</h2>
        <p class="rk-en-lead">Wymagana moc nie może być osiągana dowolnym podnoszeniem temperatury. Wymiarowanie uwzględnia ograniczenia fizjologiczne powierzchni oraz właściwości materiału wykończeniowego.</p>

        <div class="rk-en-grid-3">
          <div class="rk-en-card"><span class="rk-en-card-number">29°C</span><h3>Strefa stałego przebywania</h3><p>Typowa wartość graniczna powierzchni przyjmowana dla strefy użytkowej. Nie należy projektować całej podłogi „na limit”, jeśli wymagana moc jest niższa.</p></div>
          <div class="rk-en-card"><span class="rk-en-card-number">33°C</span><h3>Pomieszczenia sanitarne</h3><p>Wartość wynika z wyższej projektowej temperatury wewnętrznej przy zachowaniu ograniczenia różnicy temperatur powierzchni i powietrza.</p></div>
          <div class="rk-en-card"><span class="rk-en-card-number">35°C</span><h3>Strefa brzegowa</h3><p>Podwyższona wartość może dotyczyć ograniczonego pasa przy przegrodzie zewnętrznej, a nie całej powierzchni salonu.</p></div>
        </div>

        <div class="rk-en-callout"><p><strong>Granica normowa i granica producenta podłogi to dwie kontrole.</strong> Drewno, winyl, panele, klej lub podkład mogą wymagać niższej temperatury niż dopuszczona dla samego systemu grzewczego. W projekcie obowiązuje bardziej restrykcyjne ograniczenie.</p></div>

        <div class="rk-en-table-wrap">
          <table>
            <thead><tr><th>Parametr</th><th>Co trzeba znać</th><th>Wpływ na wynik</th><th>Najczęstszy błąd</th></tr></thead>
            <tbody>
              <tr><td data-label="Parametr"><strong>Opór R<sub>λ,B</sub></strong></td><td data-label="Co trzeba znać">Wartość całego zestawu nad systemem: wykończenie, podkład, klej i warstwy pośrednie.</td><td data-label="Wpływ na wynik">Większy opór zmniejsza moc do pomieszczenia przy tych samych parametrach.</td><td data-label="Najczęstszy błąd">Uwzględnienie samego panelu bez podkładu.</td></tr>
              <tr><td data-label="Parametr"><strong>Temperatura wewnętrzna</strong></td><td data-label="Co trzeba znać">Projektowa wartość dla danego pomieszczenia.</td><td data-label="Wpływ na wynik">Zmienia różnicę temperatur napędzającą oddawanie ciepła.</td><td data-label="Najczęstszy błąd">Jedna temperatura dla salonu, łazienki i garażu.</td></tr>
              <tr><td data-label="Parametr"><strong>Temperatura powierzchni</strong></td><td data-label="Co trzeba znać">Wartość średnią i lokalną w odpowiedniej strefie.</td><td data-label="Wpływ na wynik">Ogranicza możliwą do uzyskania moc jednostkową.</td><td data-label="Najczęstszy błąd">Podnoszenie zasilania zamiast kontroli powierzchni.</td></tr>
              <tr><td data-label="Parametr"><strong>Temperatura zasilania/powrotu</strong></td><td data-label="Co trzeba znać">Obie wartości oraz projektową temperaturę pomieszczenia.</td><td data-label="Wpływ na wynik">Określa punkt pracy charakterystyki systemu.</td><td data-label="Najczęstszy błąd">Podanie tylko zasilania bez powrotu i przepływu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-en-section" id="rk-en-example">
        <span class="rk-en-kicker">Przykład kontrolny, nie pełny projekt</span>
        <h2>Jak porównać obciążenie z mocą podłogi?</h2>
        <p class="rk-en-lead">Załóżmy, że projektowe obciążenie cieplne pomieszczenia wynosi 800 W, a po odjęciu trwałej zabudowy pozostaje 12 m² powierzchni aktywnej. Dla wybranego systemu i przyjętych warunków dokumentacja podaje 72 W/m².</p>

        <div class="rk-en-formulas">
          <div class="rk-en-formula"><span>Krok 1</span><strong>800 W ÷ 12 m² = 66,7 W/m²</strong><p>Tyle musi średnio oddać aktywna powierzchnia, aby pokryć obciążenie pomieszczenia.</p></div>
          <div class="rk-en-formula"><span>Krok 2</span><strong>72 W/m² × 12 m² = 864 W</strong><p>Tyle wynosi moc dostępna przy założonym punkcie pracy charakterystyki.</p></div>
          <div class="rk-en-formula"><span>Krok 3</span><strong>864 W − 800 W = +64 W</strong><p>Bilans mocy jest wstępnie dodatni. Pozostaje kontrola powierzchni i hydrauliki.</p></div>
        </div>

        <div class="rk-en-callout is-warning"><p><strong>Czego przykład nie dowodzi:</strong> nie wyznacza temperatury zasilania, rozstawu rur ani przepływu, ponieważ moc 72 W/m² została dostarczona jako cecha konkretnego wariantu. Jeśli zmieni się okładzina, rozstaw lub konstrukcja, porównanie trzeba wykonać ponownie.</p></div>
      </section>

      <section class="rk-en-section" id="rk-en-hydraulics">
        <span class="rk-en-kicker">Moc bez przepływu pozostaje wartością na papierze</span>
        <h2>Przepływ, ΔT i strata ciśnienia</h2>
        <p class="rk-en-lead">Po stronie cieplnej wiadomo, ile watów ma dostarczyć obieg. Po stronie hydraulicznej trzeba zapewnić transport tej mocy przy możliwym do uzyskania przepływie i oporze.</p>

        <div class="rk-en-grid-3">
          <div class="rk-en-card"><span class="rk-en-card-number">01</span><h3>Przepływ z mocy i ΔT</h3><p>Wymagany strumień czynnika zależy od mocy przypisanej do pętli oraz przyjętego spadku temperatury między zasilaniem i powrotem.</p></div>
          <div class="rk-en-card"><span class="rk-en-card-number">02</span><h3>Opór konkretnego obiegu</h3><p>Strata ciśnienia wynika z długości i średnicy rury, przepływu, właściwości czynnika, rozdzielacza oraz elementów miejscowych.</p></div>
          <div class="rk-en-card"><span class="rk-en-card-number">03</span><h3>Równoważenie</h3><p>Nastawy ograniczają przepływ łatwiejszych pętli tak, aby obiegi krytyczne również otrzymały obliczeniową ilość wody.</p></div>
        </div>

        <div class="rk-en-callout is-danger"><p><strong>EN 1264 nie ustanawia uniwersalnego limitu 100 m dla każdej rury 16 × 2 mm.</strong> Długość jest wynikiem dopuszczalnego oporu, przepływu, prędkości i charakterystyki pompy. W praktyce przyjmuje się ograniczenia projektowe, ale trzeba je zweryfikować hydraulicznie.</p></div>
        <p>Rozwinięcie problemu znajduje się w artykule <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>. Planowanie podziału pól opisuje przewodnik <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak rozmieścić pętle grzewcze</a>.</p>
      </section>

      <section class="rk-en-section" id="rk-en-installation">
        <span class="rk-en-kicker">Od wyniku obliczeń do wykonania</span>
        <h2>Co część EN 1264-4 zmienia na budowie?</h2>
        <p class="rk-en-lead">Wymiarowanie nie kończy się na tabeli mocy. Dokumentacja musi wskazać warstwy, izolację, przebieg rur, dylatacje, próbę szczelności i warunki uruchomienia, aby wynik cieplny dało się odtworzyć w rzeczywistej podłodze.</p>

        <div class="rk-en-table-wrap">
          <table>
            <thead><tr><th>Obszar</th><th>Co powinno być ustalone</th><th>Dlaczego wpływa na efekt</th></tr></thead>
            <tbody>
              <tr><td data-label="Obszar"><strong>Izolacja pod systemem</strong></td><td data-label="Co powinno być ustalone">Opór cieplny odpowiedni do sytuacji przegrody, a nie uniwersalna grubość jednego EPS.</td><td data-label="Dlaczego wpływa na efekt">Ogranicza niepożądany strumień w dół i współtworzy bilans całej podłogi.</td></tr>
              <tr><td data-label="Obszar"><strong>Dylatacje i taśma brzegowa</strong></td><td data-label="Co powinno być ustalone">Podział pól, oddzielenie jastrychu i sposób ochrony rur w przejściach.</td><td data-label="Dlaczego wpływa na efekt">Pozwala podłodze pracować bez przypadkowego przenoszenia naprężeń.</td></tr>
              <tr><td data-label="Obszar"><strong>Mocowanie i otulina rury</strong></td><td data-label="Co powinno być ustalone">Rozstaw uchwytów, promienie gięcia, położenie i przykrycie zgodne z systemem.</td><td data-label="Dlaczego wpływa na efekt">Zmiana geometrii względem obliczeń zmienia temperaturę powierzchni i moc.</td></tr>
              <tr><td data-label="Obszar"><strong>Próba szczelności</strong></td><td data-label="Co powinno być ustalone">Procedura, medium, ciśnienie, czas, warunki i protokół według właściwej dokumentacji.</td><td data-label="Dlaczego wpływa na efekt">Weryfikuje instalację przed zakryciem rur warstwami podłogi.</td></tr>
              <tr><td data-label="Obszar"><strong>Rozruch jastrychu</strong></td><td data-label="Co powinno być ustalone">Program funkcjonalnego ogrzewania oraz osobne wymagania dotyczące gotowości do układania okładziny.</td><td data-label="Dlaczego wpływa na efekt">Rozruch instalacji nie zastępuje pomiaru wilgotności podłoża.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-en-section" id="rk-en-errors">
        <span class="rk-en-kicker">Najczęstsze skróty prowadzące do błędów</span>
        <h2>Mity o obliczeniach według EN 1264</h2>
        <div class="rk-en-myths">
          <div class="rk-en-myth"><b>MIT 01</b><h3>EN 1264 oblicza straty ciepła domu</h3><p>Nie. Obciążenie cieplne pomieszczeń pochodzi z osobnego obliczenia, którego metodę opisuje EN 12831-1.</p></div>
          <div class="rk-en-myth"><b>MIT 02</b><h3>Wystarczy Q = ΔT × A ÷ R</h3><p>Ten skrót nie odtwarza charakterystyki wbudowanego systemu i może mieszać opory warstw pracujących w różnych kierunkach.</p></div>
          <div class="rk-en-myth"><b>MIT 03</b><h3>Norma nakazuje rozstaw 10 cm</h3><p>Rozstaw jest jednym z parametrów konstrukcji. Dobiera się go z wymaganej mocy, charakterystyki systemu i ograniczeń powierzchni.</p></div>
          <div class="rk-en-myth"><b>MIT 04</b><h3>Każda pętla 16 mm może mieć 100 m</h3><p>O możliwości pracy decyduje przepływ i strata ciśnienia całej drogi hydraulicznej, nie sama długość przewodu.</p></div>
          <div class="rk-en-myth"><b>MIT 05</b><h3>30 mm EPS zawsze spełnia normę</h3><p>Wymagany opór izolacji zależy od sytuacji cieplnej przegrody. Sama nazwa i grubość materiału nie wystarczają.</p></div>
          <div class="rk-en-myth"><b>MIT 06</b><h3>29°C to temperatura docelowa każdej podłogi</h3><p>To ograniczenie dla określonej strefy, a nie obowiązkowy punkt pracy. Poprawnie dobrana podłoga może pracować chłodniej.</p></div>
          <div class="rk-en-myth"><b>MIT 07</b><h3>Część 5 opisuje sterowanie pogodowe</h3><p>Część 5 dotyczy wyznaczania mocy innych powierzchni grzewczych oraz powierzchni chłodzących.</p></div>
          <div class="rk-en-myth"><b>MIT 08</b><h3>Zgodność z normą gwarantuje oszczędność 25%</h3><p>Zużycie energii zależy od budynku, źródła, parametrów wody, regulacji i użytkowania. Norma nie obiecuje jednego procentu oszczędności.</p></div>
        </div>
      </section>

      <section class="rk-en-section" id="rk-en-checklist">
        <span class="rk-en-kicker">Dokumenty przed ułożeniem rur</span>
        <h2>Checklista kompletnego wymiarowania</h2>
        <ul class="rk-en-checklist">
          <li>Obciążenie cieplne jest podane osobno dla każdego pomieszczenia.</li>
          <li>Znana jest rzeczywiście ogrzewana powierzchnia każdego pola.</li>
          <li>Wybrano konkretną konstrukcję mokrą albo suchą.</li>
          <li>Znany jest łączny opór cieplny okładziny i podkładu.</li>
          <li>Moc pochodzi z danych właściwych dla wybranego systemu.</li>
          <li>Sprawdzono temperaturę powierzchni i ograniczenia okładziny.</li>
          <li>Ustalono temperaturę zasilania, powrotu i projektowe ΔT.</li>
          <li>Policzono przepływ i stratę ciśnienia każdej pętli.</li>
          <li>Rozrysowano podział na obwody, dobiegi i strefy brzegowe.</li>
          <li>Wyznaczono rozdzielacze, nastawy i krytyczną drogę hydrauliczną.</li>
          <li>Warstwy izolacji oraz dylatacje mają wytyczne wykonawcze.</li>
          <li>Zaplanowano próbę szczelności, rozruch i dokumentację powykonawczą.</li>
        </ul>
      </section>

      <section class="rk-en-section" id="rk-en-faq">
        <span class="rk-en-kicker">Najczęściej wyszukiwane pytania</span>
        <h2>Norma EN 1264 i obliczenia podłogówki — FAQ</h2>
        <div class="rk-en-faq">
          <details><summary>Czy EN 1264 służy do obliczania strat ciepła budynku?</summary><div class="rk-en-faq-answer"><p>Nie. Projektowe obciążenie cieplne pomieszczeń i budynku wyznacza się osobno, zasadniczo według EN 12831-1. EN 1264 wykorzystuje ten wynik podczas sprawdzania i wymiarowania systemu płaszczyznowego.</p></div></details>
          <details><summary>Co obejmuje EN 1264-2?</summary><div class="rk-en-faq-answer"><p>Część 2 dotyczy ogrzewania podłogowego i metod wyznaczania jego mocy cieplnej za pomocą obliczeń oraz badań. Wynikiem są między innymi charakterystyki zależne od konstrukcji systemu i różnicy temperatur.</p></div></details>
          <details><summary>Co obejmuje EN 1264-3?</summary><div class="rk-en-faq-answer"><p>Część 3 dotyczy wymiarowania wodnych systemów ogrzewania i chłodzenia płaszczyznowego. Wykorzystuje wyniki części 2 i 5, uwzględnia ograniczenia powierzchni oraz zagadnienia potrzebne do praktycznego doboru.</p></div></details>
          <details><summary>Czy EN 1264 podaje jeden obowiązkowy rozstaw rur?</summary><div class="rk-en-faq-answer"><p>Nie. Rozstaw jest parametrem konkretnej konstrukcji i powinien wynikać z wymaganej mocy, oporu okładziny, temperatury pracy, charakterystyki systemu oraz kontroli równomierności powierzchni.</p></div></details>
          <details><summary>Jaka jest maksymalna temperatura podłogi według EN 1264?</summary><div class="rk-en-faq-answer"><p>W projektowaniu stosuje się różne ograniczenia zależne od strefy. Dla strefy stałego przebywania typową wartością graniczną jest 29°C, dla pomieszczeń sanitarnych 33°C, a dla ograniczonej strefy brzegowej 35°C. Materiał podłogowy może wymagać niższej temperatury.</p></div></details>
          <details><summary>Czy opór okładziny może wynosić więcej niż 0,15 m²K/W?</summary><div class="rk-en-faq-answer"><p>Wartość 0,15 m²K/W jest powszechnie stosowaną górną wartością obliczeniową dla wykończenia w metodzie wymiarowania. Większy opór wymaga indywidualnego sprawdzenia systemu, a dokumentacja producenta podłogi może wprowadzać ostrzejsze ograniczenie.</p></div></details>
          <details><summary>Czy pętla rury 16 × 2 mm może mieć zawsze 100 metrów?</summary><div class="rk-en-faq-answer"><p>Nie. Sto metrów jest popularnym ograniczeniem praktycznym, a nie uniwersalnym nakazem EN 1264. Dopuszczalną długość trzeba sprawdzić z przepływu, prędkości, straty ciśnienia, armatury i dostępnego sprężu pompy.</p></div></details>
          <details><summary>Czy samo pokrycie mocy oznacza zgodność instalacji z EN 1264?</summary><div class="rk-en-faq-answer"><p>Nie. Dodatni bilans mocy jest tylko jednym warunkiem. Trzeba jeszcze sprawdzić temperaturę powierzchni, parametry czynnika, przepływy, opory hydrauliczne, konstrukcję warstw oraz wymagania montażowe.</p></div></details>
          <details><summary>Czy część EN 1264-5 opisuje regulację pogodową?</summary><div class="rk-en-faq-answer"><p>Nie. EN 1264-5 dotyczy wyznaczania mocy ogrzewania ściennego i sufitowego oraz chłodzenia podłogowego, ściennego i sufitowego. Sterowanie pogodowe jest odrębnym zagadnieniem automatyki instalacji.</p></div></details>
          <details><summary>Jakie dane powinny znaleźć się w projekcie ogrzewania podłogowego?</summary><div class="rk-en-faq-answer"><p>Projekt powinien zawierać obciążenie cieplne pomieszczeń, powierzchnie aktywne, parametry wody, rozstawy, podział i długości pętli, przepływy, opory, nastawy, lokalizację rozdzielaczy oraz wytyczne dotyczące warstw, dylatacji i próby szczelności.</p></div></details>
        </div>
      </section>

      <section class="rk-en-section" id="rk-en-sources">
        <span class="rk-en-kicker">Źródła pierwotne i zakres norm</span>
        <h2>Podstawa techniczna opracowania</h2>
        <p>Zakres części normy zweryfikowano na podstawie oficjalnych kart katalogowych: <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-definitions-and-symbols-1" target="_blank" rel="noopener nofollow">EN 1264-1 — definicje i symbole</a>, <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-floor-heating-methods-for-the-determination-of-the-thermal-output-using-calculations-and-experimental-tests" target="_blank" rel="noopener nofollow">EN 1264-2 — wyznaczanie mocy ogrzewania podłogowego</a>, <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1" target="_blank" rel="noopener nofollow">EN 1264-3 — wymiarowanie</a>, <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="noopener nofollow">EN 1264-4 — instalacja</a> oraz <a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-determination-of-the-thermal-output-for-wall-and-ceiling-heating-and-for-floor-wall-and-ceiling-cooling" target="_blank" rel="noopener nofollow">EN 1264-5 — pozostałe powierzchnie i chłodzenie</a>.</p>
        <p>Zakres obliczenia projektowego obciążenia cieplnego pomieszczeń i budynków opisuje <a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="noopener nofollow">EN 12831-1</a>. Przykład zastosowania krzywych granicznych 29°C, 33°C i 35°C oraz wariantów oporu okładziny pokazuje <a href="https://www.uponor.com/getmedia/04a9120d-b7d8-4001-82c5-9662aa1a1e56/nubos-technical-information-052014-english?sitename=UponorInternational" target="_blank" rel="noopener nofollow">dokumentacja techniczna Uponor Nubos</a>. Artykuł objaśnia zależności projektowe, ale nie publikuje zastępczych tabel normowych i nie zastępuje dostępu do pełnej treści dokumentów.</p>
        <div class="rk-en-sources"><p><strong>Ostatnia aktualizacja merytoryczna: 28 sierpnia 2026 r.</strong></p></div>
      </section>

      <section class="rk-en-author" id="rk-en-author" aria-label="Autor opracowania">
        <input type="radio" name="rk-en-author-tabs" id="rk-en-author-about" checked="">
        <input type="radio" name="rk-en-author-tabs" id="rk-en-author-exp">
        <input type="radio" name="rk-en-author-tabs" id="rk-en-author-sites">

        <header class="rk-en-author-head">
          <div><span class="rk-en-kicker">Autor opracowania</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
          <span class="rk-en-author-mark">EN 1264 • HVAC</span>
        </header>

        <div class="rk-en-author-layout">
          <aside class="rk-en-author-side">
            <div class="rk-en-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-en-author-name">Robert Kucharski</div>
            <div class="rk-en-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-en-author-social-label">Znajdziesz mnie również:</div>
            <div class="rk-en-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
            </div>
          </aside>

          <div class="rk-en-author-main">
            <blockquote class="rk-en-author-quote"><p>Norma porządkuje metodę, ale nie podejmuje decyzji za projektanta. Dopiero połączenie obciążenia pomieszczeń, charakterystyki podłogi i hydrauliki daje parametry, które można bezpiecznie przenieść na budowę.</p></blockquote>

            <div class="rk-en-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-en-author-tab" for="rk-en-author-about">O autorze</label>
              <label class="rk-en-author-tab" for="rk-en-author-exp">Doświadczenie</label>
              <label class="rk-en-author-tab" for="rk-en-author-sites">Portale</label>
            </div>

            <div class="rk-en-author-panel rk-en-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe na podstawie danych konkretnego budynku. Łączę obliczenia cieplne z doborem temperatury, rozstawów, powierzchni grzejnych oraz kontrolą warstw wykończeniowych.</p></div>
            <div class="rk-en-author-panel rk-en-author-panel-exp"><p>Dokumentacja wykonawcza obejmuje podział na pętle, długości obwodów, przepływy, opory, nastawy, rozdzielacze i parametry pracy. Dzięki temu instalator otrzymuje mierzalne dane zamiast uniwersalnych założeń typu „10 cm wszędzie”.</p></div>
            <div class="rk-en-author-panel rk-en-author-panel-sites">
              <p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p>
              <div class="rk-en-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-en-final-cta" aria-label="Indywidualny projekt ogrzewania podłogowego">
        <span class="rk-en-kicker" style="color:#79f1ff">Od normy do gotowej dokumentacji</span>
        <h2>Otrzymaj projekt z mocą, temperaturą, pętlami i nastawami</h2>
        <p>Projekt łączy obciążenie cieplne pomieszczeń z charakterystyką podłogi, parametrami wody i hydrauliką całej instalacji. Otrzymujesz rzut pętli, rozstawy, długości obiegów, przepływy, opory, nastawy rozdzielaczy oraz wytyczne wykonawcze.</p>
        <a class="rk-en-cta-button rk-en-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
        <small class="rk-en-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </section>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#article",
      "url": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/",
      "headline": "Norma EN 1264 w obliczeniach ogrzewania podłogowego – moc, temperatura i wymiarowanie",
      "description": "Techniczny przewodnik po EN 1264, relacji z EN 12831, wyznaczaniu wymaganej mocy powierzchniowej, charakterystykach systemu, temperaturze podłogi i hydraulice.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-28",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#webpage"},
      "about": [
        {"@type": "Thing", "name": "EN 1264"},
        {"@type": "Thing", "name": "Obliczenia ogrzewania podłogowego"},
        {"@type": "Thing", "name": "Moc cieplna ogrzewania podłogowego"},
        {"@type": "Thing", "name": "Wymiarowanie ogrzewania płaszczyznowego"}
      ],
      "mentions": [
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#application"},
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#faq"}
      ],
      "citation": [
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-definitions-and-symbols-1",
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-floor-heating-methods-for-the-determination-of-the-thermal-output-using-calculations-and-experimental-tests",
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-dimensioning-1",
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1",
        "https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-determination-of-the-thermal-output-for-wall-and-ceiling-heating-and-for-floor-wall-and-ceiling-cooling",
        "https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3",
        "https://www.uponor.com/getmedia/04a9120d-b7d8-4001-82c5-9662aa1a1e56/nubos-technical-information-052014-english?sitename=UponorInternational"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#webpage",
      "url": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/",
      "name": "Norma EN 1264 w obliczeniach ogrzewania podłogowego",
      "description": "Sprawdź, co oblicza EN 1264, jak łączy się z EN 12831 i porównaj wymaganą moc pomieszczenia z mocą wybranego systemu podłogowego.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-28",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#article"},
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#application"},
        {"@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt-Ogrzewania.pl",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Norma EN 1264 w obliczeniach ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#application",
      "name": "Interaktywny weryfikator obliczeń EN 1264",
      "url": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#rk-en-tool",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC calculation verification",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie porównuje obciążenie cieplne pomieszczenia z mocą zadeklarowaną dla wybranego systemu i wskazuje brakujące etapy projektu.",
      "featureList": [
        "Obliczenie wymaganej mocy jednostkowej",
        "Obliczenie dostępnej mocy całkowitej",
        "Porównanie mocy na dynamicznym wykresie",
        "Kontrola oporu cieplnego okładziny",
        "Lista brakujących danych projektowych"
      ],
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "provider": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#howto",
      "name": "Jak przeprowadzić wymiarowanie ogrzewania podłogowego",
      "description": "Kolejność od obciążenia cieplnego pomieszczeń do dokumentacji pętli i nastaw.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Policz obciążenie pomieszczeń", "text": "Wyznacz ΦHL dla każdego pomieszczenia przy projektowych temperaturach. Średni wskaźnik dla całego domu nie wystarcza do doboru poszczególnych pól grzewczych."},
        {"@type": "HowToStep", "position": 2, "name": "Określ powierzchnię aktywną", "text": "Odejmij pola trwale wyłączone zgodnie z założeniami projektu. Wymagana moc jednostkowa rośnie, gdy ta sama moc ma zostać oddana z mniejszej powierzchni."},
        {"@type": "HowToStep", "position": 3, "name": "Wybierz konstrukcję systemu", "text": "Ustal średnicę i położenie rury, rozstaw, rodzaj jastrychu lub płyt, warstwy przewodzące oraz sposób izolowania od dołu."},
        {"@type": "HowToStep", "position": 4, "name": "Ustal opór okładziny", "text": "Uwzględnij nie tylko panel, drewno albo płytkę, lecz również podkład, klej i inne warstwy znajdujące się nad systemem grzewczym."},
        {"@type": "HowToStep", "position": 5, "name": "Odczytaj charakterystykę mocy", "text": "Korzystaj z danych odpowiadających wybranej konstrukcji i warunkom. Wyniku jednego systemu nie wolno przenosić na inny panel, rurę lub grubość warstw."},
        {"@type": "HowToStep", "position": 6, "name": "Dobierz temperaturę pracy", "text": "Znajdź parametry zasilania i powrotu, które zapewniają wymaganą moc bez przekroczenia ograniczeń temperatury powierzchni."},
        {"@type": "HowToStep", "position": 7, "name": "Policz przepływy i opory", "text": "Wyznacz przepływ z mocy i projektowej różnicy temperatur, a następnie sprawdź stratę ciśnienia pętli wraz z rozdzielaczem i armaturą."},
        {"@type": "HowToStep", "position": 8, "name": "Przenieś wyniki na rzut", "text": "Dopiero teraz ustal liczbę pętli, ich przebieg, długości, dobiegi, strefy brzegowe, przejścia przez dylatacje i nastawy wykonawcze."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy EN 1264 służy do obliczania strat ciepła budynku?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Projektowe obciążenie cieplne pomieszczeń i budynku wyznacza się osobno, zasadniczo według EN 12831-1. EN 1264 wykorzystuje ten wynik podczas sprawdzania i wymiarowania systemu płaszczyznowego."}
        },
        {
          "@type": "Question",
          "name": "Co obejmuje EN 1264-2?",
          "acceptedAnswer": {"@type": "Answer", "text": "Część 2 dotyczy ogrzewania podłogowego i metod wyznaczania jego mocy cieplnej za pomocą obliczeń oraz badań. Wynikiem są między innymi charakterystyki zależne od konstrukcji systemu i różnicy temperatur."}
        },
        {
          "@type": "Question",
          "name": "Co obejmuje EN 1264-3?",
          "acceptedAnswer": {"@type": "Answer", "text": "Część 3 dotyczy wymiarowania wodnych systemów ogrzewania i chłodzenia płaszczyznowego. Wykorzystuje wyniki części 2 i 5, uwzględnia ograniczenia powierzchni oraz zagadnienia potrzebne do praktycznego doboru."}
        },
        {
          "@type": "Question",
          "name": "Czy EN 1264 podaje jeden obowiązkowy rozstaw rur?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Rozstaw jest parametrem konkretnej konstrukcji i powinien wynikać z wymaganej mocy, oporu okładziny, temperatury pracy, charakterystyki systemu oraz kontroli równomierności powierzchni."}
        },
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna temperatura podłogi według EN 1264?",
          "acceptedAnswer": {"@type": "Answer", "text": "W projektowaniu stosuje się różne ograniczenia zależne od strefy. Dla strefy stałego przebywania typową wartością graniczną jest 29°C, dla pomieszczeń sanitarnych 33°C, a dla ograniczonej strefy brzegowej 35°C. Materiał podłogowy może wymagać niższej temperatury."}
        },
        {
          "@type": "Question",
          "name": "Czy opór okładziny może wynosić więcej niż 0,15 m²K/W?",
          "acceptedAnswer": {"@type": "Answer", "text": "Wartość 0,15 m²K/W jest powszechnie stosowaną górną wartością obliczeniową dla wykończenia w metodzie wymiarowania. Większy opór wymaga indywidualnego sprawdzenia systemu, a dokumentacja producenta podłogi może wprowadzać ostrzejsze ograniczenie."}
        },
        {
          "@type": "Question",
          "name": "Czy pętla rury 16 × 2 mm może mieć zawsze 100 metrów?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Sto metrów jest popularnym ograniczeniem praktycznym, a nie uniwersalnym nakazem EN 1264. Dopuszczalną długość trzeba sprawdzić z przepływu, prędkości, straty ciśnienia, armatury i dostępnego sprężu pompy."}
        },
        {
          "@type": "Question",
          "name": "Czy samo pokrycie mocy oznacza zgodność instalacji z EN 1264?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Dodatni bilans mocy jest tylko jednym warunkiem. Trzeba jeszcze sprawdzić temperaturę powierzchni, parametry czynnika, przepływy, opory hydrauliczne, konstrukcję warstw oraz wymagania montażowe."}
        },
        {
          "@type": "Question",
          "name": "Czy część EN 1264-5 opisuje regulację pogodową?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. EN 1264-5 dotyczy wyznaczania mocy ogrzewania ściennego i sufitowego oraz chłodzenia podłogowego, ściennego i sufitowego. Sterowanie pogodowe jest odrębnym zagadnieniem automatyki instalacji."}
        },
        {
          "@type": "Question",
          "name": "Jakie dane powinny znaleźć się w projekcie ogrzewania podłogowego?",
          "acceptedAnswer": {"@type": "Answer", "text": "Projekt powinien zawierać obciążenie cieplne pomieszczeń, powierzchnie aktywne, parametry wody, rozstawy, podział i długości pętli, przepływy, opory, nastawy, lokalizację rozdzielaczy oraz wytyczne dotyczące warstw, dylatacji i próby szczelności."}
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Projektant wodnego ogrzewania podłogowego, autor opracowań technicznych i właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl oraz Sobir.pl.",
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ],
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-en-guide");
  if (!root) { return; }

  var form = document.getElementById("rk-en-form");
  var loadInput = document.getElementById("rk-en-load");
  var areaInput = document.getElementById("rk-en-area");
  var qsysInput = document.getElementById("rk-en-qsys");
  var floorRInput = document.getElementById("rk-en-floor-r");
  var checkLoad = document.getElementById("rk-en-check-load");
  var checkData = document.getElementById("rk-en-check-data");
  var checkSurface = document.getElementById("rk-en-check-surface");
  var checkHydraulic = document.getElementById("rk-en-check-hydraulic");
  var checkInstall = document.getElementById("rk-en-check-install");
  var resetButton = document.getElementById("rk-en-reset");

  var outQreq = document.getElementById("rk-en-out-qreq");
  var outAvailable = document.getElementById("rk-en-out-available");
  var outDiff = document.getElementById("rk-en-out-diff");
  var outRatio = document.getElementById("rk-en-out-ratio");
  var status = document.getElementById("rk-en-status");
  var statusTitle = document.getElementById("rk-en-status-title");
  var statusText = document.getElementById("rk-en-status-text");
  var barRequired = document.getElementById("rk-en-bar-required");
  var barAvailable = document.getElementById("rk-en-bar-available");
  var chartRequired = document.getElementById("rk-en-chart-required");
  var chartAvailable = document.getElementById("rk-en-chart-available");
  var missingList = document.getElementById("rk-en-missing-list");
  var progress = document.getElementById("rk-en-progress");

  function numberFrom(input) {
    if (!input) { return 0; }
    var normalized = String(input.value).replace(",", ".");
    var value = Number(normalized);
    if (!Number.isFinite(value)) { return 0; }
    return value;
  }

  function format(value, digits) {
    return new Intl.NumberFormat("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    }).format(value);
  }

  function checked(input) {
    if (!input) { return false; }
    return input.checked;
  }

  function setMissing(items) {
    if (!missingList) { return; }
    missingList.innerHTML = "";
    items.forEach(function (text) {
      var item = document.createElement("li");
      item.textContent = text;
      missingList.appendChild(item);
    });
  }

  function update() {
    var heatLoad = numberFrom(loadInput);
    var area = numberFrom(areaInput);
    var qsys = numberFrom(qsysInput);
    var floorR = numberFrom(floorRInput);
    var valid = true;

    if (heatLoad <= 0) { valid = false; }
    if (area <= 0) { valid = false; }
    if (qsys <= 0) { valid = false; }

    var qreq = 0;
    var available = 0;
    var diff = 0;
    var ratio = 0;

    if (valid) {
      qreq = heatLoad / area;
      available = qsys * area;
      diff = available - heatLoad;
      ratio = available / heatLoad * 100;
    }

    if (outQreq) { outQreq.textContent = valid ? format(qreq, 1) + " W/m²" : "—"; }
    if (outAvailable) { outAvailable.textContent = valid ? format(available, 0) + " W" : "—"; }
    if (outDiff) {
      if (valid) {
        var sign = diff > 0 ? "+" : "";
        outDiff.textContent = sign + format(diff, 0) + " W";
      } else {
        outDiff.textContent = "—";
      }
    }
    if (outRatio) { outRatio.textContent = valid ? format(ratio, 0) + "%" : "—"; }
    if (chartRequired) { chartRequired.textContent = valid ? format(heatLoad, 0) + " W" : "—"; }
    if (chartAvailable) { chartAvailable.textContent = valid ? format(available, 0) + " W" : "—"; }

    var scale = Math.max(heatLoad, available, 1);
    var requiredWidth = valid ? heatLoad / scale * 100 : 0;
    var availableWidth = valid ? available / scale * 100 : 0;
    if (barRequired) { barRequired.style.width = Math.min(100, requiredWidth) + "%"; }
    if (barAvailable) { barAvailable.style.width = Math.min(100, availableWidth) + "%"; }

    var missing = [];
    if (!checked(checkLoad)) { missing.push("Uzupełnij obciążenie cieplne policzone osobno dla pomieszczenia."); }
    if (!checked(checkData)) { missing.push("Potwierdź, że moc qsys dotyczy dokładnie wybranego systemu i wariantu podłogi."); }
    if (floorR > 0.15) { missing.push("Opór okładziny przekracza 0,15 m²K/W — potrzebne jest indywidualne potwierdzenie mocy i dopuszczenia materiału."); }
    if (!checked(checkSurface)) { missing.push("Sprawdź temperaturę powierzchni w strefie użytkowej, sanitarnej albo brzegowej."); }
    if (!checked(checkHydraulic)) { missing.push("Policz przepływy, długości pętli, straty ciśnienia i równoważenie hydrauliczne."); }
    if (!checked(checkInstall)) { missing.push("Uzupełnij warstwy, izolację, dylatacje, próbę szczelności i wytyczne wykonawcze."); }
    if (valid) {
      if (available < heatLoad) { missing.unshift("Moc dostępna jest niższa od obciążenia pomieszczenia — zmień wariant systemu albo założenia projektu."); }
    }

    status.className = "rk-en-audit-status";

    if (!valid) {
      status.classList.add("is-danger");
      statusTitle.textContent = "Wprowadź dodatnie wartości wejściowe";
      statusText.textContent = "Do porównania potrzebne są obciążenie cieplne, powierzchnia aktywna i moc jednostkowa systemu.";
      missing.unshift("Popraw brakujące lub nieprawidłowe wartości liczbowe.");
    } else if (available < heatLoad) {
      status.classList.add("is-danger");
      statusTitle.textContent = "Wybrany wariant nie pokrywa obciążenia pomieszczenia";
      statusText.textContent = "Brakuje " + format(Math.abs(diff), 0) + " W. Nie kompensuj tego automatycznie podniesieniem temperatury bez kontroli powierzchni i okładziny.";
    } else if (floorR > 0.15) {
      status.classList.add("is-warning");
      statusTitle.textContent = "Bilans mocy jest dodatni, ale opór okładziny wymaga osobnego potwierdzenia";
      statusText.textContent = "Wpisana moc systemu musi już uwzględniać ten opór oraz ograniczenia producenta wykończenia podłogi.";
    } else if (missing.length > 0) {
      status.classList.add("is-warning");
      statusTitle.textContent = "Moc jest wstępnie pokryta, ale projekt nie jest kompletny";
      statusText.textContent = "Dostępna moc przewyższa obciążenie o " + format(Math.max(0, diff), 0) + " W. Uzupełnij kontrole wskazane poniżej.";
    } else {
      statusTitle.textContent = "Wstępny bilans i lista kontrolna są domknięte";
      statusText.textContent = "Dostępna moc przewyższa obciążenie o " + format(Math.max(0, diff), 0) + " W. Wynik nadal wymaga przeniesienia na obliczenia i dokumentację konkretnej instalacji.";
      missing.push("Wynik jest gotowy do weryfikacji w pełnym projekcie pętli, przepływów i nastaw.");
    }

    setMissing(missing);
  }

  function resetExample() {
    loadInput.value = "800";
    areaInput.value = "12";
    qsysInput.value = "72";
    floorRInput.value = "0.10";
    checkLoad.checked = true;
    checkData.checked = true;
    checkSurface.checked = false;
    checkHydraulic.checked = false;
    checkInstall.checked = false;
    update();
  }

  [loadInput, areaInput, qsysInput, floorRInput].forEach(function (input) {
    if (input) { input.addEventListener("input", update); }
  });

  [checkLoad, checkData, checkSurface, checkHydraulic, checkInstall].forEach(function (input) {
    if (input) { input.addEventListener("change", update); }
  });

  if (resetButton) { resetButton.addEventListener("click", resetExample); }
  if (form) {
    form.addEventListener("submit", function (event) {
      event.preventDefault();
      update();
    });
  }

  function updateProgress() {
    if (!progress) { return; }
    var documentHeight = document.documentElement.scrollHeight - window.innerHeight;
    var percent = 0;
    if (documentHeight > 0) { percent = window.scrollY / documentHeight * 100; }
    progress.style.width = Math.max(0, Math.min(100, percent)) + "%";
  }

  window.addEventListener("scroll", updateProgress, {passive: true});
  window.addEventListener("resize", updateProgress);

  var faqItems = root.querySelectorAll(".rk-en-faq details");
  faqItems.forEach(function (item) {
    item.addEventListener("toggle", function () {
      if (!item.open) { return; }
      faqItems.forEach(function (other) {
        if (other !== item) { other.open = false; }
      });
    });
  });

  update();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma obliczeń ogrzewania podłogowego EN 1264.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
