<?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 Systemy niskotemperaturowe - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/systemy-niskotemperaturowe/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/systemy-niskotemperaturowe/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Wed, 13 May 2026 17:51:40 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Systemy niskotemperaturowe - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/systemy-niskotemperaturowe/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ile trwa montaż ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 17 May 2025 12:45:04 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Remont]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[czas montażu podłogówki]]></category>
		<category><![CDATA[ile trwa montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[jak długo schnie jastrych]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[ogrzewanie wodne]]></category>
		<category><![CDATA[podłogówka bez wylewki]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[system mokry]]></category>
		<category><![CDATA[system suchy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2611</guid>

					<description><![CDATA[<p>Ile trwa montaż ogrzewania podłogowego? To pytanie zadaje sobie każdy, kto planuje modernizację lub budowę domu z komfortowym systemem grzewczym. Czas realizacji zależy od wielu czynników – powierzchni, systemu (mokrego lub suchego), etapu budowy i jakości projektu. W tym artykule przedstawiamy realistyczne scenariusze, praktyczne przykłady i sposoby na skrócenie czasu prac bez utraty jakości.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><em>Czas realizacji instalacji grzewczej</em> to jeden z kluczowych czynników, który wpływa na decyzję inwestora. Wśród różnych systemów coraz większą popularność zyskuje <strong>wodne ogrzewanie podłogowe</strong>, które zapewnia komfort cieplny i równomierny rozkład temperatury. Ale <strong>ile trwa montaż ogrzewania podłogowego</strong>? Odpowiedź nie jest jednoznaczna, bo zależy od wielu czynników – rodzaju systemu, powierzchni, etapu budowy czy doświadczenia wykonawcy. W tym artykule analizujemy realny czas potrzebny na wykonanie instalacji oraz wskazujemy, co może ten proces przyspieszyć lub opóźnić.</p>



<h2 class="wp-block-heading">Etapy montażu ogrzewania podłogowego – co wpływa na czas realizacji?</h2>



<p>Aby zrozumieć, <em>ile trwa montaż podłogówki</em>, warto najpierw przyjrzeć się poszczególnym etapom prac:</p>



<h3 class="wp-block-heading">1. Przygotowanie podłoża.</h3>



<p>To etap niezbędny, zwłaszcza przy montażu na gruncie lub na nierównym stropie. Obejmuje:</p>



<ul class="wp-block-list">
<li>wyrównanie powierzchni,</li>



<li>ułożenie folii i izolacji termicznej (np. <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">płyta styropianowa EPS 100</a>),</li>



<li>montaż taśmy brzegowej i dylatacyjnej.</li>
</ul>



<p>⏱️ <strong>Czas trwania:</strong> 1 dzień przy sprawnym zespole.</p>



<h3 class="wp-block-heading">2. Układanie rur grzewczych.</h3>



<p>Ten etap wymaga największej precyzji. W zależności od systemu, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> układa się w pętle spiralne (ślimak) lub meandryczne. Średnio układa się od 80 do 120 metrów rury dziennie na osobę.</p>



<p>⏱️ <strong>Czas trwania:</strong> 1–2 dni dla 100 m² powierzchni.</p>



<h3 class="wp-block-heading">3. Test szczelności (próba ciśnieniowa)</h3>



<p>To obowiązkowy etap przed zalaniem instalacji wylewką. Instalacja jest napełniana wodą i przez minimum 24 godziny utrzymywana pod ciśnieniem 6 barów.</p>



<p>⏱️ <strong>Czas trwania:</strong> 1 dzień (najczęściej równolegle z innymi pracami).</p>



<p>📌 Zobacz więcej: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">Próba szczelności ogrzewania podłogowego</a></p>



<h3 class="wp-block-heading">4. Wylewka cementowa lub anhydrytowa</h3>



<p>W przypadku systemu mokrego to kluczowy moment. Na rurach wylewana jest warstwa 5–7 cm jastrychu.</p>



<p>⏱️ <strong>Czas montażu:</strong> 1 dzień, ale <strong>czas schnięcia</strong> to kolejne 21–28 dni (beton) lub 7–14 dni (anhydryt).</p>



<p>📖 Szczegóły: <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka na ogrzewanie podłogowe – kompletny przewodnik</a></p>



<h2 class="wp-block-heading">System suchy a czas montażu – krótszy nawet o połowę.</h2>



<p>Jeśli zależy Ci na czasie, warto rozważyć <strong>system suchy</strong>. Rury układa się w gotowych płytach styropianowych lub kasetach aluminiowych, bez konieczności wylewania jastrychu.</p>



<h3 class="wp-block-heading"><strong>Zalety pod względem czasu:</strong></h3>



<ul class="wp-block-list">
<li>brak czasu schnięcia wylewki,</li>



<li>łatwy montaż bez ciężkiego sprzętu,</li>



<li>możliwość natychmiastowego ułożenia podłogi.</li>
</ul>



<p>⏱️ <strong>Czas montażu systemu suchego:</strong> 2–3 dni dla powierzchni 100 m².</p>



<p>📖 Porównanie systemów: <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">System mokry czy suchy – który wybrać?</a></p>



<h2 class="wp-block-heading">O co pytają inwestorzy zanim zdecydują się na montaż?</h2>



<p>Jeśli jesteś na etapie planowania ogrzewania podłogowego, to pewnie głowa pęka Ci od pytań. „Ile to w ogóle trwa?” – pytasz. „Czy da się to zrobić w jeden weekend, czy raczej czeka mnie miesiąc czekania aż wylewka wyschnie?”. A co jeśli masz dom 120 m², a wykonawca mówi, że będzie „szybko”? No właśnie – co to znaczy „szybko”? I czy w ogóle można zrobić podłogówkę bez projektu?</p>



<p>To są normalne pytania – miał je praktycznie każdy, kto robił taką instalację. Dlatego zebraliśmy wszystko w tym artykule, żebyś nie musiał szukać odpowiedzi po dziesięciu forach i grupach na Facebooku.</p>



<h2 class="wp-block-heading">Od czego jeszcze zależy czas montażu?</h2>



<p>🔹 <strong>Wielkość i podział pomieszczeń</strong> – duże, otwarte przestrzenie układa się szybciej niż wiele małych pokoi.</p>



<p>🔹 <strong>Doświadczenie wykonawcy</strong> – profesjonalna ekipa skróci montaż nawet o 30%.</p>



<p>🔹 <strong>Obecność projektu instalacji</strong> – gotowy projekt (np. <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt instalacji ogrzewania podłogowego</a>) zawiera rozkład rur, ilość pętli, dobór rozdzielacza i moc źródła ciepła. Dzięki temu nie trzeba nic improwizować – prace są szybsze i dokładniejsze.</p>



<h2 class="wp-block-heading">Ile więc trwa montaż ogrzewania podłogowego w praktyce?</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Etap prac</th><th>System mokry</th><th>System suchy</th></tr><tr><td>Przygotowanie podłoża</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td>Układanie rur</td><td>1–2 dni</td><td>1–2 dni</td></tr><tr><td>Test szczelności</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td>Wylewka i schnięcie</td><td>7–28 dni</td><td>brak</td></tr><tr><td>Układanie posadzki</td><td>1 dzień</td><td>1 dzień</td></tr><tr><td><strong>Łącznie aktywne prace</strong></td><td><strong>4–5 dni</strong></td><td><strong>3–4 dni</strong></td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Przykłady z życia – ile trwało naprawdę?</h2>



<p>🔧 <strong>Dom 120 m², system mokry, 4 osoby w ekipie:</strong></p>



<ul class="wp-block-list">
<li>Przygotowanie + układanie rur: 2 dni</li>



<li>Próba szczelności + wylewka: 1 dzień</li>



<li>Schnięcie jastrychu: 21 dni</li>



<li><strong>Łącznie:</strong> 24 dni (z przerwą)</li>
</ul>



<p>🔧 <strong>Mieszkanie 80 m², system suchy, 2 osoby:</strong></p>



<ul class="wp-block-list">
<li>Całość prac wykonana w 3 dni robocze</li>
</ul>



<h2 class="wp-block-heading">Projekt to podstawa – jak skrócić czas montażu i uniknąć poprawek?</h2>



<p>Zamawiając <strong>projekt ogrzewania podłogowego</strong>, zyskujesz:</p>



<ul class="wp-block-list">
<li>gotowe rozstawy rur (np. 10, 15 lub 20 cm),</li>



<li>obliczone długości pętli i średnice rur,</li>



<li>schemat rozdzielacza,</li>



<li>dobór izolacji, sterowania i źródła ciepła.</li>
</ul>



<p>Dzięki temu cały proces przebiega szybciej, a wykonawca działa pewnie i bez błędów. Co więcej, mając projekt, łatwiej uzyskać ofertę na materiały oraz porównać kilku wykonawców.</p>



<p>📍 <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów profesjonalny projekt ogrzewania podłogowego</a></p>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania i odpowiedzi:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1747485043112"><strong class="schema-faq-question"><strong>Czy można zamontować ogrzewanie podłogowe bez projektu?</strong></strong> <p class="schema-faq-answer">Tak, ale wiąże się to z większym ryzykiem błędów, nierównomiernym ogrzewaniem i trudnościami w doborze materiałów.</p> </div> <div class="schema-faq-section" id="faq-question-1747485052584"><strong class="schema-faq-question"><strong>Ile dni potrzeba na montaż podłogówki w jednym pomieszczeniu?</strong></strong> <p class="schema-faq-answer">Zazwyczaj 1–2 dni, w zależności od przygotowania podłoża i doświadczenia ekipy.</p> </div> <div class="schema-faq-section" id="faq-question-1747485067672"><strong class="schema-faq-question"><strong>Jak długo trzeba czekać na wyschnięcie wylewki w systemie mokrym?</strong></strong> <p class="schema-faq-answer">W przypadku betonu od 21 do 28 dni, dla anhydrytu 7–14 dni – przy odpowiedniej wentylacji.</p> </div> <div class="schema-faq-section" id="faq-question-1747485076156"><strong class="schema-faq-question"><strong>Czy system suchy naprawdę skraca czas montażu?</strong></strong> <p class="schema-faq-answer">Tak, nie wymaga wylewki ani schnięcia – cały proces można zamknąć w 2–3 dniach dla 100 m².</p> </div> <div class="schema-faq-section" id="faq-question-1747485092532"><strong class="schema-faq-question"><strong>Co może opóźnić prace montażowe?</strong></strong> <p class="schema-faq-answer">Brak projektu, niedoświadczona ekipa, niska temperatura otoczenia (w przypadku wylewek), a także zły dobór materiałów.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Ile trwa montaż ogrzewania podłogowego?</h2>



<p><strong>System mokry</strong> to standard, ale wymaga czasu na schnięcie – łącznie nawet 3–4 tygodnie. <strong>System suchy</strong> pozwala zakończyć prace w kilka dni. Jeśli masz dobry projekt, sprawdzoną ekipę i odpowiednie materiały – montaż instalacji podłogowej może być szybki, precyzyjny i bezstresowy.</p>



<p>Pamiętaj – liczy się nie tylko czas wykonania, ale też <em>dokładność</em>, która przełoży się na komfort cieplny przez kolejne lata.</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="GtBzHACote"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=S7tiiC9CbY#?secret=GtBzHACote" data-secret="GtBzHACote" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">Ile trwa montaż ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projektowanie ogrzewania podłogowego w domach pasywnych.</title>
		<link>https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 13:06:27 +0000</pubDate>
				<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologiczne rozwiązania grzewcze]]></category>
		<category><![CDATA[Izolacja termiczna]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Odnawialne źródła energii]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[domy pasywne]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[ekologia]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[niskotemperaturowe ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZE]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2350</guid>

					<description><![CDATA[<p>Projektowanie ogrzewania podłogowego w domach pasywnych to wyzwanie, które wymaga precyzji i wiedzy technicznej. Domy pasywne, charakteryzujące się minimalnym zużyciem energii, potrzebują systemów grzewczych doskonale zintegrowanych z ich konstrukcją. W artykule omawiamy specyfikę takich instalacji, najlepsze praktyki oraz pokazujemy, jak połączyć komfort cieplny z ekologią. Dowiesz się, jak dobrać optymalny rozstaw rur, wybrać materiały o niskiej bezwładności cieplnej oraz zintegrować ogrzewanie z odnawialnymi źródłami energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-accent: #0ea5e9;
    --rk-intro-passive: #10b981; /* Zielony dla pasywnego */
    --rk-intro-standard: #f97316; /* Pomarańczowy dla standardu */
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
}

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

/* Sekcja Opisowa Wstępu */
.rk-intro-content {
    padding: 45px 45px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
}

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

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

.rk-intro-text-body a {
    color: var(--rk-intro-blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-intro-text-body a:hover {
    color: var(--rk-intro-accent);
}

.rk-intro-highlight {
    display: inline-block;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    font-size: 15px;
    margin-top: 15px;
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Symulator Suwakowy */
.rk-intro-sim {
    padding: 0 45px 45px;
}

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

/* Custom Slider */
.rk-slider-container {
    background: #f1f5f9;
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    margin-bottom: 30px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    margin-bottom: 15px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-intro-passive) 0%, #cbd5e1 50%, var(--rk-intro-standard) 100%);
    outline: none;
    transition: opacity .2s;
}

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

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

/* Wizualizacja SVG i Dane */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-house {
    width: 100%;
    max-width: 180px;
    margin: 0 auto;
    display: block;
}

.anim-heat-loss {
    transition: opacity 0.3s, transform 0.3s;
}

.anim-wall {
    transition: stroke-width 0.3s, stroke 0.3s;
}

.anim-floor-heat {
    transition: fill 0.3s;
}

/* Kafelki parametrów */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-box {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    padding: 15px 20px;
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-metric-box h4 {
    margin: 0 0 5px 0;
    font-size: 12px;
    text-transform: uppercase;
    color: #94a3b8;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.rk-metric-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin-bottom: 2px;
}

.rk-metric-unit {
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-content, .rk-intro-sim { padding: 30px 20px; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; text-align: center; }
    .rk-metrics-grid { grid-template-columns: 1fr 1fr; }
    .rk-svg-house { max-width: 150px; }
}
@media (max-width: 480px) {
    .rk-metrics-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Inżynieryjny fundament: OZC i skrajnie niskie zapotrzebowanie na energię w domu pasywnym",
    "description": "Projektowanie instalacji dla domów pasywnych (zapotrzebowanie poniżej 15 kWh/(m²·rok)) wymaga idealnego zbilansowania mocy, przepływów i zasilania. Tu nie ma miejsca na błędy.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-ozc",
    "name": "Zestawienie Zapotrzebowania Energetycznego: Standard vs Dom Pasywny",
    "description": "Porównanie skrajnych wartości projektowego obciążenia cieplnego (OZC) dla budownictwa tradycyjnego oraz standardu pasywnego poniżej 15 kWh.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne OZC",
      "ogrzewanie podłogowe dom pasywny",
      "zapotrzebowanie na energię 15 kWh",
      "temperatura czynnika grzewczego",
      "bezwładność cieplna budynku"
    ],
    "measurementTechnique": "Dynamiczna interpolacja algorytmiczna określająca zapotrzebowanie (W/m²), przepływ i temperaturę zasilania w zależności od współczynnika izolacyjności budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny (<15 kWh): Wymaga zasilania 28°C i mocy grzewczej rzędu 10 W/m².",
        "Dom Standardowy: Wymaga zasilania >35°C i mocy rzędu 40-50 W/m²."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-ozc",
    "name": "Symulator Projektowego Obciążenia Cieplnego (OZC)",
    "description": "Interaktywny suwak pozwalający obserwować w czasie rzeczywistym spadek wymaganej mocy grzewczej oraz temperatury zasilania wraz ze wzrostem izolacyjności przegród.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5 SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-intro-wrap" id="ozc-intro-app">
    
    <!-- Opis Inżynieryjny -->
    <div class="rk-intro-content">
        <h2>Od teorii do fizyki budowli: Czym różni się projekt pasywny?</h2>
        <p class="rk-intro-text-body">
            Projektowanie ogrzewania podłogowego w domach pasywnych to proces inżynieryjny polegający na precyzyjnym obliczeniu <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> dla budynku o ekstremalnie niskim zapotrzebowaniu na energię (poniżej <strong>15 kWh/(m²·rok)</strong>) oraz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">doborze parametrów instalacji hydraulicznej</a> w taki sposób, aby system pracował efektywnie przy skrajnie niskich temperaturach czynnika grzewczego. W standardzie pasywnym kluczowe jest zapewnienie stabilności termicznej przy jednoczesnym uniknięciu przegrzewania pomieszczeń, co wymaga uwzględnienia <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności cieplnej przegród</a> oraz <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">integracji z systemem wentylacji mechanicznej z odzyskiem ciepła</a>.
        </p>
        <div class="rk-intro-highlight">
            Tu nie ma miejsca na &#8222;dobór na oko&#8221; – liczy się każdy wat mocy i litr przepływu.
        </div>
    </div>

    <!-- Symulator OZC -->
    <div class="rk-intro-sim">
        <div class="rk-sim-header">
            <h3>Symulacja OZC: Wpływ izolacji na podłogówkę</h3>
        </div>

        <div class="rk-slider-container">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-intro-passive);">Dom Pasywny</span>
                <span>Energooszczędny</span>
                <span style="color: var(--rk-intro-standard);">Standard (WT2021)</span>
            </div>
            <!-- Suwak: od 1 (Pasywny) do 100 (Standard) -->
            <input type="range" min="1" max="100" value="1" class="rk-range-input" id="ozc-slider" aria-label="Wybierz standard energetyczny budynku">
        </div>

        <div class="rk-sim-dashboard">
            <!-- Animowana grafika domku -->
            <div class="rk-svg-display">
                <svg class="rk-svg-house" viewBox="0 0 200 200">
                    <!-- Fale uciekającego ciepła (animowane opacity) -->
                    <g id="heat-loss-waves" stroke="var(--rk-intro-standard)" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.1">
                        <path d="M 30 70 Q 20 40 40 10" />
                        <path d="M 170 70 Q 180 40 160 10" />
                        <path d="M 100 30 Q 110 10 90 -10" />
                    </g>
                    <!-- Dach i Ściany -->
                    <path class="anim-wall" id="house-walls" d="M 40 160 L 40 90 L 100 40 L 160 90 L 160 160 Z" fill="none" stroke="#64748b" stroke-width="12" stroke-linejoin="round" />
                    <!-- Podłoga (Wylewka) -->
                    <rect x="25" y="160" width="150" height="20" fill="#cbd5e1" rx="2" />
                    <!-- Rury podłogówki -->
                    <g id="floor-pipes" fill="var(--rk-intro-passive)">
                        <circle cx="50" cy="170" r="5" />
                        <circle cx="80" cy="170" r="5" />
                        <circle cx="110" cy="170" r="5" />
                        <circle cx="140" cy="170" r="5" />
                    </g>
                    <!-- Centralna ikona temperatury -->
                    <text x="100" y="125" text-anchor="middle" font-size="28" font-weight="900" fill="var(--rk-intro-dark)" font-family="sans-serif">20°C</text>
                </svg>
            </div>

            <!-- Dynamiczne parametry OZC -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-box">
                    <h4>Zapotrzebowanie EUco</h4>
                    <div class="rk-metric-value" id="val-euco" style="color: var(--rk-intro-passive);">15</div>
                    <div class="rk-metric-unit">kWh/(m²·rok)</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Moc z podłogi (q)</h4>
                    <div class="rk-metric-value" id="val-q">10</div>
                    <div class="rk-metric-unit">W/m²</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Max Temp. Zasilania</h4>
                    <div class="rk-metric-value" id="val-temp" style="color: var(--rk-intro-passive);">28°C</div>
                    <div class="rk-metric-unit">przy mrozie -20°C</div>
                </div>
                <div class="rk-metric-box">
                    <h4>Praca Pompy Ciepła</h4>
                    <div class="rk-metric-value" id="val-cop" style="color: var(--rk-intro-passive);">COP Maksymalne</div>
                    <div class="rk-metric-unit">Stabilność układu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('ozc-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #1e293b; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 15px;">⚠️</div>
                    <div style="font-size: 18px; font-weight: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane Użycie Kodu</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Ten kalkulator OZC oraz struktura Schema.org stanowią własność portalu Projekt-Ogrzewania.pl. 
                        Skrypt zablokował renderowanie na obcej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka (Interpolacja OZC)
    const slider = document.getElementById('ozc-slider');
    
    // Elementy UI
    const valEuco = document.getElementById('val-euco');
    const valQ = document.getElementById('val-q');
    const valTemp = document.getElementById('val-temp');
    const valCop = document.getElementById('val-cop');
    
    // Elementy SVG
    const heatLossWaves = document.getElementById('heat-loss-waves');
    const houseWalls = document.getElementById('house-walls');
    const floorPipes = document.getElementById('floor-pipes');

    // Kolory do płynnego przejścia
    const colorPassive = [16, 185, 129]; // #10b981
    const colorStandard = [249, 115, 22]; // #f97316

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = (slider.value - 1) / 99; // 0 (Pasywny) do 1 (Standard)

        // Obliczenia wartości
        const euco = Math.round(15 + factor * (65 - 15)); // od 15 do 65 kWh
        const q = Math.round(10 + factor * (45 - 10)); // od 10 do 45 W/m2
        const tempZasilania = Math.round(28 + factor * (38 - 28)); // od 28 do 38 C
        
        // Kolor stanu
        const currentColor = interpolateColor(colorPassive, colorStandard, factor);

        // Aktualizacja HTML
        valEuco.textContent = euco;
        valEuco.style.color = currentColor;
        
        valQ.textContent = q;
        valQ.style.color = currentColor;
        
        valTemp.textContent = tempZasilania + '°C';
        valTemp.style.color = currentColor;

        if (factor < 0.33) {
            valCop.textContent = "COP Maksymalne";
            valCop.style.color = "var(--rk-intro-passive)";
        } else if (factor < 0.66) {
            valCop.textContent = "COP Standardowe";
            valCop.style.color = "#64748b";
        } else {
            valCop.textContent = "Ryzyko Spadku COP";
            valCop.style.color = "var(--rk-intro-standard)";
        }

        // Animacja SVG
        // Grubosć ścian maleje im gorszy standard (więcej strat)
        const wallThickness = 14 - (factor * 8); // od 14px do 6px
        houseWalls.style.strokeWidth = wallThickness;
        houseWalls.style.stroke = factor < 0.5 ? '#64748b' : '#94a3b8';

        // Intensywność fal uciekającego ciepła rośnie
        heatLossWaves.style.opacity = 0.1 + (factor * 0.9); // od 0.1 do 1.0

        // Kolor rur podłogówki robi się coraz "gorętszy"
        floorPipes.setAttribute('fill', currentColor);
    }

    // Nasłuchiwanie zdarzeń
    slider.addEventListener('input', updateSimulation);
    
    // Inicjalizacja
    updateSimulation();
});
</script>



<style>
:root {
    --rk-pwr-dark: #1e293b;
    --rk-pwr-blue: #0284c7;
    --rk-pwr-blue-light: #f0f9ff;
    --rk-pwr-green: #10b981;
    --rk-pwr-green-bg: #ecfdf5;
    --rk-pwr-red: #ef4444;
    --rk-pwr-red-bg: #fef2f2;
    --rk-pwr-gray: #64748b;
    --rk-pwr-border: #e2e8f0;
    --rk-pwr-bg: #ffffff;
}

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

/* Sekcja Treści */
.rk-pwr-content {
    padding: 40px 40px 25px;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-pwr-border);
}

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

.rk-pwr-text {
    font-size: 16px;
    line-height: 1.7;
    color: #475569;
    margin: 0 0 15px 0;
}

.rk-pwr-text a {
    color: var(--rk-pwr-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-pwr-text a:hover {
    background: var(--rk-pwr-blue-light);
    border-color: var(--rk-pwr-blue);
}

/* Interfejs Symulatora */
.rk-pwr-interactive {
    padding: 30px 40px 40px;
}

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

/* Slider / Suwak */
.rk-pwr-slider-box {
    background: #f8fafc;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-pwr-border);
    margin-bottom: 35px;
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
}

.rk-slider-input {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(90deg, var(--rk-pwr-green) 0%, #cbd5e1 50%, var(--rk-pwr-red) 100%);
    outline: none;
}

.rk-slider-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-pwr-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

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

/* Wyświetlacz: SVG + Kafelki */
.rk-pwr-dashboard {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-pwr-svg-wrap {
    text-align: center;
}

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

.anim-heat-wave {
    fill: none;
    stroke-width: 5;
    stroke-linecap: round;
    transition: stroke 0.3s, transform 0.3s;
}

/* Kafelki parametrów */
.rk-pwr-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-pwr-card {
    background: #ffffff;
    border: 1px solid var(--rk-pwr-border);
    padding: 20px;
    border-radius: 14px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    transition: all 0.3s;
}

.rk-pwr-card h4 {
    margin: 0 0 8px 0;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--rk-pwr-gray);
    letter-spacing: 0.5px;
}

.rk-pwr-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-pwr-dark);
    line-height: 1.1;
    margin-bottom: 4px;
}

.rk-pwr-unit {
    font-size: 13px;
    color: #94a3b8;
    font-weight: 600;
}

.status-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-top: 10px;
}

.badge-ok { background: var(--rk-pwr-green-bg); color: var(--rk-pwr-green); border: 1px solid #a7f3d0; }
.badge-warn { background: var(--rk-pwr-red-bg); color: var(--rk-pwr-red); border: 1px solid #fecaca; }

@media (max-width: 768px) {
    .rk-pwr-content, .rk-pwr-interactive { padding: 25px; }
    .rk-pwr-dashboard { grid-template-columns: 1fr; gap: 20px; }
    .rk-pwr-svg-wrap { margin-bottom: 10px; }
    .rk-svg-heat { max-width: 140px; }
}

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

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-moc-grzewcza",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Maksymalna moc grzewcza ogrzewania podłogowego w domu pasywnym",
    "description": "Zrozumienie różnicy w mocy grzewczej między budownictwem tradycyjnym (60-80 W/m2) a pasywnym (10-20 W/m2). Wpływ na temperaturę podłogi według PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-moc",
    "name": "Zestawienie Mocy Grzewczej: Dom Pasywny vs Tradycyjny",
    "description": "Porównanie parametrów obciążenia cieplnego dla salonu 35 m2 w zależności od standardu izolacji budynku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna moc grzewcza podłogówki",
      "obciążenie cieplne W/m2",
      "temperatura powierzchni podłogi 29°C",
      "przegrzewanie domu pasywnego",
      "norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczna estymacja mocy i temperatury podłogi w oparciu o wytyczne norm PN-EN 12831 (obliczanie strat) oraz PN-EN 1264 (parametry podłogówki).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom Pasywny: Zapotrzebowanie ~10-20 W/m2, moc całkowita salonu 35m2 ~400W, temperatura podłogi 24-25°C.",
        "Budownictwo Tradycyjne: Zapotrzebowanie ~60-80 W/m2, ryzyko przekroczenia normatywnych 29°C w domach wysoce izolowanych przy błędnym projekcie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-moc",
    "name": "Symulator Przegrzewania Podłogi",
    "description": "Aplikacja internetowa wizualizująca ryzyko przegrzania pomieszczenia pasywnego w przypadku zastosowania mocy grzewczej właściwej dla starego budownictwa.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pwr-container" id="pwr-sim-app">
    
    <div class="rk-pwr-content">
        <h2>Jaka jest maksymalna moc grzewcza w domu pasywnym?</h2>
        <p class="rk-pwr-text">
            Moc grzewcza w domu pasywnym nie powinna przekraczać <strong>10–20 W/m²</strong> przy parametrach obliczeniowych dla danej strefy klimatycznej, zgodnie z <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normą PN-EN 12831</a>. W tradycyjnym budownictwie wartości te sięgają 60–80 W/m², co w standardzie pasywnym doprowadziłoby do natychmiastowego przegrzania i dyskomfortu.
        </p>
        <p class="rk-pwr-text">
            W domach pasywnych <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia strat ciepła</a> muszą być wykonane z dokładnością do 1 W. Przykładowo, dla salonu o powierzchni 35 m² projektowe obciążenie cieplne wynosi zaledwie 350–450 W. Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, musimy tak dobrać rozstaw i temperaturę, aby nie przekroczyć granicy 29°C. Prawidłowo zaprojektowana <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalna temperatura podłogi</a> w domu pasywnym rzadko przekracza jednak 24–25°C.
        </p>
    </div>

    <div class="rk-pwr-interactive">
        <h3>Symulator Salonu 35 m²: Ryzyko Przegrzania</h3>
        
        <div class="rk-pwr-slider-box">
            <div class="rk-slider-labels">
                <span style="color: var(--rk-pwr-green);">Dom Pasywny</span>
                <span style="color: var(--rk-pwr-red);">Stare Budownictwo</span>
            </div>
            <input type="range" min="1" max="100" value="10" class="rk-slider-input" id="rk-pwr-slider" aria-label="Symulacja obciążenia cieplnego budynku">
        </div>

        <div class="rk-pwr-dashboard">
            <!-- Animacja SVG -->
            <div class="rk-pwr-svg-wrap">
                <svg class="rk-svg-heat" viewBox="0 0 200 200">
                    <!-- Fale promieniowania -->
                    <g id="heat-waves" stroke="var(--rk-pwr-green)">
                        <path class="anim-heat-wave" id="wave1" d="M 50 140 Q 60 90 50 40" />
                        <path class="anim-heat-wave" id="wave2" d="M 100 140 Q 110 90 100 40" />
                        <path class="anim-heat-wave" id="wave3" d="M 150 140 Q 160 90 150 40" />
                    </g>
                    <!-- Przekrój podłogi -->
                    <rect x="20" y="160" width="160" height="24" fill="#cbd5e1" rx="4" />
                    <!-- Rury grzewcze -->
                    <g id="floor-pipes" fill="var(--rk-pwr-green)">
                        <circle cx="50" cy="172" r="6" />
                        <circle cx="83" cy="172" r="6" />
                        <circle cx="116" cy="172" r="6" />
                        <circle cx="150" cy="172" r="6" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych -->
            <div class="rk-pwr-metrics">
                <div class="rk-pwr-card">
                    <h4>Moc z 1 m² (q)</h4>
                    <div class="rk-pwr-value" id="val-wm2">12</div>
                    <div class="rk-pwr-unit">W/m²</div>
                    <div class="status-badge badge-ok" id="badge-wm2">Zgodnie z normą</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Moc Całkowita Salonu</h4>
                    <div class="rk-pwr-value" id="val-total">420</div>
                    <div class="rk-pwr-unit">Watów (W)</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Temp. Powierzchni</h4>
                    <div class="rk-pwr-value" id="val-temp">24.5</div>
                    <div class="rk-pwr-unit">°C</div>
                    <div class="status-badge badge-ok" id="badge-temp">Komfortowa</div>
                </div>
                <div class="rk-pwr-card">
                    <h4>Zasilanie Pętli</h4>
                    <div class="rk-pwr-value" id="val-supply">30</div>
                    <div class="rk-pwr-unit">°C</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H2/H3
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pwr-sim-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #1e293b; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: bold; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano</div>
                    <div style="color: #cbd5e1; font-size: 13px; line-height: 1.5;">
                        Kod kalkulatora mocy grzewczej oraz dane ustrukturyzowane Schema.org są chronione. Uruchamianie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Suwaka
    const slider = document.getElementById('rk-pwr-slider');
    
    // Elementy DOM
    const valWm2 = document.getElementById('val-wm2');
    const valTotal = document.getElementById('val-total');
    const valTemp = document.getElementById('val-temp');
    const valSupply = document.getElementById('val-supply');
    
    const badgeWm2 = document.getElementById('badge-wm2');
    const badgeTemp = document.getElementById('badge-temp');
    
    // SVG
    const heatWaves = document.getElementById('heat-waves');
    const floorPipes = document.getElementById('floor-pipes');
    const wavePaths = document.querySelectorAll('.anim-heat-wave');

    const AREA = 35; // Powierzchnia salonu stała = 35 m2

    function interpolateColor(color1, color2, factor) {
        let result = color1.slice();
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(result[i] + factor * (color2[i] - color1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    const rgbGreen = [16, 185, 129]; // #10b981
    const rgbRed = [239, 68, 68];    // #ef4444

    function updateSim() {
        const factor = (slider.value - 1) / 99; // 0.0 to 1.0

        // Obliczenia
        const powerPerSqm = Math.round(10 + factor * (80 - 10)); // 10 do 80 W/m2
        const totalPower = powerPerSqm * AREA;
        const surfaceTemp = (24 + factor * (33 - 24)).toFixed(1); // 24.0 do 33.0 °C
        const supplyTemp = Math.round(28 + factor * (45 - 28)); // 28 do 45 °C

        const currentColor = interpolateColor(rgbGreen, rgbRed, factor);

        // Aktualizacja Wartości
        valWm2.textContent = powerPerSqm;
        valWm2.style.color = currentColor;
        
        valTotal.textContent = totalPower;
        
        valTemp.textContent = surfaceTemp;
        valTemp.style.color = currentColor;
        
        valSupply.textContent = supplyTemp;

        // Logika Odznak (Badges)
        if (powerPerSqm <= 20) {
            badgeWm2.className = 'status-badge badge-ok';
            badgeWm2.textContent = 'Standard Pasywny';
        } else {
            badgeWm2.className = 'status-badge badge-warn';
            badgeWm2.textContent = 'Straty Tradycyjne';
        }

        if (surfaceTemp <= 29) {
            badgeTemp.className = 'status-badge badge-ok';
            badgeTemp.textContent = 'Norma zachowana';
        } else {
            badgeTemp.className = 'status-badge badge-warn';
            badgeTemp.textContent = 'Przegrzewanie (>29°C)';
        }

        // Animacja SVG
        heatWaves.setAttribute('stroke', currentColor);
        floorPipes.setAttribute('fill', currentColor);

        // Intensywność fal na podstawie mocy (wymuszenie ruchu)
        const waveOffset = factor * 20;
        wavePaths[0].setAttribute('d', `M 50 140 Q ${60 + waveOffset} 90 50 40`);
        wavePaths[1].setAttribute('d', `M 100 140 Q ${110 - waveOffset} 90 100 40`);
        wavePaths[2].setAttribute('d', `M 150 140 Q ${160 + waveOffset} 90 150 40`);
        
        heatWaves.style.opacity = 0.4 + (factor * 0.6); // Zwiększa widoczność ciepła
    }

    slider.addEventListener('input', updateSim);
    updateSim(); // Init
});
</script>




<style>
:root {
    --rk-therm-dark: #1e293b;
    --rk-therm-brand: #0ea5e9;
    --rk-therm-sun: #fbbf24;
    --rk-therm-heat: #ef4444;
    --rk-therm-cool: #3b82f6;
    --rk-therm-bg: #ffffff;
    --rk-therm-panel: #f8fafc;
    --rk-therm-border: #e2e8f0;
    --rk-therm-text: #475569;
}

.rk-therm-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-therm-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Sekcja Treści */
.rk-therm-content {
    padding: 45px 50px 30px;
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-therm-border);
}

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

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

.rk-therm-text a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-therm-text a:hover {
    background: #e0f2fe;
    border-color: #0284c7;
}

.rk-highlight-box {
    background: #fffbeb;
    border-left: 4px solid var(--rk-therm-sun);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
    font-size: 15px;
    color: #92400e;
    font-weight: 600;
}

/* Symulator Samoregulacji */
.rk-therm-interactive {
    padding: 40px 50px;
}

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

/* Unikalny Kontroler - Suwak Słoneczny */
.rk-sun-controller {
    background: var(--rk-therm-panel);
    border: 1px solid var(--rk-therm-border);
    padding: 25px 35px;
    border-radius: 16px;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-sun-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
}

.rk-sun-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, #cbd5e1 0%, var(--rk-therm-sun) 100%);
    outline: none;
}

.rk-sun-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-therm-sun);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(251, 191, 36, 0.4);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* Dashboard: SVG + Dane (Układ zintegrowany) */
.rk-therm-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja interaktywna SVG */
.rk-svg-stage {
    background: #ffffff;
    border-radius: 20px;
    padding: 20px;
    border: 1px solid var(--rk-therm-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.05);
    position: relative;
}

.rk-anim-sun-rays {
    transition: opacity 0.3s ease;
}

.rk-anim-therm-fill {
    transition: y 0.3s ease, height 0.3s ease, fill 0.3s ease;
}

.rk-anim-pipe {
    transition: fill 0.4s ease;
}

/* Kafelki Danych (H4) */
.rk-metrics-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    border: 1px solid var(--rk-therm-border);
    padding: 16px 24px;
    border-radius: 14px;
    transition: all 0.3s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-metric-row:hover {
    border-color: #bae6fd;
    transform: translateX(5px);
}

.rk-metric-info h4 {
    margin: 0 0 4px 0;
    font-size: 13px;
    text-transform: uppercase;
    color: var(--rk-therm-text);
    letter-spacing: 0.5px;
}

.rk-metric-info p {
    margin: 0;
    font-size: 11px;
    color: #94a3b8;
}

.rk-metric-value {
    font-size: 26px;
    font-weight: 900;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.rk-metric-value span {
    font-size: 13px;
    font-weight: 700;
    margin-left: 2px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-therm-content, .rk-therm-interactive { padding: 30px 25px; }
    .rk-therm-dashboard { grid-template-columns: 1fr; gap: 30px; }
    .rk-metric-row { padding: 15px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
    },
    "headline": "Optymalna temperatura zasilania pompy ciepła i efekt samoregulacji podłogówki",
    "description": "Dlaczego temperatura zasilania 28°C-32°C to ideał dla pomp ciepła? Poznaj efekt samoregulacji instalacji według normy ISO 10508 i wpływ pasywnych zysków ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dataset",
    "name": "Analiza Efektu Samoregulacji Ogrzewania Podłogowego",
    "description": "Zestawienie spadku mocy grzewczej podłogi w funkcji wzrostu temperatury wewnętrznej pomieszczenia wywołanej pasywnymi zyskami słonecznymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania pompy ciepła",
      "współczynnik COP pompy ciepła",
      "samoregulacja ogrzewania podłogowego",
      "pasywne zyski słoneczne dom pasywny",
      "norma ISO 10508 podłogówka"
    ],
    "measurementTechnique": "Algorytmiczna interpolacja liniowa odwzorowująca spadek gęstości strumienia cieplnego przy zmniejszającej się różnicy temperatur między podłogą a powietrzem.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan bazowy: Temp. pokoju 20.0°C, moc podłogi 100%, zasilanie 30°C.",
        "Efekt samoregulacji: Wzrost temp. pokoju do 22.0°C od słońca automatycznie dławi oddawanie ciepła przez podłogę o 30%, redukując zużycie prądu przez pompę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webapp",
    "name": "Symulator Samoregulacji Termicznej Płyty Grzewczej",
    "description": "Narzędzie interaktywne ilustrujące zjawisko fizyczne, w którym podłoga przestaje oddawać ciepło pod wpływem nasłonecznienia zewnętrznego, bez ingerencji termostatów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-therm-wrap" id="samoregulacja-app">
    
    <div class="rk-therm-content">
        <h2>Jaka temperatura zasilania jest idealna dla pompy ciepła w standardzie pasywnym?</h2>
        <p class="rk-therm-text">
            Idealna temperatura zasilania (T_z) w domu pasywnym oscyluje w granicach <strong>28°C – 32°C</strong> przy temperaturze zewnętrznej -20°C. Obniżenie temperatury zasilania o każdy 1°C zwiększa <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">współczynnik COP pompy ciepła</a> o około 2-3%, co w skali roku generuje wymierne oszczędności na rachunkach za prąd.
        </p>
        <p class="rk-therm-text">
            Projektując układ, dążymy do tzw. "grzania ciągłego" o bardzo niskiej mocy. <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">Norma EN 1264</a> oraz ISO 10508 klasyfikują takie systemy w Klasie 4 (niskotemperaturowe <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">wodne ogrzewanie podłogowe</a>). Przy zasilaniu 30°C i powrocie 25°C (spadek temperatury Delta T = 5K), średnia temperatura jastrychu wynosi zaledwie 27,5°C.
        </p>
        
        <div class="rk-highlight-box">
            Przy temperaturze docelowej w pomieszczeniu 20°C, różnica między powietrzem a podłogą to tylko 7,5K. Uruchamia to zjawisko fizycznej samoregulacji.
        </div>
        
        <p class="rk-therm-text">
            To sprawia, że system dławi się samoczynnie. Jeśli <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła od nasłonecznienia</a> podniosą temperaturę w salonie o 2°C, moc oddawana przez podłogę spadnie automatycznie o blisko <strong>30%</strong>, bez jakiejkolwiek ingerencji elektroniki sterującej!
        </p>
    </div>

    <div class="rk-therm-interactive">
        <h3>Przetestuj zjawisko: Symulator Samoregulacji</h3>
        
        <div class="rk-sun-controller">
            <div class="rk-sun-labels">
                <span style="color: #94a3b8;">Brak słońca (Zima/Noc)</span>
                <span style="color: var(--rk-therm-sun);">Duże zyski przez okna (Dzień)</span>
            </div>
            <input type="range" min="0" max="100" value="0" class="rk-sun-slider" id="rk-sun-input" aria-label="Poziom nasłonecznienia pomieszczenia">
        </div>

        <div class="rk-therm-dashboard">
            <!-- Grafika Pokoju, Słońca i Termometru -->
            <div class="rk-svg-stage">
                <svg viewBox="0 0 300 200" width="100%" height="auto">
                    <!-- Słońce (animowane) -->
                    <g id="svg-sun" opacity="0.3">
                        <circle cx="50" cy="50" r="20" fill="var(--rk-therm-sun)" />
                        <g class="rk-anim-sun-rays" id="sun-rays">
                            <line x1="50" y1="15" x2="50" y2="5" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="50" y1="85" x2="50" y2="95" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="15" y1="50" x2="5" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="85" y1="50" x2="95" y2="50" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="25" x2="18" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="75" x2="82" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="25" y1="75" x2="18" y2="82" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                            <line x1="75" y1="25" x2="82" y2="18" stroke="var(--rk-therm-sun)" stroke-width="4" stroke-linecap="round"/>
                        </g>
                    </g>
                    
                    <!-- Termometr -->
                    <rect x="220" y="30" width="20" height="120" rx="10" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="224" y="80" width="12" height="70" rx="6" fill="#ef4444" id="therm-fill" class="rk-anim-therm-fill"/>
                    <circle cx="230" cy="150" r="14" fill="#ef4444" id="therm-bulb" class="rk-anim-therm-fill"/>
                    <!-- Skala -->
                    <path d="M 245 50 L 255 50 M 245 70 L 255 70 M 245 90 L 255 90 M 245 110 L 255 110 M 245 130 L 255 130" stroke="#94a3b8" stroke-width="1.5"/>

                    <!-- Podłoga i Rury (animowane) -->
                    <rect x="20" y="170" width="260" height="20" fill="#e2e8f0" rx="4"/>
                    <g id="floor-pipes">
                        <circle cx="50" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="90" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="130" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="170" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="210" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                        <circle cx="250" cy="180" r="6" class="rk-anim-pipe" fill="var(--rk-therm-heat)"/>
                    </g>
                </svg>
            </div>

            <!-- Parametry Dynamiczne -->
            <div class="rk-metrics-grid">
                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Zyski Słoneczne</h4>
                        <p>Dodatkowa darmowa energia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-sun);">
                        <span id="val-sun" style="font-size: 26px;">0</span><span>%</span>
                    </div>
                </div>

                <div class="rk-metric-row">
                    <div class="rk-metric-info">
                        <h4>Temperatura w salonie</h4>
                        <p>Baza: 20°C (różnica 7,5K do podłogi)</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-dark);">
                        <span id="val-room" style="font-size: 26px;">20.0</span><span>°C</span>
                    </div>
                </div>

                <div class="rk-metric-row" style="border-left: 4px solid var(--rk-therm-brand);">
                    <div class="rk-metric-info">
                        <h4>Moc grzewcza podłogi</h4>
                        <p>Efekt automatycznego dławienia</p>
                    </div>
                    <div class="rk-metric-value" style="color: var(--rk-therm-heat);" id="color-power">
                        <span id="val-power" style="font-size: 26px;">100</span><span>%</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('samoregulacja-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #fffbeb; border: 2px solid #f59e0b; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">🛑</div>
                    <div style="font-size: 15px; font-weight: bold; color: #b45309; margin-bottom: 8px;">Blokada Własności Intelektualnej</div>
                    <div style="color: #92400e; font-size: 13px; line-height: 1.5;">
                        Moduł symulacji samoregulacji oraz kod strukturalny zostały zablokowane. Wykryto próbę uruchomienia skryptu Projekt-Ogrzewania.pl na innej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Efekt Samoregulacji)
    const slider = document.getElementById('rk-sun-input');
    
    // UI Elements
    const valSun = document.getElementById('val-sun');
    const valRoom = document.getElementById('val-room');
    const valPower = document.getElementById('val-power');
    const colorPower = document.getElementById('color-power');
    
    // SVG Elements
    const sunGroup = document.getElementById('svg-sun');
    const thermFill = document.getElementById('therm-fill');
    const pipes = document.querySelectorAll('.rk-anim-pipe');

    // Kolory interpolacji dla rur (od gorącego czerwonego do chłodnego niebieskawego)
    const colorHot = [239, 68, 68]; // #ef4444 (100% mocy)
    const colorCool = [148, 163, 184]; // #94a3b8 (70% mocy, uśpienie)

    function interpolateColor(c1, c2, factor) {
        let result = [];
        for (let i = 0; i < 3; i++) {
            result[i] = Math.round(c1[i] + factor * (c2[i] - c1[i]));
        }
        return `rgb(${result[0]}, ${result[1]}, ${result[2]})`;
    }

    function updateSimulation() {
        const factor = slider.value / 100; // 0.0 do 1.0

        // Obliczenia parametrów fizycznych
        // Zyski rosną od 0 do 100%
        valSun.textContent = Math.round(factor * 100);
        
        // Temperatura wzrasta od 20.0 do 22.0 °C
        const currentTemp = 20.0 + (factor * 2.0);
        valRoom.textContent = currentTemp.toFixed(1);
        
        // Moc podłogi spada od 100% do 70% (dławienie o 30%)
        const currentPower = 100 - (factor * 30);
        valPower.textContent = Math.round(currentPower);

        // --- Aktualizacja Wizualna SVG ---
        
        // Słońce rozjaśnia się bez transformacji promieni
        sunGroup.setAttribute('opacity', 0.2 + (factor * 0.8));

        // Termometr idzie do góry (y maleje, height rośnie)
        // Baza y=80, h=70 (20 st). Max y=40, h=110 (22 st)
        const newY = 80 - (factor * 40);
        const newH = 70 + (factor * 40);
        thermFill.setAttribute('y', newY);
        thermFill.setAttribute('height', newH);
        
        // Zmiana koloru termometru i rur w miarę samoregulacji
        // Termometr staje się cieplejszy (pomarańcz) od słońca, a rury stygną
        const pipeColor = interpolateColor(colorHot, colorCool, factor);
        
        pipes.forEach(pipe => {
            pipe.setAttribute('fill', pipeColor);
        });
        
        colorPower.style.color = pipeColor;
    }

    // Inicjalizacja nasłuchiwania
    slider.addEventListener('input', updateSimulation);
    
    // Uruchomienie stanu zero
    updateSimulation();
});
</script>



<style>
:root {
    --rk-sp-dark: #0f172a;
    --rk-sp-brand: #0284c7;
    --rk-sp-brand-light: #f0f9ff;
    --rk-sp-accent: #38bdf8;
    --rk-sp-eco: #10b981;
    --rk-sp-warn: #f59e0b;
    --rk-sp-text: #475569;
    --rk-sp-border: #e2e8f0;
    --rk-sp-bg: #ffffff;
}

.rk-sp-wrap {
    max-width: 920px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-sp-bg);
    border-radius: 28px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.12);
    border: 1px solid #bae6fd;
    overflow: hidden;
}

/* Header */
.rk-sp-header {
    padding: 45px 50px 35px;
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-sp-border);
}

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

.rk-sp-formula {
    background: var(--rk-sp-dark);
    color: #cbd5e1;
    padding: 22px 25px;
    border-radius: 16px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    border-left: 5px solid var(--rk-sp-brand);
    margin-top: 20px;
}

.rk-sp-formula .hl { color: var(--rk-sp-eco); font-weight: 800; }

/* Dashboard */
.rk-sp-dashboard {
    padding: 40px 50px;
    background: #f8fafc;
}

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

.rk-sp-card {
    background: #ffffff;
    border: 2px solid var(--rk-sp-border);
    padding: 20px;
    border-radius: 20px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-sp-card.active {
    border-color: var(--rk-sp-brand);
    background: var(--rk-sp-brand-light);
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.15);
}

.rk-sp-label { font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-bottom: 5px; display: block; }
.rk-sp-val { font-size: 18px; font-weight: 900; color: var(--rk-sp-dark); }

.rk-sp-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Visualization */
.rk-sp-visual {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    border-radius: 24px;
    padding: 35px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-svg-main { width: 100%; height: auto; display: block; }
.layer-text { font-size: 8px; font-weight: 700; fill: #94a3b8; text-transform: uppercase; }
.pipe-anim { transition: opacity 0.4s ease; }

/* Stats */
.rk-sp-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-row {
    background: #ffffff;
    border: 1px solid var(--rk-sp-border);
    padding: 18px 22px;
    border-radius: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s ease;
}

.rk-stat-row:hover { border-color: var(--rk-sp-accent); transform: translateX(5px); }

.rk-stat-info h4 { margin: 0; font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; }
.rk-stat-info p { margin: 4px 0 0 0; font-size: 11px; color: #94a3b8; }
.rk-stat-num { font-size: 24px; font-weight: 900; color: var(--rk-sp-dark); display: block; }

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

<div class="rk-sp-wrap" id="rk-spacing-app">
    
    <div class="rk-sp-header">
        <h2>Jaki rozstaw rur jest optymalny przy niskim zapotrzebowaniu na ciepło?</h2>
        <p>W domach pasywnych (10-15 W/m²) optymalny rozstaw to <strong>15 cm lub 20 cm</strong>. Zapewnia to idealne przepływy dla pompy ciepła i eliminuje zbędne koszty materiału.</p>
        <div class="rk-sp-formula">
            // Bilans hydrauliczny pętli 15 m²<br>
            Moc (Q) = 225 W | Przepływ (m) = <span class="hl">0,64 l/min</span>
        </div>
    </div>

    <div class="rk-sp-dashboard">
        <div class="rk-sp-selector">
            <div class="rk-sp-card active" data-mode="1">
                <span class="rk-sp-label">Standard WT2021</span>
                <span class="rk-sp-val">co 10 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="2">
                <span class="rk-sp-label">Energooszczędny</span>
                <span class="rk-sp-val">co 15 cm</span>
            </div>
            <div class="rk-sp-card" data-mode="3">
                <span class="rk-sp-label">Standard Pasywny</span>
                <span class="rk-sp-val">co 20 cm</span>
            </div>
        </div>

        <div class="rk-sp-grid">
            <div class="rk-sp-visual">
                <svg class="rk-svg-main" viewBox="0 0 240 160">
                    <defs>
                        <linearGradient id="g-pipe" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" style="stop-color:#38bdf8" />
                            <stop offset="100%" style="stop-color:#0284c7" />
                        </linearGradient>
                    </defs>
                    <rect x="10" y="40" width="220" height="60" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="55" class="layer-text">Wylewka Anhydrytowa (60mm)</text>
                    <rect x="10" y="100" width="220" height="50" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="1"/>
                    <text x="20" y="115" class="layer-text">Izolacja EPS 200 (200mm)</text>

                    <g id="pipes">
                        <circle cx="30" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2"/>
                        <circle cx="65" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <circle cx="100" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15"/>
                        <circle cx="135" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                        <!-- Ta rura (170) jest kluczowa dla widoku 20cm -->
                        <circle cx="170" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p15 p20"/>
                        <circle cx="205" cy="85" r="8" fill="url(#g-pipe)" stroke="#fff" stroke-width="2" class="pipe-anim p10"/>
                    </g>
                    
                    <path d="M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40" stroke="#94a3b8" stroke-width="1.5" id="m-line"/>
                    <text x="47.5" y="25" text-anchor="middle" font-size="10" font-weight="900" fill="#0284c7" id="m-text">10 cm</text>
                </svg>
            </div>

            <div class="rk-sp-stats">
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Długość rur</h4><p>Dom 150 m²</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-meters">1500</span><span class="rk-stat-unit">mb</span></div>
                </div>
                <div class="rk-stat-row" style="border-left: 5px solid var(--rk-sp-eco);">
                    <div class="rk-stat-info"><h4>Koszt materiału</h4><p id="s-label">Baza porównawcza</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-price">6750</span><span class="rk-stat-unit">PLN</span></div>
                </div>
                <div class="rk-stat-row">
                    <div class="rk-stat-info"><h4>Opory</h4><p>Hydraulika</p></div>
                    <div class="rk-stat-value"><span class="rk-stat-num" id="s-hydro" style="font-size:18px;color:var(--rk-sp-warn)">Wysokie</span></div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-spacing-app').innerHTML = '<div style="padding:40px;text-align:center;background:#0f172a;color:#ef4444;border-radius:20px;font-weight:900;">🛡️ MODUŁ CHRONIONY</div>';
        return;
    }

    const cards = document.querySelectorAll('.rk-sp-card');
    const p10 = document.querySelectorAll('.p10'), p15 = document.querySelectorAll('.p15'), p20 = document.querySelectorAll('.p20');
    const mLine = document.getElementById('m-line'), mText = document.getElementById('m-text');
    const sMeters = document.getElementById('s-meters'), sPrice = document.getElementById('s-price'), sHydro = document.getElementById('s-hydro'), sLabel = document.getElementById('s-label');

    cards.forEach(card => {
        card.addEventListener('click', function() {
            cards.forEach(c => c.classList.remove('active'));
            this.classList.add('active');
            const mode = this.getAttribute('data-mode');

            if (mode === '1') {
                p10.forEach(p => p.style.opacity = '1'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 65 35 M 30 30 L 30 40 M 65 30 L 65 40');
                mText.textContent = '10 cm'; mText.setAttribute('x', '47.5');
                update('1500', '6750', 'Wysokie', '#f59e0b', 'Baza porównawcza');
            } else if (mode === '2') {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '1');
                mLine.setAttribute('d', 'M 30 35 L 100 35 M 30 30 L 30 40 M 100 30 L 100 40');
                mText.textContent = '15 cm'; mText.setAttribute('x', '65');
                update('1000', '4500', 'Optymalne', '#0284c7', 'Oszczędzasz 2250 PLN');
            } else {
                p10.forEach(p => p.style.opacity = '0'); p15.forEach(p => p.style.opacity = '0');
                p20.forEach(p => p.style.opacity = '1'); // Pokazuje rurę na 20 cm
                mLine.setAttribute('d', 'M 30 35 L 170 35 M 30 30 L 30 40 M 170 30 L 170 40');
                mText.textContent = '20 cm'; mText.setAttribute('x', '100');
                update('900', '4050', 'Minimalne', '#10b981', 'Oszczędzasz 2700 PLN');
            }
        });
    });

    function update(m, p, h, c, l) {
        sMeters.textContent = m; sPrice.textContent = p; sHydro.textContent = h; sHydro.style.color = c; sLabel.textContent = l;
    }
});
</script>



<style>
:root {
    --rk-sys-dark: #0f172a;
    --rk-sys-wet: #f97316;     /* Pomarańcz - akumulacja, ciepło */
    --rk-sys-wet-light: #fff7ed;
    --rk-sys-dry: #06b6d4;     /* Cyjan - szybkość, aluminium */
    --rk-sys-dry-light: #ecfeff;
    --rk-sys-text: #334155;
    --rk-sys-muted: #64748b;
    --rk-sys-border: #cbd5e1;
    --rk-sys-bg: #ffffff;
}

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

/* Sekcja Treści - Akapit */
.rk-sys-content {
    padding: 40px 45px 30px;
    background: linear-gradient(to bottom right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-sys-border);
}

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

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

.rk-sys-text a {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bfdbfe;
    transition: all 0.3s;
}

.rk-sys-text a:hover {
    background: #dbeafe;
    border-color: #2563eb;
}

.rk-sys-note {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-sys-dark);
    padding: 15px 20px;
    margin: 20px 0;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    color: var(--rk-sys-dark);
    font-weight: 600;
}

/* Interaktywny Symulator */
.rk-sys-interactive {
    padding: 40px 45px;
}

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

/* Unikalny Przełącznik (Toggle) */
.rk-toggle-station {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    background: #f8fafc;
    padding: 20px;
    border-radius: 100px;
    border: 1px solid var(--rk-sys-border);
    margin-bottom: 40px;
}

.rk-toggle-label {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-sys-muted);
    transition: color 0.3s;
    cursor: pointer;
}

.rk-toggle-label.active-wet { color: var(--rk-sys-wet); }
.rk-toggle-label.active-dry { color: var(--rk-sys-dry); }

.rk-main-switch {
    position: relative;
    width: 80px;
    height: 40px;
    background: var(--rk-sys-wet);
    border-radius: 40px;
    cursor: pointer;
    transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-main-switch.mode-dry {
    background: var(--rk-sys-dry);
}

.rk-switch-knob {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 32px;
    height: 32px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-main-switch.mode-dry .rk-switch-knob {
    transform: translateX(40px);
}

/* Dashboard SVG + Kafelki */
.rk-sys-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Kontener SVG */
.rk-svg-box {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-sys-border);
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-cross-section {
    width: 100%;
    max-width: 250px;
}

/* Warstwy SVG */
.layer-screed { transition: opacity 0.4s; }
.layer-lamella { transition: opacity 0.4s; }
.wave-heat { fill: none; stroke-linecap: round; }

/* Animacje Bezwładności */
.state-wet .wave-heat { 
    stroke: var(--rk-sys-wet); 
    stroke-width: 6; 
    animation: flowUp 3s infinite linear; 
}
.state-dry .wave-heat { 
    stroke: var(--rk-sys-dry); 
    stroke-width: 3; 
    animation: flowUp 0.8s infinite linear; 
}

@keyframes flowUp {
    0% { transform: translateY(10px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-30px); opacity: 0; }
}

/* Kafelki Danych (Grid) */
.rk-sys-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-tile {
    background: #ffffff;
    border: 1px solid var(--rk-sys-border);
    border-radius: 14px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s;
}

.rk-tile h4 {
    margin: 0 0 5px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--rk-sys-muted);
    letter-spacing: 0.5px;
}

.rk-tile .val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-sys-dark);
    margin-bottom: 2px;
    line-height: 1.2;
}

.rk-tile .desc {
    font-size: 12px;
    color: var(--rk-sys-text);
}

/* Mobilna responsywność */
@media (max-width: 768px) {
    .rk-sys-content, .rk-sys-interactive { padding: 25px 20px; }
    .rk-toggle-station { flex-direction: column; gap: 15px; border-radius: 20px; padding: 15px; }
    .rk-sys-dashboard { grid-template-columns: 1fr; }
    .rk-sys-tiles { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "System mokry czy suchy – co wybrać do domu pasywnym?",
    "description": "Porównanie systemów ogrzewania podłogowego. System mokry (anhydryt, wysoka bezwładność, domy murowane) kontra system suchy (lamele aluminiowe, niska bezwładność, domy szkieletowe). Wymagania izolacji EPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset",
    "name": "Parametry Techniczne: Wylewka Anhydrytowa vs Sucha Zabudowa",
    "description": "Tabela porównawcza parametrów przewodzenia ciepła, grubości wylewki oraz izolacji wymaganej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy podłogówki",
      "bezwładność cieplna wylewki",
      "grubość styropianu dom pasywny",
      "lamele aluminiowe system suchy"
    ],
    "measurementTechnique": "Analiza współczynnika przewodzenia ciepła lambda (W/mK) oraz oporu cieplnego R dla jastrychów i izolacji EPS na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Anhydryt (System Mokry): Lambda 1,6–1,8 W/(m·K), grubość 35-45 mm nad rurą, wysoka akumulacja.",
        "System Suchy (Lamele): Błyskawiczna reakcja, dedykowane do domów szkieletowych.",
        "Izolacja dom pasywny: 20-25 cm EPS 100/200, Lambda = 0,031 W/(m·K), Opór R = 6,0-8,0 (m²·K)/W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp",
    "name": "Symulator Bezwładności Termicznej Posadzki",
    "description": "Interaktywna animacja SVG obrazująca różnicę w prędkości przekazywania ciepła (reakcji na zyski słoneczne) pomiędzy ciężkim systemem mokrym a lekkim systemem suchym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-sys-container" id="sys-simulator-app">
    
    <div class="rk-sys-content">
        <h2>System mokry czy suchy – co wybrać do domu pasywnego?</h2>
        <p class="rk-sys-text">
            W domach pasywnych o konstrukcji ciężkiej (murowanej) zalecam <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">system mokry</a> z <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewką anhydrytową</a> o grubości 35–45 mm nad rurą, natomiast w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">budownictwie szkieletowym</a> jedynym rozsądnym wyborem jest <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system suchy</a> o niskiej bezwładności. Wylewka anhydrytowa ma współczynnik przewodzenia ciepła lambda 1,6–1,8 W/(m·K), co jest wartością znacznie lepszą niż w przypadku jastrychu cementowego lambda 1,1–1,2 W/(m·K).
        </p>
        <p class="rk-sys-text">
            Niska <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> systemu suchego (płyty systemowe z lamelami aluminiowymi) pozwala na szybszą reakcję na zyski ciepła od słońca, co w domach pasywnych z dużymi przeszkleniami od południa jest kluczowe. System mokry z kolei działa jak akumulator energii.
        </p>
        <div class="rk-sys-note">
            <strong>Parametry techniczne izolacji:</strong> Pod ogrzewaniem podłogowym na gruncie w domu pasywnym wymagane jest minimum <strong>20–25 cm <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" style="color:var(--rk-sys-dark); text-decoration:underline;">styropianu EPS 100 lub EPS 200</a></strong> o współczynniku lambda = 0,031 W/(m·K), aby opór cieplny izolacji R wynosił minimum 6,0–8,0 (m²·K)/W.
        </div>
    </div>

    <div class="rk-sys-interactive">
        <h3>Symulator Bezwładności Termicznej</h3>
        
        <div class="rk-toggle-station">
            <div class="rk-toggle-label active-wet" id="lbl-wet" onclick="document.getElementById('rk-mode-switch').click()">
                System Mokry (Anhydryt)
            </div>
            <div class="rk-main-switch" id="rk-mode-switch">
                <div class="rk-switch-knob"></div>
            </div>
            <div class="rk-toggle-label" id="lbl-dry" onclick="document.getElementById('rk-mode-switch').click()">
                System Suchy (Lamele)
            </div>
        </div>

        <div class="rk-sys-dashboard">
            <!-- Animacja SVG Przekroju -->
            <div class="rk-svg-box state-wet" id="svg-anim-state">
                <svg class="rk-svg-cross-section" viewBox="0 0 200 150">
                    <!-- Baza: Izolacja EPS 200 (Zawsze widoczna) -->
                    <rect x="20" y="100" width="160" height="40" fill="#e2e8f0" rx="4"/>
                    <text x="100" y="125" text-anchor="middle" fill="#64748b" font-size="12" font-weight="bold">EPS 200 (Izolacja)</text>

                    <!-- System Mokry (Wylewka Anhydrytowa) -->
                    <g class="layer-screed" id="svg-screed">
                        <rect x="20" y="40" width="160" height="60" fill="#cbd5e1" rx="4"/>
                    </g>

                    <!-- System Suchy (Płyta z Lamelem) -->
                    <g class="layer-lamella" id="svg-lamella" opacity="0">
                        <rect x="20" y="70" width="160" height="30" fill="#f8fafc" rx="4" stroke="#cbd5e1" stroke-width="2"/>
                        <!-- Aluminiowe Lamele -->
                        <path d="M 20 70 L 180 70 M 20 75 L 180 75" stroke="#06b6d4" stroke-width="3"/>
                    </g>

                    <!-- Rury Grzewcze -->
                    <g fill="#ef4444">
                        <circle cx="50" cy="85" r="8"/>
                        <circle cx="100" cy="85" r="8"/>
                        <circle cx="150" cy="85" r="8"/>
                    </g>

                    <!-- Fale Ciepła (Animacja CSS definiuje prędkość) -->
                    <path class="wave-heat" d="M 50 70 Q 60 40 50 10" />
                    <path class="wave-heat" d="M 100 70 Q 110 40 100 10" style="animation-delay: 0.3s;" />
                    <path class="wave-heat" d="M 150 70 Q 160 40 150 10" style="animation-delay: 0.6s;" />
                </svg>
            </div>

            <!-- Dynamiczne Kafelki Danych -->
            <div class="rk-sys-tiles">
                <div class="rk-tile" id="tile-lambda">
                    <h4>Przewodzenie (Lambda)</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">1,6 - 1,8</div>
                    <div class="desc">W/(m·K) - Anhydryt</div>
                </div>
                <div class="rk-tile" id="tile-inertia">
                    <h4>Bezwładność Cieplna</h4>
                    <div class="val" style="color: var(--rk-sys-wet);">Wysoka</div>
                    <div class="desc">Działa jak akumulator</div>
                </div>
                <div class="rk-tile" id="tile-thick">
                    <h4>Wysokość Zabudowy</h4>
                    <div class="val">35 - 45 mm</div>
                    <div class="desc">Zalewane nad rurą</div>
                </div>
                <div class="rk-tile" id="tile-build">
                    <h4>Konstrukcja Budynku</h4>
                    <div class="val">Murowana</div>
                    <div class="desc">Wysoka nośność stropu</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('sys-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 25px; text-align: center; background: #f8fafc; border: 2px solid #ef4444; border-radius: 12px; font-family: sans-serif;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 15px; font-weight: bold; color: #dc2626; margin-bottom: 8px;">Blokada Praw Autorskich</div>
                    <div style="color: #475569; font-size: 13px; line-height: 1.5;">
                        Interaktywny kalkulator systemów (mokry/suchy) został zablokowany, ponieważ domena nie posiada licencji na renderowanie kodu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełącznika i Aktualizacji Danych
    const switchBtn = document.getElementById('rk-mode-switch');
    const lblWet = document.getElementById('lbl-wet');
    const lblDry = document.getElementById('lbl-dry');
    const svgState = document.getElementById('svg-anim-state');
    
    // Warstwy SVG
    const svgScreed = document.getElementById('svg-screed');
    const svgLamella = document.getElementById('svg-lamella');

    // Kafelki
    const tileLambda = document.getElementById('tile-lambda');
    const tileInertia = document.getElementById('tile-inertia');
    const tileThick = document.getElementById('tile-thick');
    const tileBuild = document.getElementById('tile-build');

    let isDry = false;

    function updateCard(card, valText, descText, color = 'var(--rk-sys-dark)') {
        const valEl = card.querySelector('.val');
        const descEl = card.querySelector('.desc');
        
        valEl.style.opacity = 0;
        descEl.style.opacity = 0;
        
        setTimeout(() => {
            valEl.textContent = valText;
            valEl.style.color = color;
            descEl.textContent = descText;
            
            valEl.style.opacity = 1;
            descEl.style.opacity = 1;
        }, 150);
    }

    switchBtn.addEventListener('click', () => {
        isDry = !isDry;

        if (isDry) {
            // Przejście na System Suchy
            switchBtn.classList.add('mode-dry');
            lblWet.classList.remove('active-wet');
            lblDry.classList.add('active-dry');
            
            // Zmiana animacji SVG
            svgState.classList.remove('state-wet');
            svgState.classList.add('state-dry');
            svgScreed.style.opacity = 0;
            svgLamella.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, 'Aluminium', 'Doskonałe przewodzenie', 'var(--rk-sys-dry)');
            updateCard(tileInertia, 'Niska', 'Błyskawiczna reakcja', 'var(--rk-sys-dry)');
            updateCard(tileThick, 'Minimalna', 'Tylko grubość płyty', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Szkieletowa', 'Lekka konstrukcja', 'var(--rk-sys-dark)');
            
        } else {
            // Powrót do Systemu Mokrego
            switchBtn.classList.remove('mode-dry');
            lblDry.classList.remove('active-dry');
            lblWet.classList.add('active-wet');

            // Zmiana animacji SVG
            svgState.classList.remove('state-dry');
            svgState.classList.add('state-wet');
            svgLamella.style.opacity = 0;
            svgScreed.style.opacity = 1;

            // Aktualizacja Danych
            updateCard(tileLambda, '1,6 - 1,8', 'W/(m·K) - Anhydryt', 'var(--rk-sys-wet)');
            updateCard(tileInertia, 'Wysoka', 'Działa jak akumulator', 'var(--rk-sys-wet)');
            updateCard(tileThick, '35 - 45 mm', 'Zalewane nad rurą', 'var(--rk-sys-dark)');
            updateCard(tileBuild, 'Murowana', 'Wysoka nośność stropu', 'var(--rk-sys-dark)');
        }
    });
});
</script>



<style>
:root {
    --rk-comp-dark: #1e293b;
    --rk-comp-brand: #3b82f6;
    --rk-comp-wet: #8b5cf6;     /* Fiolet dla Anhydrytu (masa, pojemność) */
    --rk-comp-wet-light: #f5f3ff;
    --rk-comp-dry: #10b981;     /* Zielony dla Suchego (lekkość, eko) */
    --rk-comp-dry-light: #ecfdf5;
    --rk-comp-text: #475569;
    --rk-comp-border: #e2e8f0;
    --rk-comp-bg: #ffffff;
}

.rk-comp-wrap {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.1);
    border: 1px solid #bfdbfe;
    overflow: hidden;
}

/* Nagłówek i Tekst SEO */
.rk-comp-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

.rk-comp-text a {
    color: var(--rk-comp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bfdbfe;
    transition: background 0.3s, box-shadow 0.3s;
}

.rk-comp-text a:hover {
    background: #dbeafe;
    box-shadow: inset 0 -10px 0 #bfdbfe;
}

/* Interaktywny Komparator */
.rk-comp-interactive {
    padding: 40px 45px;
}

.rk-comp-interactive h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 30px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Przełącznik Systemów (Taby) */
.rk-comp-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 40px;
    gap: 8px;
}

.rk-comp-tab {
    flex: 1;
    text-align: center;
    padding: 16px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-comp-tab.active[data-system="wet"] {
    background: #ffffff;
    color: var(--rk-comp-wet);
    box-shadow: 0 4px 10px rgba(139, 92, 246, 0.15);
}

.rk-comp-tab.active[data-system="dry"] {
    background: #ffffff;
    color: var(--rk-comp-dry);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.15);
}

.rk-tab-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #fff;
    transition: background 0.3s;
}

.rk-comp-tab.active[data-system="wet"] .rk-tab-icon { background: var(--rk-comp-wet); }
.rk-comp-tab.active[data-system="dry"] .rk-tab-icon { background: var(--rk-comp-dry); }

/* Dashboard: SVG i Kafelki Parametrów */
.rk-comp-dashboard {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    align-items: start;
}

/* SVG Wizualizacja */
.rk-svg-panel {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.anim-thickness { transition: height 0.4s ease, y 0.4s ease, fill 0.4s ease; }
.anim-weight-text { transition: opacity 0.3s; }
.anim-scale { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); transform-origin: 100px 150px; }

/* Grid Kafelków (Zastępstwo Tabeli) */
.rk-comp-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-param-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 14px;
    padding: 18px 20px;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-param-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 0.5px;
}

.rk-param-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 4px;
    transition: color 0.3s;
}

.rk-param-norm {
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 4px;
}

.rk-param-norm::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #cbd5e1;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-interactive { padding: 30px 25px; }
    .rk-comp-dashboard { grid-template-columns: 1fr; }
    .rk-comp-tabs { flex-direction: column; }
    .rk-svg-panel { margin-bottom: 20px; }
}
@media (max-width: 480px) {
    .rk-comp-grid { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/"
    },
    "headline": "Porównanie parametrów systemów podłogowych w domu pasywnym",
    "description": "Szczegółowe zestawienie parametrów technicznych: wylewka anhydrytowa kontra system suchy. Analiza przewodności cieplnej, grubości zabudowy i wagi stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#dataset-porownanie",
    "name": "Zestawienie Parametrów: System Mokry vs System Suchy",
    "description": "Tabela analityczna zestawiająca kluczowe różnice fizyczne pomiędzy systemami grzewczymi stosowanymi w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa ogrzewanie podłogowe",
      "system suchy ogrzewania podłogowego",
      "przewodność cieplna lambda",
      "bezwładność cieplna posadzki",
      "waga systemu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kompilacja danych laboratoryjnych ITB, wytycznych producentów oraz normy europejskiej PN-EN 1264 w odniesieniu do wydajności termicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Mokry (Anhydryt): Przewodność 1,8 W/(mK), Waga ~120 kg/m2, Grubość 55-65 mm, Bezwładność wysoka (3-5 h).",
        "System Suchy (Lekki): Przewodność 0,4-0,5 W/(mK), Waga ~30 kg/m2, Grubość 25-30 mm, Bezwładność niska (30-60 min)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/#webapp-porownanie",
    "name": "Interaktywny Komparator Systemów Podłogowych",
    "description": "Cyfrowe narzędzie pozwalające inwestorom na wizualne i techniczne porównanie wagi, grubości i bezwładności wylewki mokrej względem lekkiej suchej zabudowy.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-comp-wrap" id="komparator-app">
    
    <div class="rk-comp-header">
        <h2>Porównanie parametrów systemów w domu pasywnym</h2>
        <p class="rk-comp-text">
            Zrozumienie różnic fizycznych między <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">systemem mokrym (wylewka anhydrytowa)</a> a <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemem suchym (lekka zabudowa)</a> jest fundamentem poprawnego zaprojektowania ogrzewania dla domu pasywnego. Poniższy interaktywny komparator obrazuje, jak masa, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a> oraz grubość wpływają na parametry pracy instalacji w świetle normy PN-EN 1264.
        </p>
    </div>

    <div class="rk-comp-interactive">
        <h3>Zestawienie Technologiczne</h3>
        
        <!-- Przełącznik -->
        <div class="rk-comp-tabs" id="rk-tabs">
            <div class="rk-comp-tab active" data-system="wet">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"/></svg>
                </div>
                System Mokry (Anhydryt)
            </div>
            <div class="rk-comp-tab" data-system="dry">
                <div class="rk-tab-icon">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
                </div>
                System Suchy (Lekki)
            </div>
        </div>

        <div class="rk-comp-dashboard">
            <!-- SVG Wizualizacja Grubości i Wagi -->
            <div class="rk-svg-panel">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Szala Wagi -->
                    <path d="M 100 150 L 100 190 M 60 190 L 140 190" stroke="#94a3b8" stroke-width="4" stroke-linecap="round"/>
                    
                    <g class="anim-scale" id="svg-scale">
                        <!-- Podstawa szali -->
                        <path d="M 20 150 L 180 150" stroke="#64748b" stroke-width="4" stroke-linecap="round"/>
                        
                        <!-- Przekrój posadzki na szali -->
                        <rect x="50" y="80" width="100" height="60" fill="var(--rk-comp-wet)" rx="4" id="svg-floor-layer" class="anim-thickness" />
                        
                        <!-- Rury -->
                        <circle cx="70" cy="120" r="6" fill="#ffffff" />
                        <circle cx="100" cy="120" r="6" fill="#ffffff" />
                        <circle cx="130" cy="120" r="6" fill="#ffffff" />

                        <!-- Etykieta wagi -->
                        <rect x="75" y="40" width="50" height="24" rx="12" fill="#1e293b" />
                        <text x="100" y="56" text-anchor="middle" fill="#ffffff" font-size="12" font-weight="bold" id="svg-weight-text">120 kg</text>
                        <!-- Linia wskazująca -->
                        <line x1="100" y1="64" x2="100" y2="80" stroke="#1e293b" stroke-width="2" />
                    </g>
                </svg>
            </div>

            <!-- Karty Danych (Zastępują Tabelę) -->
            <div class="rk-comp-grid">
                <div class="rk-param-card">
                    <h4>Przewodność cieplna (λ)</h4>
                    <div class="rk-param-val" id="val-lambda" style="color: var(--rk-comp-wet);">1,8 W/(m·K)</div>
                    <div class="rk-param-norm">PN-EN 1264-4</div>
                </div>
                <div class="rk-param-card">
                    <h4>Wysokość zabudowy</h4>
                    <div class="rk-param-val" id="val-height">55–65 mm</div>
                    <div class="rk-param-norm">Dane producenta</div>
                </div>
                <div class="rk-param-card">
                    <h4>Bezwładność cieplna</h4>
                    <div class="rk-param-val" id="val-inertia">Wysoka (3-5 h)</div>
                    <div class="rk-param-norm">Badania ITB</div>
                </div>
                <div class="rk-param-card">
                    <h4>Waga systemu</h4>
                    <div class="rk-param-val" id="val-weight">~100–120 kg/m²</div>
                    <div class="rk-param-norm">Obciążenia stropu</div>
                </div>
                <div class="rk-param-card" style="grid-column: 1 / -1;">
                    <h4>Max. Temp. Zasilania</h4>
                    <div class="rk-param-val" id="val-temp" style="color: #ef4444;">55°C (niezalecana)</div>
                    <div class="rk-param-norm">PN-EN 1264</div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('komparator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: 900; color: #ef4444; margin-bottom: 10px; text-transform: uppercase;">Zablokowano Renderowanie</div>
                    <div style="color: #cbd5e1; font-size: 14px; line-height: 1.6;">
                        Interaktywna tabela porównawcza jest objęta prawami autorskimi serwisu Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Komparatora
    const tabs = document.querySelectorAll('.rk-comp-tab');
    
    // SVG Elements
    const svgLayer = document.getElementById('svg-floor-layer');
    const svgWeight = document.getElementById('svg-weight-text');
    const svgScale = document.getElementById('svg-scale');

    // DOM Cards
    const valLambda = document.getElementById('val-lambda');
    const valHeight = document.getElementById('val-height');
    const valInertia = document.getElementById('val-inertia');
    const valWeight = document.getElementById('val-weight');
    const valTemp = document.getElementById('val-temp');

    function updateCard(element, htmlContent, color = 'var(--rk-comp-dark)') {
        element.style.opacity = '0';
        setTimeout(() => {
            element.innerHTML = htmlContent;
            element.style.color = color;
            element.style.opacity = '1';
        }, 150);
    }

    tabs.forEach(tab => {
        tab.addEventListener('click', function() {
            // Reset active state
            tabs.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

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

            if (system === 'wet') {
                // SVG Update (Ciężki/Mokry)
                svgLayer.setAttribute('height', '60');
                svgLayer.setAttribute('y', '80');
                svgLayer.setAttribute('fill', 'var(--rk-comp-wet)');
                svgScale.style.transform = 'rotate(5deg) translateY(5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '120 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '1,8 W/(m·K)', 'var(--rk-comp-wet)');
                updateCard(valHeight, '55–65 mm');
                updateCard(valInertia, 'Wysoka (3-5 h)');
                updateCard(valWeight, '~100–120 kg/m²');
                updateCard(valTemp, '55°C (niezalecana)', '#ef4444');
                
            } else {
                // SVG Update (Lekki/Suchy)
                svgLayer.setAttribute('height', '30');
                svgLayer.setAttribute('y', '110'); // Obniżamy żeby rury były w środku
                svgLayer.setAttribute('fill', 'var(--rk-comp-dry)');
                svgScale.style.transform = 'rotate(-5deg) translateY(-5px)';
                
                svgWeight.style.opacity = '0';
                setTimeout(() => {
                    svgWeight.textContent = '30 kg';
                    svgWeight.style.opacity = '1';
                }, 150);

                // Cards Update
                updateCard(valLambda, '0,4–0,5 W/(m·K)', 'var(--rk-comp-dry)');
                updateCard(valHeight, '25–30 mm');
                updateCard(valInertia, 'Niska (30-60 min)');
                updateCard(valWeight, '~25–30 kg/m²');
                updateCard(valTemp, '45°C', 'var(--rk-comp-dry)');
            }
        });
    });

    // Inicjalizacja wizualna szali
    setTimeout(() => {
        svgScale.style.transform = 'rotate(5deg) translateY(5px)';
    }, 100);
});
</script>



<style>
:root {
    --rk-algo-dark: #0f172a;
    --rk-algo-brand: #0284c7;
    --rk-algo-brand-light: #e0f2fe;
    --rk-algo-accent: #0ea5e9;
    --rk-algo-blueprint: #1e293b; /* Tło projektu inżynierskiego */
    --rk-algo-line: #38bdf8; /* Kreska na projekcie */
    --rk-algo-text: #475569;
    --rk-algo-border: #cbd5e1;
    --rk-algo-bg: #ffffff;
}

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

/* Część Tekstowa - Algorytm */
.rk-algo-content {
    padding: 45px 50px 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-algo-border);
}

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

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

.rk-algo-desc a {
    color: var(--rk-algo-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-algo-desc a:hover {
    background: var(--rk-algo-brand-light);
    border-color: var(--rk-algo-brand);
}

/* Stylizowane kroki algorytmu */
.rk-algo-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 25px;
}

.rk-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 16px 20px;
    position: relative;
    padding-left: 55px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-step-card:hover {
    transform: translateY(-2px);
    border-color: var(--rk-algo-accent);
}

.rk-step-num {
    position: absolute;
    left: 15px;
    top: 15px;
    width: 28px;
    height: 28px;
    background: var(--rk-algo-brand-light);
    color: var(--rk-algo-brand);
    font-weight: 900;
    font-size: 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-step-card h4 {
    margin: 0 0 5px 0;
    font-size: 14px;
    color: var(--rk-algo-dark);
    font-weight: 800;
}

.rk-step-card p {
    margin: 0;
    font-size: 12.5px;
    color: var(--rk-algo-text);
    line-height: 1.5;
}

.rk-math {
    display: inline-block;
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Courier New', Courier, monospace;
    font-weight: 600;
    color: var(--rk-algo-dark);
    border: 1px solid #e2e8f0;
}

/* Sekcja Interaktywna - Blueprint */
.rk-algo-interactive {
    padding: 0;
    display: grid;
    grid-template-columns: 320px 1fr;
}

/* Panel Kontrolny */
.rk-controls-panel {
    background: #f8fafc;
    padding: 35px 30px;
    border-right: 1px solid var(--rk-algo-border);
}

.rk-controls-panel h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-algo-dark);
    margin: 0 0 25px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

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

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

.rk-control-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-algo-brand);
}

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

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

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

/* Wyniki Obliczeń w panelu */
.rk-result-box {
    background: #ffffff;
    border: 1px solid var(--rk-algo-border);
    border-radius: 12px;
    padding: 15px;
    margin-top: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.rk-result-item:last-child { margin-bottom: 0; padding-top: 10px; border-top: 1px dashed var(--rk-algo-border); }

.rk-result-title { font-size: 12px; color: var(--rk-algo-text); font-weight: 700; }
.rk-result-val { font-size: 18px; font-weight: 900; color: var(--rk-algo-dark); }
.rk-result-val.highlight { color: var(--rk-algo-brand); font-size: 22px; }

/* SVG Blueprint */
.rk-blueprint-panel {
    background: var(--rk-algo-blueprint);
    position: relative;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-image: 
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 20px 20px;
}

.rk-svg-blueprint {
    width: 100%;
    max-width: 350px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(0,0,0,0.3));
}

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

.blueprint-text {
    fill: #94a3b8;
    font-family: monospace;
    font-size: 10px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-algo-content { padding: 30px 25px; }
    .rk-algo-steps { grid-template-columns: 1fr; }
    .rk-algo-interactive { grid-template-columns: 1fr; }
    .rk-controls-panel { border-right: none; border-bottom: 1px solid var(--rk-algo-border); }
    .rk-blueprint-panel { padding: 40px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Kalkulator algorytmu doboru rozstawu rur w domu pasywnym",
    "description": "Profesjonalny 6-etapowy algorytm obliczania gęstości strumienia cieplnego (q) i doboru rozstawu rur podłogowych na podstawie normy PN-EN 12831.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-algorytm",
    "name": "Zmienne Obliczeniowe Algorytmu Doboru Rozstawu Rur",
    "description": "Zestawienie zmiennych fizycznych wykorzystywanych w procesie projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne W",
      "gęstość strumienia cieplnego q",
      "temperatura zasilania T_z",
      "rozstaw rur dobór",
      "algorytm projektowania ogrzewania"
    ],
    "measurementTechnique": "Algorytm oparty o wzór Q = q * F_g oraz wytyczne strumienia z normy PN-EN 1264 z zachowaniem optymalnej różnicy temperatur Delta T = 5K.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wskazanie standardu izolacji budynku q (W/m2).",
        "Krok 2: Wskazanie powierzchni grzewczej pomieszczenia.",
        "Krok 3: Obliczenie całkowitej mocy projektowej (Q_obl).",
        "Krok 4: Wyznaczenie rozstawu (b) na podstawie gęstości strumienia cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-algorytm",
    "name": "Interaktywny Symulator Projektowy (Blueprint)",
    "description": "Aplikacja webowa symulująca pracę inżyniera. Po wprowadzeniu standardu energetycznego i powierzchni (m2), system wylicza moc (W) i wykreśla układ pętli grzewczych na wirtualnym planie pokoju.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-algo-container" id="algorytm-app">
    
    <div class="rk-algo-content">
        <h2>Kalkulator algorytmu doboru rozstawu rur</h2>
        <p class="rk-algo-desc">
            Aby poprawnie zaprojektować instalację w domu pasywnym, nie możesz opierać się na intuicji. Podążaj za poniższym ścisłym algorytmem, który stosuję w moich projektach, bazując na wytycznych normatywnych oraz <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">charakterystyce zasilania pomp ciepła</a>.
        </p>
        
        <div class="rk-algo-steps">
            <div class="rk-step-card">
                <div class="rk-step-num">1</div>
                <h4>Zapotrzebowanie (q)</h4>
                <p>Wyznacz standard izolacji budynku <span class="rk-math">q [W/m²]</span> na podstawie normy <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">PN-EN 12831</a>. Dla domów pasywnych to zazwyczaj 10-15 W/m².</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">2</div>
                <h4>Obciążenie całkowite (Q_obl)</h4>
                <p>Pomnóż wskaźnik przez powierzchnię grzejną: <span class="rk-math">Q = q · F_g</span>. Wynik podajemy w Watach [W].</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">3</div>
                <h4>Różnica temperatur (Delta T)</h4>
                <p>Przyjmij różnicę między zasilaniem a powrotem. Dla pomp ciepła optymalnie <span class="rk-math">Delta T = 5K</span>.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">4</div>
                <h4>Średnia temp. wody (t_m)</h4>
                <p>Oblicz na wzorze: <span class="rk-math">t_m = T_z - (Delta T / 2)</span>, gdzie T_z to temp. zasilania.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">5</div>
                <h4>Weryfikacja strumienia</h4>
                <p>Skorzystaj ze wzoru <span class="rk-math">q = B · a_i · Delta t_ln</span> sprawdzając współczynnik przejmowania ciepła.</p>
            </div>
            <div class="rk-step-card">
                <div class="rk-step-num">6</div>
                <h4>Dobór rozstawu (b)</h4>
                <p>Na podstawie <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">oporu cieplnego okładziny</a> (np. R = 0,02 dla płytek) i wartości <i>q</i>, dobierz rozstaw rur <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">z katalogu</a>.</p>
            </div>
        </div>
    </div>

    <div class="rk-algo-interactive">
        <!-- Lewy Panel Kontrolny -->
        <div class="rk-controls-panel">
            <h3>Wprowadź dane</h3>
            
            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Standard budynku (q)</span>
                    <span class="rk-control-value"><span id="val-in-q-unit">15</span> W/m²</span>
                </div>
                <input type="range" min="10" max="60" step="1" value="15" class="rk-slider" id="slider-q-unit" aria-label="Wskaźnik zapotrzebowania cieplnego budynku">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-header">
                    <span class="rk-control-label">Powierzchnia (F_g)</span>
                    <span class="rk-control-value"><span id="val-in-area">20</span> m²</span>
                </div>
                <input type="range" min="10" max="50" step="1" value="20" class="rk-slider" id="slider-area" aria-label="Powierzchnia pomieszczenia">
            </div>

            <div class="rk-result-box">
                <div class="rk-result-item">
                    <span class="rk-result-title">Delta T (złożenie):</span>
                    <span class="rk-result-val">5K</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Całkowita moc (Q_obl):</span>
                    <span class="rk-result-val"><span id="out-q-total">300</span> W</span>
                </div>
                <div class="rk-result-item">
                    <span class="rk-result-title">Sugerowany rozstaw:</span>
                    <span class="rk-result-val highlight" id="out-spacing">co 20 cm</span>
                </div>
            </div>
        </div>

        <!-- Prawy Panel SVG Blueprint -->
        <div class="rk-blueprint-panel">
            <svg class="rk-svg-blueprint" viewBox="0 0 300 300" id="svg-blueprint">
                <!-- Zarys pokoju z wymiarami -->
                <rect x="30" y="30" width="240" height="240" fill="none" stroke="#475569" stroke-width="3"/>
                <text x="150" y="20" class="blueprint-text" text-anchor="middle">WYMIAR: <tspan id="svg-text-area">20</tspan> m2</text>
                
                <!-- Grupa na dynamiczne rysowanie rur -->
                <g id="svg-pipe-layer" fill="none" stroke="var(--rk-algo-line)" stroke-width="4" stroke-linejoin="round" stroke-linecap="round">
                    <!-- Rury wygeneruje JS -->
                </g>

                <!-- Legenda w rogu -->
                <rect x="160" y="230" width="100" height="30" fill="rgba(15,23,42,0.8)" rx="4"/>
                <text x="210" y="249" class="blueprint-text" text-anchor="middle" fill="#38bdf8" font-weight="bold">Q = <tspan id="svg-text-q-total">300</tspan> W</text>
            </svg>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('algorytm-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #38bdf8; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #38bdf8;">[ SYSTEM BLOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        ERROR: Unauthorized Domain Execution.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł "Blueprint Algorithm" jest własnością intelektualną serwisu Projekt-Ogrzewania.pl.<br>Wykonanie skryptów zostało przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalkulatora i Rysowania
    const sliderQUnit = document.getElementById('slider-q-unit');
    const sliderArea = document.getElementById('slider-area');
    
    const valInQUnit = document.getElementById('val-in-q-unit');
    const valInArea = document.getElementById('val-in-area');
    
    const outQTotal = document.getElementById('out-q-total');
    const outSpacing = document.getElementById('out-spacing');
    
    const svgLayer = document.getElementById('svg-pipe-layer');
    const svgTextArea = document.getElementById('svg-text-area');
    const svgTextQTotal = document.getElementById('svg-text-q-total');

    // Funkcja generująca ścieżkę meandrową dla SVG
    // density = ilość pętli w pionie
    function generateMeanderPath(density) {
        const startX = 50;
        const startY = 50;
        const width = 200;
        const height = 200;
        const step = height / density;
        
        let path = `M ${startX} ${startY}`;
        
        for(let i=0; i<density; i++) {
            const currentY = startY + (i * step);
            // Kreska w prawo lub w lewo
            if(i % 2 === 0) {
                path += ` L ${startX + width} ${currentY}`;
                if(i < density -1) path += ` L ${startX + width} ${currentY + step}`;
            } else {
                path += ` L ${startX} ${currentY}`;
                if(i < density -1) path += ` L ${startX} ${currentY + step}`;
            }
        }
        return path;
    }

    function updateBlueprint() {
        const qUnit = parseInt(sliderQUnit.value);
        const area = parseInt(sliderArea.value);
        
        // Aktualizacja inputów DOM
        valInQUnit.textContent = qUnit;
        valInArea.textContent = area;
        svgTextArea.textContent = area;

        // Obliczenie Całkowitej Mocy Q = q * F_g
        const qTotal = qUnit * area;
        outQTotal.textContent = qTotal;
        svgTextQTotal.textContent = qTotal;

        // Logika doboru rozstawu uzależniona od standardu budynku (q)
        let spacingText = "";
        let pipeLines = 5;

        if (qUnit <= 18) {
            spacingText = "co 20 cm";
            pipeLines = 6;
            outSpacing.style.color = "var(--rk-algo-brand)";
        } else if (qUnit > 18 && qUnit <= 35) {
            spacingText = "co 15 cm";
            pipeLines = 10;
            outSpacing.style.color = "#8b5cf6"; // Fiolet
        } else {
            spacingText = "co 10 cm";
            pipeLines = 16;
            outSpacing.style.color = "#ef4444"; // Czerwony - gęsty rozstaw
        }

        outSpacing.textContent = spacingText;

        // Rysowanie animowanej ścieżki SVG z resetem animacji
        const newPath = generateMeanderPath(pipeLines);
        
        // Dodanie stylu inline wewnątrz SVG z wymuszeniem dłuższego dasharray chroni przed urywaniem gęstych ścieżek
        svgLayer.innerHTML = `<path d="${newPath}" stroke-dasharray="6000" stroke-dashoffset="6000" style="animation: drawPipe 2s ease-out forwards;"/>`;
    }

    // Nasłuchiwacze
    sliderQUnit.addEventListener('input', updateBlueprint);
    sliderArea.addEventListener('input', updateBlueprint);

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



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;       /* Kolor awarii */
    --rk-err-red-bg: #fef2f2;
    --rk-err-warn: #f59e0b;      /* Ostrzeżenie / Ciepło */
    --rk-err-cold: #3b82f6;      /* Mostki cieplne */
    --rk-err-border: #cbd5e1;
    --rk-err-text: #475569;
    --rk-err-bg: #ffffff;
    --rk-err-panel: #f8fafc;
}

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

/* Sekcja Treści */
.rk-err-content {
    padding: 45px 50px 25px;
    background: linear-gradient(135deg, #fef2f2 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-err-border);
}

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

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

.rk-err-desc a {
    color: var(--rk-err-red);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #fecaca;
    transition: all 0.3s;
}

.rk-err-desc a:hover {
    background: var(--rk-err-red-bg);
    border-color: var(--rk-err-red);
}

/* Interaktywny Skaner Błędów */
.rk-err-interactive {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-bg);
}

/* Menu Błędów (Lewy panel) */
.rk-err-menu {
    background: var(--rk-err-panel);
    padding: 30px;
    border-right: 1px solid var(--rk-err-border);
}

.rk-err-menu h3 {
    font-size: 14px;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
    font-weight: 800;
}

.rk-err-btn {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    padding: 16px;
    border-radius: 12px;
    margin-bottom: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    box-shadow: 0 4px 6px rgba(239, 68, 68, 0.05);
}

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

.rk-err-num {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    transition: all 0.3s;
}

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

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

/* Prawy Panel - Diagnoza i SEO Tekst */
.rk-err-dashboard {
    padding: 30px;
    display: flex;
    flex-direction: column;
}

.rk-diag-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-err-red);
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.1);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.rk-diag-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f1f5f9;
}

.rk-diag-tag {
    background: var(--rk-err-red);
    color: #ffffff;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-diag-cost {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-err-dark);
}

.rk-diag-text {
    font-size: 16px;
    color: var(--rk-err-dark);
    font-weight: 700;
    line-height: 1.6;
    margin: 0 0 20px 0;
}

/* Nowa sekcja pod długi ogon SEO */
.rk-diag-seo-box {
    background: #f8fafc;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--rk-err-border);
    flex-grow: 1;
}

.rk-diag-subtitle {
    font-size: 13px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-diag-seo-text {
    font-size: 14.5px;
    color: var(--rk-err-text);
    line-height: 1.7;
    margin: 0;
}

.rk-diag-seo-text strong {
    color: var(--rk-err-dark);
}

/* Ochrona przed skokami podczas animacji JS */
.anim-wrapper {
    transition: opacity 0.3s ease;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-content { padding: 30px 25px; }
    .rk-err-interactive { grid-template-columns: 1fr; }
    .rk-err-menu { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 25px; }
    .rk-err-dashboard { padding: 25px; }
    .rk-diag-header { flex-direction: column; align-items: flex-start; gap: 10px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy-pasywne",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Najczęstsze błędy w projektowaniu ogrzewania dla domów pasywnych",
    "description": "Zestawienie 6 kosztownych błędów w instalacjach płaszczyznowych: przewymiarowanie pomp ciepła, brak projektów hydraulicznych, mostki termiczne, błędna krzywa grzewcza, zła izolacja na gruncie i niewłaściwe panele.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-bledy",
    "name": "Szczegółowa Analiza 6 Krytycznych Błędów Projektowych",
    "description": "Baza danych analizująca skutki finansowe i termodynamiczne w przypadku odstępstw od normy projektowej w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak uniknąć taktowania pompy ciepła",
      "przewymiarowanie ogrzewania podłogowego skutki",
      "brak projektu podłogówki konsekwencje",
      "jak poprawnie wykonać izolację brzegową dylatację",
      "za wysoka temperatura na piecu do podłogówki",
      "ile styropianu pod ogrzewanie podłogowe na gruncie",
      "jakie panele na ogrzewanie podłogowe w domu pasywnym"
    ],
    "measurementTechnique": "Analiza awaryjności systemów hydraulicznych (szumy, taktowanie sprężarki) oraz termowizyjna detekcja strat ciepła na dylatacjach brzegowych i posadzkach na gruncie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Pompa 8 kW zamiast 3 kW. Skutek: Taktowanie i zniszczenie sprężarki.",
        "Błąd 2: Układanie rur co 10 cm na oko. Skutek: Brak możliwości rotametrowania i szumy w instalacji.",
        "Błąd 3: Brak dylatacji brzegowej. Skutek: Liniowe mostki termiczne i utrata 15-20% energii.",
        "Błąd 4: Krzywa grzewcza 35-40°C. Skutek: Ekstremalne przegrzewanie i dyskomfort termiczny.",
        "Błąd 5: Zbyt cienki styropian na gruncie (np. 10 cm). Skutek: Ucieczka energii do gruntu.",
        "Błąd 6: Panele o wysokim oporze cieplnym. Skutek: Blokada termiczna i konieczność podnoszenia zasilania pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-bledy",
    "name": "Wizualizator Awarii i Błędów (Karta Diagnostyczna)",
    "description": "Interaktywna aplikacja diagnostyczna szczegółowo analizująca skutki 6 najczęstszych błędów instalacyjnych w domach pasywnych wraz z zaleceniami optymalizacyjnymi długiego ogona.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-err-container" id="error-scanner-app">
    
    <div class="rk-err-content">
        <h2>Najczęstsze błędy w projektowaniu dla domów pasywnych</h2>
        <p class="rk-err-desc">
            Błędy w standardzie pasywnym są bezlitośnie kosztowne, ponieważ tak zaizolowany budynek nie "wybacza" nadmiaru energii. Od <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">braku dokumentacji technicznej</a> po zły dobór mocy źródła ciepła – poznaj sześć pułapek, które mogą zrujnować Twoją inwestycję i komfort życia.
        </p>
    </div>

    <div class="rk-err-interactive">
        
        <!-- Panel Wyboru Błędów -->
        <div class="rk-err-menu">
            <h3>Skaner Diagnostyczny</h3>
            
            <button class="rk-err-btn active" data-err="1">
                <div class="rk-err-num">1</div>
                <div class="rk-err-title">Przewymiarowanie pompy ciepła</div>
            </button>
            
            <button class="rk-err-btn" data-err="2">
                <div class="rk-err-num">2</div>
                <div class="rk-err-title">Brak projektu hydraulicznego</div>
            </button>
            
            <button class="rk-err-btn" data-err="3">
                <div class="rk-err-num">3</div>
                <div class="rk-err-title">Niewłaściwa izolacja krawędziowa</div>
            </button>
            
            <button class="rk-err-btn" data-err="4">
                <div class="rk-err-num">4</div>
                <div class="rk-err-title">Zbyt wysoka temperatura zasilania</div>
            </button>

            <!-- Nowe buttony (Długi Ogon SEO) -->
            <button class="rk-err-btn" data-err="5">
                <div class="rk-err-num">5</div>
                <div class="rk-err-title">Zbyt cienka izolacja na gruncie</div>
            </button>

            <button class="rk-err-btn" data-err="6">
                <div class="rk-err-num">6</div>
                <div class="rk-err-title">Niewłaściwy dobór okładziny podłogowej</div>
            </button>
        </div>

        <!-- Prawy Panel - Zoptymalizowany pod Tekst / SEO -->
        <div class="rk-err-dashboard">
            <div class="rk-diag-card">
                <div class="anim-wrapper" id="diag-wrapper">
                    <div class="rk-diag-header">
                        <div class="rk-diag-tag" id="diag-tag">ZAGROŻENIE AWARIĄ</div>
                        <div class="rk-diag-cost" id="diag-cost">Straty: 15 000 PLN+</div>
                    </div>
                    
                    <p class="rk-diag-text" id="diag-text">
                        Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.
                    </p>

                    <div class="rk-diag-seo-box">
                        <h4 class="rk-diag-subtitle">Analiza techniczna i skutki</h4>
                        <p class="rk-diag-seo-text" id="diag-seo-text">
                            Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft) bez H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('error-scanner-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Skanera Błędów Instalacyjnych należy do Projekt-Ogrzewania.pl.<br>Kopiowanie i wykorzystywanie bez zgody jest zabronione.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Baza danych błędów z tekstami pod długi ogon (SEO)
    const errorData = {
        "1": {
            tag: "ZAGROŻENIE AWARIĄ",
            cost: "Koszty: 15 000 PLN+",
            text: "Montaż <a href='https://projekt-ogrzewania.pl/pompa-ciepla/' style='color:var(--rk-err-red); text-decoration:underline;'>pompy ciepła</a> o mocy 8 kW w domu potrzebującym zaledwie 3 kW prowadzi do taktowania sprężarki i jej zniszczenia w ciągu 3-4 lat.",
            seoText: "Zastanawiasz się <strong>jak uniknąć taktowania pompy ciepła</strong>? Kluczem jest rzetelne przeliczenie OZC. Skutki przewymiarowania pompy ciepła w domu pasywnym są fatalne – urządzenie generuje za dużo energii w zbyt krótkim czasie, co zmusza automatykę do ciągłego odcinania zasilania. Precyzyjny <strong>dobór mocy pompy do OZC</strong> eliminuje ten problem, wydłużając żywotność sprężarki i drastycznie obniżając roczne koszty rachunków za prąd."
        },
        "2": {
            tag: "BŁĄD HYDRAULICZNY",
            cost: "Szumy i dyskomfort",
            text: "Brak projektu sprawia, że instalatorzy kładą rury \"na oko\" (najczęściej co 10 cm wszędzie). Skutkuje to ogromnymi oporami i brakiem możliwości regulacji na rozdzielaczu.",
            seoText: "Jakie są główne <strong>konsekwencje braku projektu ogrzewania podłogowego</strong>? Inwestorzy często pytają, <strong>dlaczego podłogówka szumi</strong>. Wynika to z faktu, że zbyt gęsty rozstaw rur co 10 cm w małych pomieszczeniach wymusza stosowanie dławienia, a to zaburza hydraulikę całego układu. Brak projektu uniemożliwia wyliczenie oporów, przez co nie wiesz, <strong>jak zrównoważyć przepływy na rotametrach</strong>. Efektem jest przegrzana sypialnia i niedogrzana łazienka."
        },
        "3": {
            tag: "MOSTKI TERMICZNE",
            cost: "Straty energii: 15-20%",
            text: "Brak lub złe wykonanie izolacji brzegowej przy ścianach zewnętrznych w domu pasywnym generuje potężne liniowe mostki termiczne.",
            seoText: "Brak wiedzy o tym, <strong>jak poprawnie wykonać dylatację brzegową</strong> podłogówki, to prosta droga do wyrzucania pieniędzy w błoto. Płyta grzewcza musi pracować pracować swobodnie. Zbyt cienka <strong>pianka brzegowa do podłogówki</strong> sprawia, że wylewka dotyka muru, co tworzy <strong>mostki termiczne przy ścianach zewnętrznych</strong>. Ciepło z posadzki ucieka wprost w fundamenty, drastycznie podnosząc straty energetyczne budynku i niwecząc cały nakład pracy na ocieplenie pasywne."
        },
        "4": {
            tag: "KRYTYCZNE PRZEGRZEWANIE",
            cost: "Dyskomfort termiczny",
            text: "Ustawienie krzywej grzewczej na poziomie typowym dla budynków starszych (np. 35-40°C) powoduje, że podłoga staje się gorąca i nieprzyjemna.",
            seoText: "W budownictwie energooszczędnym <strong>za wysoka temperatura zasilania podłogówki</strong> daje natychmiastowe objawy – podłoga wręcz parzy, a powietrze staje się przesuszone. Kluczowe jest pytanie, <strong>jaka krzywa grzewcza do domu pasywnego</strong> jest odpowiednia? Prawidłowo zaprojektowany system powinien pracować na parametrach nie wyższych niż 28-32°C. Jeśli ignorujemy te wartości, <strong>przegrzewanie pomieszczeń z pompą ciepła</strong> staje się codziennością, a nasza instalacja działa ze zrujnowanym współczynnikiem wydajności COP."
        },
        "5": {
            tag: "STRATY DO GRUNTU",
            cost: "Ciągła ucieczka energii",
            text: "Zastosowanie standardowych 10-15 cm styropianu pod wylewką na gruncie w domu pasywnym powoduje stałą ucieczkę ciepła w dół, zamiast do wnętrza budynku.",
            seoText: "Błędem o nieodwracalnych skutkach na etapie stanu surowego jest ignorowanie tego, <strong>ile styropianu pod ogrzewanie podłogowe na gruncie</strong> należy ułożyć w standardzie energooszczędnym. W domach pasywnych absolutnym minimum jest 20-25 cm izolacji o bardzo niskim współczynniku przewodzenia ciepła. Zbyt cienki <strong>styropian podłogowy EPS 100 lub EPS 200</strong> sprawia, że pompa ciepła zamiast w pełni ogrzewać salon, bezproduktywnie ogrzewa fundamenty i ziemię pod budynkiem. To bezpośrednio przekłada się na wyższe <strong>koszty ogrzewania pompą ciepła zimą</strong>."
        },
        "6": {
            tag: "BLOKADA TERMICZNA",
            cost: "Spadek wydajności układu",
            text: "Położenie grubych paneli z podkładem o wysokim oporze cieplnym w domu pasywnym sprawia, że przy zasilaniu rzędu 30°C ciepło nie przebije się efektywnie do pomieszczenia.",
            seoText: "Wybierając materiały wykończeniowe do salonu czy sypialni, inwestorzy często pytają, <strong>jakie panele na ogrzewanie podłogowe w domu pasywnym</strong> będą najlepsze. Zastosowanie okładziny o łącznym oporze cieplnym powyżej 0,15 (m²·K)/W drastycznie obniża efektywność całego systemu hydraulicznego. Aby zachować niską temperaturę zasilania pompy ciepła (co warunkuje jej najwyższy wskaźnik COP), należy wybierać <strong>panele winylowe SPC na podłogówkę</strong> lub klasyczne płytki ceramiczne. Zbyt gruby, gąbczasty <strong>podkład pod panele na ogrzewanie podłogowe</strong> zadziała jak niechciany izolator, zmuszając pompę do nieekonomicznej pracy na wyższych parametrach i zwiększając zużycie prądu."
        }
    };

    // 3. Logika zmiany treści
    const btns = document.querySelectorAll('.rk-err-btn');
    const diagWrapper = document.getElementById('diag-wrapper');
    const diagTag = document.getElementById('diag-tag');
    const diagCost = document.getElementById('diag-cost');
    const diagText = document.getElementById('diag-text');
    const diagSeoText = document.getElementById('diag-seo-text');

    function updateDashboard(errId) {
        // Płynne zniknięcie sekcji
        diagWrapper.style.opacity = '0';

        setTimeout(() => {
            // Podmiana danych
            const data = errorData[errId];
            diagTag.textContent = data.tag;
            diagCost.textContent = data.cost;
            diagText.innerHTML = data.text;
            diagSeoText.innerHTML = data.seoText;

            // Pojawienie się tekstu
            diagWrapper.style.opacity = '1';
        }, 200);
    }

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Unikaj przeładowania, jeśli kliknięto w ten sam przycisk
            if(this.classList.contains('active')) return;

            // Zmiana stanu przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktualizacja
            const errId = this.getAttribute('data-err');
            updateDashboard(errId);
        });
    });
});
</script>



<style>
:root {
    --rk-imp-dark: #0f172a;
    --rk-imp-brand: #0284c7;
    --rk-imp-brand-light: #f0f9ff;
    --rk-imp-accent: #38bdf8;
    --rk-imp-warn: #f59e0b;
    --rk-imp-eco: #10b981;
    --rk-imp-red: #ef4444;
    --rk-imp-border: #e2e8f0;
    --rk-imp-text: #475569;
    --rk-imp-bg: #ffffff;
}

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

/* Część Tekstowa / SEO */
.rk-imp-content {
    padding: 45px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
    border-bottom: 1px solid var(--rk-imp-border);
}

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

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

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

.rk-imp-desc a {
    color: var(--rk-imp-brand);
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 #bae6fd;
    transition: all 0.3s;
}

.rk-imp-desc a:hover {
    background: var(--rk-imp-brand-light);
    box-shadow: inset 0 -10px 0 #bae6fd;
}

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

.rk-imp-box {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 12px;
}

.rk-imp-box h4 {
    margin: 0 0 10px 0;
    color: var(--rk-imp-brand);
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

/* Interaktywny Symulator */
.rk-imp-interactive {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 40px;
    background: #ffffff;
}

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

.rk-imp-controls h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-ctrl-group {
    background: #f8fafc;
    border: 1px solid var(--rk-imp-border);
    padding: 20px;
    border-radius: 16px;
}

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

.rk-ctrl-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-imp-text);
}

.rk-ctrl-val {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-imp-warn);
}

/* Suwaki i Toggla */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}
.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    border: 4px solid var(--rk-imp-warn);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transition: transform 0.1s;
}
.rk-slider::-webkit-slider-thumb:active { transform: scale(1.1); }

/* Switch Toggle */
.rk-switch-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.rk-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: #cbd5e1;
    border-radius: 30px;
    cursor: pointer;
    transition: background 0.3s;
}
.rk-switch.active { background: var(--rk-imp-warn); }
.rk-switch-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: #fff;
    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-switch.active .rk-switch-knob { transform: translateX(26px); }

/* Dashboard SVG + Wyniki */
.rk-imp-dashboard {
    display: flex;
    gap: 30px;
}

.rk-svg-room {
    flex: 1;
    background: #f1f5f9;
    border-radius: 16px;
    border: 1px dashed var(--rk-imp-border);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.rk-svg-rotameter {
    width: 100px;
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-rota-title {
    font-size: 10px;
    font-weight: 800;
    color: var(--rk-imp-text);
    text-transform: uppercase;
    margin-bottom: 10px;
    text-align: center;
}

/* Animacje SVG */
.anim-person { transition: opacity 0.3s ease; }
.anim-tv { transition: fill 0.3s ease, filter 0.3s ease; }
.anim-heat-glow { transition: opacity 0.3s ease, r 0.3s ease; }
.anim-float { transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }

/* Kafelki Wynikowe */
.rk-result-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 20px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-imp-border);
    padding: 15px;
    border-radius: 12px;
}
.rk-metric-card.highlight {
    border-color: var(--rk-imp-eco);
    background: #ecfdf5;
}

.rk-metric-card h5 { margin: 0 0 5px 0; font-size: 11px; color: var(--rk-imp-text); text-transform: uppercase; }
.rk-metric-card .val { font-size: 22px; font-weight: 900; color: var(--rk-imp-dark); }
.rk-metric-card.highlight .val { color: var(--rk-imp-eco); }

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

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

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-imp-brand);
    color: #ffffff !important;
    padding: 18px 36px;
    border-radius: 14px;
    font-size: 18px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.5);
    transition: all 0.3s;
    border: 2px solid transparent;
}

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

@media (max-width: 768px) {
    .rk-imp-content, .rk-imp-interactive, .rk-imp-cta-box { padding: 30px 25px; }
    .rk-imp-grid-text { grid-template-columns: 1fr; }
    .rk-imp-interactive { grid-template-columns: 1fr; gap: 30px; }
    .rk-imp-dashboard { flex-direction: column; }
    .rk-svg-rotameter { width: 100%; flex-direction: row; justify-content: space-around; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-wplyw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak dom pasywny wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dlaczego wskaźniki W/m2 'z sufitu' niszczą instalację. Analiza zysków bytowych, precyzyjnych przepływomierzy i doboru energooszczędnej pompy obiegowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-wplyw",
    "name": "Zestawienie Zysków Bytowych i Oporów Hydraulicznych",
    "description": "Baza danych określająca wpływ aktywności domowników na realne obciążenie cieplne oraz wymagany przepływ czynnika grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na ciepło dla każdego pomieszczenia",
      "zyski ciepła od nasłonecznienia dom pasywny",
      "precyzyjne przepływomierze podłogówki",
      "kalkulator doboru pompy obiegowej",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Dynamiczna estymacja spadku zapotrzebowania grzewczego (W) w oparciu o sumowanie zysków od ludzi (100W/osoba) i elektroniki domowej, redukująca wymagany przepływ na rotametrach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC: W domu pasywnym 3 osoby i telewizor generują ~500W, pokrywając do 50% zapotrzebowania.",
        "Hydraulika: Niskie zapotrzebowanie wymusza rotametry o małym zakresie 0,5–2,5 l/min.",
        "Pompa obiegowa: Konieczność precyzyjnego doboru, aby zużycie prądu P < 20-30 W."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-wplyw",
    "name": "Symulator Bilansu Pasywnego i Hydrauliki",
    "description": "Interaktywne narzędzie wizualizujące, jak zyski ciepła od ludzi i elektroniki automatycznie dławią potrzebę grzewczą podłogi i obniżają przepływ wskaźnika na rotametrze.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript, SVG",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-imp-container" id="impact-simulator-app">
    
    <div class="rk-imp-content">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-imp-desc">
            Projektowanie dla domu pasywnego wymusza całkowitą zmianę podejścia do OZC. Nie można posługiwać się wskaźnikami W/m² wyciągniętymi "z sufitu". Projektant musi otrzymać <strong>wyniki obliczeń <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">zapotrzebowania na ciepło dla każdego pomieszczenia</a> z osobna</strong>. W przeciwnym razie system będzie skazany na porażkę.
        </p>

        <div class="rk-imp-grid-text">
            <div class="rk-imp-box">
                <h4>Zyski Bytowe w OZC</h4>
                <p>W <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">obliczeniach OZC</a> musimy uwzględniać zyski od nasłonecznienia i urządzeń. W domu pasywnym 3 osoby i włączony telewizor to już ~500 W darmowej mocy grzewczej, co może pokryć nawet 50% zapotrzebowania w danym momencie!</p>
            </div>
            <div class="rk-imp-box">
                <h4>Precyzja Hydrauliczna</h4>
                <p>Niska moc to mały przepływ. Projektant musi wyliczyć opory tak, aby stosować <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">precyzyjne przepływomierze podłogówki</a> (zakres 0,5–2,5 l/min). Niezbędny jest też ścisły <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>, by jej pobór prądu nie przekraczał 20-30 W.</p>
            </div>
        </div>
    </div>

    <div class="rk-imp-interactive">
        
        <!-- Panel Kontrolny -->
        <div class="rk-imp-controls">
            <h3>Symuluj Zyski Pasywne</h3>
            
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Liczba osób w salonie</span>
                    <span class="rk-ctrl-val"><span id="val-people">0</span></span>
                </div>
                <input type="range" min="0" max="4" step="1" value="0" class="rk-slider" id="slider-people">
                <div style="font-size:11px; color:#94a3b8; margin-top:8px;">1 osoba = ~100W zysku</div>
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Telewizor / Elektronika</span>
                    <span class="rk-ctrl-val" id="val-tv-text" style="color:#94a3b8;">Wyłączone</span>
                </div>
                <div class="rk-switch-wrap">
                    <span style="font-size:12px; color:#64748b;">(~200W zysku)</span>
                    <div class="rk-switch" id="toggle-tv">
                        <div class="rk-switch-knob"></div>
                    </div>
                </div>
            </div>

            <div class="rk-result-metrics">
                <div class="rk-metric-card highlight">
                    <h5>Darmowe Zyski</h5>
                    <div class="val">+<span id="out-gains">0</span> W</div>
                </div>
                <div class="rk-metric-card">
                    <h5>Wymagana Moc Posadzki</h5>
                    <div class="val"><span id="out-power">1000</span> W</div>
                </div>
            </div>
        </div>

        <!-- Dashboard SVG -->
        <div class="rk-imp-dashboard">
            <!-- Pokój SVG -->
            <div class="rk-svg-room">
                <svg viewBox="0 0 200 200" style="width:100%; height:auto;">
                    <!-- Pokój -->
                    <rect x="10" y="10" width="180" height="180" fill="none" stroke="#cbd5e1" stroke-width="4" rx="8"/>
                    <!-- Łuna ciepła -->
                    <circle cx="100" cy="100" r="0" fill="rgba(245, 158, 11, 0.15)" id="svg-heat-glow" class="anim-heat-glow"/>
                    
                    <!-- Telewizor -->
                    <rect x="70" y="20" width="60" height="10" fill="#475569" rx="2"/>
                    <rect x="60" y="30" width="80" height="40" fill="#94a3b8" rx="4" id="svg-tv" class="anim-tv"/>
                    
                    <!-- Ludziki (4 sztuki ukryte domyślnie) -->
                    <g fill="#475569" id="person-1" class="anim-person" opacity="0">
                        <circle cx="50" cy="130" r="10"/>
                        <rect x="40" y="145" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-2" class="anim-person" opacity="0">
                        <circle cx="85" cy="140" r="10"/>
                        <rect x="75" y="155" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-3" class="anim-person" opacity="0">
                        <circle cx="120" cy="135" r="10"/>
                        <rect x="110" y="150" width="20" height="30" rx="4"/>
                    </g>
                    <g fill="#475569" id="person-4" class="anim-person" opacity="0">
                        <circle cx="155" cy="145" r="10"/>
                        <rect x="145" y="160" width="20" height="30" rx="4"/>
                    </g>
                </svg>
            </div>

            <!-- Rotametr SVG -->
            <div class="rk-svg-rotameter">
                <div class="rk-rota-title">Rotametr<br>(Przepływ)</div>
                <svg viewBox="0 0 60 160" style="height:140px;">
                    <!-- Rurka -->
                    <path d="M 20 20 L 40 20 L 35 140 L 25 140 Z" fill="#f1f5f9" stroke="#94a3b8" stroke-width="2"/>
                    <!-- Skala -->
                    <line x1="15" y1="30" x2="20" y2="30" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="60" x2="20" y2="60" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="90" x2="20" y2="90" stroke="#64748b" stroke-width="1.5"/>
                    <line x1="15" y1="120" x2="20" y2="120" stroke="#64748b" stroke-width="1.5"/>
                    <text x="5" y="34" font-size="10" fill="#64748b">2.5</text>
                    <text x="5" y="124" font-size="10" fill="#64748b">0.5</text>
                    
                    <!-- Pływak -->
                    <g id="svg-float" class="anim-float" transform="translate(0, 0)">
                        <polygon points="22,30 38,30 35,40 25,40" fill="#ef4444"/>
                    </g>
                </svg>
                <div style="font-size:14px; font-weight:900; color:var(--rk-imp-dark); margin-top:10px;">
                    <span id="out-flow">2.5</span> <span style="font-size:10px;">l/min</span>
                </div>
            </div>
        </div>
    </div>

    <!-- MOCNE CTA -->
    <div class="rk-imp-cta-box">
        <h3>Nie zgaduj. Powierz OZC inżynierom.</h3>
        <p>
            Błędy w obliczeniach zapotrzebowania i hydrauliki kosztują dziesiątki tysięcy złotych po wylaniu posadzki. Wybierz rozwiązanie, które gwarantuje bezpieczeństwo i najwyższy współczynnik COP dla Twojej pompy ciepła.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT OGRZEWANIA
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez tagów H
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('impact-simulator-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ SYSTEM SECURED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Błąd licencji: Nieautoryzowana domena.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Kod Symulatora Bilansu należy do Projekt-Ogrzewania.pl. Wykonanie przerwane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const sliderPeople = document.getElementById('slider-people');
    const toggleTv = document.getElementById('toggle-tv');
    
    // UI Values
    const valPeople = document.getElementById('val-people');
    const valTvText = document.getElementById('val-tv-text');
    const outGains = document.getElementById('out-gains');
    const outPower = document.getElementById('out-power');
    const outFlow = document.getElementById('out-flow');
    
    // SVG Elements
    const svgTv = document.getElementById('svg-tv');
    const svgHeatGlow = document.getElementById('svg-heat-glow');
    const svgFloat = document.getElementById('svg-float');
    const persons = [
        document.getElementById('person-1'),
        document.getElementById('person-2'),
        document.getElementById('person-3'),
        document.getElementById('person-4')
    ];

    let isTvOn = false;
    const basePower = 1000; // Bazowe zapotrzebowanie salonu W
    const maxFlow = 2.5; // Max l/min
    const minFlow = 0.5; // Min l/min

    function updateSimulation() {
        const peopleCount = parseInt(sliderPeople.value);
        valPeople.textContent = peopleCount;

        // Obliczanie zysków
        const peopleGain = peopleCount * 100; // 100W na osobę
        const tvGain = isTvOn ? 200 : 0; // 200W z TV
        const totalGain = peopleGain + tvGain;

        // Zapotrzebowanie (nie mniej niż 0)
        let reqPower = basePower - totalGain;
        if (reqPower < 0) reqPower = 0;

        outGains.textContent = totalGain;
        outPower.textContent = reqPower;

        // Obliczanie Przepływu (Liniowa interpolacja)
        // Jeśli reqPower = 1000 -> 2.5 l/min
        // Jeśli reqPower = 0 -> 0.0 l/min (ale dla rotametru min to 0.5)
        let flow = (reqPower / basePower) * maxFlow;
        if (flow < minFlow) flow = minFlow;
        outFlow.textContent = flow.toFixed(1);

        // --- Aktualizacja SVG ---
        
        // 1. Ludzie (pojawiają się)
        persons.forEach((p, index) => {
            p.style.opacity = index < peopleCount ? '1' : '0';
            p.style.fill = index < peopleCount ? 'var(--rk-imp-warn)' : '#475569';
        });

        // 2. TV
        if (isTvOn) {
            svgTv.style.fill = '#fde047'; // Jasny ekran
            svgTv.style.filter = 'drop-shadow(0 0 10px rgba(253, 224, 71, 0.8))';
            valTvText.textContent = "Włączone";
            valTvText.style.color = "var(--rk-imp-warn)";
        } else {
            svgTv.style.fill = '#94a3b8'; // Zgaszony
            svgTv.style.filter = 'none';
            valTvText.textContent = "Wyłączone";
            valTvText.style.color = "#94a3b8";
        }

        // 3. Łuna ciepła
        // R zależy od totalGain (max 600W)
        const glowRadius = (totalGain / 600) * 100;
        svgHeatGlow.setAttribute('r', glowRadius);
        svgHeatGlow.style.opacity = glowRadius > 0 ? '1' : '0';

        // 4. Rotametr (Pływak)
        // translateY: 0 to góra (2.5 l/min), 90 to dół (0.5 l/min)
        // Odwrócona proporcja
        const flowPercent = (flow - minFlow) / (maxFlow - minFlow); // 1.0 = max, 0.0 = min
        const floatY = (1 - flowPercent) * 90; // max Y = 90
        svgFloat.style.transform = `translateY(${floatY}px)`;
    }

    // Nasłuchiwacze
    sliderPeople.addEventListener('input', updateSimulation);
    
    toggleTv.addEventListener('click', () => {
        isTvOn = !isTvOn;
        toggleTv.classList.toggle('active', isTvOn);
        updateSimulation();
    });

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



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #0284c7;
    --rk-quote-accent-light: #e0f2fe;
    --rk-quote-danger: #ef4444;
    --rk-quote-passive: #10b981;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

.rk-expert-wrapper {
    max-width: 950px;
    margin: 50px auto 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
}

.rk-expert-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-expert-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-quote-primary);
    margin: 0;
}

.rk-expert-container {
    background: #ffffff;
    border-radius: 24px;
    padding: 35px 40px;
    display: flex;
    gap: 30px;
    align-items: flex-start;
    border: 1px solid var(--rk-quote-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.1);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło */
.rk-expert-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 6px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-quote-accent), #38bdf8);
}

.rk-expert-container::after {
    content: '”';
    position: absolute;
    top: -20px;
    right: 20px;
    font-family: serif;
    font-size: 140px;
    color: var(--rk-quote-bg);
    line-height: 1;
    z-index: 0;
}

/* Animowane zdjęcie */
.rk-expert-photo-wrap {
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    position: relative;
    z-index: 1;
}

.rk-expert-photo-ring {
    position: absolute;
    top: -5px; left: -5px; right: -5px; bottom: -5px;
    border-radius: 50%;
    border: 2px dashed var(--rk-quote-accent);
    animation: spinRing 12s linear infinite;
}

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

.rk-expert-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 15px rgba(0,0,0,0.1);
    position: relative;
    z-index: 2;
}

.rk-expert-badge-icon {
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: var(--rk-quote-accent);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    z-index: 3;
}

/* Treść cytatu */
.rk-expert-content {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.rk-expert-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-quote-accent);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
    background: var(--rk-quote-accent-light);
    padding: 4px 12px;
    border-radius: 20px;
}

.rk-expert-text {
    font-size: 17px;
    line-height: 1.7;
    color: var(--rk-quote-primary);
    font-style: italic;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-expert-text strong {
    color: var(--rk-quote-accent);
    font-weight: 800;
}

.rk-expert-text a {
    color: var(--rk-quote-primary);
    text-decoration: underline;
    text-decoration-color: var(--rk-quote-accent);
    text-underline-offset: 3px;
    font-weight: 700;
    transition: color 0.3s;
}

.rk-expert-text a:hover {
    color: var(--rk-quote-accent);
}

.rk-expert-signature {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    border-top: 1px solid var(--rk-quote-border);
    padding-top: 15px;
    margin-top: 15px;
}

/* Interaktywny Panel Ukryty */
.rk-expert-interactive {
    margin-top: 20px;
}

.rk-expert-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    color: var(--rk-quote-primary);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-expert-btn:hover {
    border-color: var(--rk-quote-accent);
    color: var(--rk-quote-accent);
    background: var(--rk-quote-accent-light);
}

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

.rk-expert-btn.active svg {
    transform: rotate(180deg);
}

.rk-expert-data-panel {
    display: none;
    margin-top: 15px;
    padding: 20px;
    background: var(--rk-quote-bg);
    border-radius: 12px;
    border: 1px dashed var(--rk-quote-border);
    animation: fadeInDown 0.4s ease forwards;
}

.rk-expert-data-panel.active {
    display: grid;
    grid-template-columns: 100px 1fr 1fr 1fr;
    gap: 15px;
    align-items: center;
}

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

.rk-data-svg-box {
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-data-svg {
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 4px 6px rgba(16, 185, 129, 0.2));
}

.anim-pulse-target {
    transform-origin: center;
    animation: targetPulse 2s infinite alternate ease-in-out;
}

@keyframes targetPulse {
    0% { transform: scale(0.9); opacity: 0.8; stroke: var(--rk-quote-accent); }
    100% { transform: scale(1.1); opacity: 1; stroke: var(--rk-quote-passive); }
}

.rk-data-stat {
    text-align: center;
    background: #ffffff;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    border: 1px solid transparent;
    transition: border-color 0.3s;
}

.rk-data-stat:hover {
    border-color: var(--rk-quote-accent-light);
}

.rk-data-val {
    display: block;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-quote-accent);
    margin-bottom: 5px;
}

.rk-data-lab {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-expert-container { flex-direction: column; text-align: center; padding: 30px 25px; align-items: center; }
    .rk-expert-header h2 { font-size: 22px; text-align: center; }
    .rk-expert-container::before { width: 100%; height: 6px; }
    .rk-expert-data-panel.active { grid-template-columns: 1fr; }
    .rk-data-svg-box { display: none; /* Hide icon on small mobile to save space */ }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Ekspercki punkt widzenia: Precyzja w standardzie pasywnym",
    "description": "Opinia inżyniera HVAC na temat konsekwencji braku rzetelnych obliczeń OZC i projektowania instalacji ogrzewania podłogowego na oko w budownictwie pasywnym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur 'na oko' to absolutna gwarancja przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Jeśli opierasz się na zgadywaniu, zamiast zamówić rzetelny projekt, niszczysz cały sens finansowy energooszczędnej inwestycji.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-cytat",
    "name": "Krytyczne parametry projektowe dla podłogówki pasywnej",
    "description": "Zestawienie inżynierskich wartości bazowych wymaganych do zachowania stabilności termicznej w budownictwie o ekstremalnie niskim zapotrzebowaniu na energię.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie cieplne domu pasywnego W/m2",
      "skutki braku projektu ogrzewania podłogowego",
      "projekt z obliczeniami OZC a projekt z głowy",
      "taktowanie pompy ciepła w nowym domu",
      "optymalny rozstaw rur 15-20 cm"
    ],
    "measurementTechnique": "Określenie krytycznych limitów mocy i przepływu zapobiegających przegrzewaniu izolowanych brył budynków.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie (q): Poniżej 15 W/m2",
        "Rozstaw rur bazowy: Od 15 cm do 20 cm",
        "Temperatura zasilania: Maksymalnie 28 - 32°C"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-cytat",
    "name": "Interaktywny Panel Ekspercki: Parametry Pasywne",
    "description": "Interfejs rozwijany przez użytkownika wyświetlający twarde dane liczbowe wynikające z norm i obliczeń OZC przytoczonych przez inżyniera.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-expert-wrapper" id="rk-expert-quote-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
        <h3>Ekspercki punkt widzenia</h3>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski, Inżynier HVAC" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                Ostrzeżenie przed "Instalatorską Intuicją"
            </span>
            <p class="rk-expert-text">
                "Budownictwo pasywne nie wybacza inżynierskiej arogancji. Kopiowanie schematów ze starych domów i układanie rur w gęstym rozstawie to absolutna gwarancja nieznośnego przegrzewania pomieszczeń oraz morderczego taktowania pompy ciepła. Zastanawiasz się, <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">ile możesz stracić na błędach robiąc projekt z głowy</a>? Jeśli nie opierasz swojego systemu na <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">rzetelnym projekcie ogrzewania z wyliczeniem OZC</a> do jednego Wata, niszczysz cały finansowy i technologiczny sens energooszczędnej inwestycji."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtn">
                    Rozwiń parametry krytyczne
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanel">
                    <div class="rk-data-svg-box">
                        <svg class="rk-data-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
                            <circle cx="12" cy="12" r="10" class="anim-pulse-target"></circle>
                            <circle cx="12" cy="12" r="6"></circle>
                            <circle cx="12" cy="12" r="2"></circle>
                        </svg>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-passive);">&lt; 15 W/m²</span>
                        <span class="rk-data-lab">Max. Zapotrzebowanie</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">15 - 20 cm</span>
                        <span class="rk-data-lab">Optymalny Rozstaw</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-danger);">32 °C</span>
                        <span class="rk-data-lab">Krytyczne Zasilanie</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Parametry graniczne weryfikacji (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Zapotrzebowanie na moc: Poniżej 15 W/m²</li>
                <li>Optymalny rozstaw rur: Od 15 cm do 20 cm</li>
                <li>Krytyczna maksymalna temperatura zasilania: 32 °C</li>
            </ul>
        </div>
    </noscript>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi - brak nagłówków H-tagów w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-quote-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fef2f2; color: #dc2626; border-radius: 20px; border: 2px dashed #ef4444;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #7f1d1d;">Cytat inżynierski jest chroniony prawem autorskim serwisu Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            // Usuwamy resztę styli z kontenera by nie zepsuć wyglądu komunikatu
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

    // 2. Interakcja z panelem danych
    const toggleBtn = document.getElementById('toggleDataBtn');
    const dataPanel = document.getElementById('expertDataPanel');

    if (toggleBtn && dataPanel) {
        toggleBtn.addEventListener('click', function() {
            this.classList.toggle('active');
            dataPanel.classList.toggle('active');
            
            if(this.classList.contains('active')) {
                this.innerHTML = `Zwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Rozwiń parametry krytyczne <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-brand: #0284c7;
    --rk-cs-accent: #38bdf8;
    --rk-cs-passive: #10b981; /* Kolor sukcesu/pasywny */
    --rk-cs-standard: #f59e0b; /* Kolor ostrzegawczy/standard */
    --rk-cs-cold: #3b82f6; /* Zima/Móz */
    --rk-cs-bg: #ffffff;
    --rk-cs-panel: #f8fafc;
    --rk-cs-border: #cbd5e1;
    --rk-cs-text: #475569;
}

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

.rk-cs-wrapper * {
    box-sizing: inherit;
}

/* ================= HEADER I METRYCZKA ================= */
.rk-cs-header {
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
    padding: 45px 50px 35px;
    position: relative;
}

.rk-cs-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: radial-gradient(circle at 90% 10%, rgba(56, 189, 248, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.rk-cs-badge {
    display: inline-block;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    color: var(--rk-cs-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
}

.rk-cs-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 30px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-cs-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.rk-cs-stat-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 18px 20px;
    border-radius: 14px;
    backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
}

.rk-cs-stat-item span.label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.rk-cs-stat-item span.value {
    font-size: 18px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.rk-cs-body {
    padding: 40px 50px 10px;
    background: #ffffff;
}

.rk-cs-story {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-cs-text);
    margin: 0 0 25px 0;
}

.rk-cs-story a {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

.rk-cs-story a:hover {
    background: #e0f2fe;
    border-color: var(--rk-cs-brand);
}

.rk-cs-author {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    border: 1px solid var(--rk-cs-border);
    padding: 15px 25px;
    border-radius: 100px;
    margin-bottom: 30px;
}

.rk-cs-author img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.rk-cs-author-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.4;
}

.rk-cs-author-info strong {
    color: var(--rk-cs-dark);
    font-weight: 800;
    display: block;
    font-size: 15px;
}

/* ================= SYMULATOR INTERAKTYWNY ================= */
.rk-cs-interactive {
    padding: 0 50px 45px;
}

.rk-sim-box {
    background: var(--rk-cs-panel);
    border: 1px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 30px;
}

.rk-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 20px;
}

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

/* Toggle App Style */
.rk-toggle-app {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
    width: 300px; /* Sztywna szerokość dla stabilności */
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 10px 15px;
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap; /* Zabezpieczenie przed łamaniem tekstu */
}

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

.rk-toggle-slider {
    position: absolute;
    top: 4px;
    left: 4px;
    height: calc(100% - 8px);
    width: calc(50% - 4px);
    background: var(--rk-cs-passive);
    border-radius: 8px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background 0.4s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

/* Dashboard SVG i Wyniki */
.rk-sim-dashboard {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 1.2fr;
    gap: 25px;
    align-items: stretch;
}

/* SVG Animacje */
.rk-svg-viewport {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    justify-content: center;
    align-items: center;
}

.svg-snow { fill: #bae6fd; animation: snowfall linear infinite; }
.svg-heat-loss { fill: none; stroke-linecap: round; stroke-width: 4; transition: opacity 0.5s, stroke 0.5s; }

/* Stan: Pasywny */
.state-passive .svg-heat-loss { stroke: var(--rk-cs-passive); opacity: 0.2; animation: floatUp 3s infinite ease-in-out; }
.state-passive .svg-wall { stroke: var(--rk-cs-passive); stroke-width: 8; transition: stroke-width 0.5s; }
.state-passive .svg-therm-fill { fill: var(--rk-cs-passive); height: 60px; y: 40; transition: all 0.5s; }

/* Stan: Standard */
.state-standard .svg-heat-loss { stroke: var(--rk-cs-standard); opacity: 1; animation: floatUp 1s infinite ease-in-out; }
.state-standard .svg-wall { stroke: #94a3b8; stroke-width: 4; transition: stroke-width 0.5s; }
.state-standard .svg-therm-fill { fill: var(--rk-cs-standard); height: 90px; y: 10; transition: all 0.5s; }

@keyframes snowfall {
    0% { transform: translateY(-20px); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(120px); opacity: 0; }
}

@keyframes floatUp {
    0% { transform: translateY(10px); }
    100% { transform: translateY(-20px); }
}

/* Wyniki (Kafelki) - PANZER CSS (Zabezpieczone przed globalnymi stylami motywu) */
.rk-sim-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 16px 20px;
    border-radius: 14px;
    transition: border-color 0.3s;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.rk-metric-card h4 {
    margin: 0 0 6px 0;
    font-size: 11px;
    color: var(--rk-cs-text);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.3;
    word-break: normal;
}

.rk-metric-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cs-dark);
    margin: 0 0 4px 0;
    line-height: 1.1;
    white-space: nowrap; /* Zapobiega łamaniu wartości */
}

.rk-metric-sub {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
}

.val-highlight { transition: color 0.3s; }
.state-passive .val-highlight { color: var(--rk-cs-passive); }
.state-standard .val-highlight { color: var(--rk-cs-standard); }

/* Responsywność */
@media (max-width: 768px) {
    .rk-cs-header { padding: 35px 25px; }
    .rk-cs-stats { grid-template-columns: 1fr 1fr; }
    .rk-cs-body { padding: 30px 25px 10px; }
    .rk-cs-interactive { padding: 0 25px 35px; }
    .rk-sim-box { padding: 20px; }
    .rk-sim-header { flex-direction: column; gap: 15px; align-items: stretch; text-align: center; }
    .rk-toggle-app { width: 100%; display: flex; }
    .rk-sim-dashboard { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 480px) {
    .rk-sim-metrics { grid-template-columns: 1fr; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU"
    },
    "headline": "Case Study: Optymalizacja ogrzewania podłogowego w domu pasywnym (Zakopane)",
    "description": "Inżynieryjna analiza projektu instalacji podłogowej w domu pasywnym w Zakopanem. Zastosowanie pompy ciepła monoblok 3,5 kW, rur PERT i rozstawu 20 cm zaowocowało kosztem 640 PLN rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#dataset-casestudy",
    "name": "Wyniki OZC i Koszty Eksploatacji - Dom Pasywny Zakopane 2025",
    "description": "Zestawienie parametrów wejściowych i wyników eksploatacyjnych dla budynku o pow. 162m2 zlokalizowanego w III strefie klimatycznej (-20°C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania pompą ciepła w górach",
      "projekt podłogówki do domu pasywnego",
      "średnia temperatura zasilania podłogówki",
      "rozstaw rur 20 cm ogrzewanie podłogowe",
      "pompa ciepła monoblok 3.5 kW"
    ],
    "measurementTechnique": "Monitoring rzeczywistego zużycia energii elektrycznej pompy ciepła w sezonie grzewczym 2025/2026 w odniesieniu do projektu OZC 1,94 kW.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie na moc (OZC): 1,94 kW przy -20°C na zewnątrz.",
        "System: Pompa ciepła monoblok 3,5 kW, rura PERT/AL/PERT 16x2,0 mm.",
        "Parametry zasilania: Średnia sezonowa temperatura Tz = 27,4°C.",
        "Roczny koszt ogrzewania: 640 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/URL-ARTYKULU#webapp-casestudy",
    "name": "Symulator Efektywności Termicznej (Pasywny vs Standard)",
    "description": "Interaktywny panel zestawiający wizualnie straty ciepła i roczne koszty ogrzewania w ekstremalnych warunkach zimowych dla dwóch standardów budowlanych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-cs-wrapper" id="case-study-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">Case Study z placu budowy</div>
        <h2>Inwestycja Stanisława, Zakopane</h2>
        
        <div class="rk-cs-stats">
            <div class="rk-cs-stat-item">
                <span class="label">Termin</span>
                <span class="value">Listopad 2025</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Lokalizacja</span>
                <span class="value">Strefa III (-20°C)</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Powierzchnia</span>
                <span class="value">162 m²</span>
            </div>
            <div class="rk-cs-stat-item">
                <span class="label">Wynikowy Koszt</span>
                <span class="value" style="color: var(--rk-cs-accent);">640 PLN / rok</span>
            </div>
        </div>
    </div>

    <div class="rk-cs-body">
        <div class="rk-cs-author">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" loading="lazy">
            <div class="rk-cs-author-info">
                <strong>Robert Kucharski</strong>
                <p>Nadzór Inżynierski HVAC</p>
            </div>
        </div>

        <p class="rk-cs-story">
            W listopadzie 2025 roku zakończyłem nadzór inżynierski nad <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">projektem podłogówki do domu pasywnego</a> dla Pana Stanisława w Zakopanem. Wyzwaniem była wymagająca, III strefa klimatyczna. Budynek o powierzchni 162 m² został wykonany w rygorystycznej technologii (ściany U=0,09 W/(m²·K)). Realne zapotrzebowanie na moc grzewczą w najzimniejszym dniu zimy (-20°C) wyniosło zaledwie <strong>1,94 kW</strong> dla całego obiektu.
        </p>
        <p class="rk-cs-story">
            Zastosowaliśmy <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rurę PERT/AL/PERT</a> 16x2,0 mm w rzadkim, ale tu idealnym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstawie rur 20 cm</a> w strefach bytowych. Zintegrowaliśmy to z automatyką pogodową i <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła typu monoblok 3,5 kW</a>. Efekt? <strong>Średnia temperatura zasilania podłogówki</strong> w sezonie wyniosła zaledwie 27,4°C, co zagwarantowało <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania pompą ciepła w górach</a> na poziomie rewelacyjnych 640 PLN rocznie.
        </p>
    </div>

    <div class="rk-cs-interactive">
        <div class="rk-sim-box state-passive" id="rk-sim-container">
            
            <div class="rk-sim-header">
                <h3 class="rk-sim-title">Symulator Efektywności Termicznej</h3>
                <div class="rk-toggle-app">
                    <div class="rk-toggle-slider" id="rk-toggle-slider"></div>
                    <div class="rk-toggle-btn active" id="btn-passive">Dom Pasywny</div>
                    <div class="rk-toggle-btn" id="btn-standard">Dom Standard</div>
                </div>
            </div>

            <div class="rk-sim-dashboard">
                
                <!-- Wizualizacja SVG (Zima) -->
                <div class="rk-svg-viewport">
                    <svg viewBox="0 0 200 150" style="width:100%; max-width:200px; height:auto;">
                        <!-- Tło / Śnieg (generowany w js) -->
                        <g id="snow-layer"></g>

                        <!-- Budynek -->
                        <path class="svg-wall" d="M 40 130 L 40 70 L 100 30 L 160 70 L 160 130 Z" fill="#f8fafc" stroke-linejoin="round"/>
                        
                        <!-- Rury Grzewcze -->
                        <circle cx="70" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="100" cy="120" r="5" fill="#ef4444"/>
                        <circle cx="130" cy="120" r="5" fill="#ef4444"/>

                        <!-- Uciekające Ciepło -->
                        <path class="svg-heat-loss" d="M 100 80 Q 110 50 100 20"/>
                        <path class="svg-heat-loss" d="M 70 80 Q 80 50 70 20" style="animation-delay: 0.3s;"/>
                        <path class="svg-heat-loss" d="M 130 80 Q 140 50 130 20" style="animation-delay: 0.6s;"/>

                        <!-- Termometr Zewnętrzny (-20C) -->
                        <rect x="10" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="12" y="80" width="6" height="20" rx="3" fill="#3b82f6"/>
                        <text x="15" y="35" font-size="10" font-weight="bold" fill="#3b82f6" text-anchor="middle">-20°C</text>

                        <!-- Termometr Wewnętrzny -->
                        <rect x="175" y="40" width="10" height="60" rx="5" fill="#e2e8f0" stroke="#cbd5e1"/>
                        <rect x="177" y="40" width="6" height="60" rx="3" class="svg-therm-fill"/>
                        <text x="180" y="35" font-size="10" font-weight="bold" fill="#ef4444" text-anchor="middle">21°C</text>
                    </svg>
                </div>

                <!-- Kafelki Wyników z zabezpieczeniem (flex-direction: column) -->
                <div class="rk-sim-metrics">
                    <div class="rk-metric-card">
                        <h4>Moc Projektowa (OZC)</h4>
                        <div class="rk-metric-val val-highlight" id="val-ozc">1.94 kW</div>
                        <div class="rk-metric-sub">Zapotrzebowanie przy -20°C</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Śr. Temp. Zasilania</h4>
                        <div class="rk-metric-val val-highlight" id="val-temp">27.4°C</div>
                        <div class="rk-metric-sub">Idealne dla pompy ciepła</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Rozstaw Rur PEX/PERT</h4>
                        <div class="rk-metric-val val-highlight" id="val-spacing">co 20 cm</div>
                        <div class="rk-metric-sub">Oszczędność materiału</div>
                    </div>
                    <div class="rk-metric-card">
                        <h4>Roczny Koszt Ogrzewania</h4>
                        <div class="rk-metric-val val-highlight" id="val-cost">640 PLN</div>
                        <div class="rk-metric-sub">W rachunkach za prąd</div>
                    </div>
                </div>

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

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Domain Lock
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('case-study-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; border: 2px solid #ef4444; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #ef4444;">[ UNAUTHORIZED ACCESS ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Brak licencji na wyświetlanie zawartości.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Moduł Case Study stanowi własność intelektualną Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Generowanie śniegu w SVG
    const snowLayer = document.getElementById('snow-layer');
    let snowHtml = '';
    for(let i=0; i<15; i++) {
        const cx = Math.random() * 200;
        const delay = Math.random() * 3;
        const dur = 2 + Math.random() * 2;
        const r = 1 + Math.random() * 1.5;
        snowHtml += `<circle cx="${cx}" cy="-10" r="${r}" class="svg-snow" style="animation-delay: ${delay}s; animation-duration: ${dur}s;"/>`;
    }
    snowLayer.innerHTML = snowHtml;

    // 3. Logika Przełącznika
    const btnPassive = document.getElementById('btn-passive');
    const btnStandard = document.getElementById('btn-standard');
    const slider = document.getElementById('rk-toggle-slider');
    const container = document.getElementById('rk-sim-container');

    // Wartości DOM
    const valOzc = document.getElementById('val-ozc');
    const valTemp = document.getElementById('val-temp');
    const valSpacing = document.getElementById('val-spacing');
    const valCost = document.getElementById('val-cost');

    function animateValue(element, start, end, suffix, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            const easeProgress = progress * (2 - progress);
            const current = start + (end - start) * easeProgress;
            
            if(Number.isInteger(end)) {
                element.textContent = Math.round(current) + suffix;
            } else {
                element.textContent = current.toFixed(2) + suffix;
            }
            
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    btnPassive.addEventListener('click', () => {
        // UI Update
        btnStandard.classList.remove('active');
        btnPassive.classList.add('active');
        slider.style.transform = 'translateX(0)';
        slider.style.background = 'var(--rk-cs-passive)';
        
        container.classList.remove('state-standard');
        container.classList.add('state-passive');

        // Text & Animations
        valSpacing.textContent = 'co 20 cm';
        animateValue(valOzc, 8.5, 1.94, ' kW', 800);
        animateValue(valTemp, 38.0, 27.4, '°C', 800);
        animateValue(valCost, 3200, 640, ' PLN', 1000);
    });

    btnStandard.addEventListener('click', () => {
        // UI Update
        btnPassive.classList.remove('active');
        btnStandard.classList.add('active');
        slider.style.transform = 'translateX(100%)';
        slider.style.background = 'var(--rk-cs-standard)';
        
        container.classList.remove('state-passive');
        container.classList.add('state-standard');

        // Text & Animations
        valSpacing.textContent = 'co 10 cm';
        animateValue(valOzc, 1.94, 8.5, ' kW', 800);
        animateValue(valTemp, 27.4, 38.0, '°C', 800);
        animateValue(valCost, 640, 3200, ' PLN', 1000);
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-brand: #0284c7;
    --rk-faq-brand-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-eco: #10b981;
    --rk-faq-warn: #f59e0b;
    --rk-faq-cold: #3b82f6;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-panel: #f8fafc;
}

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

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

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

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

/* Interaktywny Akordeon */
.rk-faq-body {
    padding: 40px 45px;
    background: var(--rk-faq-panel);
}

.rk-accordion-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    margin-bottom: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
    transition: border-color 0.3s, box-shadow 0.3s;
}

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

/* Przycisk Pytania */
.rk-accordion-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.rk-accordion-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    padding-right: 20px;
    transition: color 0.3s;
}

.rk-accordion-item.active .rk-accordion-title {
    color: var(--rk-faq-brand);
}

.rk-accordion-icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

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

/* Rozwijana Treść */
.rk-accordion-content-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
}

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

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

.rk-accordion-inner {
    padding: 0 30px 30px 30px;
    display: grid;
    grid-template-columns: 1fr 140px;
    gap: 30px;
    align-items: center;
    border-top: 1px dashed transparent;
    transition: border-color 0.4s;
}

.rk-accordion-item.active .rk-accordion-inner {
    border-color: var(--rk-faq-border);
    padding-top: 25px;
}

/* Tekst i Linki SEO */
.rk-faq-text {
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--rk-faq-text);
    margin: 0;
}

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

.rk-faq-text a {
    color: var(--rk-faq-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid #bae6fd;
    transition: all 0.3s;
}

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

/* Mini Infografiki SVG wewnątrz FAQ */
.rk-faq-svg-box {
    width: 100%;
    height: 120px;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid var(--rk-faq-border);
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-faq-svg { width: 80%; height: auto; }

/* Animacje Q1, Q2, Q3 (Istniejące) */
.anim-heat-glow { opacity: 0; transform: translateY(10px); transition: all 0.8s ease; }
.rk-accordion-item.active .anim-heat-glow { opacity: 1; transform: translateY(0); animation: pulseHeat 2s infinite alternate; }

.anim-evoh { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1s ease-in-out; }
.rk-accordion-item.active .anim-evoh { stroke-dashoffset: 0; }

.anim-panel { transform: translateY(-20px); opacity: 0; transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.rk-accordion-item.active .anim-panel { transform: translateY(0); opacity: 1; }

/* Animacje Q4, Q5 (Nowe) */
.anim-reku-arrow { opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-reku-arrow { opacity: 1; animation: flowReku 2s infinite linear; }
.anim-flake { transform-origin: center; opacity: 0; transition: opacity 0.5s; }
.rk-accordion-item.active .anim-flake { opacity: 1; animation: spinFlake 4s infinite linear; }

@keyframes pulseHeat {
    0% { filter: drop-shadow(0 -5px 5px rgba(245, 158, 11, 0.2)); }
    100% { filter: drop-shadow(0 -15px 15px rgba(245, 158, 11, 0.6)); }
}
@keyframes flowReku {
    0% { stroke-dashoffset: 20; }
    100% { stroke-dashoffset: 0; }
}
@keyframes spinFlake {
    100% { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-body { padding: 30px 25px; }
    .rk-accordion-btn { padding: 20px; }
    .rk-accordion-inner { grid-template-columns: 1fr; padding: 0 20px 20px 20px; gap: 20px; }
    .rk-accordion-title { font-size: 15px; }
    .rk-faq-svg-box { height: 100px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Sekcja FAQ – Najczęstsze pytania o podłogówkę w domu pasywnym",
    "description": "Techniczne odpowiedzi eksperta: podłogówka jako jedyne źródło ciepła, rury PEX vs PERT, panele na ogrzewaniu, wpływ rekuperacji oraz chłodzenie płaszczyznowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wykonane projektowe obciążenie cieplne (OZC). W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh/(m2·rok)), prawidłowo zaprojektowana instalacja ogrzewania płaszczyznowego bez problemu pokryje straty ciepła, nawet gdy temperatura na zewnątrz spada poniżej -20°C."
        }
      },
      {
        "@type": "Question",
        "name": "Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W przypadku domów pasywnych, gdzie zasilanie pompy ciepła oscyluje wokół 28-32°C, rura wielowarstwowa PERT/AL/PERT jest wyborem optymalnym i wystarczającym. Najważniejszym parametrem jest obecność bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726, która skutecznie blokuje przenikanie tlenu do zładu wody."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Oczywiście, ale wymaga to precyzji projektowej. Całkowity opór cieplny okładziny (paneli wraz z podkładem) nie może przekraczać 0,15 (m2·K)/W. W praktyce najlepiej sprawdzają się cienkie panele winylowe SPC na podłogówkę oraz dedykowane podkłady o dużej gęstości."
        }
      },
      {
        "@type": "Question",
        "name": "Jak wentylacja mechaniczna z rekuperacją współpracuje z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W budownictwie pasywnym rekuperacja jest niezbędna do prawidłowego działania podłogówki. Eliminując grawitacyjne straty ciepła, drastycznie obniża zapotrzebowanie energetyczne budynku. Pozwala to na obniżenie temperatury zasilania z pompy ciepła, co maksymalizuje współczynnik COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ogrzewaniem podłogowym można chłodzić dom pasywny latem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, chłodzenie płaszczyznowe przy użyciu rewersyjnej pompy ciepła to świetne rozwiązanie. Wymaga jednak ścisłej kontroli tzw. punktu rosy w ogrzewaniu podłogowym. Automatyka musi dbać o to, by zbyt niska temperatura wody (ok. 18°C) nie wywołała kondensacji wilgoci na posadzce."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-faq",
    "name": "Baza Wiedzy: Parametry Techniczne Podłogówki w Budownictwie Pasywnym",
    "description": "Zestawienie wytycznych instalacyjnych obejmujące ogrzewanie, chłodzenie i współpracę z rekuperatorem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka jedyne źródło ciepła zimą",
      "jaką rurę do ogrzewania podłogowego wybrać",
      "bariera antydyfuzyjna EVOH",
      "panele winylowe SPC na podłogówkę",
      "wpływ rekuperacji na ogrzewanie podłogowe",
      "chłodzenie płaszczyznowe podłogówką pompą ciepła",
      "punkt rosy w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych OZC, wymagań dyfuzyjnych normy DIN 4726, oporu cieplnego R < 0,15 m2K/W oraz kontroli punktu kondensacji pary wodnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wydajność: Samodzielne pokrycie OZC przy mrozach -20°C.",
        "Technologia rur: PERT vs PEX z warunkiem szczelności tlenowej EVOH.",
        "Rezystancja: Limit izolacyjności podłogi do 0,15 m2K/W.",
        "Efektywność: Obniżenie OZC przez odzysk ciepła z wentylacji.",
        "Chłodzenie: Ochrona okładziny przed wilgocią poprzez kontrolę punktu rosy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp-faq",
    "name": "Interaktywny Przewodnik Techniczny (FAQ HVAC)",
    "description": "Aplikacja webowa typu akordeon, wzbogacona o dynamicznie renderowane grafiki wektorowe SVG, służąca do edukacji inwestorów w zakresie projektowania nowoczesnych instalacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq-container" id="faq-interactive-app">
    
    <div class="rk-faq-header">
        <h2>Sekcja FAQ – Najczęstsze pytania inwestorów</h2>
        <p>Wątpliwości na etapie stanu surowego to norma. Zobacz, jak inżynieria HVAC odpowiada na 5 najważniejszych pytań dotyczących standardu pasywnego.</p>
    </div>

    <div class="rk-faq-body">
        
        <!-- Pytanie 1 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewanie podłogowe w domu pasywnym może być jedynym źródłem ciepła?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Absolutnie tak. Kluczem do sukcesu jest profesjonalnie wyliczone <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne (OZC)</a></strong>. W domach o ekstremalnie niskim zapotrzebowaniu energetycznym (często poniżej 15 kWh na m2 rocznie), prawidłowo zaprojektowana <strong>instalacja ogrzewania płaszczyznowego</strong> bez problemu pokryje straty budynku, nawet gdy temperatura na zewnątrz spada poniżej -20°C. Podłogówka eliminuje konieczność montowania dodatkowych grzejników czy mat elektrycznych, co znacząco obniża koszty inwestycyjne.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <path d="M10 80 L 90 80" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"/>
                                <circle cx="30" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="50" cy="70" r="6" fill="#ef4444"/>
                                <circle cx="70" cy="70" r="6" fill="#ef4444"/>
                                <!-- Animowana łuna ciepła -->
                                <path class="anim-heat-glow" d="M 20 60 Q 50 10 80 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jaką rurę do ogrzewania podłogowego wybrać: PEX czy PERT?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W przypadku domów pasywnych, gdzie zasilanie oscyluje wokół 28-32°C, <strong><a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/">rura wielowarstwowa PERT/AL/PERT</a></strong> jest wyborem optymalnym. Jej największą zaletą jest wysoka elastyczność i łatwość układania gęstych pętli w porównaniu do sztywniejszych rur <strong><a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PEX/AL/PEX</a></strong>. Najważniejszym parametrem, na który musisz zwrócić uwagę przed zakupem, jest obecność bariery antydyfuzyjnej EVOH. Zgodnie z normą <strong><a href="https://projekt-ogrzewania.pl/norma-din-4726-w-ogrzewaniu-podlogowym/">DIN 4726</a></strong>, warstwa ta skutecznie blokuje przenikanie cząsteczek tlenu do zładu wody, chroniąc pompę ciepła i stalowe rozdzielacze przed korozją.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Warstwy rury -->
                                <circle cx="50" cy="50" r="30" fill="none" stroke="#cbd5e1" stroke-width="6"/>
                                <circle cx="50" cy="50" r="24" fill="none" stroke="#94a3b8" stroke-width="4"/>
                                <circle cx="50" cy="50" r="20" fill="none" stroke="#10b981" stroke-width="4" class="anim-evoh"/>
                                <circle cx="50" cy="50" r="16" fill="none" stroke="#e2e8f0" stroke-width="4"/>
                                <text x="50" y="54" font-size="10" font-weight="bold" fill="#0f172a" text-anchor="middle">O2 STOP</text>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy można kłaść panele na ogrzewanie podłogowe w domu pasywnym?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Oczywiście, ale wymaga to ogromnej precyzji projektowej. Zgodnie z inżynierskimi wytycznymi, całkowity <strong><a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny okładziny (R)</a></strong> (czyli suma oporu paneli i podkładu) nie może przekraczać 0,15 (m2·K)/W. W praktyce instalatorskiej najlepiej sprawdzają się cienkie <strong>panele winylowe SPC na podłogówkę</strong> oraz dedykowane podkłady mineralne o wysokiej gęstości. Pamiętaj, że <strong><a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">zastosowanie grubych paneli laminowanych</a></strong> wymusi podniesienie krzywej grzewczej na piecu o około 2 do 3°C względem płytek gresowych.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Beton z rurą -->
                                <rect x="10" y="70" width="80" height="20" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="80" r="5" fill="#ef4444"/>
                                <!-- Podkład i Panel -->
                                <g class="anim-panel">
                                    <rect x="10" y="55" width="80" height="6" fill="#f59e0b" opacity="0.8"/>
                                    <rect x="10" y="40" width="80" height="10" fill="#8b5cf6" rx="1"/>
                                    <path d="M 50 35 L 50 15 M 45 20 L 50 15 L 55 20" stroke="#8b5cf6" stroke-width="2" fill="none"/>
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Jak wentylacja z rekuperacją współpracuje z podłogówką?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            W budownictwie pasywnym <strong>wentylacja mechaniczna z odzyskiem ciepła (rekuperacja)</strong> jest systemem nierozerwalnie związanym z niskotemperaturowym ogrzewaniem. Eliminując potężne grawitacyjne straty ciepła (tzw. wywiewanie ciepłego powietrza przez komin), rekuperator drastycznie obniża zapotrzebowanie budynku. Pozytywny <strong><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie podłogowe</a></strong> polega na tym, że instalacja grzewcza może pracować stabilnie na bardzo niskich parametrach zasilania, co bezpośrednio maksymalizuje wydajność (COP) pompy ciepła.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <!-- Wymiennik -->
                                <polygon points="50,20 80,50 50,80 20,50" fill="none" stroke="#94a3b8" stroke-width="3"/>
                                <!-- Przepływ zimnego -> gorącego -->
                                <path class="anim-reku-arrow" d="M 20 50 L 80 50" stroke="#ef4444" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                                <!-- Przepływ zużytego -> zimnego -->
                                <path class="anim-reku-arrow" d="M 50 20 L 50 80" stroke="#3b82f6" stroke-width="4" stroke-linecap="round" stroke-dasharray="5 5"/>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <span class="rk-accordion-title">Czy ogrzewaniem podłogowym można skutecznie chłodzić dom latem?</span>
                <div class="rk-accordion-icon">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content-wrapper">
                <div class="rk-accordion-content">
                    <div class="rk-accordion-inner">
                        <p class="rk-faq-text">
                            Tak, <strong>chłodzenie płaszczyznowe podłogówką</strong> przy użyciu rewersyjnej pompy ciepła to doskonałe, darmowe źródło komfortu na upalne dni. Instalacja tłoczy wtedy w posadzkę wodę o temperaturze około 18-20°C. Głównym wyzwaniem inżynieryjnym jest jednak ominięcie <strong><a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy w ogrzewaniu podłogowym</a></strong>. Zbyt niska temperatura czynnika doprowadzi do kondensacji i wytrącenia się kropel wody na posadzce. Wymaga to integracji odpowiednich termostatów ściennych z czujnikami wilgotności.
                        </p>
                        <div class="rk-faq-svg-box">
                            <svg class="rk-faq-svg" viewBox="0 0 100 100">
                                <rect x="10" y="80" width="80" height="10" fill="#cbd5e1" rx="2"/>
                                <circle cx="50" cy="85" r="3" fill="#3b82f6"/> <!-- Zimna woda -->
                                <!-- Płatek śniegu obracający się -->
                                <g class="anim-flake" stroke="#3b82f6" stroke-width="2" stroke-linecap="round">
                                    <line x1="50" y1="20" x2="50" y2="60" />
                                    <line x1="30" y1="40" x2="70" y2="40" />
                                    <line x1="35" y1="25" x2="65" y2="55" />
                                    <line x1="35" y1="55" x2="65" y2="25" />
                                </g>
                            </svg>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe bez użycia H-tagów
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('faq-interactive-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #0f172a; border: 2px solid #0284c7; border-radius: 16px; font-family: monospace;">
                    <div style="font-size: 32px; margin-bottom: 15px; color: #0284c7;">[ MODULE LOCKED ]</div>
                    <div style="font-size: 14px; font-weight: bold; color: #cbd5e1; margin-bottom: 10px;">
                        Autoryzacja domeny nie powiodła się.
                    </div>
                    <div style="color: #64748b; font-size: 12px; line-height: 1.5;">
                        Aplikacja interaktywnego FAQ jest przypisana do licencji Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu (Z jednym otwartym na raz)
    const accordionItems = document.querySelectorAll('.rk-accordion-item');

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

            // Zamknij inne
            accordionItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'false');
            });

            // Przełącz
            if (!isActive) {
                item.classList.add('active');
                btn.setAttribute('aria-expanded', 'true');
            }
        });
    });

    // Otwarcie pierwszego
    if(accordionItems.length > 0) {
        accordionItems[0].classList.add('active');
        accordionItems[0].querySelector('.rk-accordion-btn').setAttribute('aria-expanded', 'true');
    }
});
</script>



<style>
:root {
    --rk-pas-dark: #0f172a;
    --rk-pas-brand: #2563eb;
    --rk-pas-brand-light: #eff6ff;
    --rk-pas-eco: #059669;
    --rk-pas-eco-light: #ecfdf5;
    --rk-pas-warn: #dc2626;
    --rk-pas-warn-light: #fef2f2;
    --rk-pas-text: #334155;
    --rk-pas-border: #cbd5e1;
    --rk-pas-bg: #ffffff;
}

.rk-pas-container {
    max-width: 900px;
    margin: 50px auto;
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--rk-pas-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.1);
    border: 1px solid #e2e8f0;
    overflow: hidden;
}

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

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

.rk-pas-quote {
    font-size: 18px;
    font-style: italic;
    color: #94a3b8;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.rk-pas-quote strong {
    color: #38bdf8;
    font-weight: 700;
}

/* Interfejs Przełącznika */
.rk-pas-interactive {
    padding: 40px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-pas-border);
}

.rk-pas-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    margin-bottom: 30px;
}

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

/* Toggle Switch w stylu App */
.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #fff;
    padding: 10px 20px;
    border-radius: 99px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    border: 1px solid var(--rk-pas-border);
}

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

.rk-toggle-label.active-warn { color: var(--rk-pas-warn); }
.rk-toggle-label.active-eco { color: var(--rk-pas-eco); }

.rk-switch {
    position: relative;
    width: 64px;
    height: 32px;
    background: var(--rk-pas-warn);
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.4s;
}

.rk-switch.pro-mode {
    background: var(--rk-pas-eco);
}

.rk-switch-thumb {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 24px;
    height: 24px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.rk-switch.pro-mode .rk-switch-thumb {
    transform: translateX(32px);
}

/* Wyświetlacz i SVG */
.rk-pas-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #fff;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-svg-stage {
    width: 100%;
    max-width: 250px;
    margin: 0 auto;
    display: block;
}

/* Animacje SVG */
.wave-path {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    transition: stroke 0.5s, transform 0.5s;
}

.state-error .wave-path { stroke: var(--rk-pas-warn); animation: overheat 0.8s infinite alternate; }
.state-pro .wave-path { stroke: var(--rk-pas-eco); animation: stableHeat 3s infinite linear; }

@keyframes overheat {
    0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
    100% { transform: translateY(-10px) scaleY(1.2); opacity: 1; }
}

@keyframes stableHeat {
    0% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(-5px); opacity: 0.9; }
    100% { transform: translateY(0); opacity: 0.6; }
}

.house-outline {
    fill: none;
    stroke: var(--rk-pas-dark);
    stroke-width: 3;
    stroke-linejoin: round;
}

/* Kafelki Danych (Grid) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-data-card {
    background: #f8fafc;
    border: 1px solid var(--rk-pas-border);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-data-card h4 {
    margin: 0 0 5px 0;
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-data-card .rk-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-pas-dark);
    margin-bottom: 5px;
}

.rk-data-card p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-pas-text);
}

/* CTA */
.rk-pas-cta {
    padding: 40px 30px;
    text-align: center;
    background: #fff;
}

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

.rk-pas-cta a {
    color: var(--rk-pas-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-pas-brand);
    color: #ffffff !important; /* Wymuszony biały kolor tekstu i ikony */
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 16px;
    text-decoration: none !important;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.rk-btn:hover {
    background: #1d4ed8;
    color: #ffffff !important; /* Zabezpieczenie przed zmianą koloru po najechaniu */
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

@media (max-width: 768px) {
    .rk-pas-display { grid-template-columns: 1fr; text-align: center; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 16px; padding: 15px; }
    .rk-switch { transform: rotate(90deg); margin: 10px 0; }
    .rk-pas-header h2 { font-size: 24px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Podsumowanie: Precyzja to Twój największy zysk w budownictwie pasywnym",
    "description": "Zrozum różnicę między intuicyjnym montażem a precyzyjnym inżynierskim projektem instalacji grzewczej. Optymalizacja rozstawu rur i izolacji EPS 200.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset",
    "name": "Porównanie Parametrów: System Pasywny vs Błędy Wykonawcze",
    "description": "Baza danych przedstawiająca realne skutki przewymiarowania instalacji podłogowej, w tym nadmierne temperatury zasilania i koszty eksploatacyjne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego dom pasywny",
      "rozstaw rur 15 cm a 10 cm",
      "grubość styropianu EPS 200",
      "temperatura zasilania pompy ciepła",
      "obliczenia OZC dla podłogówki"
    ],
    "measurementTechnique": "Analiza symulacyjna oparta na normie PN-EN 12831 wykazująca różnice w temperaturze zasilania i stabilności cieplnej podłogi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw rur 10 cm: Powoduje nadmiar mocy, przegrzewanie i niepotrzebne koszty rur.",
        "Rozstaw rur 15-20 cm: Wymaga projektu, zapewnia niskie zasilanie (do 32°C) i stabilną pracę pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#webapp",
    "name": "Interaktywny Symulator Komfortu Pasywnego",
    "description": "Narzędzie internetowe demonstrujące wpływ precyzyjnego inżynierskiego rozstawu rur i izolacji na parametry pracy instalacji ogrzewania podłogowego.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-pas-container" id="pasywny-sum-app">
    
    <div class="rk-pas-header">
        <h2>Efektywność wymaga inżynierskiej precyzji</h2>
        <p class="rk-pas-quote">
            W domu pasywnym instalacja grzewcza ma być niemal "niewidoczna" dla zmysłów i portfela. <strong>Zbyt gęsty rozstaw rur i wysoka temperatura zasilania to najszybsza droga do katastrofy termicznej.</strong>
        </p>
    </div>

    <div class="rk-pas-interactive">
        <div class="rk-pas-controls">
            <h3>Sprawdź wpływ projektu na działanie instalacji</h3>
            <div class="rk-toggle-wrapper">
                <span class="rk-toggle-label active-warn" id="lbl-amateur">Wykonawstwo "Na oko"</span>
                <div class="rk-switch" id="pas-toggle">
                    <div class="rk-switch-thumb"></div>
                </div>
                <span class="rk-toggle-label" id="lbl-pro">Projekt Inżynierski (OZC)</span>
            </div>
        </div>

        <div class="rk-pas-display">
            <!-- Animacja SVG -->
            <div class="rk-svg-container state-error" id="svg-state">
                <svg class="rk-svg-stage" viewBox="0 0 200 200">
                    <!-- Podstawa / Wylewka -->
                    <rect x="20" y="160" width="160" height="20" fill="#cbd5e1" rx="4"/>
                    <!-- Rury (dynamiczne wypełnienie w JS) -->
                    <g id="svg-pipes">
                        <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                        <circle cx="140" cy="170" r="6" fill="#ef4444"/>
                    </g>
                    <!-- Fale Ciepła -->
                    <path class="wave-path" d="M 50 140 Q 60 100 50 60" />
                    <path class="wave-path" d="M 100 140 Q 110 100 100 60" style="animation-delay: 0.2s" />
                    <path class="wave-path" d="M 150 140 Q 160 100 150 60" style="animation-delay: 0.4s" />
                    <!-- Zarys Domu -->
                    <path class="house-outline" d="M 20 160 L 20 80 L 100 20 L 180 80 L 180 160" />
                </svg>
            </div>

            <!-- Dynamiczne Dane -->
            <div class="rk-data-grid">
                <div class="rk-data-card" id="card-spacing">
                    <h4>Rozstaw Rur</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">co 10 cm</div>
                    <p>Zbędny wydatek na materiał, trudne rotametrowanie.</p>
                </div>
                <div class="rk-data-card" id="card-temp">
                    <h4>Temp. Zasilania</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">> 40°C</div>
                    <p>Spadek COP pompy ciepła, przegrzewanie salonu.</p>
                </div>
                <div class="rk-data-card" id="card-eps">
                    <h4>Izolacja Posadzki</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">EPS 100</div>
                    <p>Niewystarczający opór cieplny do gruntu.</p>
                </div>
                <div class="rk-data-card" id="card-cost">
                    <h4>Koszty Roczne</h4>
                    <div class="rk-value" style="color: var(--rk-pas-warn);">Wyższe o 35%</div>
                    <p>Energia tracona przez niestabilność układu.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pas-cta">
        <p>
            Decyzja o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur co 10 czy 15 cm</a> oraz doborze grubości <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu EPS podłogowego</a> nie może być dziełem przypadku. W standardzie pasywnym nawet <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania (rzędu 30-35°C)</a> wymaga idealnego zbilansowania w dokumentacji.
        </p>
        <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/" class="rk-btn">
            ZAMÓW PROJEKT OGRZEWANIA DO DOMU PASYWNEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>

</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE DOMENOWE
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Anti-Theft)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('pasywny-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛡️</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny i warstwa JSON-LD należą do portalu Projekt-Ogrzewania.pl. Uruchomienie skryptu na tej domenie zostało zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggle = document.getElementById('pas-toggle');
    const lblAmateur = document.getElementById('lbl-amateur');
    const lblPro = document.getElementById('lbl-pro');
    const svgState = document.getElementById('svg-state');
    const svgPipes = document.getElementById('svg-pipes');
    
    // Kafelki
    const cardSpacing = document.getElementById('card-spacing');
    const cardTemp = document.getElementById('card-temp');
    const cardEps = document.getElementById('card-eps');
    const cardCost = document.getElementById('card-cost');

    let isPro = false;

    toggle.addEventListener('click', () => {
        isPro = !isPro;
        
        if(isPro) {
            // Styl przełącznika
            toggle.classList.add('pro-mode');
            lblAmateur.classList.remove('active-warn');
            lblPro.classList.add('active-eco');
            
            // Styl SVG
            svgState.classList.remove('state-error');
            svgState.classList.add('state-pro');
            svgPipes.innerHTML = `
                <circle cx="60" cy="170" r="6" fill="#059669"/>
                <circle cx="100" cy="170" r="6" fill="#059669"/>
                <circle cx="140" cy="170" r="6" fill="#059669"/>
            `; // 3 rury zamiast 4 (szerszy rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 15-20 cm', 'var(--rk-pas-eco)', 'Idealny balans zysków ciepła i oporów.');
            updateCard(cardTemp, '28°C - 32°C', 'var(--rk-pas-eco)', 'Optymalny COP dla pomp ciepła i komfortu.');
            updateCard(cardEps, 'EPS 200', 'var(--rk-pas-eco)', 'Minimalne straty do gruntu (R > 6,0).');
            updateCard(cardCost, 'Zoptymalizowane', 'var(--rk-pas-eco)', 'Grzanie ciągłe, bez zjawiska taktowania sprężarki.');
            
        } else {
            // Styl przełącznika
            toggle.classList.remove('pro-mode');
            lblPro.classList.remove('active-eco');
            lblAmateur.classList.add('active-warn');

            // Styl SVG
            svgState.classList.remove('state-pro');
            svgState.classList.add('state-error');
            svgPipes.innerHTML = `
                <circle cx="50" cy="170" r="6" fill="#ef4444"/>
                <circle cx="80" cy="170" r="6" fill="#ef4444"/>
                <circle cx="110" cy="170" r="6" fill="#ef4444"/>
                <circle cx="140" cy="170" r="6" fill="#ef4444"/>
            `; // 4 rury (gęsty rozstaw)

            // Aktualizacja Danych
            updateCard(cardSpacing, 'co 10 cm', 'var(--rk-pas-warn)', 'Zbędny wydatek na materiał, trudne rotametrowanie.');
            updateCard(cardTemp, '> 40°C', 'var(--rk-pas-warn)', 'Spadek COP pompy ciepła, przegrzewanie salonu.');
            updateCard(cardEps, 'EPS 100', 'var(--rk-pas-warn)', 'Niewystarczający opór cieplny do gruntu.');
            updateCard(cardCost, 'Wyższe o 35%', 'var(--rk-pas-warn)', 'Energia tracona przez niestabilność układu.');
        }
    });

    function updateCard(card, valueText, color, descText) {
        const valElement = card.querySelector('.rk-value');
        const descElement = card.querySelector('p');
        
        valElement.style.opacity = '0';
        descElement.style.opacity = '0';
        
        setTimeout(() => {
            valElement.textContent = valueText;
            valElement.style.color = color;
            descElement.textContent = descText;
            
            valElement.style.opacity = '1';
            descElement.style.opacity = '1';
        }, 150);
    }
});
</script>



<style>
:root {
    --dl-pas-primary: #0f172a;
    --dl-pas-accent: #10b981; /* Szmaragdowa zieleń - Eco/Pasywny */
    --dl-pas-accent-dark: #047857;
    --dl-pas-bg: #f8fafc;
    --dl-pas-border: #e2e8f0;
    --dl-pas-text: #334155;
    --dl-pas-white: #ffffff;
    --dl-pas-muted: #64748b;
}

.rk-pas-dl-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--dl-pas-white);
    border-radius: 24px;
    border: 1px solid var(--dl-pas-border);
    box-shadow: 0 25px 50px -12px rgba(16, 185, 129, 0.15);
    overflow: hidden;
    box-sizing: border-box;
}

.rk-pas-dl-container * {
    box-sizing: inherit;
}

/* NAGŁÓWEK SEKCI */
.dl-pas-header {
    background: linear-gradient(135deg, var(--dl-pas-primary) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: var(--dl-pas-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* Subtelny wzór geometryczny w tle nagłówka */
.dl-pas-header::before {
    content: '';
    position: absolute;
    top: -50%; right: -10%;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}

.dl-pas-header-content { position: relative; z-index: 2; max-width: 65%; }

.dl-pas-badge {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    border: 1px solid rgba(16, 185, 129, 0.4);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.dl-pas-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

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

/* WIZUALIZACJA PDF / IKONA */
.dl-pas-header-visual {
    position: relative;
    z-index: 2;
}

.dl-pas-pdf-icon {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: floatPasIcon 3.5s infinite ease-in-out alternate;
}

@keyframes floatPasIcon {
    from { transform: translateY(0) rotate(0deg); }
    to { transform: translateY(-12px) rotate(-3deg); }
}

/* GŁÓWNY WORKSPACE */
.dl-pas-workspace {
    display: flex;
    padding: 40px 50px;
    gap: 40px;
    background: var(--dl-pas-white);
    align-items: center;
}

.dl-pas-preview {
    flex: 1;
    background: var(--dl-pas-bg);
    border: 1px solid var(--dl-pas-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.4s;
}

.dl-pas-preview:hover {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 20px 30px -10px rgba(16, 185, 129, 0.15);
}

.dl-pas-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.dl-pas-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: white;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
}

.dl-pas-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dl-pas-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.dl-pas-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dl-pas-text);
    line-height: 1.5;
}

.dl-pas-check {
    width: 22px;
    height: 22px;
    color: var(--dl-pas-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

/* PRZYCISK POBIERANIA */
.dl-pas-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--dl-pas-accent);
    color: var(--dl-pas-white) !important;
    text-decoration: none !important;
    padding: 18px 32px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
    border: 2px solid transparent;
}

.dl-pas-btn:hover {
    background: var(--dl-pas-accent-dark);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.6);
    border-color: #6ee7b7;
}

.dl-pas-btn svg {
    transition: transform 0.3s;
}

.dl-pas-btn:hover svg {
    transform: translateY(3px);
}

/* STOPKA MODUŁU I SEO */
.dl-pas-footer {
    padding: 25px 50px;
    background: var(--dl-pas-bg);
    border-top: 1px solid var(--dl-pas-border);
}

.dl-pas-seo-text {
    font-size: 14px;
    color: var(--dl-pas-muted);
    line-height: 1.6;
    margin: 0 0 15px 0;
}

.dl-pas-seo-text strong {
    color: var(--dl-pas-primary);
}

.dl-pas-footer a {
    color: var(--dl-pas-accent-dark);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.3s;
}

.dl-pas-footer a:hover {
    border-color: var(--dl-pas-accent-dark);
}

.dl-pas-copyright {
    font-size: 12px;
    color: #94a3b8;
    text-align: center;
    margin: 0;
    padding-top: 15px;
    border-top: 1px dashed #cbd5e1;
}

@media (max-width: 800px) {
    .dl-pas-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .dl-pas-header-content { max-width: 100%; margin-bottom: 30px; }
    .dl-pas-workspace { flex-direction: column; padding: 35px 25px; gap: 30px; }
    .dl-pas-footer { padding: 25px; }
    .dl-pas-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/"
    },
    "headline": "Jak osiągnąć maksymalną efektywność energetyczną? Infografika dla domów pasywnych",
    "description": "Pobierz inżynierski schemat projektowania ogrzewania podłogowego. Dowiedz się, jak połączyć rekuperację z pompą ciepła i zredukować zużycie energii o 90%.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-13",
    "dateModified": "2026-05-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#dataset-pasywny",
    "name": "Parametry techniczne ogrzewania w standardzie pasywnym",
    "description": "Zestawienie zużycia energii, optymalnych temperatur zasilania pompy ciepła oraz krytycznych błędów projektowych w budownictwie pasywnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zapotrzebowanie na energię w domu pasywnym",
      "temperatura zasilania pompy ciepła w domu pasywnym",
      "współpraca podłogówki z rekuperacją",
      "błędy w projektowaniu ogrzewania podłogowego",
      "temperatura podłogi norma"
    ],
    "measurementTechnique": "Analiza porównawcza zużycia energii (kWh/m²) dla domów tradycyjnych i pasywnych oraz kalibracja krzywej grzewczej pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie energetyczne: Spadek z 80-120 kWh/m² do 5-15 kWh/m² rocznie.",
        "Parametry zasilania: Optymalny zakres 26-32°C dla maksymalnego COP pompy ciepła.",
        "Krytyczne błędy: Przewymiarowanie mocy pompy, słaba izolacja krawędziowa, brak bilansu cieplnego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/#download-hub-pasywny",
    "name": "Centrum Pobierania: Standard Pasywny",
    "description": "Interaktywny moduł pozwalający na podgląd w wysokiej rozdzielczości oraz pobranie technicznej infografiki w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pas-dl-container" id="app-pas-dl">
    
    <div class="dl-pas-header">
        <div class="dl-pas-header-content">
            <div class="dl-pas-badge">Kompendium Inżynierskie</div>
            <h2>Ogrzewanie w Domu Pasywnym</h2>
            <p>Pobierz autorską infografikę i uniknij najdroższych błędów instalacyjnych. Poznaj parametry, które redukują koszty eksploatacji nawet o 90%.</p>
        </div>
        <div class="dl-pas-header-visual">
            <svg class="dl-pas-pdf-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#10b981" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M14 2V8H20" fill="#6ee7b7" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="6.5" y="17" fill="white" font-size="6" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="dl-pas-workspace">
        
        <div class="dl-pas-preview" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp', '_blank')" role="button" aria-label="Powiększ infografikę">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.webp" alt="Infografika: Projektowanie ogrzewania podłogowego w domach pasywnych" class="dl-pas-img" loading="lazy">
            <div class="dl-pas-zoom-hint">
                <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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Powiększ grafikę
            </div>
        </div>

        <div class="dl-pas-info">
            <ul class="dl-pas-list">
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Analiza porównawcza zużycia energii: <strong>Dom Tradycyjny vs Pasywny</strong>.</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Zestawienie optymalnych temperatur (zasilanie: 26-32°C).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Czarna lista: <strong>Krytyczne błędy</strong> (taktowanie pompy, słaba izolacja).</span>
                </li>
                <li class="dl-pas-item">
                    <svg class="dl-pas-check" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span>Wpływ rekuperacji na obniżenie kosztów eksploatacji.</span>
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Projektowanie-ogrzewania-podlogowego-w-domach-pasywnych.pdf" class="dl-pas-btn" target="_blank" rel="noopener">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
        </div>

    </div>

    <div class="dl-pas-footer">
        <p class="dl-pas-seo-text">
            Inwestorzy planujący nowoczesną budowę często pytają, jak wyeliminować błędy u samego źródła. Nasza infografika pokazuje, jak prawidłowo zestawić <strong>niskie zapotrzebowanie na energię w domu pasywnym</strong> (zaledwie 5-15 kWh/m² rocznie) z precyzyjną pracą systemu grzewczego. Dowiesz się z niej, dlaczego <strong>temperatura zasilania pompy ciepła w domu pasywnym</strong> nie powinna przekraczać 32°C oraz jak niezbędna jest <strong>współpraca podłogówki z rekuperacją</strong>.
        </p>
        <p class="dl-pas-seo-text">
            Chcesz uniknąć ryzyka, że Twoja pompa ciepła będzie ulegać taktowaniu? Zadbaj o precyzję przed rozpoczęciem prac. <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zleć profesjonalny projekt OZC i ogrzewania podłogowego</a> naszym inżynierom.
        </p>
        <p class="dl-pas-copyright">
            © 2026 Projekt-Ogrzewania.pl | Udostępnianie materiałów edukacyjnych dozwolone z zachowaniem linku do źródła.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // --- OCHRONA DOMENOWA (Brak nagłówków H-tag w alercie) ---
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-pas-dl');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; color: #991b1b; margin-bottom: 10px; text-transform: uppercase;">Odmowa Dostępu</div>
                    <p style="color: #b91c1c; font-size: 14px; margin: 0; line-height: 1.5;">Moduł "Centrum Pobierania" oraz załączone pliki PDF są własnością intelektualną Projekt-Ogrzewania.pl. Uruchomienie na nieautoryzowanej domenie zostało zablokowane.</p>
                </div>
            `;
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">Projektowanie ogrzewania podłogowego w domach pasywnych.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest system suchy w wodnym ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 16 Feb 2025 19:05:13 +0000</pubDate>
				<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje wodne]]></category>
		<category><![CDATA[Modernizacja domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[System suchy]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Systemy mokre i suche]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[dom szkieletowy]]></category>
		<category><![CDATA[energooszczędność]]></category>
		<category><![CDATA[modernizacja]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[panele izolacyjne]]></category>
		<category><![CDATA[płyty aluminiowe]]></category>
		<category><![CDATA[remont domu]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wodne ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2231</guid>

					<description><![CDATA[<p>Szukasz efektywnego sposobu na ogrzewanie domu? System suchy w wodnym ogrzewaniu podłogowym to nowoczesne rozwiązanie, które eliminuje konieczność wylewania betonowej posadzki. Dzięki panelom izolacyjnym i aluminiowym dystrybutorom ciepła, montaż jest szybki, a podłoga gotowa do użytku od razu. Sprawdź, dlaczego ten system sprawdzi się w remontach, domach szkieletowych i pomieszczeniach z niskimi sufitami. Poznaj zalety, wady i praktyczne przykłady zastosowania!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">Czym jest system suchy w wodnym ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Jeśli planujesz modernizację domu lub szukasz efektywnego sposobu na ogrzewanie, <strong>system suchy w wodnym ogrzewaniu podłogowym</strong> może być idealnym rozwiązaniem. W przeciwieństwie do tradycyjnej „mokrej” metody, która wymaga wylewania betonowej posadzki, ten system opiera się na innowacyjnych panelach i dystrybucji ciepła bez użycia jastrychu. Dlaczego warto go rozważyć? Poznaj szczegóły!</p>



<h2 class="wp-block-heading">Jak działa sucha podłogówka? </h2>



<p>W <strong>suchym systemie ogrzewania podłogowego</strong> <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a> są umieszczane w specjalnych panelach izolacyjnych, a nie w warstwie betonu. To rozwiązanie wykorzystuje:</p>



<ul class="wp-block-list">
<li><strong>Panele z polistyrenu lub drewna</strong> – z wytłoczonymi kanałami, które utrzymują rury w stałej pozycji.</li>



<li><strong>Płyty aluminiowe</strong> – pełnią rolę dystrybutorów ciepła, równomiernie je rozprowadzając.</li>



<li><strong>Warstwę wykończeniową</strong> – np. płyty gipsowe lub deski podłogowe, które układane są bezpośrednio na panelach.</li>
</ul>



<p>Dzięki temu cała konstrukcja jest <em>lżejsza, szybsza w montażu</em> i gotowa do użytku od razu po instalacji.</p>



<h2 class="wp-block-heading">Kluczowe elementy suchego systemu grzewczego.</h2>



<p>Aby zrozumieć, dlaczego <strong><a href="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a> bez wylewki</strong> zyskuje popularność, warto przyjrzeć się jego komponentom:</p>



<ul class="wp-block-list">
<li><strong>Izolacja termiczna</strong> – panele z polistyrenu chronią przed ucieczką ciepła w kierunku stropu.</li>



<li><strong>Aluminiowe przegrody</strong> – odpowiadają za efektywne przekazywanie energii z rur do posadzki.</li>



<li><strong>Rury PEX lub PE-RT</strong> – odporne na korozję i elastyczne, co ułatwia układanie w zakrzywionych przestrzeniach.</li>
</ul>



<h2 class="wp-block-heading">Zalety suchego ogrzewania podłogowego: dlaczego warto wybrać?</h2>



<h3 class="wp-block-heading">Natychmiastowa gotowość i brak wilgoci.</h3>



<p>W przeciwieństwie do systemu mokrego, <em>sucha podłogówka</em> nie wymaga czasu na schnięcie wylewki. To ogromna korzyść podczas remontów – już po ułożeniu paneli i podłogi możesz cieszyć się ciepłem. Dodatkowo, brak wilgoci eliminuje ryzyko odkształceń drewnianych elementów czy rozwoju pleśni.</p>



<h3 class="wp-block-heading">Lekkość konstrukcji: idealna do starszych budynków.</h3>



<p>Jeśli mieszkasz w kamienicy lub domu ze stropem o ograniczonej nośności, <strong>system suchy w ogrzewaniu podłogowym</strong> to bezpieczny wybór. Jego waga jest nawet o 70% mniejsza niż wersji z jastrychem! Przykład? Tradycyjna wylewka może obciążać strop masą ok. 120 kg/m², podczas gdy suchy system waży zaledwie 20–30 kg/m².</p>



<h3 class="wp-block-heading">Łatwość modernizacji i napraw.</h3>



<p>Wyobraź sobie, że w rurach grzewczych pojawi się przeciek. W systemie mokrym konieczne byłby kucie posadzki, co generuje koszty i bałagan. W suchym wystarczy zdemontować panele w uszkodzonym obszarze – to <em>szybsze i tańsze</em> rozwiązanie.</p>



<h2 class="wp-block-heading">Wady suchej podłogówki: na co uważać?</h2>



<h3 class="wp-block-heading">Mniejsza bezwładność cieplna: plus czy minus?</h3>



<p>System suchy szybciej reaguje na zmiany temperatury – nagrzeje się w godzinę, ale też szybciej stygnie. To zaleta, jeśli chcesz precyzyjnie kontrolować ogrzewanie (np. w domach z pompą ciepła). Jednak w przypadku kotłów gazowych lub węglowych może prowadzić do częstszego włączania urządzeń, co zwiększa zużycie energii.</p>



<h3 class="wp-block-heading">Ograniczenia w wyborze posadzki.</h3>



<p>Choć na suchy system można kłaść panele laminowane czy deski drewniane, <strong>płytki ceramiczne</strong> wymagają stabilnego podłoża. W takim przypadku zaleca się użycie specjalnych płyt gipsowo-włóknowych wzmocnionych siatką lub klejów elastycznych.</p>



<h2 class="wp-block-heading">Gdzie sprawdzi się suchy system grzewczy? Przykłady zastosowań</h2>



<h3 class="wp-block-heading">Remonty mieszkań w blokach.</h3>



<p>W mieszkaniu na piątym piętrze starej kamienicy tradycyjna wylewka mogłaby przeciążyć strop. Sucha wersja jest tu <em>bezpieczniejsza i zgodna z przepisami</em>. Przykład? W Warszawie wiele inwestycji deweloperskich w zabytkowych budynkach wykorzystuje tę technologię.</p>



<h3 class="wp-block-heading">Domy szkieletowe i drewniane.</h3>



<p>Lekkość konstrukcji suchych systemów idealnie pasuje do domów z drewna. W Kanadzie, gdzie budownictwo szkieletowe dominuje, to standardowe rozwiązanie w łazienkach czy salonach.</p>



<h3 class="wp-block-heading">Pomieszczenia z niskimi sufitami.</h3>



<p>Jeśli wysokość pomieszczenia to zaledwie 2,4 m, każdy centymetr ma znaczenie. Grubość suchej podłogówki to ok. 3 cm, podczas gdy system mokry zajmuje nawet 8 cm. To różnica, która pozwala uniknąć wrażenia „ciasnoty”.</p>



<h2 class="wp-block-heading">Porównanie z systemem mokrym: który wybrać?</h2>



<h3 class="wp-block-heading">Koszty inwestycyjne a długoterminowe oszczędności.</h3>



<p>Choć <strong>suchy system wodnego ogrzewania podłogowego</strong> jest droższy w zakupie (ok. 120–170 zł/m² vs. 100–150 zł/m² za mokry), jego montaż trwa krócej (2–3 dni vs. tydzień z wylewką). To ważne, jeśli wynajmujesz ekipę budowlaną na godziny. Z drugiej strony, mniejsza bezwładność cieplna może podnieść rachunki za energię w niektórych przypadkach.</p>



<h3 class="wp-block-heading">Komfort użytkowania i trwałość.</h3>



<p><a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">System mokry</a>, dzięki masie betonu, daje bardziej stabilne ciepło – idealne do salonów, gdzie spędzasz wiele godzin. Suchy lepiej sprawdzi się w sypialniach lub łazienkach, gdzie oczekujesz szybkiego nagrzania.</p>



<h2 class="wp-block-heading">Jak zamontować suchą podłogówkę? Krótki przewodnik</h2>



<h3 class="wp-block-heading">Przygotowanie podłoża: klucz do sukcesu.</h3>



<p>Podłoże musi być równe i oczyszczone. Dopuszczalne nierówności to max 2 mm na 1 m². W przeciwnym razie, panele mogą się odkształcać, a aluminiowe płyty nie będą przylegać szczelnie.</p>



<h3 class="wp-block-heading">Układanie paneli i dystrybutorów ciepła.</h3>



<p>Panele układa się na zakładkę (jak puzzle), a w rowki wkłada aluminiowe płyty. Następnie montuje się rury, prowadząc je zgodnie z projektem (np. w kształcie spirali lub meandrów).</p>



<h3 class="wp-block-heading">Końcowe warstwy: od izolacji po posadzkę.</h3>



<p>Na panele kładzie się warstwę izolacyjną (np. folię PE), a następnie płyty gipsowe lub drewnopodobne. Dopiero na nie instaluje się wybraną posadzkę.</p>



<h2 class="wp-block-heading">Przykłady rozwiązań: sucha podłogówka w praktyce.</h2>



<h3 class="wp-block-heading">Case study: </h3>



<h4 class="wp-block-heading">Mieszkanie w zabytkowej kamienicy.</h4>



<p>W Krakowie, w mieszkaniu o powierzchni 60 m², zastosowano suchy system suchej podłogówki. Koszt wyniósł 18 000 zł, ale uniknięto wzmocnienia stropu (co przy mokrej wersji doliczyłoby kolejne 10 000 zł).</p>



<h4 class="wp-block-heading">Nowoczesny dom z pompą ciepła.</h4>



<p>W Poznaniu para młodych budująca szkieletowy dom drewniany wybrała suchą podłogówkę ze względu na współpracę z <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompą ciepła</a>. Niska temperatura zasilania (35°C) i szybka reakcja systemu obniżyły roczne koszty ogrzewania o 20% w porównaniu z grzejnikami.</p>



<h2 class="wp-block-heading">Eksperckie wskazówki: na co zwrócić uwagę?</h2>



<h3 class="wp-block-heading">Wybór materiałów: unikaj pułapek.</h3>



<p>Sprawdź, czy panele mają atest odporności na ściskanie (min. 15 t/m²). Tanie zamienniki mogą pękać pod ciężarem mebli.</p>



<h3 class="wp-block-heading">Konsultacja z projektantem.</h3>



<p>Zanim zaczniesz montaż, poproś <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">specjalistę projektującego ogrzewanie podłogowe</a> o analizę strat ciepła w pomieszczeniu. To pomoże dobrać optymalny rozstaw rur (zwykle 10–25 cm).</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-1739731465402"><strong class="schema-faq-question"><strong>Czy system suchy nadaje się do każdego typu podłogi?</strong></strong> <p class="schema-faq-answer">Nie, najlepiej sprawdza się z panelami laminowanymi, deskami drewnianymi lub płytami gipsowymi. Płytki ceramiczne wymagają dodatkowego wzmocnienia podłoża.</p> </div> <div class="schema-faq-section" id="faq-question-1739731477769"><strong class="schema-faq-question"><strong>Jakie są koszty montażu suchego systemu ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Koszty wahają się od 120 do 170 zł/m², w zależności od wybranych materiałów i firmy montażowej.</p> </div> <div class="schema-faq-section" id="faq-question-1739731512490"><strong class="schema-faq-question"><strong>Czy suchy system można połączyć z pompą ciepła?</strong></strong> <p class="schema-faq-answer">Tak, to idealne połączenie! System suchy działa efektywnie przy niskich temperaturach zasilania, co jest zgodne z zasadą działania pomp ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1739731536460"><strong class="schema-faq-question"><strong>Czy sucha podłogówka nadaje się do starszych budynków?</strong></strong> <p class="schema-faq-answer">Tak, ze względu na lekkość konstrukcji, system suchy jest bezpieczny dla stropów o ograniczonej nośności, np. w kamienicach.</p> </div> <div class="schema-faq-section" id="faq-question-1739731546709"><strong class="schema-faq-question"><strong>Jak długo trwa montaż suchego ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Montaż zajmuje zwykle 2–3 dni, w zależności od wielkości pomieszczenia i doświadczenia ekipy. To znacznie szybciej niż w przypadku systemu mokrego.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: czy suchy system jest dla Ciebie?</h2>



<p><strong>System suchy w wodnym ogrzewaniu podłogowym</strong> to rewolucyjne rozwiązanie dla tych, którzy cenią szybki montaż, lekkość i możliwość modernizacji bez skuwania podłóg. Sprawdź, czy Twój projekt spełnia warunki – a może okaże się, że to właśnie ta metoda zapewni Ci wymarzone ciepło w domu!</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="ggKh1RmYZK"><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=svRRZCI2ib#?secret=ggKh1RmYZK" data-secret="ggKh1RmYZK" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">Czym jest system suchy w wodnym ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</title>
		<link>https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 30 Oct 2024 17:02:53 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo zimą]]></category>
		<category><![CDATA[Chodnik]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort zimowy]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie powierzchni otwartych]]></category>
		<category><![CDATA[Parking]]></category>
		<category><![CDATA[Podgrzewane podjazdy]]></category>
		<category><![CDATA[Podjazd]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Taras]]></category>
		<category><![CDATA[Tarasy i chodniki]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[bezpieczne chodniki]]></category>
		<category><![CDATA[chodnik]]></category>
		<category><![CDATA[eliminacja śniegu]]></category>
		<category><![CDATA[energooszczędność]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort zimowy]]></category>
		<category><![CDATA[nowoczesne technologie]]></category>
		<category><![CDATA[ogrzewanie powierzchni otwartych]]></category>
		<category><![CDATA[parking]]></category>
		<category><![CDATA[podgrzewane podjazdy]]></category>
		<category><![CDATA[podjazd]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<category><![CDATA[taras]]></category>
		<category><![CDATA[tarasy bez lodu]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1408</guid>

					<description><![CDATA[<p>Podgrzewane podjazdy, chodniki, parkingi i tarasy to doskonałe rozwiązanie na zimowe problemy z oblodzeniem i śniegiem. Dzięki nowoczesnym technologiom można zapomnieć o ręcznym odśnieżaniu i cieszyć się bezpieczeństwem oraz wygodą przez całą zimę. Nasze systemy grzewcze zapewniają bezpieczne i suche powierzchnie, co jest szczególnie ważne w trudnych warunkach pogodowych. Dowiedz się, dlaczego warto zainwestować w podgrzewane nawierzchnie i jak poprawić komfort zimowy swojego otoczenia.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/">Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Zima, choć piękna i klimatyczna, może stwarzać wiele problemów, szczególnie jeśli chodzi o bezpieczeństwo na zewnętrznych nawierzchniach. Oblodzone podjazdy, parkingi i tarasy mogą stanowić poważne zagrożenie, zarówno dla domowników, jak i gości. Podgrzewane powierzchnie zewnętrzne to idealne rozwiązanie, które zapewnia nie tylko komfort, ale także oszczędność czasu i bezpieczeństwo. Poznaj wszystkie zalety i możliwości, jakie oferują podgrzewane podjazdy, chodniki oraz tarasy, i przekonaj się, że warto zainwestować w nowoczesne systemy ogrzewania powierzchni otwartych.</p>



<h2 class="wp-block-heading">Dlaczego warto zainstalować podgrzewane podjazdy i tarasy?</h2>



<p>Podgrzewane powierzchnie otwarte to odpowiedź na wiele zimowych problemów, z którymi mierzymy się każdego roku. W obliczu niekorzystnych warunków pogodowych – śniegu, mrozu i lodu – wiele osób spędza godziny na odśnieżaniu swoich podjazdów, chodników czy parkingów. Taka praca nie tylko pochłania czas, ale też wymaga dużego wysiłku fizycznego, co może być szczególnie problematyczne dla osób starszych. Dzięki podgrzewanym podjazdom możemy jednak cieszyć się gładkimi, bezpiecznymi i czystymi powierzchniami przez cały sezon zimowy.</p>



<p>Korzyści płynących z instalacji podgrzewanych powierzchni jest wiele. Jedną z kluczowych zalet jest <strong>bezpieczeństwo</strong>. Dzięki takiemu rozwiązaniu eliminujemy ryzyko upadku, poślizgnięcia się i innych niebezpiecznych sytuacji wynikających z oblodzonych powierzchni. Podgrzewane tarasy i podjazdy są doskonałym wyborem dla rodzin z dziećmi oraz dla osób starszych, które mogłyby szczególnie ucierpieć na skutek nieszczęśliwego upadku.</p>



<h2 class="wp-block-heading">Komfort i wygoda, która się opłaca.</h2>



<p>Nie można zapominać o wygodzie, jaką daje system podgrzewanych powierzchni otwartych. Tradycyjne odśnieżanie i usuwanie lodu wymaga codziennego angażowania się w procesy, które są żmudne i męczące. System podgrzewanych podjazdów automatycznie dba o to, aby nawierzchnie były wolne od lodu i śniegu, zapewniając nam cenny czas i energię na inne, bardziej przyjemne czynności. Zamiast zmagać się z nieprzyjemnymi obowiązkami, możemy po prostu cieszyć się zimą, nie martwiąc się o niebezpieczne i śliskie nawierzchnie.</p>



<h2 class="wp-block-heading">Nowoczesne technologie na wyciągnięcie ręki.</h2>



<p>Podgrzewane podjazdy i chodniki to efektywne wykorzystanie nowoczesnych technologii. Do ogrzewania powierzchni otwartych stosuje się niskotemperaturowe systemy grzewcze, w których kluczową rolę odgrywają wielowarstwowe rury, przez które przepływa roztwór wodny glikolu. Taki płyn grzewczy zapobiega zamarzaniu systemu podczas przerw w ogrzewaniu oraz przy ekstremalnych mrozach. Temperatura zasilania systemu wynosi od 30 do 55°C, co pozwala na utrzymanie nawierzchni w odpowiednim stanie przez całą zimę.</p>



<p>System podgrzewania powierzchni otwartych może być łatwo dostosowany do różnych powierzchni. Można go stosować pod kostką brukową, betonem, a nawet pod powierzchniami trawiastymi, takimi jak boiska sportowe. Ważne jest jednak, aby odpowiednio dobrać materiały i zapewnić prawidłowe rozmieszczenie rur grzewczych, co pozwoli na efektywne działanie systemu oraz zapewni komfort cieplny.</p>



<h2 class="wp-block-heading">Jak działają podgrzewane powierzchnie otwarte?</h2>



<p>Podgrzewane powierzchnie otwarte działają na zasadzie <strong>wymiany ciepła</strong> między czynnikiem grzewczym a nawierzchnią. System rur umieszczonych pod powierzchnią rozprowadza ciepło, które przenika przez warstwy nad rurami, podgrzewając nawierzchnię do temperatury, która pozwala na topnienie śniegu i lodu. Głównym celem jest utrzymanie temperatury powierzchni na poziomie od +1 do +5°C, co gwarantuje skuteczne zapobieganie powstawaniu oblodzenia i zalegania śniegu.</p>



<p>W praktyce oznacza to, że system działa w sposób ciągły, zapewniając nam wolną od lodu powierzchnię bez konieczności angażowania się w ręczne usuwanie zanieczyszczeń. Oczywiście, taki system wymaga odpowiedniego zasilania, ale dzięki nowoczesnym rozwiązaniom technicznym oraz właściwej optymalizacji, możliwe jest <strong>zredukowanie kosztów energii</strong> do minimum.</p>



<h2 class="wp-block-heading">Zalety podgrzewanych podjazdów, chodników i tarasów</h2>



<ul class="wp-block-list">
<li><strong>Bezpieczeństwo</strong>: Eliminacja ryzyka poślizgu na oblodzonych nawierzchniach.</li>



<li><strong>Wygoda</strong>: Brak konieczności odśnieżania i ręcznego usuwania lodu.</li>



<li><strong>Efektywność</strong>: Skuteczne i energooszczędne utrzymanie nawierzchni w odpowiednim stanie.</li>



<li><strong>Estetyka</strong>: Zawsze czyste i suche powierzchnie, bez zalegającego śniegu.</li>



<li><strong>Trwałość</strong>: Nowoczesne materiały i technologie zapewniają długą żywotność instalacji.</li>
</ul>



<h2 class="wp-block-heading">Konstrukcja ogrzewania powierzchni otwartych.</h2>



<p>Podstawowym elementem konstrukcji podgrzewanych powierzchni otwartych są wielowarstwowe rury, które prowadzone są pod powierzchnią, w warstwie betonu lub piasku. Aby zapewnić maksymalną efektywność systemu, rury są rozmieszczane z określoną gęstością, co pozwala na <strong>równomierne rozprowadzenie ciepła</strong>. Pod instalacją nie stosuje się izolacji cieplnej, co zwiększa straty ciepła do gruntu, ale jednocześnie zwiększa bezwładność cieplną, co jest korzystne w przypadku ciągłego działania systemu.</p>



<p>Przy planowaniu instalacji istotne jest również odpowiednie rozmieszczenie <strong>listw montażowych</strong>, które służą do stabilizacji rur i zapewnienia ich odpowiedniego ułożenia. Dzięki temu system działa sprawnie i skutecznie przez wiele lat, zapewniając optymalną efektywność grzewczą.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="373" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-1024x373.jpg" alt="" class="wp-image-1410" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-1024x373.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-300x109.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-768x280.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-600x218.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka.jpg 1247w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Rys. Ogrzewanie powierzchni z kostką.</figcaption></figure>



<h2 class="wp-block-heading">Gdzie warto zastosować podgrzewane powierzchnie otwarte?</h2>



<p>Podgrzewane powierzchnie otwarte sprawdzają się w wielu miejscach, zarówno prywatnych, jak i publicznych. <strong>Podjazdy i chodniki</strong> to najczęstsze lokalizacje, gdzie stosowane są systemy ogrzewania, ponieważ eliminują konieczność ręcznego odśnieżania i poprawiają bezpieczeństwo. <strong>Tarasy</strong> również mogą korzystać z takich rozwiązań, dzięki czemu są wolne od lodu i można z nich bezpiecznie korzystać nawet w zimowych miesiącach.</p>



<p>Systemy podgrzewania powierzchni otwartych znajdują zastosowanie także w miejscach takich jak <strong>parkingi</strong>, <strong>otwarte myjnie samochodowe</strong>, czy nawet <strong>boiska sportowe</strong>. Dzięki nim możliwe jest zapewnienie komfortu i bezpieczeństwa zarówno użytkownikom indywidualnym, jak i publicznym.</p>



<h2 class="wp-block-heading">Podsumowanie – dlaczego warto zainwestować w podgrzewane podjazdy?</h2>



<p>Podgrzewane podjazdy, chodniki, parkingi i tarasy to innowacyjne rozwiązanie, które sprawdza się wszędzie tam, gdzie liczy się bezpieczeństwo, komfort oraz oszczędność czasu. Dzięki zastosowaniu nowoczesnych technologii oraz wysokiej jakości materiałów możemy cieszyć się wolnymi od śniegu i lodu powierzchniami przez cały sezon zimowy. Zainstalowanie takiego systemu to inwestycja, która szybko się zwraca, eliminując konieczność ręcznego odśnieżania oraz zapewniając długotrwałą wygodę.</p>



<p>Jeśli chcesz dowiedzieć się więcej o możliwościach instalacji ogrzewania powierzchni otwartych i skorzystać z naszej oferty, odwiedź naszą stronę: <a href="https://projekt-ogrzewania.pl/produkt/projekt-podgrzewanego-podjazdu-chodnika-parkingu-tarasu/">Projekt podgrzewanego podjazdu, chodnika, parkingu oraz tarasu</a>.</p>



<p>Dzięki naszym nowoczesnym rozwiązaniom zyskasz pewność, że Twój podjazd, chodnik czy taras będą bezpieczne i wygodne, niezależnie od warunków pogodowych. Zachęcamy do kontaktu i skorzystania z naszej oferty, aby zimą cieszyć się komfortem na najwyższym poziomie!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/">Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
