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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa planowanie ogrzewania - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/planowanie-ogrzewania/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Czy do ogrzewania podłogowego potrzebny jest projekt?</title>
		<link>https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/</link>
					<comments>https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 03 Feb 2025 22:20:18 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo instalacji]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Normy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja systemów grzewczych]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Unikanie błędów instalacyjnych]]></category>
		<category><![CDATA[bezpieczeństwo budowlane]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[normy budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[optymalizacja instalacji]]></category>
		<category><![CDATA[planowanie ogrzewania]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[wodne ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2068</guid>

					<description><![CDATA[<p>Czy do ogrzewania podłogowego potrzebny jest projekt? Odpowiedź jest jednoznaczna – tak! Profesjonalna dokumentacja gwarantuje bezpieczeństwo, optymalizację kosztów i efektywność systemu. W artykule dowiesz się, kiedy projekt jest konieczny, co powinien zawierać i jakie korzyści przynosi. Nie ryzykuj kosztownych błędów – zainwestuj w projekt, by cieszyć się sprawnie działającą instalacją przez lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">Czy do ogrzewania podłogowego potrzebny jest projekt?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe to jedno z najbardziej komfortowych i energooszczędnych rozwiązań grzewczych. Wielu inwestorów zastanawia się jednak: <strong><em>czy do ogrzewania podłogowego potrzebny jest projekt</em>?</strong> Odpowiedź jest jednoznaczna – <strong>tak, projekt jest niezbędny</strong>. Profesjonalna dokumentacja zapewnia bezpieczeństwo, efektywność oraz zgodność instalacji z obowiązującymi normami. Poniżej wyjaśniamy, dlaczego warto zainwestować w projekt ogrzewania podłogowego i jakie korzyści z tego wynikają.</p>



<h2 class="wp-block-heading"><strong>Kiedy projekt ogrzewania podłogowego jest konieczny?</strong></h2>



<p class="wp-block-paragraph">Projekt ogrzewania podłogowego jest szczególnie istotny w przypadku systemów wodnych, które wymagają precyzyjnego planowania. Oto najważniejsze sytuacje, w których projekt jest absolutnie niezbędny:</p>



<ol start="1" class="wp-block-list">
<li><strong>Instalacje o większej mocy</strong>: Zgodnie z polskim prawem, systemy grzewcze o mocy powyżej 50 kW wymagają zgłoszenia w starostwie, co automatycznie oznacza konieczność posiadania projektu.</li>



<li><strong>Duże powierzchnie grzewcze</strong>: W domach jednorodzinnych czy obiektach komercyjnych projekt pomaga zoptymalizować działanie instalacji.</li>



<li><strong>Kompleksowe układy grzewcze</strong>: W przypadku połączenia podłogówki z innymi systemami, jak pompy ciepła czy rekuperacja, projekt pozwala na ich pełną integrację.</li>
</ol>



<h2 class="wp-block-heading"><strong>Dlaczego warto mieć projekt? 5 kluczowych powodów</strong></h2>



<p class="wp-block-paragraph">Nawet jeśli prawo nie wymaga dokumentacji, inwestycja w projekt ogrzewania podłogowego przynosi szereg korzyści:</p>



<ol start="1" class="wp-block-list">
<li><strong>Optymalizacja kosztów</strong> Dzięki projektowi unikniesz nadmiernych wydatków na materiały i sprzęt, takich jak zbyt duża liczba rur czy niepotrzebnie mocne źródło ciepła.</li>



<li><strong>Efektywność energetyczna</strong> Profesjonalny projekt uwzględnia precyzyjny rozstaw rur, co pozwala na równomierne rozprowadzenie ciepła i zmniejsza rachunki za ogrzewanie nawet o 20%.</li>



<li><strong>Dopasowanie do specyfikacji budynku</strong> Projekt uwzględnia unikalne cechy Twojego budynku, takie jak rodzaj izolacji, powierzchnię grzewczą czy układ pomieszczeń, co gwarantuje maksymalną wydajność systemu.</li>



<li><strong>Zgodność z normami</strong> Instalacja wykonana na podstawie projektu spełnia wymagania norm, takich jak PN-EN 1264 dotycząca ogrzewania powierzchniowego.</li>



<li><strong>Ułatwienie montażu</strong> Wytyczne zawarte w projekcie skracają czas pracy wykonawców i minimalizują ryzyko błędów.</li>
</ol>



<p class="wp-block-paragraph">Więcej o tym, co zawiera profesjonalna dokumentacja, znajdziesz tutaj: <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">Jak powinien wyglądać profesjonalny projekt do ogrzewania podłogowego.</a></p>



<h2 class="wp-block-heading"><strong>Co zawiera projekt ogrzewania podłogowego?</strong></h2>



<p class="wp-block-paragraph">Profesjonalna dokumentacja projektowa składa się z kilku kluczowych elementów:</p>



<ul class="wp-block-list">
<li><strong>Obliczenia strat ciepła</strong> dla każdego pomieszczenia, aby zapewnić odpowiednią moc grzewczą.</li>



<li><strong>Schemat rozkładu rur</strong> uwzględniający różne strefy grzewcze.</li>



<li><strong>Specyfikację materiałów</strong>, takich jak <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rury</a> czy grubość izolacji.</li>



<li><strong>Parametry źródła ciepła</strong>, w tym moc pompy ciepła lub kotła.</li>



<li><strong>Instrukcję montażu</strong> dla wykonawcy, z zaleceniami dotyczącymi instalacji i uruchomienia systemu.</li>
</ul>



<h2 class="wp-block-heading"><strong>Ryzyko instalacji bez projektu</strong>.</h2>



<p class="wp-block-paragraph">Brak projektu może prowadzić do wielu problemów, takich jak:</p>



<ul class="wp-block-list">
<li><strong>Nierównomierne ogrzewanie</strong> – np. „zimne strefy” w pomieszczeniu.</li>



<li><strong>Wyższe koszty eksploatacji</strong> – wynikające z niedopasowanego rozstawu rur lub źródła ciepła.</li>



<li><strong>Problemy konstrukcyjne</strong> – pęknięcia posadzki spowodowane niewłaściwą grubością wylewki.</li>



<li><strong>Problemy prawne</strong> – brak dokumentacji może uniemożliwić odbiór budynku.</li>
</ul>



<h2 class="wp-block-heading"><strong>Ile kosztuje projekt ogrzewania podłogowego?</strong></h2>



<p class="wp-block-paragraph">Koszty projektu zależą od wielkości i złożoności instalacji. Orientacyjne ceny:</p>



<ul class="wp-block-list">
<li><strong>Mieszkania do 70 m²</strong>: od 350 zł,</li>



<li><strong>Domy jednorodzinne (150 m²)</strong>: od 450 zł,</li>



<li><strong>Obiekty przemysłowe</strong>: od 900 zł.</li>
</ul>



<p class="wp-block-paragraph">Więcej informacji znajdziesz <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">tutaj</a>.</p>



<h2 class="wp-block-heading"><strong>Jak wybrać firmę projektową?</strong></h2>



<p class="wp-block-paragraph">Oto kilka wskazówek, które pomogą Ci wybrać odpowiedniego projektanta:</p>



<ol start="1" class="wp-block-list">
<li><strong>Sprawdź doświadczenie</strong> – firma powinna mieć na koncie liczne realizacje.</li>



<li><strong>Poproś o portfolio</strong> – projekty podobnych instalacji są najlepszą rekomendacją.</li>



<li><strong>Zapytaj o wsparcie techniczne</strong> – np. konsultacje podczas montażu.</li>
</ol>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl">Nasza firma</a> oferuje kompleksowe usługi projektowe, w tym wsparcie na każdym etapie inwestycji. </p>



<h2 class="wp-block-heading"><strong>FAQ</strong>:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1738619923847"><strong class="schema-faq-question"><strong>Czy projekt ogrzewania podłogowego jest wymagany przez prawo?</strong></strong> <p class="schema-faq-answer">Tak, w przypadku instalacji o mocy powyżej 50 kW projekt jest konieczny zgodnie z polskimi przepisami.</p> </div> <div class="schema-faq-section" id="faq-question-1738619934611"><strong class="schema-faq-question"><strong>Jakie są konsekwencje braku projektu ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Może to prowadzić do nierównomiernego ogrzewania, wyższych rachunków za energię i problemów konstrukcyjnych.</p> </div> <div class="schema-faq-section" id="faq-question-1738619946866"><strong class="schema-faq-question"><strong>Co zawiera projekt ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Dokumentacja obejmuje m.in. obliczenia strat ciepła, schematy układu rur, specyfikację materiałów oraz parametry źródła ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1738619966350"><strong class="schema-faq-question"><strong>Czy projekt pomaga obniżyć koszty instalacji?</strong></strong> <p class="schema-faq-answer">Tak, projekt pozwala uniknąć zbędnych wydatków na materiały i optymalizuje działanie systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1738619978077"><strong class="schema-faq-question"><strong>Jak wybrać firmę do wykonania projektu?</strong></strong> <p class="schema-faq-answer">Warto sprawdzić doświadczenie projektanta, portfolio realizacji i oferowane wsparcie techniczne podczas montażu.</p> </div> </div>



<h2 class="wp-block-heading"><strong>Podsumowanie</strong>.</h2>



<p class="wp-block-paragraph">Czy do ogrzewania podłogowego potrzebny jest projekt? Odpowiedź brzmi: <strong>tak</strong>, szczególnie w przypadku instalacji wodnej. Projekt zapewnia oszczędności, bezpieczeństwo i optymalną efektywność systemu. Jeśli planujesz inwestycję w ogrzewanie podłogowe, zainwestuj w profesjonalną dokumentację – to fundament Twojego komfortu cieplnego i spokoju na 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="FfdrcLNlbt"><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=3KfGyWx5RH#?secret=FfdrcLNlbt" data-secret="FfdrcLNlbt" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">Czy do ogrzewania podłogowego potrzebny jest projekt?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Gdzie nie układać ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 17 Dec 2024 16:39:37 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Nowoczesne systemy grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[błędy przy montazu ogrzewania]]></category>
		<category><![CDATA[gdzie nie układać podłogówki]]></category>
		<category><![CDATA[instalacja podłogówki]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędne ogrzewanie]]></category>
		<category><![CDATA[planowanie ogrzewania]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[sprzęt AGD]]></category>
		<category><![CDATA[stała zabudowa]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1782</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to nowoczesny i komfortowy system grzewczy, ale nie wszędzie można go układać. Dowiedz się, gdzie unikać montowania podłogówki, aby uniknąć strat ciepła i problemów technicznych. Przeczytaj, dlaczego nie warto układać rur pod stałą zabudową meblową czy sprzętem AGD oraz jak odpowiednie planowanie wpływa na efektywność systemu grzewczego.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">Gdzie nie układać ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-slate: #334155;
    --rk-intro-brand: #0284c7; /* Profesjonalny błękit */
    --rk-intro-brand-light: #e0f2fe;
    --rk-intro-danger: #ef4444; /* Czerwień strat energii */
    --rk-intro-danger-light: #fee2e2;
    --rk-intro-success: #10b981; /* Zieleń efektywności */
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #cbd5e1;
}

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

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

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

.rk-intro-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-intro-desc {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

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

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

/* Przełącznik (Toggle) */
.rk-intro-toggle-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 15px 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-toggle-label {
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: color 0.3s;
}

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

.rk-switch input { opacity: 0; width: 0; height: 0; }

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-intro-success);
    transition: .4s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 38px;
}

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

input:checked + .rk-slider { background-color: var(--rk-intro-danger); }
input:checked + .rk-slider:before { transform: translateX(36px); }

/* Layout Siatki (Grid) */
.rk-intro-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja SVG */
.rk-intro-visual {
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    border-radius: 20px;
    padding: 20px;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.02);
}

.rk-svg-engine { width: 100%; height: 100%; }

/* Metryki / Kafelki */
.rk-intro-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.4s ease;
}

.rk-metric-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.4s ease;
}

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

.rk-metric-data h4 {
    font-size: 24px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-intro-dark);
    transition: color 0.4s;
}

/* Stan Zablokowany (State: Blocked) */
.state-blocked .rk-metric-card.cop { border-color: var(--rk-intro-danger); background: var(--rk-intro-danger-light); }
.state-blocked .rk-metric-card.cop .rk-metric-icon { background: var(--rk-intro-danger); color: white; }
.state-blocked .rk-metric-card.cop h4 { color: var(--rk-intro-danger); }

/* SVG States & Animations */
.anim-furniture { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s; }
.anim-heat-wave { transition: opacity 0.3s; stroke-dasharray: 6 12; }
.anim-concrete { transition: fill 1s; }
.anim-pipe { transition: stroke 1s; }

/* Stan 1: Wolna przestrzeń (Clear) */
.state-clear .anim-furniture { transform: translateY(-50px); opacity: 0; }
.state-clear .anim-heat-wave { opacity: 1; stroke: var(--rk-intro-success); animation: flowUp 2s linear infinite; }
.state-clear .anim-heat-blocked { opacity: 0; }
.state-clear .anim-concrete { fill: #f1f5f9; }
.state-clear .anim-pipe { stroke: var(--rk-intro-success); }
#lbl-clear { color: var(--rk-intro-success); }
#lbl-blocked { color: var(--rk-intro-slate); }

/* Stan 2: Zablokowana (Blocked) */
.state-blocked .anim-furniture { transform: translateY(0); opacity: 1; }
.state-blocked .anim-heat-wave { opacity: 0; }
.state-blocked .anim-heat-blocked { opacity: 1; stroke: var(--rk-intro-danger); animation: boilHeat 1s infinite alternate; }
.state-blocked .anim-concrete { fill: #fca5a5; } /* Czerwieniejący beton */
.state-blocked .anim-pipe { stroke: #991b1b; }
#lbl-clear { color: var(--rk-intro-slate); }
#lbl-blocked { color: var(--rk-intro-danger); }

@keyframes flowUp { to { stroke-dashoffset: -36; } }
@keyframes boilHeat { from { transform: translateY(0) scaleX(1); } to { transform: translateY(3px) scaleX(1.05); } }

/* Sekcja Treściowa (E-E-A-T) */
.rk-intro-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-intro-border);
}

.rk-intro-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-intro-text);
    margin-bottom: 20px;
}

.rk-link {
    color: var(--rk-intro-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { color: #0369a1; border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-app, .rk-intro-content { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 26px; }
    .rk-intro-grid { grid-template-columns: 1fr; gap: 30px; }
    .rk-intro-toggle-bar { flex-direction: column; gap: 10px; }
    .rk-intro-visual { height: 250px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Strefy martwe a sprawność pompy ciepła – fizyka wylewki",
    "description": "Dlaczego ogrzewanie podłogowe ułożone pod szafkami i wanną niszczy instalację? Poznaj wpływ blokad termicznych na współczynnik COP.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-cop",
    "name": "Analiza spadku wydajności COP przy blokadzie termicznej",
    "description": "Zestawienie parametrów operacyjnych: spadek współczynnika COP pompy ciepła i wzrost temperatury powrotu przy zablokowanej emisji podłogowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "spadek COP pompy ciepła",
      "ogrzewanie podłogowe pod szafkami",
      "norma PN-EN 1264",
      "straty ciepła podłogówka",
      "strefy martwe ogrzewania"
    ],
    "measurementTechnique": "Obliczenia termodynamiczne różnicy temperatury zasilania i powrotu dla stref o podwyższonym oporze cieplnym warstw wierzchnich (> 0,15 m2K/W).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa Otwarta: Prawidłowa emisja przez promieniowanie, COP = 4.2",
        "Strefa Zablokowana (Zabudowa): Brak wymiany ciepła, przegrzew wylewki, spadek COP = 3.8"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-symulator",
    "name": "Symulator Blokady Emisji Ciepła (OZC)",
    "description": "Interaktywne narzędzie inżynierskie wizualizujące proces uwięzienia ciepła w jastrychu pod stałą zabudową meblową i jego wpływ na parametry pracy pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container state-clear" id="rk-intro-app">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Inżynieria Oszczędności
        </div>
        <h2>Gdzie nie układać ogrzewania podłogowego?</h2>
        <p class="rk-intro-desc">Prawidłowe wyznaczenie stref &#8222;martwych&#8221; to fundament energooszczędności. Ogrzewanie podłogowe to system radiacyjny – jeśli je przykryjesz, zablokujesz emisję, przegrzejesz beton i obniżysz sprawność pompy ciepła.</p>
    </div>

    <div class="rk-intro-app">
        <h3>Sprawdź wpływ zabudowy na pracę instalacji</h3>
        
        <div class="rk-intro-toggle-bar">
            <span class="rk-toggle-label" id="lbl-clear">Strefa Otwarta (Prawidłowa)</span>
            <label class="rk-switch">
                <input type="checkbox" id="rk-state-toggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="lbl-blocked">Szafa / AGD (Błąd)</span>
        </div>

        <div class="rk-intro-grid">
            <div class="rk-intro-visual">
                <svg class="rk-svg-engine" viewBox="0 0 200 150">
                    <rect x="0" y="0" width="200" height="100" fill="#ffffff" />
                    
                    <rect class="anim-concrete" x="10" y="100" width="180" height="40" rx="4" />
                    
                    <path class="anim-pipe" d="M 10 120 L 190 120" stroke-width="8" stroke-linecap="round" fill="none" />
                    
                    <g class="anim-heat-wave" fill="none" stroke-width="4" stroke-linecap="round">
                        <path d="M 40 90 L 40 40 M 100 90 L 100 40 M 160 90 L 160 40" />
                    </g>
                    
                    <g class="anim-heat-blocked" fill="none" stroke-width="4" stroke-linecap="round">
                        <path d="M 40 110 Q 50 100 60 110 T 80 110" />
                        <path d="M 100 110 Q 110 100 120 110 T 140 110" />
                    </g>

                    <g class="anim-furniture">
                        <rect x="30" y="20" width="140" height="80" fill="#475569" rx="2" stroke="#1e293b" stroke-width="2"/>
                        <rect x="35" y="100" width="130" height="10" fill="#334155" />
                        <line x1="100" y1="20" x2="100" y2="100" stroke="#1e293b" stroke-width="2"/>
                    </g>
                </svg>
            </div>

            <div class="rk-intro-metrics">
                <div class="rk-metric-card cop" id="card-cop">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Współczynnik COP Pompy</p>
                        <h4 id="val-cop">4.2 (Wysoki)</h4>
                    </div>
                </div>

                <div class="rk-metric-card">
                    <div class="rk-metric-icon" style="background:#e0f2fe; color:#0284c7;">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Temperatura Wylewki</p>
                        <h4 id="val-temp">26°C (Norma)</h4>
                    </div>
                </div>

                <div class="rk-metric-card">
                    <div class="rk-metric-icon" style="background:#f1f5f9; color:#475569;">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Oddawanie Energii</p>
                        <h4 id="val-energy">Swobodne</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-intro-content">
        <h3>Konsekwencje inżynieryjne według norm</h3>
        <p>
            Ogrzewanie podłogowe to niskotemperaturowy system przekazywania ciepła przez promieniowanie, który wymaga odsłoniętej powierzchni oddawczej w celu zachowania sprawności hydraulicznej i termicznej. Zgodnie z normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-link">PN-EN 1264</a>, projektowanie układu pętli musi uwzględniać opór cieplny warstw wierzchnich oraz planowane rozmieszczenie wyposażenia stałego.
        </p>
        <p>
            Nie układa się rur pod stałymi elementami zabudowy, takimi jak szafki kuchenne na cokole, wanny z obudową, brodziki oraz szafy wnękowe. Błędne ułożenie rur w miejscach, gdzie ciepło nie może swobodnie migrować do pomieszczenia, skutkuje niebezpiecznym podniesieniem <a href="https://projekt-ogrzewania.pl/spadek-temperatury-dt-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-link">temperatury powrotu czynnika grzewczego</a> i pękaniem jastrychu.
        </p>
        <p>
            Dla nowoczesnej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-link">pompy ciepła</a> uwięzienie energii pod meblami oznacza drastyczny <strong>spadek współczynnika COP z poziomu 4.2 na 3.8</strong>. Urządzenie musi pracować ciężej, aby &#8222;przebić&#8221; się przez opór szafek, co w skali sezonu grzewczego generuje bardzo realne i odczuwalne straty finansowe. <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" class="rk-link">Błędów popełnionych przed wylaniem betonu nie da się już tanio naprawić</a>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Weryfikacja domenowa (Ochrona Praw Autorskich)
    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-intro-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; color: #ef4444; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif;">
                <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                    Wykryto nieautoryzowaną próbę użycia skryptu inżynieryjnego. Kod i struktura JSON-LD są własnością Projekt-Ogrzewania.pl.
                </div>
            </div>
        `;
        return;
    }

    // Logika Symulatora
    const container = document.getElementById('rk-intro-app');
    const toggle = document.getElementById('rk-state-toggle');
    
    // Elementy danych
    const valCop = document.getElementById('val-cop');
    const valTemp = document.getElementById('val-temp');
    const valEnergy = document.getElementById('val-energy');

    toggle.addEventListener('change', function() {
        if(this.checked) {
            // Zablokowana (Błąd)
            container.classList.remove('state-clear');
            container.classList.add('state-blocked');
            
            valCop.innerText = "3.8 (Spadek)";
            valTemp.innerText = "35°C (Przegrzew)";
            valEnergy.innerText = "Zablokowane";
        } else {
            // Otwarta (Norma)
            container.classList.remove('state-blocked');
            container.classList.add('state-clear');
            
            valCop.innerText = "4.2 (Wysoki)";
            valTemp.innerText = "26°C (Norma)";
            valEnergy.innerText = "Swobodne";
        }
    });
});
</script>



<style>
:root {
    --rk-kit-dark: #1e293b;
    --rk-kit-panel: #0f172a;
    --rk-kit-brand: #3b82f6; /* Inżynieryjny błękit */
    --rk-kit-brand-light: #eff6ff;
    --rk-kit-danger: #ef4444; /* Krytyczna temperatura */
    --rk-kit-warning: #f59e0b; /* Uwaga / Ciepło */
    --rk-kit-success: #10b981; /* Optymalnie */
    --rk-kit-bg: #f8fafc;
    --rk-kit-border: #e2e8f0;
}

.rk-kit-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(59, 130, 246, 0.15);
    border: 1px solid var(--rk-kit-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-kit-header {
    background: linear-gradient(135deg, var(--rk-kit-panel) 0%, #1e1b4b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-kit-brand);
}

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

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

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

/* Aplikacja / Symulator */
.rk-kit-app {
    padding: 40px 50px;
    background: var(--rk-kit-bg);
}

/* Przełącznik (Switch) */
.rk-kit-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-kit-toggle {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-kit-border);
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-kit-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    background: transparent;
    color: #64748b;
}

.rk-kit-btn.active[data-mode="bad"] {
    background: var(--rk-kit-danger);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.rk-kit-btn.active[data-mode="good"] {
    background: var(--rk-kit-brand);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

/* Układ Grid (Wizualizacja + Dane) */
.rk-kit-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

/* Wizualizacja SVG */
.rk-kit-visual {
    background: #ffffff;
    border: 2px solid var(--rk-kit-border);
    border-radius: 20px;
    padding: 20px;
    height: 320px;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
}

.rk-svg-wrapper { width: 100%; height: 100%; }

/* Metryki na żywo */
.rk-kit-metrics {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-metric-box {
    background: #ffffff;
    border: 1px solid var(--rk-kit-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.4s ease;
}

.rk-metric-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--rk-kit-bg);
    transition: all 0.4s ease;
}

.rk-metric-info p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin: 0 0 4px 0;
    letter-spacing: 0.5px;
}

.rk-metric-info h4 {
    font-size: 22px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-kit-dark);
    transition: color 0.4s ease;
}

/* SVG Animations & States */
.anim-pipe { transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.anim-heat { transition: opacity 0.4s ease; stroke-dasharray: 4 8; }
.anim-cabinet { transition: fill 0.5s ease; }
.anim-warning { transition: opacity 0.3s ease, transform 0.3s ease; }

/* STAN: BŁĄD (Pod meblami) */
.state-bad .pipe-1 { transform: translateX(0); stroke: var(--rk-kit-danger); }
.state-bad .pipe-2 { transform: translateX(0); stroke: var(--rk-kit-danger); }
.state-bad .pipe-3 { opacity: 0; transform: translateX(-20px); }
.state-bad .anim-cabinet { fill: #fee2e2; stroke: var(--rk-kit-danger); }
.state-bad .heat-trapped { opacity: 1; stroke: var(--rk-kit-danger); animation: boil 1s infinite alternate; }
.state-bad .heat-free { opacity: 0; }
.state-bad .anim-warning { opacity: 1; transform: scale(1); }

/* STAN: DOBRZE (Ominięte + Zagęszczone) */
.state-good .pipe-1 { transform: translateX(45px); stroke: var(--rk-kit-brand); }
.state-good .pipe-2 { transform: translateX(30px); stroke: var(--rk-kit-brand); }
.state-good .pipe-3 { opacity: 1; transform: translateX(0); stroke: var(--rk-kit-brand); }
.state-good .anim-cabinet { fill: #f1f5f9; stroke: #cbd5e1; }
.state-good .heat-trapped { opacity: 0; }
.state-good .heat-free { opacity: 1; stroke: var(--rk-kit-success); animation: flowUp 2s linear infinite; }
.state-good .anim-warning { opacity: 0; transform: scale(0.8); }

@keyframes boil { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -12; } }
@keyframes flowUp { to { stroke-dashoffset: -24; } }

/* Dynamiczne Kolory Metryk */
.state-bad #val-temp { color: var(--rk-kit-danger); }
.state-bad #icon-temp { background: #fee2e2; color: var(--rk-kit-danger); }
.state-good #val-temp { color: var(--rk-kit-success); }
.state-good #icon-temp { background: #dcfce7; color: var(--rk-kit-success); }

/* Opis Inżynierski */
.rk-kit-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-kit-border);
}

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

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

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

.rk-link {
    color: var(--rk-kit-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(59, 130, 246, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { color: #1d4ed8; border-bottom-style: solid; }

/* RWD */
@media (max-width: 768px) {
    .rk-kit-header, .rk-kit-app, .rk-kit-content { padding: 30px 20px; }
    .rk-kit-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-kit-visual { height: 260px; }
    .rk-kit-toggle { width: 100%; }
    .rk-kit-btn { flex: 1; text-align: center; padding: 10px; font-size: 13px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-kuchnia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Dlaczego nie układa się ogrzewania podłogowego pod meblami kuchennymi?",
    "description": "Brak cyrkulacji powietrza pod szafkami kuchennymi powoduje przegrzew wylewki powyżej 35°C i niszczenie mebli. Dowiedz się, jak poprawnie zagęścić rury w strefie otwartej.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-kuchnia",
    "name": "Parametry Termiczne: Ogrzewanie podłogowe a zabudowa kuchenna",
    "description": "Zestawienie zmian mocy jednostkowej i rozstawu rur wynikające z odliczenia powierzchni stałej zabudowy od aktywnej strefy grzewczej według normy PN-EN 1264-4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe pod szafkami",
      "norma PN-EN 1264-4",
      "opór cieplny mebli",
      "zagęszczenie rur podłogówki",
      "rozstaw rur 10 cm"
    ],
    "measurementTechnique": "Kompensacja mocy cieplnej: Zmniejszenie aktywnej powierzchni grzewczej (np. 15 m2 do 10.5 m2) wymaga zwiększenia mocy jednostkowej z 60 W/m2 do 85 W/m2 poprzez zagęszczenie rozstawu z 15 cm na 10 cm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szafki kuchenne na cokole pełnią rolę izolatora o oporze cieplnym R > 0,15 m2K/W.",
        "Kumulacja ciepła prowadzi do wzrostu temperatury betonu pod szafką powyżej 35°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-kuchnia",
    "name": "Symulator Zabudowy Kuchennej w Instalacji OZC",
    "description": "Aplikacja pozwalająca na symulację zmiany układu rur grzewczych przy stałej zabudowie kuchennej i obserwację zmiany parametrów mocy oraz temperatury.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-kit-container" id="rk-kit-app">
    
    <div class="rk-kit-header">
        <div class="rk-kit-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M6 12v6"></path></svg>
            Analiza Projektowa
        </div>
        <h2>Dlaczego nie układać podłogówki pod meblami kuchennymi?</h2>
        <p>Zamknięty cokół szafek kuchennych blokuje konwekcję i promieniowanie. Zobacz, jak brak projektu wpływa na temperaturę betonu, meble i Twoje rachunki.</p>
    </div>

    <div class="rk-kit-app state-bad" id="rk-sim-zone">
        
        <div class="rk-kit-controls">
            <div class="rk-kit-toggle">
                <button class="rk-kit-btn active" data-mode="bad">Błąd: Rury pod szafkami</button>
                <button class="rk-kit-btn" data-mode="good">Projekt OZC: Strefa otwarta</button>
            </div>
        </div>

        <div class="rk-kit-grid">
            <div class="rk-kit-visual">
                <svg class="rk-svg-wrapper" viewBox="0 0 100 100">
                    <rect x="0" y="70" width="100" height="20" fill="#f1f5f9" />
                    <line x1="0" y1="70" x2="100" y2="70" stroke="#cbd5e1" stroke-width="1.5" />
                    
                    <circle class="anim-pipe pipe-1" cx="20" cy="80" r="4" fill="none" stroke-width="2" />
                    <circle class="anim-pipe pipe-2" cx="45" cy="80" r="4" fill="none" stroke-width="2" />
                    <circle class="anim-pipe pipe-3" cx="65" cy="80" r="4" fill="none" stroke-width="2" />
                    
                    <path class="anim-cabinet" d="M 5 20 L 45 20 L 45 60 L 35 60 L 35 70 L 15 70 L 15 60 L 5 60 Z" stroke-width="1.5" stroke-linejoin="round"/>
                    <line x1="45" y1="28" x2="5" y2="28" stroke="#cbd5e1" stroke-width="1"/>
                    <rect x="38" y="35" width="2" height="15" fill="#94a3b8" rx="1"/>

                    <g class="anim-heat heat-trapped" fill="none" stroke-width="2" stroke-linecap="round">
                        <path d="M 15 65 Q 25 55 35 65" />
                        <path d="M 20 68 Q 25 60 30 68" />
                    </g>

                    <g class="anim-heat heat-free" fill="none" stroke-width="2" stroke-linecap="round">
                        <path d="M 60 65 Q 65 50 60 35" />
                        <path d="M 75 65 Q 80 50 75 35" />
                        <path d="M 90 65 Q 95 50 90 35" />
                    </g>

                    <g class="anim-warning" transform="translate(20, 10)">
                        <path d="M 5 0 L 10 10 L 0 10 Z" fill="#ef4444" />
                        <line x1="5" y1="3" x2="5" y2="7" stroke="#ffffff" stroke-width="1" stroke-linecap="round"/>
                        <circle cx="5" cy="8.5" r="0.5" fill="#ffffff"/>
                    </g>
                </svg>
            </div>

            <div class="rk-kit-metrics">
                <div class="rk-metric-box">
                    <div class="rk-metric-icon" id="icon-temp">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-metric-info">
                        <p>Temperatura betonu (Pod szafką)</p>
                        <h4 id="val-temp">> 35°C (Przegrzew)</h4>
                    </div>
                </div>

                <div class="rk-metric-box">
                    <div class="rk-metric-icon" style="color: var(--rk-kit-brand);">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <div class="rk-metric-info">
                        <p>Aktywny rozstaw rur</p>
                        <h4 id="val-spacing">co 15 cm (Standard)</h4>
                    </div>
                </div>

                <div class="rk-metric-box">
                    <div class="rk-metric-icon" style="color: var(--rk-kit-warning);">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="13 2 13 9 22 9"></polyline><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V11z"></path></svg>
                    </div>
                    <div class="rk-metric-info">
                        <p>Wymagana Moc Jednostkowa</p>
                        <h4 id="val-power">60 W/m²</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-kit-content">
        <p>Pod stałą zabudową kuchenną na pełnym cokole nie układa się ogrzewania podłogowego, ponieważ brak cyrkulacji powietrza powoduje kumulację ciepła w betonowej płycie grzejnej o temperaturze przekraczającej <strong>35°C</strong>. Bezpośrednią konsekwencją jest niszczenie struktury płyt meblowych (rozsychanie się korpusów) oraz niepotrzebne grzanie wnętrza szafek z żywnością.</p>
        
        <p><a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-link">Norma PN-EN 1264-4</a> wyraźnie wskazuje, że powierzchnia grzejna powinna być efektywnie wykorzystana do pokrycia zapotrzebowania na ciepło, a szafki kuchenne stanowią izolator o wysokim oporze cieplnym (<strong>R > 0,15 m²K/W</strong>).</p>
        
        <p>W profesjonalnych projektach <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-link">OZC</a>, które realizuję, zawsze odejmujemy powierzchnię pod szafkami od aktywnej strefy grzewczej. Jeśli kuchnia ma 15 m², a zabudowa zajmuje 4,5 m², to pętle prowadzimy tylko na pozostałych 10,5 m². Zwiększamy tam jednak zagęszczenie rur (np. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-link">rozstaw co 10 cm zamiast 15 cm</a>), aby skompensować brak grzania pod meblami. Dzięki temu moc jednostkowa otwartej powierzchni wzrasta z 60 W/m² do <strong>85 W/m²</strong>, co pozwala na utrzymanie temperatury projektowej 20°C przy ekstremalnie niskich parametrach zasilania z pompy ciepła.</p>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-kit-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Błąd Praw Autorskich
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Kod źródłowy przypisany wyłącznie do domeny projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika symulatora
    const btns = document.querySelectorAll('.rk-kit-btn');
    const zone = document.getElementById('rk-sim-zone');
    
    // Pola Danych
    const valTemp = document.getElementById('val-temp');
    const valSpacing = document.getElementById('val-spacing');
    const valPower = document.getElementById('val-power');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset active state
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const mode = this.getAttribute('data-mode');
            
            if (mode === 'bad') {
                zone.classList.remove('state-good');
                zone.classList.add('state-bad');
                
                valTemp.innerText = "> 35°C (Przegrzew)";
                valSpacing.innerText = "co 15 cm (Standard)";
                valPower.innerText = "60 W/m²";
            } else {
                zone.classList.remove('state-bad');
                zone.classList.add('state-good');
                
                valTemp.innerText = "24°C (Bezpiecznie)";
                valSpacing.innerText = "co 10 cm (Zagęszczono)";
                valPower.innerText = "85 W/m²";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-agd-dark: #0f172a;
    --rk-agd-panel: #1e293b;
    --rk-agd-brand: #0ea5e9; /* Chłodny błękit (AGD) */
    --rk-agd-brand-light: #e0f2fe;
    --rk-agd-danger: #ef4444; /* Przegrzew kompresora */
    --rk-agd-danger-bg: #fef2f2;
    --rk-agd-warning: #f59e0b; /* Strefa ostrzegawcza */
    --rk-agd-success: #10b981; /* Strefa bezpieczna */
    --rk-agd-bg: #f8fafc;
    --rk-agd-border: #cbd5e1;
    --rk-agd-text: #334155;
}

.rk-agd-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.3);
    overflow: hidden;
}

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

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

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

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

/* Aplikacja Interaktywna */
.rk-agd-app {
    padding: 40px 50px;
    background: var(--rk-agd-bg);
}

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

/* Suwak (Slider) UI */
.rk-agd-control-panel {
    background: #ffffff;
    padding: 25px 35px;
    border-radius: 16px;
    border: 1px solid var(--rk-agd-border);
    margin-bottom: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-agd-slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 10px;
}

.rk-agd-slider-labels span.danger { color: var(--rk-agd-danger); }
.rk-agd-slider-labels span.safe { color: var(--rk-agd-success); }

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--rk-agd-danger) 0%, var(--rk-agd-warning) 40%, var(--rk-agd-success) 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-agd-dark);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

/* Layout Grid */
.rk-agd-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Wizualizacja SVG */
.rk-agd-visual {
    background: #ffffff;
    border: 2px solid var(--rk-agd-border);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
    min-height: 280px;
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
    max-height: 260px;
}

/* Metryki / Kafelki */
.rk-agd-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-agd-border);
    border-radius: 16px;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-metric-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-metric-data { flex-grow: 1; }

.rk-metric-data p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 4px 0;
    letter-spacing: 0.5px;
}

.rk-metric-data h4 {
    font-size: 22px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-agd-dark);
    transition: color 0.3s ease;
}

/* Klasy stanów na kafelkach */
.status-danger { border-color: var(--rk-agd-danger); background: var(--rk-agd-danger-bg); }
.status-danger .rk-metric-icon { background: var(--rk-agd-danger); color: #fff; }
.status-danger h4 { color: var(--rk-agd-danger); }

.status-warning { border-color: var(--rk-agd-warning); }
.status-warning .rk-metric-icon { background: #fef3c7; color: var(--rk-agd-warning); }
.status-warning h4 { color: var(--rk-agd-warning); }

.status-safe { border-color: var(--rk-agd-success); }
.status-safe .rk-metric-icon { background: #dcfce7; color: var(--rk-agd-success); }
.status-safe h4 { color: var(--rk-agd-success); }

/* Animacje SVG na żywo */
#anim-pipe { transition: transform 0.1s linear; }
#anim-compressor { transform-origin: center; }
.heat-wave { stroke-dasharray: 4 8; animation: flowHeat 1s linear infinite; }

@keyframes flowHeat {
    to { stroke-dashoffset: -12; }
}
@keyframes spinCompressor {
    100% { transform: rotate(360deg); }
}

/* Treść SEO / Merytoryczna */
.rk-agd-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-agd-border);
}

.rk-agd-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-agd-text);
    margin: 0 0 20px 0;
}

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

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

.rk-link {
    color: var(--rk-agd-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(14, 165, 233, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #0284c7;
    border-bottom-style: solid;
}

/* RWD */
@media (max-width: 768px) {
    .rk-agd-header, .rk-agd-app, .rk-agd-content { padding: 30px 20px; }
    .rk-agd-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-agd-visual { height: 240px; }
    .rk-agd-title { font-size: 24px; }
    .rk-metric-card { padding: 15px; }
    .rk-metric-data h4 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-agd",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Czy można kłaść rury ogrzewania podłogowego pod lodówką i urządzeniami AGD?",
    "description": "Zabrania się układania ogrzewania pod lodówką. Powoduje to wzrost kosztów prądu o 15% i ryzyko awarii kompresora o 40%. Poznaj bezpieczny bufor odległości.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-agd",
    "name": "Koszty eksploatacji lodówki nad ogrzewaniem podłogowym",
    "description": "Zestawienie wzrostu zużycia energii (kWh), realnych kosztów w PLN oraz ryzyka awarii kompresora w zależności od odległości pętli grzewczej od obrysu urządzenia AGD.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe pod lodówką",
      "awaria kompresora lodówki",
      "zużycie prądu lodówki podłogówka",
      "omijanie agd podłogówka",
      "błędy montażu instalacji grzewczej"
    ],
    "measurementTechnique": "Algorytm korelujący odległość rury grzewczej (0-15 cm) z gradientem temperatury podłoża (20-29°C), przeliczający wzrost temperatury o 5°C na 10-15% wyższe zużycie energii (baza: 160 kWh/rok).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "0 cm (Bezpośrednio pod): Temp 29°C, +15% kWh, Koszt +60 PLN, Ryzyko +40%",
        "10+ cm (Strefa Bezpieczna): Temp 20°C, 0% strat kWh, Praca nominalna kompresora"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-agd",
    "name": "Kalkulator Ryzyka i Kosztów AGD",
    "description": "Interaktywny symulator wizualizujący wpływ promieniowania cieplnego wylewki na układ termodynamiczny chłodziarki oraz obliczający ukryte koszty błędu instalacyjnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-agd-container" id="rk-agd-app">
    
    <div class="rk-agd-header">
        <div class="rk-agd-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Audyt Kosztów
        </div>
        <h2 class="rk-agd-title">Czy można kłaść rury pod lodówką i AGD?</h2>
        <p class="rk-agd-desc">Sprawdź na żywo, jak odległość pętli grzewczej od lodówki drastycznie wpływa na żywotność kompresora i Twoje rachunki za prąd.</p>
    </div>

    <div class="rk-agd-app">
        <h3>Symulator Zmęczenia Kompresora</h3>
        
        <div class="rk-agd-control-panel">
            <div class="rk-agd-slider-labels">
                <span class="danger">Błąd (Rura pod AGD)</span>
                <span class="safe">Norma (> 10 cm od AGD)</span>
            </div>
            <input type="range" min="0" max="15" value="0" class="rk-range-input" id="rk-distance-slider">
            <div style="text-align:center; margin-top:15px; font-weight:800; color:#334155;">
                Odległość rury od obrysu: <span id="val-distance" style="color:var(--rk-agd-danger); font-size:18px;">0 cm</span>
            </div>
        </div>

        <div class="rk-agd-grid">
            <div class="rk-agd-visual">
                <svg class="rk-svg-engine" viewBox="0 0 100 100">
                    <rect x="0" y="75" width="100" height="25" fill="#f1f5f9" />
                    <line x1="0" y1="75" x2="100" y2="75" stroke="#cbd5e1" stroke-width="2" />
                    
                    <rect x="50" y="10" width="40" height="63" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2" rx="2" />
                    <line x1="60" y1="10" x2="60" y2="73" stroke="#cbd5e1" stroke-width="1.5" />
                    
                    <rect x="75" y="55" width="15" height="15" fill="#334155" rx="2" />
                    <g id="anim-compressor" transform="translate(82.5, 62.5)">
                        <circle cx="0" cy="0" r="4" fill="#94a3b8" />
                        <line x1="-3" y1="0" x2="3" y2="0" stroke="#0f172a" stroke-width="1" />
                        <line x1="0" y1="-3" x2="0" y2="3" stroke="#0f172a" stroke-width="1" />
                    </g>

                    <rect id="floor-heat-zone" x="50" y="76" width="40" height="10" fill="#fca5a5" opacity="0.8" />

                    <g id="heat-waves-group" fill="none" stroke="#ef4444" stroke-width="1.5" stroke-linecap="round" class="heat-wave">
                        <path d="M 65 72 Q 70 65 80 62" />
                        <path d="M 75 72 Q 80 65 85 62" />
                    </g>

                    <g id="anim-pipe" transform="translate(70, 85)">
                        <circle cx="0" cy="0" r="5" fill="#ef4444" />
                        <circle cx="0" cy="0" r="3" fill="#ffffff" />
                    </g>
                    
                    <line x1="50" y1="90" x2="50" y2="95" stroke="#64748b" stroke-width="1" />
                </svg>
            </div>

            <div class="rk-agd-metrics">
                <div class="rk-metric-card status-danger" id="card-temp">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Temperatura podłoża</p>
                        <h4 id="metric-temp">29°C</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="card-cost">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Roczny wzrost kosztów (Prąd)</p>
                        <h4 id="metric-cost">+ 60 zł (+15%)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="card-risk">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Ryzyko awarii sprężarki</p>
                        <h4 id="metric-risk">Wysokie (+40%)</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-agd-content">
        <h3>Zasady omijania urządzeń AGD</h3>
        <p>Pod lodówkami, zamrażarkami oraz zmywarkami <strong>surowo zabrania się</strong> prowadzenia rur ogrzewania podłogowego. Urządzenia chłodnicze do prawidłowej pracy wymagają oddawania ciepła do otoczenia. Podgrzewanie ich od spodu wymusza ciągłą, nieprzerywaną pracę agregatów (kompresorów). Wzrost temperatury podłoża pod lodówką o każde 5°C powyżej temperatury otoczenia zwiększa zużycie prądu przez urządzenie o około <strong>10-15%</strong>.</p>
        
        <p>Dodatkowo, w przypadku zmywarek, podgrzewanie dopływu zimnej wody (jeśli rura zasilająca przechodzi blisko pętli grzewczej) może zaburzać procesy programatora cyklu mycia i znacznie skracać żywotność uszczelek gumowych.</p>
        
        <p><strong>Przykład obliczeniowy:</strong> Standardowa lodówka klasy C zużywa rocznie około 160 kWh. Umieszczenie jej bezpośrednio nad pętlą podłogówki (gdzie wylewka osiąga temperaturę 29°C) generuje ogromny, sztuczny zysk ciepła do wnętrza chłodziarki. Zmusza to sprężarkę do pracy w trybie ciągłym. Realny koszt eksploatacji urządzenia rośnie o około <strong>45-60 zł rocznie</strong>, a <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-link">ryzyko zatarcia kompresora po okresie gwarancyjnym wzrasta aż o 40%</a>.</p>
        
        <p>W <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" class="rk-link">profesjonalnym projektowaniu instalacji</a> omija się urządzenia AGD tzw. strefą buforową. Promień rury musi być oddalony o <strong>minimum 10 cm od fizycznego obrysu urządzenia</strong>, co eliminuje negatywny wpływ promieniowania podczerwonego na podzespoły maszyny.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-agd-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Blokada Skryptu - Prawa Autorskie
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Ten symulator stanowi własność intelektualną domeny projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika Symulatora AGD
    const slider = document.getElementById('rk-distance-slider');
    const valDistance = document.getElementById('val-distance');
    
    // SVG Elements
    const animPipe = document.getElementById('anim-pipe');
    const heatZone = document.getElementById('floor-heat-zone');
    const heatWaves = document.getElementById('heat-waves-group');
    const compressor = document.getElementById('anim-compressor');
    
    // Cards & Metrics
    const cardTemp = document.getElementById('card-temp');
    const metricTemp = document.getElementById('metric-temp');
    const cardCost = document.getElementById('card-cost');
    const metricCost = document.getElementById('metric-cost');
    const cardRisk = document.getElementById('card-risk');
    const metricRisk = document.getElementById('metric-risk');

    function updateSimulation(val) {
        // Konwersja suwaka (0 do 15 cm). 
        // 0 cm to pod lodówką (SVG x=70). 15 cm to poza lodówką (SVG x=20)
        // SVG X map: 0cm = 70, 15cm = 20. Diff = 50. 
        // x = 70 - (val/15)*50
        const svgX = 70 - (val / 15) * 50;
        animPipe.setAttribute('transform', `translate(${svgX}, 85)`);
        
        // Zmiana tekstu slidera
        valDistance.innerText = `${val} cm`;

        // Logika stanów (Bad: 0-4, Warning: 5-9, Good: 10-15)
        if (val < 5) {
            valDistance.style.color = "var(--rk-agd-danger)";
            
            // UI
            setCardState(cardTemp, 'danger');
            setCardState(cardCost, 'danger');
            setCardState(cardRisk, 'danger');
            
            // Metrics
            metricTemp.innerText = "29°C (Przegrzew)";
            metricCost.innerText = "+ 60 zł (+15%)";
            metricRisk.innerText = "Wysokie (+40%)";
            
            // SVG
            animPipe.querySelector('circle').setAttribute('fill', '#ef4444');
            heatZone.setAttribute('opacity', '0.8');
            heatWaves.style.display = 'block';
            compressor.style.animation = 'spinCompressor 0.2s linear infinite';
            compressor.querySelector('circle').setAttribute('fill', '#ef4444');
            
        } else if (val >= 5 && val < 10) {
            valDistance.style.color = "var(--rk-agd-warning)";
            
            // UI
            setCardState(cardTemp, 'warning');
            setCardState(cardCost, 'warning');
            setCardState(cardRisk, 'warning');
            
            // Metrics
            metricTemp.innerText = "25°C (Ostrzeżenie)";
            metricCost.innerText = "+ 30 zł (+7%)";
            metricRisk.innerText = "Średnie (+20%)";
            
            // SVG
            animPipe.querySelector('circle').setAttribute('fill', '#f59e0b');
            heatZone.setAttribute('opacity', '0.3');
            heatWaves.style.display = 'block';
            heatWaves.setAttribute('stroke', '#f59e0b');
            compressor.style.animation = 'spinCompressor 0.5s linear infinite';
            compressor.querySelector('circle').setAttribute('fill', '#f59e0b');
            
        } else {
            // >= 10cm - Safe Zone
            valDistance.style.color = "var(--rk-agd-success)";
            
            // UI
            setCardState(cardTemp, 'safe');
            setCardState(cardCost, 'safe');
            setCardState(cardRisk, 'safe');
            
            // Metrics
            metricTemp.innerText = "20°C (Norma)";
            metricCost.innerText = "0 zł (Optymalnie)";
            metricRisk.innerText = "Brak (Bezpiecznie)";
            
            // SVG
            animPipe.querySelector('circle').setAttribute('fill', '#10b981');
            heatZone.setAttribute('opacity', '0');
            heatWaves.style.display = 'none';
            compressor.style.animation = 'none';
            compressor.querySelector('circle').setAttribute('fill', '#94a3b8');
        }
    }

    function setCardState(card, state) {
        card.classList.remove('status-danger', 'status-warning', 'status-safe');
        card.classList.add(`status-${state}`);
    }

    slider.addEventListener('input', function() {
        updateSimulation(parseInt(this.value));
    });
    
    // Inicjalizacja startowa
    updateSimulation(0);
});
</script>



<style>
:root {
    --rk-bath-dark: #0f172a;
    --rk-bath-panel: #1e293b;
    --rk-bath-brand: #0284c7; /* Łazienkowy błękit */
    --rk-bath-brand-light: #e0f2fe;
    --rk-bath-danger: #ef4444; /* Przegrzew / Błąd */
    --rk-bath-danger-bg: #fef2f2;
    --rk-bath-success: #10b981; /* Norma / Bezpieczeństwo */
    --rk-bath-bg: #f8fafc;
    --rk-bath-border: #cbd5e1;
    --rk-bath-text: #334155;
    --rk-bath-accent: #8b5cf6; /* Akcent hydrauliczny */
}

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

/* Nagłówek */
.rk-bath-header {
    background: linear-gradient(135deg, var(--rk-bath-dark) 0%, #082f49 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-bath-brand);
}

.rk-bath-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.2);
    color: #7dd3fc;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

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

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

/* Aplikacja Interaktywna */
.rk-bath-app {
    padding: 40px 50px;
    background: var(--rk-bath-bg);
}

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

/* Toggle / Suwak */
.rk-bath-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-bath-toggle {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-bath-border);
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-bath-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    background: transparent;
    color: #64748b;
}

.rk-bath-btn.active[data-mode="bad"] {
    background: var(--rk-bath-danger);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.rk-bath-btn.active[data-mode="good"] {
    background: var(--rk-bath-brand);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

/* Grid Wizualizacja + Dane */
.rk-bath-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* SVG Wizualizacja */
.rk-bath-visual {
    background: #ffffff;
    border: 2px solid var(--rk-bath-border);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
    min-height: 320px;
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
    max-height: 280px;
}

/* Kafelki z Danymi */
.rk-bath-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-bath-border);
    border-radius: 16px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-metric-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-metric-data { flex-grow: 1; }

.rk-metric-data p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 4px 0;
    letter-spacing: 0.5px;
}

.rk-metric-data h4 {
    font-size: 20px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-bath-dark);
    transition: color 0.3s ease;
}

/* Klasy stanów */
.status-danger { border-color: var(--rk-bath-danger); background: var(--rk-bath-danger-bg); }
.status-danger .rk-metric-icon { background: var(--rk-bath-danger); color: #fff; }
.status-danger h4 { color: var(--rk-bath-danger); }

.status-safe { border-color: var(--rk-bath-brand); }
.status-safe .rk-metric-icon { background: var(--rk-bath-brand-light); color: var(--rk-bath-brand); }
.status-safe h4 { color: var(--rk-bath-brand); }

.status-neutral { border-color: var(--rk-bath-border); }
.status-neutral .rk-metric-icon { background: #f1f5f9; color: #475569; }

/* Animacje SVG na żywo */
.anim-return-pipe { transition: stroke 0.8s ease; }
.anim-tub-body { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.anim-tub-base { transition: opacity 0.4s ease; }
.anim-tub-legs { transition: opacity 0.4s ease; }
.anim-heat-trapped { transition: opacity 0.4s ease; stroke-dasharray: 4 8; }
.anim-heat-free { transition: opacity 0.4s ease; stroke-dasharray: 4 8; }

/* STAN: BŁĄD (Wanna w zabudowie) */
.state-bad .anim-return-pipe { stroke: var(--rk-bath-danger); } /* Woda wraca gorąca */
.state-bad .anim-tub-body { transform: translateY(0); }
.state-bad .anim-tub-base { opacity: 1; }
.state-bad .anim-tub-legs { opacity: 0; }
.state-bad .anim-heat-trapped { opacity: 1; stroke: var(--rk-bath-danger); animation: boil 1s linear infinite alternate; }
.state-bad .anim-heat-free { opacity: 0; }

/* STAN: DOBRZE (Wanna na nóżkach) */
.state-good .anim-return-pipe { stroke: var(--rk-bath-brand); } /* Woda wraca schłodzona */
.state-good .anim-tub-body { transform: translateY(-15px); }
.state-good .anim-tub-base { opacity: 0; }
.state-good .anim-tub-legs { opacity: 1; }
.state-good .anim-heat-trapped { opacity: 0; }
.state-good .anim-heat-free { opacity: 1; stroke: var(--rk-bath-brand); animation: flowUp 2s linear infinite; }

@keyframes boil { to { transform: translateY(2px) scaleX(1.02); } }
@keyframes flowUp { to { stroke-dashoffset: -24; } }

/* Treść SEO / Merytoryczna */
.rk-bath-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-bath-border);
}

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

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

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

.rk-bath-content ul {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 20px 20px 20px 40px;
    margin-bottom: 20px;
}

.rk-bath-content li {
    font-size: 15px;
    color: #475569;
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-bath-content li span { color: var(--rk-bath-dark); font-weight: 800; }

.rk-link {
    color: var(--rk-bath-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
}

.rk-link:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* RWD */
@media (max-width: 768px) {
    .rk-bath-header, .rk-bath-app, .rk-bath-content { padding: 30px 20px; }
    .rk-bath-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-bath-visual { height: 260px; }
    .rk-bath-title { font-size: 24px; }
    .rk-bath-toggle { width: 100%; flex-direction: column; gap: 5px; }
    .rk-bath-btn { width: 100%; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-lazienka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Jakie są normy dotyczące układania rur pod wanną i brodzikiem?",
    "description": "Zgodnie z normą PN-EN 1264 zabrania się układania rur pod zabudowaną wanną. Powoduje to brak schłodzenia wody w pętli i zaburza równoważenie hydrauliczne.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-lazienka",
    "name": "Parametry Techniczne: Równoważenie hydrauliczne łazienki (PN-EN 12831)",
    "description": "Zestawienie wytycznych projektowych dla łazienek określających projektowe temperatury, rozstaw rur PEX oraz zapotrzebowanie na ciepło.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 1264",
      "ogrzewanie pod wanną",
      "równoważenie hydrauliczne rozdzielacza",
      "temperatura projektowa łazienki 24°C",
      "rozstaw rur w łazience 10cm"
    ],
    "measurementTechnique": "Obliczenia obciążenia cieplnego (OZC) dla pomieszczeń sanitarnych wymagających temperatury 24°C przy maksymalnej temperaturze wylewki 33°C i zapotrzebowaniu 80-100 W/m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wanna w stałej zabudowie: Opór cieplny akrylu uniemożliwia oddawanie ciepła (ΔT = 0), woda wraca gorąca.",
        "Wanna na nóżkach: Dopuszczalna instalacja (min. 10 cm prześwitu na wymianę konwekcyjną)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-lazienka",
    "name": "Symulator Hydrauliki Łazienkowej",
    "description": "Interaktywne narzędzie edukacyjne do wizualizacji zjawiska braku spadku temperatury powrotu (ΔT) w pętli grzewczej umieszczonej pod stałą zabudową sanitarną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-bath-container state-bad" id="rk-bath-app">
    
    <div class="rk-bath-header">
        <div class="rk-bath-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Analiza Hydrauliczna
        </div>
        <h2 class="rk-bath-title">Rury pod wanną i brodzikiem?</h2>
        <p class="rk-bath-desc">Zobacz na żywo, jak stała zabudowa łazienkowa całkowicie blokuje oddawanie ciepła i niszczy równowagę hydraulikę całego układu grzewczego (brak ΔT).</p>
    </div>

    <div class="rk-bath-app">
        <h3>Symulator Równoważenia (Powrót Pętli)</h3>
        
        <div class="rk-bath-controls">
            <div class="rk-bath-toggle">
                <button class="rk-bath-btn active" data-mode="bad">Błąd: Wanna w Zabudowie</button>
                <button class="rk-bath-btn" data-mode="good">Dopuszczalne: Wanna na Nóżkach</button>
            </div>
        </div>

        <div class="rk-bath-grid">
            <div class="rk-bath-visual">
                <svg class="rk-svg-engine" viewBox="0 0 100 100">
                    <rect x="5" y="10" width="15" height="80" fill="#334155" rx="2" />
                    <path d="M 20 85 L 80 85" stroke="#ef4444" stroke-width="4" stroke-linecap="round" fill="none" />
                    <path class="anim-return-pipe" d="M 80 85 Q 90 85 90 75 L 90 25 Q 90 15 80 15 L 20 15" stroke-width="4" stroke-linecap="round" fill="none" />
                    
                    <rect x="25" y="75" width="60" height="20" fill="#f1f5f9" opacity="0.5" />
                    
                    <g>
                        <rect class="anim-tub-legs" x="35" y="60" width="4" height="15" fill="#94a3b8" />
                        <rect class="anim-tub-legs" x="71" y="60" width="4" height="15" fill="#94a3b8" />
                        
                        <rect class="anim-tub-base" x="30" y="55" width="50" height="20" fill="#cbd5e1" />
                        
                        <g class="anim-tub-body">
                            <path d="M 25 35 L 85 35 L 80 55 L 30 55 Z" fill="#ffffff" stroke="#94a3b8" stroke-width="2" stroke-linejoin="round" />
                            <path d="M 30 35 L 80 35 L 77 50 L 33 50 Z" fill="#e0f2fe" opacity="0.6" />
                        </g>
                    </g>

                    <g class="anim-heat-trapped" fill="none" stroke-width="2" stroke-linecap="round">
                        <path d="M 40 70 Q 45 65 50 70" />
                        <path d="M 60 70 Q 65 65 70 70" />
                    </g>

                    <g class="anim-heat-free" fill="none" stroke-width="2.5" stroke-linecap="round">
                        <path d="M 35 70 Q 30 50 35 30" />
                        <path d="M 75 70 Q 80 50 75 30" />
                    </g>
                </svg>
            </div>

            <div class="rk-bath-metrics">
                <div class="rk-metric-card status-danger" id="card-delta">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Spadek Temperatury Powrotu (ΔT)</p>
                        <h4 id="val-delta">Brak (Gorący powrót)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="card-power">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Oddawanie mocy cieplnej do łazienki</p>
                        <h4 id="val-power">0 W (Zablokowane)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-neutral">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Ryzyko dla systemu</p>
                        <h4 id="val-risk">Rozregulowanie przepływów</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-bath-content">
        <h3>Wytyczne i normy projektowe (OZC)</h3>
        <p>Zgodnie z praktyką inżynierską i normami serii <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-link">PN-EN 1264</a>, nie zaleca się układania rur pod wannami zabudowanymi oraz brodzikami osadzonymi bezpośrednio na posadzce. Brak możliwości oddawania ciepła przez grubą warstwę akrylu lub stali powoduje, że <a href="https://projekt-ogrzewania.pl/spadek-temperatury-dt-roznica-miedzy-temperatura-zasilania-a-powrotu/" class="rk-link">woda w pętli wraca do rozdzielacza prawie nieschłodzona (brak spadku ΔT)</a>, co silnie zaburza równoważenie hydrauliczne całego układu grzewczego w domu.</p>
        
        <p>Wyjątkiem od tej reguły są modne obecnie wanny wolnostojące instalowane na nóżkach. Warunkiem jest zachowanie <strong>minimum 10 cm prześwitu</strong> od podłogi, co umożliwia swobodną cyrkulację ogrzanego powietrza (konwekcję).</p>
        
        <p>W małych łazienkach (np. 6 m²), gdzie wanna i brodzik zajmują ponad 2,5 m² podłogi, bardzo często fizycznie brakuje powierzchni do zapewnienia wymaganej mocy grzewczej. Wtedy inżynier projektant stosuje <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-link">tzw. strefy brzegowe o ekstremalnym zagęszczeniu rur (co 5 cm)</a> w strefach wolnych lub wspomaga system ogrzewaniem ściennym.</p>

        <ul>
            <li><span>Temperatura projektowa wewnątrz:</span> 24°C (zgodnie z rygorystyczną normą PN-EN 12831).</li>
            <li><span>Maksymalna temperatura podłogi (ceramika):</span> 33°C (by nie powodować oparzeń bosej stopy).</li>
            <li><span>Zapotrzebowanie na ciepło (OZC):</span> bardzo wysokie, średnio 80-100 W/m².</li>
            <li><span>Rozstaw rur bazowy:</span> 10 cm (<a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" class="rk-link">rura PEX/AL/PEX 16&#215;2 mm</a>).</li>
        </ul>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-bath-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Blokada Skryptu - Prawa Autorskie
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Narzędzie hydrauliczne stanowi własność domeny projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika Symulatora (Przełączanie klas i wartości)
    const btns = document.querySelectorAll('.rk-bath-btn');
    const appContainer = document.getElementById('rk-bath-app');
    
    // Cards
    const cardDelta = document.getElementById('card-delta');
    const valDelta = document.getElementById('val-delta');
    const cardPower = document.getElementById('card-power');
    const valPower = document.getElementById('val-power');
    const valRisk = document.getElementById('val-risk');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset active state for buttons
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const mode = this.getAttribute('data-mode');
            
            if (mode === 'bad') {
                appContainer.classList.remove('state-good');
                appContainer.classList.add('state-bad');
                
                // Zmiana klas kafelków
                cardDelta.classList.replace('status-safe', 'status-danger');
                cardPower.classList.replace('status-safe', 'status-danger');
                
                // Zmiana tekstów
                valDelta.innerText = "Brak (Gorący powrót)";
                valPower.innerText = "0 W (Ciepło zablokowane)";
                valRisk.innerText = "Rozregulowanie przepływów";
            } else {
                appContainer.classList.remove('state-bad');
                appContainer.classList.add('state-good');
                
                // Zmiana klas kafelków
                cardDelta.classList.replace('status-danger', 'status-safe');
                cardPower.classList.replace('status-danger', 'status-safe');
                
                // Zmiana tekstów
                valDelta.innerText = "Wzorowy (Woda oddaje ciepło)";
                valPower.innerText = "~ 80-100 W/m² (Ciepło emituje)";
                valRisk.innerText = "Brak (Układ zbalansowany)";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-panel: #1e293b;
    --rk-tbl-brand: #6366f1; /* Inżynieryjny fiolet/indygo */
    --rk-tbl-brand-light: #e0e7ff;
    --rk-tbl-danger: #ef4444; /* Błąd/Awaria */
    --rk-tbl-warning: #f59e0b; /* Uwaga/Strata */
    --rk-tbl-success: #10b981; /* Rozwiązanie */
    --rk-tbl-bg: #f8fafc;
    --rk-tbl-border: #cbd5e1;
    --rk-tbl-text: #334155;
}

.rk-tbl-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.3);
    overflow: hidden;
}

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

.rk-tbl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.2);
    color: #a5b4fc;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(165, 180, 252, 0.2);
}

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

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

/* Interfejs Aplikacji */
.rk-tbl-app {
    padding: 30px 40px;
    background: var(--rk-tbl-bg);
}

/* Nawigacja (Zakładki) */
.rk-tbl-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-tbl-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-tbl-text);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-tbl-btn:hover {
    background: var(--rk-tbl-brand-light);
    border-color: #a5b4fc;
    color: var(--rk-tbl-brand);
}

.rk-tbl-btn.active {
    background: var(--rk-tbl-brand);
    border-color: var(--rk-tbl-brand);
    color: #ffffff;
    box-shadow: 0 8px 16px rgba(99, 102, 241, 0.25);
}

.rk-tbl-btn svg { width: 18px; height: 18px; }

/* Obszar roboczy (Grid) */
.rk-tbl-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: stretch;
}

/* Panel SVG */
.rk-tbl-visual {
    background: #ffffff;
    border: 2px solid var(--rk-tbl-border);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
    min-height: 320px;
}

.rk-svg-pane {
    width: 100%;
    height: 100%;
    display: none;
    animation: fadeIn 0.4s ease forwards;
}

.rk-svg-pane.active { display: block; }

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

/* Kafelki Danych (Zastępstwo Tabeli) */
.rk-tbl-data {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: all 0.3s;
}

.rk-data-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-data-card.risk { border-left: 4px solid var(--rk-tbl-danger); }
.rk-data-card.risk .rk-data-icon { background: #fee2e2; color: var(--rk-tbl-danger); }

.rk-data-card.eff { border-left: 4px solid var(--rk-tbl-warning); }
.rk-data-card.eff .rk-data-icon { background: #fef3c7; color: var(--rk-tbl-warning); }

.rk-data-card.act { border-left: 4px solid var(--rk-tbl-success); }
.rk-data-card.act .rk-data-icon { background: #dcfce7; color: var(--rk-tbl-success); }

.rk-data-content p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 6px 0;
    letter-spacing: 0.5px;
}

.rk-data-content h4 {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    color: var(--rk-tbl-dark);
}

.rk-data-content h4 strong {
    font-weight: 900;
    color: var(--rk-tbl-brand);
}

/* --- SVG ANIMACJE --- */
/* 1. Szafka */
.anim-wood-crack { stroke-dasharray: 40; stroke-dashoffset: 40; animation: drawCrack 2s ease forwards infinite alternate; }
/* 2. Lodówka */
.anim-comp-spin { transform-origin: center; animation: spinFast 0.5s linear infinite; }
/* 3. Wanna */
.anim-heat-block { opacity: 0.8; animation: pulseHeat 1.5s infinite alternate; }
/* 4. Szafa */
.anim-dust-rise { opacity: 0; animation: floatUp 2s linear infinite; }
.anim-dust-rise:nth-child(2) { animation-delay: 0.7s; }
.anim-dust-rise:nth-child(3) { animation-delay: 1.4s; }
/* 5. Wyspa */
.anim-floor-crack { stroke-dasharray: 50; stroke-dashoffset: 50; animation: drawCrack 1s 0.5s ease forwards; }

@keyframes drawCrack { to { stroke-dashoffset: 0; } }
@keyframes spinFast { 100% { transform: rotate(360deg); } }
@keyframes pulseHeat { from { fill: #fca5a5; } to { fill: #ef4444; } }
@keyframes floatUp { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(-20px); opacity: 0; } }

/* RWD */
@media (max-width: 768px) {
    .rk-tbl-header, .rk-tbl-app { padding: 30px 20px; }
    .rk-tbl-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-tbl-visual { min-height: 240px; }
    .rk-tbl-nav { justify-content: flex-start; overflow-x: auto; padding-bottom: 10px; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .rk-tbl-btn { white-space: nowrap; flex-shrink: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-tabela",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Tabela analityczna: Skutki ułożenia podłogówki pod meblami i AGD",
    "description": "Zestawienie inżynierskie ryzyk technicznych i strat mocy wynikających z układania rur ogrzewania podłogowego pod szafami, wyspami i wannami.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-skutki",
    "name": "Tabela: Skutki ułożenia podłogówki pod meblami",
    "description": "Interaktywny zbiór danych korelujący typ elementu wyposażenia wnętrz z ryzykiem awarii posadzki, szacunkową stratą efektywności oraz procedurą naprawczą OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "skutki ogrzewania pod meblami",
      "pękanie wylewki pod wyspą",
      "spadek mocy podłogówki",
      "ogrzewanie pod szafą wnękową",
      "dylatacja wyspy kuchennej"
    ],
    "measurementTechnique": "Analiza strat mocy czynnej (W) i naprężeń mechanicznych (MPa) jastrychu w strefach o zablokowanej emisji cieplnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Szafka kuchenna", "description": "Ryzyko: Rozsychanie drewna. Efektywność: Strata 40-60%. Akcja: Omijać 5 cm." },
        { "@type": "ListItem", "position": 2, "name": "Lodówka", "description": "Ryzyko: Awaria kompresora. Efektywność: Wzrost zużycia prądu 15%. Akcja: Zakaz układania." },
        { "@type": "ListItem", "position": 3, "name": "Wanna zabudowana", "description": "Ryzyko: Naprężenia termiczne. Efektywność: Zerowa emisja. Akcja: Układać w komunikacji." },
        { "@type": "ListItem", "position": 4, "name": "Szafa wnękowa", "description": "Ryzyko: Niszczenie ubrań. Efektywność: Blokada promieniowania. Akcja: Pusta strefa." },
        { "@type": "ListItem", "position": 5, "name": "Wyspa kuchenna", "description": "Ryzyko: Pękanie wylewki. Efektywność: Akumulacja. Akcja: Wykonać dylatację." }
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-tabela",
    "name": "Panel Diagnostyczny: Ryzyka Zabudowy",
    "description": "Narzędzie typu Dashboard do wizualizacji tabelarycznych danych technicznych dotyczących wpływu wyposażenia na instalację grzewczą.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="rk-tbl-app">
    
    <div class="rk-tbl-header">
        <div class="rk-tbl-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            Tabela Diagnostyczna
        </div>
        <h2 class="rk-tbl-title">Zestawienie: Skutki ułożenia rur pod wyposażeniem</h2>
        <p class="rk-tbl-desc">Zamiast statycznej tabeli, skorzystaj z interaktywnego panelu. Wybierz element wyposażenia, aby poznać zagrożenia, zbadane straty oraz nasze inżynieryjne zalecenia montażowe.</p>
    </div>

    <div class="rk-tbl-app">
        <div class="rk-tbl-nav" id="rk-tbl-nav">
            <button class="rk-tbl-btn active" data-target="tab-1">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><line x1="2" y1="12" x2="22" y2="12"></line><line x1="12" y1="12" x2="12" y2="20"></line></svg>
                Szafka Kuchenna
            </button>
            <button class="rk-tbl-btn" data-target="tab-2">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="5" y1="10" x2="19" y2="10"></line><line x1="9" y1="14" x2="9" y2="18"></line></svg>
                Lodówka / AGD
            </button>
            <button class="rk-tbl-btn" data-target="tab-3">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4"></path><path d="M2 10h20l-2 4H4z"></path><line x1="17" y1="2" x2="17" y2="6"></line></svg>
                Wanna Zabudowana
            </button>
            <button class="rk-tbl-btn" data-target="tab-4">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"></path><line x1="12" y1="4" x2="12" y2="20"></line><line x1="8" y1="12" x2="8" y2="12.01"></line><line x1="16" y1="12" x2="16" y2="12.01"></line></svg>
                Szafa Wnękowa
            </button>
            <button class="rk-tbl-btn" data-target="tab-5">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="14" width="18" height="8" rx="2" ry="2"></rect><path d="M8 14v-4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v4"></path></svg>
                Wyspa (Ciężka)
            </button>
        </div>

        <div class="rk-tbl-grid">
            
            <div class="rk-tbl-visual">
                
                <svg class="rk-svg-pane active" id="svg-tab-1" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="15" fill="#f1f5f9" />
                    <circle cx="50" cy="87" r="4" fill="#ef4444" />
                    <rect x="25" y="20" width="50" height="60" fill="#e2e8f0" stroke="#64748b" stroke-width="2" />
                    <line x1="25" y1="40" x2="75" y2="40" stroke="#64748b" stroke-width="2"/>
                    <path class="anim-wood-crack" d="M 40 45 Q 45 55 40 65" fill="none" stroke="#0f172a" stroke-width="1.5" />
                    <path class="anim-wood-crack" d="M 60 45 Q 55 55 60 65" fill="none" stroke="#0f172a" stroke-width="1.5" />
                </svg>

                <svg class="rk-svg-pane" id="svg-tab-2" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="15" fill="#f1f5f9" />
                    <circle cx="50" cy="87" r="4" fill="#ef4444" />
                    <rect x="30" y="10" width="40" height="70" fill="#cbd5e1" rx="2" />
                    <g transform="translate(50, 65)">
                        <circle cx="0" cy="0" r="10" fill="#ef4444" />
                        <g class="anim-comp-spin">
                            <line x1="-8" y1="0" x2="8" y2="0" stroke="#fff" stroke-width="2" />
                            <line x1="0" y1="-8" x2="0" y2="8" stroke="#fff" stroke-width="2" />
                        </g>
                    </g>
                </svg>

                <svg class="rk-svg-pane" id="svg-tab-3" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="15" fill="#f1f5f9" />
                    <circle cx="30" cy="87" r="4" fill="#ef4444" />
                    <circle cx="70" cy="87" r="4" fill="#ef4444" />
                    <rect class="anim-heat-block" x="15" y="70" width="70" height="10" />
                    <path d="M 20 40 L 80 40 L 70 70 L 30 70 Z" fill="#ffffff" stroke="#94a3b8" stroke-width="2" />
                </svg>

                <svg class="rk-svg-pane" id="svg-tab-4" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="15" fill="#f1f5f9" />
                    <circle cx="50" cy="87" r="4" fill="#ef4444" />
                    <rect x="25" y="10" width="50" height="70" fill="#94a3b8" stroke="#475569" stroke-width="2" />
                    <path class="anim-dust-rise" d="M 45 60 Q 40 50 45 40" fill="none" stroke="#f59e0b" stroke-width="2" />
                    <path class="anim-dust-rise" d="M 55 70 Q 60 60 55 50" fill="none" stroke="#f59e0b" stroke-width="2" />
                    <path class="anim-dust-rise" d="M 50 50 Q 45 40 50 30" fill="none" stroke="#f59e0b" stroke-width="2" />
                </svg>

                <svg class="rk-svg-pane" id="svg-tab-5" viewBox="0 0 100 100">
                    <rect x="10" y="70" width="80" height="25" fill="#e2e8f0" />
                    <circle cx="50" cy="82" r="4" fill="#ef4444" />
                    <rect x="20" y="30" width="60" height="40" fill="#475569" rx="2" />
                    <path class="anim-floor-crack" d="M 20 70 L 30 85 L 50 80 L 60 95 L 80 85" fill="none" stroke="#ef4444" stroke-width="3" stroke-linejoin="round" />
                </svg>

            </div>

            <div class="rk-tbl-data">
                
                <div class="rk-data-card risk">
                    <div class="rk-data-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <div class="rk-data-content">
                        <p>Ryzyko Techniczne</p>
                        <h4 id="data-risk">Wybierz element z menu</h4>
                    </div>
                </div>

                <div class="rk-data-card eff">
                    <div class="rk-data-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                    </div>
                    <div class="rk-data-content">
                        <p>Wpływ na Efektywność</p>
                        <h4 id="data-eff">&#8212;</h4>
                    </div>
                </div>

                <div class="rk-data-card act">
                    <div class="rk-data-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                    </div>
                    <div class="rk-data-content">
                        <p>Zalecane Działanie Projektowe</p>
                        <h4 id="data-act">&#8212;</h4>
                    </div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-tbl-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Blokada Skryptu - Prawa Autorskie
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Interaktywna tabela stanowi własność domeny projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // Baza danych dla tabeli
    const tableData = {
        'tab-1': {
            risk: "Rozsychanie drewna, pękanie powłok lakieru",
            eff: "Strata mocy grzewczej rzędu <strong>40-60%</strong>",
            act: "Omijać pętlą w odległości <strong>5 cm</strong> od frontu"
        },
        'tab-2': {
            risk: "Awaria kompresora, utrata gwarancji na sprzęt",
            eff: "Wzrost zużycia prądu przez urządzenie o <strong>15%</strong>",
            act: "<strong>Bezwzględny zakaz</strong> układania rur pod spodem"
        },
        'tab-3': {
            risk: "Naprężenia termiczne obudowy, brak spadku ΔT",
            eff: "<strong>Zerowa emisja</strong> ciepła do pomieszczenia",
            act: "Układać wyłącznie w otwartej <strong>strefie komunikacji</strong>"
        },
        'tab-4': {
            risk: "Zapach 'podgrzanego kurzu', niszczenie odzieży",
            eff: "Całkowita blokada promieniowania podczerwonego",
            act: "Pozostawić wolną, <strong>pustą strefę</strong> pod zabudową"
        },
        'tab-5': {
            risk: "<strong>Pękanie wylewki</strong> pod ciężarem (brak dylatacji)",
            eff: "Niebezpieczna akumulacja bez oddawania ciepła",
            act: "Wykonać odpowiednią <strong>dylatację brzegową</strong> wokół wyspy"
        }
    };

    // Logika UI
    const btns = document.querySelectorAll('.rk-tbl-btn');
    const svgs = document.querySelectorAll('.rk-svg-pane');
    
    const domRisk = document.getElementById('data-risk');
    const domEff = document.getElementById('data-eff');
    const domAct = document.getElementById('data-act');

    function activateTab(tabId) {
        // Zmiana przycisków
        btns.forEach(b => b.classList.remove('active'));
        document.querySelector(`.rk-tbl-btn[data-target="${tabId}"]`).classList.add('active');

        // Zmiana SVG
        svgs.forEach(s => s.classList.remove('active'));
        document.getElementById(`svg-${tabId}`).classList.add('active');

        // Zmiana Tekstów
        const data = tableData[tabId];
        domRisk.innerHTML = data.risk;
        domEff.innerHTML = data.eff;
        domAct.innerHTML = data.act;
    }

    // Event Listeners
    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            activateTab(this.getAttribute('data-target'));
        });
    });

    // Inicjalizacja pierwszej zakładki
    activateTab('tab-1');
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-brand: #8b5cf6; /* Techniczny fiolet */
    --rk-err-brand-light: #ede9fe;
    --rk-err-danger: #ef4444; /* Czerwień (pęknięcia, przegrzew) */
    --rk-err-danger-bg: #fef2f2;
    --rk-err-warning: #f59e0b; /* Pomarańcz dylatacji */
    --rk-err-success: #10b981; /* Bezpieczeństwo */
    --rk-err-bg: #f8fafc;
    --rk-err-border: #cbd5e1;
    --rk-err-text: #334155;
}

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

/* Sekcja Nagłówkowa */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #2e1065 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-brand);
    position: relative;
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.2);
    color: #c4b5fd;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(196, 181, 253, 0.2);
}

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

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

/* Interfejs Aplikacji */
.rk-err-app {
    padding: 40px 50px;
    background: var(--rk-err-bg);
}

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

/* Kontrolki / Toggle */
.rk-err-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-err-toggle {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-err-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    background: transparent;
    color: #64748b;
}

.rk-err-btn.active[data-mode="bad"] {
    background: var(--rk-err-danger);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.rk-err-btn.active[data-mode="good"] {
    background: var(--rk-err-brand);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}

/* Grid Layout */
.rk-err-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* SVG Wizualizacja */
.rk-err-visual {
    background: #ffffff;
    border: 2px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
    min-height: 280px;
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
    max-height: 260px;
}

/* Metryki / Kafelki */
.rk-err-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-metric-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-metric-data { flex-grow: 1; }

.rk-metric-data p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 4px 0;
    letter-spacing: 0.5px;
}

.rk-metric-data h4 {
    font-size: 20px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-err-dark);
    transition: color 0.3s ease;
}

/* Stany na Kafelkach */
.status-danger { border-color: var(--rk-err-danger); background: var(--rk-err-danger-bg); }
.status-danger .rk-metric-icon { background: var(--rk-err-danger); color: #fff; }
.status-danger h4 { color: var(--rk-err-danger); }

.status-safe { border-color: var(--rk-err-success); }
.status-safe .rk-metric-icon { background: #dcfce7; color: var(--rk-err-success); }
.status-safe h4 { color: var(--rk-err-success); }

/* Animacje SVG na żywo */
.anim-pipe { transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s; }
.anim-crack { stroke-dasharray: 60; stroke-dashoffset: 60; transition: stroke-dashoffset 0.8s 0.2s ease-out; }
.anim-stress-wave { opacity: 0; transition: opacity 0.3s; stroke-dasharray: 4 6; }
.anim-dylatacja { opacity: 0; transition: opacity 0.5s; stroke-dasharray: 5 5; }
.anim-temp-text { transition: fill 0.4s; font-family: sans-serif; font-weight: 900; font-size: 8px; }

/* STAN: BŁĄD (Lany montaż) */
.state-bad .anim-pipe.under-cabinet { transform: translateX(0); opacity: 1; }
.state-bad .anim-pipe.free-zone { transform: translateX(0); }
.state-bad .anim-crack { stroke-dashoffset: 0; stroke: var(--rk-err-danger); }
.state-bad .anim-stress-wave { opacity: 1; animation: pulseStress 1s infinite alternate; }
.state-bad .anim-dylatacja { opacity: 0; }
.state-bad .anim-temp-text.t1 { fill: var(--rk-err-danger); } /* 38C */
.state-bad .anim-temp-text.t2 { fill: #3b82f6; } /* 24C */

/* STAN: DOBRZE (Projekt + Dylatacja) */
.state-good .anim-pipe.under-cabinet { transform: translateX(30px); opacity: 0; }
.state-good .anim-pipe.free-zone { transform: translateX(15px); }
.state-good .anim-crack { stroke-dashoffset: 60; }
.state-good .anim-stress-wave { opacity: 0; animation: none; }
.state-good .anim-dylatacja { opacity: 1; stroke: var(--rk-err-warning); animation: slideDown 1s ease-out forwards; }
.state-good .anim-temp-text.t1 { fill: #94a3b8; } /* 20C */
.state-good .anim-temp-text.t2 { fill: var(--rk-err-success); } /* 24C */

@keyframes pulseStress { from { stroke: #fca5a5; stroke-width: 1; } to { stroke: #ef4444; stroke-width: 2.5; } }
@keyframes slideDown { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }

/* Treść SEO / Merytoryczna */
.rk-err-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-err-border);
}

.rk-err-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-err-text);
    margin: 0 0 20px 0;
}

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

.rk-err-content strong {
    color: var(--rk-err-dark);
    font-weight: 800;
    background: rgba(245, 158, 11, 0.15);
    padding: 0 4px;
    border-radius: 4px;
}

.rk-link {
    color: var(--rk-err-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(139, 92, 246, 0.4);
    transition: all 0.3s;
}

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

/* CTA */
.rk-err-cta {
    background: var(--rk-err-panel);
    padding: 30px;
    text-align: center;
    border-top: 3px solid var(--rk-err-brand);
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-err-brand);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 15px 30px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.4);
}

.rk-btn-cta:hover {
    background: #7c3aed;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(139, 92, 246, 0.6);
}

/* RWD */
@media (max-width: 768px) {
    .rk-err-header, .rk-err-app, .rk-err-content { padding: 30px 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-err-visual { height: 250px; }
    .rk-err-title { font-size: 24px; }
    .rk-err-toggle { width: 100%; flex-direction: column; gap: 5px; }
    .rk-err-btn { width: 100%; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/"
    },
    "headline": "Najczęstsze błędy instalatorów przy omijaniu przeszkód i brak dylatacji",
    "description": "Fizyka budowli jest bezwzględna. Lany montaż bez projektu skutkuje różnicą temperatur 38°C vs 24°C w wylewce, co generuje pęknięcia jastrychu.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#dataset-naprezenia",
    "name": "Naprężenia termiczne wlewki przy braku dylatacji",
    "description": "Zestawienie korelacji pomiędzy błędnym rozmieszczeniem pętli grzewczych pod stałą zabudową a destrukcyjnymi naprężeniami ścinającymi w płycie jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "lany montaż",
      "pękanie płytek",
      "brak dylatacji",
      "naprężenia termiczne jastrychu",
      "taśma dylatacyjna"
    ],
    "measurementTechnique": "Analiza różnicy temperatur (ΔT) między strefą zablokowaną (38°C) a strefą otwartą (24°C) i jej wpływu na powstawanie pęknięć posadzki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak dylatacji = Wylewka pracuje nierównomiernie, co powoduje pęknięcia płytek.",
        "Zastosowanie taśmy brzegowej (8-10 mm) = Kompensacja rozszerzalności cieplnej między strefami grzaną i niegrzaną."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/#webapp-dylatacje",
    "name": "Symulator Naprężeń i Dylatacji Jastrychu",
    "description": "Interaktywny panel demonstrujący destrukcyjny wpływ różnicy temperatur na pękanie posadzki oraz rolę taśmy dylatacyjnej w procesie ochrony układu podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container state-bad" id="rk-err-app">
    
    <div class="rk-err-header">
        <div class="rk-err-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Błędy Wykonawcze
        </div>
        <h2 class="rk-err-title">Najczęstsze błędy instalatorów</h2>
        <p class="rk-err-desc">„Ciepło i tak przejdzie bokiem” to najdroższe kłamstwo na budowie. Zobacz, jak brak projektu i dylatacji niszczy wylewkę oraz Twoje płytki podłogowe.</p>
    </div>

    <div class="rk-err-app">
        <h3>Symulator Naprężeń Termicznych</h3>
        
        <div class="rk-err-controls">
            <div class="rk-err-toggle">
                <button class="rk-err-btn active" data-mode="bad">Błąd: Lany montaż (Brak dylatacji)</button>
                <button class="rk-err-btn" data-mode="good">Prawidłowo: Ominięcie + Dylatacja</button>
            </div>
        </div>

        <div class="rk-err-grid">
            <div class="rk-err-visual">
                <svg class="rk-svg-engine" viewBox="0 0 100 100">
                    <rect x="0" y="80" width="100" height="20" fill="#e2e8f0" />
                    
                    <rect x="0" y="60" width="45" height="20" fill="#f1f5f9" />
                    <rect x="45" y="60" width="55" height="20" fill="#f1f5f9" />

                    <rect x="5" y="10" width="35" height="50" fill="#64748b" stroke="#334155" stroke-width="2" rx="2" />
                    
                    <circle class="anim-pipe under-cabinet" cx="15" cy="70" r="4" fill="none" stroke="#ef4444" stroke-width="2" />
                    <circle class="anim-pipe under-cabinet" cx="30" cy="70" r="4" fill="none" stroke="#ef4444" stroke-width="2" />
                    
                    <circle class="anim-pipe free-zone" cx="60" cy="70" r="4" fill="none" stroke="#ef4444" stroke-width="2" />
                    <circle class="anim-pipe free-zone" cx="80" cy="70" r="4" fill="none" stroke="#ef4444" stroke-width="2" />

                    <g class="anim-stress-wave" fill="none" stroke-linecap="round">
                        <path d="M 40 75 Q 45 70 50 75" />
                        <path d="M 38 68 Q 45 63 52 68" />
                        <path d="M 42 62 Q 45 58 48 62" />
                    </g>

                    <path class="anim-crack" d="M 45 60 L 42 65 L 47 70 L 44 75 L 46 80" fill="none" stroke-width="2.5" stroke-linejoin="round" />

                    <line class="anim-dylatacja" x1="45" y1="58" x2="45" y2="82" stroke-width="4" stroke-linecap="square" />

                    <text x="22" y="93" class="anim-temp-text t1" text-anchor="middle" id="svg-temp-1">38°C</text>
                    <text x="70" y="93" class="anim-temp-text t2" text-anchor="middle" id="svg-temp-2">24°C</text>
                </svg>
            </div>

            <div class="rk-err-metrics">
                <div class="rk-metric-card status-danger" id="card-diff">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Różnica temperatur w betonie (ΔT)</p>
                        <h4 id="val-diff">14°C (Krytyczna)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="card-stress">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Naprężenia wewnętrzne jastrychu</p>
                        <h4 id="val-stress">Ogromne (Ryzyko pęknięcia)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="card-joint">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M19 12H5"></path><path d="M12 19V5"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Ochrona dylatacyjna (8-10 mm)</p>
                        <h4 id="val-joint">Brak taśmy brzegowej</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-err-content">
        <p>Największym grzechem jest tzw. <strong>„lany montaż”</strong>, czyli układanie rur z rolki bez patrzenia na architektoniczny projekt wnętrz. Spotykam instalatorów, którzy twierdzą, że „ciepło i tak przejdzie bokiem”. To bzdura. Fizyka budowli i rozszerzalność cieplna materiałów są nieubłagane.</p>
        
        <p>Jeśli puścisz rury pod szafą, ciepło zostanie zablokowane. Z czasem <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">beton pod szafą nagrzeje się do 38°C</a>, podczas gdy podłoga na środku kuchni oddająca ciepło do pomieszczenia będzie miała zaledwie 24°C. Taka różnica temperatur na jednym fragmencie jastrychu generuje <strong>ogromne naprężenia wewnętrzne (rozrywanie ścinające)</strong>.</p>
        
        <p>Innym, powiązanym błędem jest brak fizycznej dylatacji w progach i na granicach ciężkich elementów. Jeśli pod szafą nie ma rur (strefa niegrzana), a obok są (strefa grzana), wylewka pracuje z inną dynamiką. Należy bezwzględnie oddzielić strefę grzaną od niegrzanej <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">taśmą dylatacyjną o grubości 8-10 mm</a>. W przeciwnym razie, już po pierwszym zimowym sezonie grzewczym, zobaczysz pęknięcie na płytkach ceramicznych przechodzące idealnie przez środek Twojej kuchni.</p>
    </div>

    <div class="rk-err-cta">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
            CZYTAJ BAZĘ WIEDZY EKSKLUZYWNEJ
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-err-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Ochrona Praw Autorskich
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Używasz chronionego skryptu poza domeną projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika Symulatora (Przełączanie stanów)
    const btns = document.querySelectorAll('.rk-err-btn');
    const appContainer = document.getElementById('rk-err-app');
    
    // Cards
    const cardDiff = document.getElementById('card-diff');
    const valDiff = document.getElementById('val-diff');
    const cardStress = document.getElementById('card-stress');
    const valStress = document.getElementById('val-stress');
    const cardJoint = document.getElementById('card-joint');
    const valJoint = document.getElementById('val-joint');
    
    // SVG Texts
    const svgTemp1 = document.getElementById('svg-temp-1');
    const svgTemp2 = document.getElementById('svg-temp-2');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset active buttons
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const mode = this.getAttribute('data-mode');
            
            if (mode === 'bad') {
                appContainer.classList.remove('state-good');
                appContainer.classList.add('state-bad');
                
                // UI Cards
                cardDiff.classList.replace('status-safe', 'status-danger');
                cardStress.classList.replace('status-safe', 'status-danger');
                cardJoint.classList.replace('status-safe', 'status-danger');
                
                // Texts
                valDiff.innerText = "14°C (Krytyczna)";
                valStress.innerText = "Ogromne (Ryzyko pęknięcia)";
                valJoint.innerText = "Brak taśmy brzegowej";
                
                svgTemp1.innerHTML = "38°C";
                svgTemp2.innerHTML = "24°C";

            } else {
                appContainer.classList.remove('state-bad');
                appContainer.classList.add('state-good');
                
                // UI Cards
                cardDiff.classList.replace('status-danger', 'status-safe');
                cardStress.classList.replace('status-danger', 'status-safe');
                cardJoint.classList.replace('status-danger', 'status-safe');
                
                // Texts
                valDiff.innerText = "4°C (Bezpieczna)";
                valStress.innerText = "Zniwelowane";
                valJoint.innerText = "Taśma absorbuje nacisk";
                
                svgTemp1.innerHTML = "20°C";
                svgTemp2.innerHTML = "24°C";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-qt2-dark: #0f172a;
    --rk-qt2-panel: #1e293b;
    --rk-qt2-accent: #0d9488; /* Techniczny morski / Teal - symbolizuje efektywność */
    --rk-qt2-accent-light: #ccfbf1;
    --rk-qt2-danger: #ef4444;
    --rk-qt2-bg: #f8fafc;
    --rk-qt2-border: #cbd5e1;
    --rk-qt2-text: #334155;
}

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

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

.rk-qt2-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-qt2-dark);
    margin: 0;
    letter-spacing: -0.5px;
}

.rk-qt2-container {
    background: #ffffff;
    border-radius: 20px;
    padding: 40px;
    display: flex;
    gap: 35px;
    align-items: flex-start;
    border: 1px solid var(--rk-qt2-border);
    box-shadow: 0 25px 50px -12px rgba(13, 148, 136, 0.15);
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło - zmiana na styl termiczny */
.rk-qt2-container::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 8px; height: 100%;
    background: linear-gradient(to bottom, var(--rk-qt2-danger), var(--rk-qt2-accent));
}

.rk-qt2-container::after {
    content: '”';
    position: absolute;
    top: -10px;
    right: 25px;
    font-family: Georgia, serif;
    font-size: 160px;
    color: var(--rk-qt2-bg);
    line-height: 1;
    z-index: 0;
    transform: rotate(10deg);
}

/* Zdjęcie i animacje */
.rk-qt2-photo-wrap {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    position: relative;
    z-index: 1;
}

.rk-qt2-photo-ring {
    position: absolute;
    top: -6px; left: -6px; right: -6px; bottom: -6px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--rk-qt2-accent);
    border-bottom-color: var(--rk-qt2-danger);
    animation: spinRingQt 8s linear infinite;
}

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

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

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

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

.rk-qt2-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-qt2-accent);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    background: var(--rk-qt2-accent-light);
    padding: 6px 14px;
    border-radius: 20px;
}

.rk-qt2-text {
    font-size: 19px;
    line-height: 1.7;
    color: var(--rk-qt2-panel);
    font-style: italic;
    margin: 0 0 20px 0;
    font-weight: 500;
}

.rk-qt2-text strong {
    color: var(--rk-qt2-dark);
    font-weight: 800;
    background: rgba(13, 148, 136, 0.1);
    padding: 0 4px;
    border-radius: 4px;
}

.rk-qt2-text a {
    color: var(--rk-qt2-panel);
    text-decoration: underline;
    text-decoration-color: var(--rk-qt2-accent);
    text-underline-offset: 4px;
    text-decoration-thickness: 2px;
    transition: color 0.3s;
}

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

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

/* Interaktywny Panel Danych */
.rk-qt2-interactive {
    margin-top: 25px;
}

.rk-qt2-btn {
    background: #ffffff;
    border: 2px solid var(--rk-qt2-border);
    color: var(--rk-qt2-text);
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-qt2-btn:hover {
    border-color: var(--rk-qt2-accent);
    color: var(--rk-qt2-accent);
    background: var(--rk-qt2-bg);
}

.rk-qt2-btn svg { transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.rk-qt2-btn.active svg { transform: rotate(180deg); }

.rk-qt2-data-panel {
    display: none;
    margin-top: 20px;
    padding: 25px;
    background: var(--rk-qt2-bg);
    border-radius: 16px;
    border: 1px dashed var(--rk-qt2-border);
    animation: slideDownQt 0.4s ease forwards;
}

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

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

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

.rk-data-stat::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 3px;
    background: var(--rk-qt2-accent);
    transform: scaleX(0);
    transition: transform 0.3s;
}

.rk-data-stat:hover::after { transform: scaleX(1); }

.rk-data-val {
    display: block;
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-qt2-dark);
    margin-bottom: 8px;
}

.rk-data-val.alert { color: var(--rk-qt2-danger); }

.rk-data-lab {
    font-size: 12px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .rk-qt2-container { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-qt2-header h2 { font-size: 22px; text-align: center; }
    .rk-qt2-container::before { width: 100%; height: 8px; }
    .rk-qt2-data-panel.active { grid-template-columns: 1fr; }
    .rk-qt2-text { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Robert Kucharski: Ogrzewanie podłogowe to nie wylewka, którą leje się wszędzie",
    "description": "Podsumowujący komentarz inżynierski o konieczności omijania stałej zabudowy i sprzętu AGD dla zachowania sprawności pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "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-12",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Ogrzewanie podłogowe to nie posadzka, którą leje się równo od ściany do ściany. To precyzyjny układ termodynamiczny. Każdy metr rury uwięziony pod stałą zabudową, wyspą kuchenną czy lodówką to wyrzucone pieniądze na etapie montażu i stały podatek energetyczny narzucony pompie ciepła na lata. Profesjonalny projekt OZC szanuje fizykę i omija przeszkody, podczas gdy amatorski montaż „na oko” generuje destrukcyjne naprężenia w jastrychu.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Audytor",
      "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/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-cytat",
    "name": "Wskaźniki strat przy zablokowanej emisji cieplnej",
    "description": "Twarde dane inżynierskie podsumowujące spadki wydajności systemu płaszczyznowego ułożonego pod meblami w stosunku do strefy otwartej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "straty mocy podłogówka",
      "spadek COP pompy",
      "opór cieplny mebli",
      "naprężenia wylewki",
      "projekt ozc podłogówki"
    ],
    "measurementTechnique": "Szacowanie oporu cieplnego warstw (R > 0.15) i jego wpływu na wydajność sprężarki oraz moc emitowaną do kubatury pomieszczenia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strata mocy cieplnej (zablokowana emisja): 40-60%",
        "Spadek sezonowego współczynnika SCOP pompy ciepła: -15%",
        "Opór cieplny generowany przez szafki na cokole: > 0.15 m2K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-cytat",
    "name": "Panel Danych Termodynamicznych",
    "description": "Interaktywny widget rozwijający podsumowujący cytat ekspercki o fizyczne parametry strat energetycznych i oporów cieplnych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-qt2-wrapper" id="rk-expert-quote-app">
    <div class="rk-qt2-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-qt2-accent)" stroke-width="2.5" 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>
        <h2>Głos Inżyniera</h2>
    </div>
    
    <div class="rk-qt2-container">
        <div class="rk-qt2-photo-wrap">
            <div class="rk-qt2-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-qt2-photo" loading="lazy">
            <div class="rk-qt2-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
            </div>
        </div>
        
        <div class="rk-qt2-content">
            <span class="rk-qt2-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>
                Podsumowanie Merytoryczne
            </span>
            <p class="rk-qt2-text">
                &#8222;Ogrzewanie podłogowe to nie posadzka, którą leje się z pamięci od ściany do ściany. To <strong>precyzyjny układ termodynamiczny</strong>. Każdy metr rury uwięziony pod stałą zabudową, wyspą kuchenną czy lodówką to wyrzucone pieniądze na etapie montażu i stały podatek energetyczny narzucony <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompie ciepła</a> na kolejne dekady. Profesjonalny <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projekt OZC</a> szanuje fizykę i omija przeszkody, podczas gdy amatorski montaż „na oko” generuje destrukcyjne naprężenia w jastrychu.&#8221;
            </p>
            <span class="rk-qt2-signature">— Robert Kucharski, Inżynier HVAC &#038; Audytor Projekt-Ogrzewania.pl</span>
            
            <div class="rk-qt2-interactive">
                <button class="rk-qt2-btn" id="toggleDataBtn">
                    Pokaż straty energetyczne układu zablokowanego
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-qt2-data-panel" id="expertDataPanel">
                    <div class="rk-data-stat">
                        <span class="rk-data-val alert">40-60%</span>
                        <span class="rk-data-lab">Strata Mocy Cieplnej</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val alert">&#8211; 15%</span>
                        <span class="rk-data-lab">Spadek COP Pompy</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-qt2-accent);">> 0.15 R</span>
                        <span class="rk-data-lab">Opór Cieplny Zabudowy</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;">Wskaźniki strat pod meblami (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Strata mocy emitowanej: 40-60%</li>
                <li>Spadek sezonowego współczynnika COP pompy: do 15%</li>
                <li>Opór cieplny (blokada emisji) mebli: powyżej 0.15 m²K/W</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H 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;">Zabezpieczono prawami autorskimi domeny Projekt-Ogrzewania.pl. Użycie nieautoryzowane.</div>
                </div>
            `;
            container.style.border = '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 = `Ukryj szczegółowe dane inżynierskie <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            } else {
                this.innerHTML = `Pokaż straty energetyczne układu zablokowanego <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-cs-dark: #111827;
    --rk-cs-panel: #1f2937;
    --rk-cs-brand: #d97706; /* Inżynieryjny bursztyn/pomarańcz dla Case Study */
    --rk-cs-brand-light: #fef3c7;
    --rk-cs-danger: #ef4444; /* Błąd krytyczny */
    --rk-cs-danger-light: #fef2f2;
    --rk-cs-success: #10b981; /* Naprawa */
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
}

.rk-cs-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(217, 119, 6, 0.15);
    border: 1px solid rgba(217, 119, 6, 0.3);
    overflow: hidden;
}

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

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(217, 119, 6, 0.2);
    color: #fcd34d;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(252, 211, 77, 0.2);
}

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

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

/* Interfejs Aplikacji */
.rk-cs-app {
    padding: 40px 50px;
    background: var(--rk-cs-bg);
}

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

/* Kontrolki / Toggle */
.rk-cs-controls {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

.rk-cs-toggle {
    display: flex;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-cs-btn {
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    background: transparent;
    color: #64748b;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-cs-btn svg { width: 18px; height: 18px; }

.rk-cs-btn.active[data-mode="bad"] {
    background: var(--rk-cs-danger);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

.rk-cs-btn.active[data-mode="good"] {
    background: var(--rk-cs-success);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

/* Grid Layout */
.rk-cs-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* SVG Wizualizacja */
.rk-cs-visual {
    background: #ffffff;
    border: 2px solid var(--rk-cs-border);
    border-radius: 20px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
    min-height: 320px;
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
    max-height: 280px;
}

/* Metryki / Kafelki */
.rk-cs-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-metric-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.rk-metric-data { flex-grow: 1; }

.rk-metric-data p {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 4px 0;
    letter-spacing: 0.5px;
}

.rk-metric-data h4 {
    font-size: 18px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-cs-dark);
    transition: color 0.3s ease;
    line-height: 1.3;
}

/* Stany na Kafelkach */
.status-danger { border-color: var(--rk-cs-danger); background: var(--rk-cs-danger-light); }
.status-danger .rk-metric-icon { background: var(--rk-cs-danger); color: #fff; }
.status-danger h4 { color: var(--rk-cs-danger); }

.status-safe { border-color: var(--rk-cs-success); }
.status-safe .rk-metric-icon { background: #dcfce7; color: var(--rk-cs-success); }
.status-safe h4 { color: var(--rk-cs-success); }

/* Animacje SVG na żywo */
.anim-pipe-bad { transition: opacity 0.4s; }
.anim-pipe-good { transition: opacity 0.4s; }
.anim-crack { stroke-dasharray: 60; stroke-dashoffset: 60; transition: stroke-dashoffset 0.8s 0.2s ease-out; }
.anim-dylatacja { opacity: 0; transition: opacity 0.5s; stroke-dasharray: 4 4; }
.anim-fridge-heat { opacity: 0; transition: opacity 0.4s; }
.anim-comp-glow { transition: fill 0.5s; }

/* STAN: BŁĄD (Audyt) */
.state-bad .anim-pipe-bad { opacity: 1; stroke: var(--rk-cs-danger); }
.state-bad .anim-pipe-good { opacity: 0; }
.state-bad .anim-crack { stroke-dashoffset: 0; stroke: var(--rk-cs-danger); }
.state-bad .anim-dylatacja { opacity: 0; }
.state-bad .anim-fridge-heat { opacity: 1; animation: floatHeat 1.5s infinite alternate; stroke: var(--rk-cs-danger); }
.state-bad .anim-comp-glow { fill: var(--rk-cs-danger); animation: pulseGlow 1s infinite alternate; }

/* STAN: DOBRZE (Naprawa OZC) */
.state-good .anim-pipe-bad { opacity: 0; }
.state-good .anim-pipe-good { opacity: 1; stroke: var(--rk-cs-success); }
.state-good .anim-crack { stroke-dashoffset: 60; }
.state-good .anim-dylatacja { opacity: 1; stroke: var(--rk-cs-brand); animation: drawDyl 1s forwards; }
.state-good .anim-fridge-heat { opacity: 0; }
.state-good .anim-comp-glow { fill: #94a3b8; animation: none; }

@keyframes floatHeat { from { transform: translateY(0); } to { transform: translateY(-5px); } }
@keyframes pulseGlow { from { opacity: 0.6; } to { opacity: 1; } }
@keyframes drawDyl { from { stroke-dashoffset: 20; } to { stroke-dashoffset: 0; } }

/* Treść SEO / Merytoryczna */
.rk-cs-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-cs-border);
}

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

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

.rk-cs-content strong {
    color: var(--rk-cs-dark);
    font-weight: 800;
    background: rgba(217, 119, 6, 0.15);
    padding: 0 4px;
    border-radius: 4px;
}

.rk-link {
    color: var(--rk-cs-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(217, 119, 6, 0.4);
    transition: all 0.3s;
}

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

/* RWD */
@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-app, .rk-cs-content { padding: 30px 20px; }
    .rk-cs-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-cs-visual { height: 280px; }
    .rk-cs-title { font-size: 24px; }
    .rk-cs-toggle { width: 100%; flex-direction: column; gap: 5px; }
    .rk-cs-btn { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Case Study: Skutki braku projektu ogrzewania w kuchni",
    "description": "Audyt w Krośnie z marca 2025. Pęknięta wylewka i przegrzany kompresor lodówki jako efekt ułożenia rur pod wyspą kuchenną bez dylatacji.",
    "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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-case-study",
    "name": "Audyt Powykonawczy: Straty i uszkodzenia przy braku dylatacji i ominięcia AGD",
    "description": "Dane z audytu technicznego budynku jednorodzinnego w Krośnie (155 m2) dokumentujące błędy instalacyjne ogrzewania podłogowego w strefie kuchennej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "audyt ogrzewania podłogowego",
      "przegrzewanie kompresora lodówki",
      "pęknięcie wylewki",
      "koszty braku projektu podłogówki",
      "ogrzewanie pod wyspą kuchenną"
    ],
    "measurementTechnique": "Badanie termowizyjne jastrychu pod obciążeniem wyspy kuchennej, analiza naprężeń ścinających wokół wyspy oraz pomiar nadmiarowego poboru prądu kompresora lodówki (+18%).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Rury pod lodówką i wyspą. Pęknięta wylewka z braku dylatacji. Wzrost zużycia prądu AGD o 18%.",
        "Naprawa: Odcięcie pętli, nacięcie dylatacyjne wokół ciężkiej zabudowy wyspowej, odizolowanie chłodziarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-case-study",
    "name": "Symulator Błędów Instalacyjnych (Case Study Krosno)",
    "description": "Wizualne narzędzie analityczne przedstawiające zestawienie błędnie i prawidłowo zrealizowanego obiegu grzewczego w kontekście nacisku mechanicznego i przegrzewu urządzeń chłodniczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container state-bad" id="rk-cs-app">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Audyt Budowlany: Krosno 2025
        </div>
        <h2 class="rk-cs-title">Case Study: Anatomia Katastrofy Instalacyjnej</h2>
        <p class="rk-cs-desc">Zobacz na autentycznym przykładzie, ile kosztuje instalatora i inwestora położenie rur „z pamięci” pod najcięższymi punktami w kuchni.</p>
    </div>

    <div class="rk-cs-app">
        <h3>Analiza Błędu vs Prawidłowy Projekt</h3>
        
        <div class="rk-cs-controls">
            <div class="rk-cs-toggle">
                <button class="rk-cs-btn active" data-mode="bad">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                    Audyt: Lany Montaż (Błąd)
                </button>
                <button class="rk-cs-btn" data-mode="good">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Projekt: Ominięcie (Naprawa)
                </button>
            </div>
        </div>

        <div class="rk-cs-grid">
            <div class="rk-cs-visual">
                <svg class="rk-svg-engine" viewBox="0 0 120 100">
                    <rect x="5" y="5" width="110" height="90" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2" rx="4"/>
                    
                    <rect x="40" y="20" width="40" height="60" fill="#475569" rx="2" />
                    <rect class="anim-dylatacja" x="38" y="18" width="44" height="64" fill="none" stroke-width="2.5" rx="3" />
                    
                    <rect x="90" y="5" width="25" height="35" fill="#cbd5e1" stroke="#94a3b8" stroke-width="2" rx="2" />
                    <rect class="anim-comp-glow" x="95" y="10" width="15" height="10" rx="1" /> <g class="anim-fridge-heat" fill="none" stroke-width="1.5" stroke-linecap="round">
                        <path d="M 98 8 Q 100 5 105 8" />
                        <path d="M 102 12 Q 104 9 109 12" />
                    </g>

                    <path class="anim-crack" d="M 40 80 L 30 85 L 20 75 L 10 80" fill="none" stroke-width="2.5" stroke-linejoin="round" />
                    <path class="anim-crack" d="M 80 20 L 85 10 L 95 15" fill="none" stroke-width="2.5" stroke-linejoin="round" />

                    <g class="anim-pipe-bad" fill="none" stroke-width="2" stroke-linejoin="round">
                        <path d="M 90 25 L 110 25 M 90 35 L 110 35" />
                        <path d="M 40 30 L 80 30 M 40 40 L 80 40 M 40 50 L 80 50 M 40 60 L 80 60 M 40 70 L 80 70" />
                    </g>

                    <g class="anim-pipe-good" fill="none" stroke-width="2" stroke-linejoin="round">
                        <path d="M 10 15 L 30 15 L 30 25 L 10 25 L 10 35 L 30 35 L 30 45 L 10 45 L 10 55 L 30 55 L 30 65 L 10 65 L 10 75 L 30 75 L 30 85 L 10 85" />
                        <path d="M 85 45 L 105 45 L 105 55 L 85 55 L 85 65 L 105 65 L 105 75 L 85 75 L 85 85 L 105 85" />
                    </g>
                </svg>
            </div>

            <div class="rk-cs-metrics">
                <div class="rk-metric-card status-danger" id="cs-card-fridge">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Zużycie Energii (AGD)</p>
                        <h4 id="cs-val-fridge">+ 18% (Przegrzew kompresora)</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="cs-card-screed">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Stan Wylewki (Jastrychu)</p>
                        <h4 id="cs-val-screed">Pęknięcie naprężeniowe</h4>
                    </div>
                </div>

                <div class="rk-metric-card status-danger" id="cs-card-fix">
                    <div class="rk-metric-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    </div>
                    <div class="rk-metric-data">
                        <p>Dylatacja Brzegowa Wyspy</p>
                        <h4 id="cs-val-fix">Brak obwodowej taśmy</h4>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cs-content">
        <p><strong>Case Study: Projekt z 14 marca 2025 roku, Inwestor Marek, Krosno, dom jednorodzinny 155 m².</strong></p>
        
        <p>Podczas audytu powykonawczego z użyciem kamery termowizyjnej stwierdzono fatalny błąd hydraulika: instalator ułożył rury &#8222;od ściany do ściany&#8221; pod całą powierzchnią kuchni. System grzewczy znalazł się dokładnie pod ciężką zabudową wyspową (z kamiennym blatem) oraz pod wielkogabarytową lodówką typu side-by-side.</p>
        
        <p><strong>Jakie były skutki tego amatorskiego montażu?</strong></p>
        <p>Po pierwsze, urządzenie chłodnicze zasysało powietrze rozgrzane od posadzki do blisko 35°C. Zablokowana w ten sposób wymiana ciepła kompresora spowodowała ciągłą pracę agregatu, co bezpośrednio przełożyło się na <strong>wzrost zużycia energii elektrycznej lodówki aż o 18%</strong> w skali roku.</p>
        
        <p>Po drugie – i znacznie gorsze dla konstrukcji budynku – ogromny nacisk wyspy na ogrzewaną punktowo posadzkę, w połączeniu z brakiem <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">odpowiedniej dylatacji brzegowej oddzielającej strefy nacisku</a>, doprowadził do rozerwania jastrychu. <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-link">Wylewka betonowa nie wytrzymała naprężeń ścinających</a>, a w osi brzegowej wyspy pojawiło się głębokie pęknięcie, które następnie przeniosło się na ułożone już płytki ceramiczne wielkiego formatu. Naprawa takiego błędu (kucie posadzki, <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-link">przebudowa pętli</a> i ponowne lanie) kosztuje inwestora tysiące złotych, których można było uniknąć, dysponując rzetelnym projektem OZC.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-cs-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #111827; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Zabezpieczenie Praw Autorskich
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Narzędzie interaktywne "Case Study" należy do domeny projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika Symulatora (Przełączanie stanów)
    const btns = document.querySelectorAll('.rk-cs-btn');
    const appContainer = document.getElementById('rk-cs-app');
    
    // Metryki - Elementy DOM
    const cardFridge = document.getElementById('cs-card-fridge');
    const valFridge = document.getElementById('cs-val-fridge');
    const cardScreed = document.getElementById('cs-card-screed');
    const valScreed = document.getElementById('cs-val-screed');
    const cardFix = document.getElementById('cs-card-fix');
    const valFix = document.getElementById('cs-val-fix');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset active buttons
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const mode = this.getAttribute('data-mode');
            
            if (mode === 'bad') {
                appContainer.classList.remove('state-good');
                appContainer.classList.add('state-bad');
                
                // UI Cards
                cardFridge.classList.replace('status-safe', 'status-danger');
                cardScreed.classList.replace('status-safe', 'status-danger');
                cardFix.classList.replace('status-safe', 'status-danger');
                
                // Texts
                valFridge.innerText = "+ 18% (Przegrzew kompresora)";
                valScreed.innerText = "Pęknięcie naprężeniowe";
                valFix.innerText = "Brak obwodowej taśmy";

            } else {
                appContainer.classList.remove('state-bad');
                appContainer.classList.add('state-good');
                
                // UI Cards
                cardFridge.classList.replace('status-danger', 'status-safe');
                cardScreed.classList.replace('status-danger', 'status-safe');
                cardFix.classList.replace('status-danger', 'status-safe');
                
                // Texts
                valFridge.innerText = "Norma (Brak wpływu)";
                valScreed.innerText = "Stabilna i bezpieczna";
                valFix.innerText = "Prawidłowa dylatacja wokół";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-ozc-dark: #0f172a;
    --rk-ozc-panel: #1e293b;
    --rk-ozc-brand: #2563eb; /* Inżynieryjny niebieski */
    --rk-ozc-brand-light: #dbeafe;
    --rk-ozc-danger: #ef4444; /* Alert hydrauliczny */
    --rk-ozc-warning: #f59e0b; /* Wzrost oporów */
    --rk-ozc-success: #10b981; /* Optymalnie */
    --rk-ozc-bg: #f8fafc;
    --rk-ozc-border: #cbd5e1;
    --rk-ozc-text: #334155;
}

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

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

.rk-ozc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #93c5fd;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.2);
}

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

.rk-ozc-desc {
    font-size: 16px;
    line-height: 1.6;
    color: #bfdbfe;
    margin: 0;
    max-width: 800px;
}

/* Aplikacja Interaktywna */
.rk-ozc-app {
    padding: 40px 50px;
    background: var(--rk-ozc-bg);
}

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

/* Suwak (Slider) */
.rk-ozc-slider-box {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 25px 35px;
    margin-bottom: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

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

.rk-ozc-slider-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-ozc-text);
    margin: 0;
}

.rk-ozc-slider-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ozc-brand);
    background: var(--rk-ozc-brand-light);
    padding: 4px 12px;
    border-radius: 8px;
}

.rk-ozc-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: linear-gradient(90deg, var(--rk-ozc-success) 0%, var(--rk-ozc-warning) 50%, var(--rk-ozc-danger) 100%);
    outline: none;
    transition: opacity .2s;
}

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

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

/* Układ Grid (SVG + Karty) */
.rk-ozc-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 30px;
    align-items: stretch;
}

/* SVG Wizualizacja */
.rk-ozc-visual {
    background: #ffffff;
    border: 2px solid var(--rk-ozc-border);
    border-radius: 20px;
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.02);
    position: relative;
    min-height: 350px;
}

.rk-svg-engine {
    width: 100%;
    height: 100%;
}

/* Kafelki Danych (OZC i Hydraulika) */
.rk-ozc-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-ozc-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.01);
}

.rk-metric-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    background: var(--rk-ozc-brand-light);
    color: var(--rk-ozc-brand);
    transition: all 0.3s;
}

.rk-metric-card p {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin: 0 0 6px 0;
    letter-spacing: 0.5px;
}

.rk-metric-card h4 {
    font-size: 18px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-ozc-dark);
    transition: color 0.3s;
    line-height: 1.3;
}

.rk-metric-card.alert { border-color: var(--rk-ozc-danger); background: #fef2f2; }
.rk-metric-card.alert .rk-metric-icon { background: var(--rk-ozc-danger); color: #fff; }
.rk-metric-card.alert h4 { color: var(--rk-ozc-danger); }

.rk-metric-card.warn { border-color: var(--rk-ozc-warning); }
.rk-metric-card.warn .rk-metric-icon { background: #fef3c7; color: var(--rk-ozc-warning); }
.rk-metric-card.warn h4 { color: var(--rk-ozc-warning); }

/* Animacje i stany SVG */
.anim-furniture { transition: width 0.3s linear; }
.anim-pipe-grid { transition: stroke-dasharray 0.3s linear, stroke 0.3s; }

/* Treść merytoryczna */
.rk-ozc-content {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-ozc-border);
}

.rk-ozc-content p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-ozc-text);
    margin: 0 0 20px 0;
}

.rk-ozc-content ul {
    background: var(--rk-ozc-bg);
    border: 1px solid var(--rk-ozc-border);
    border-radius: 12px;
    padding: 25px 25px 25px 45px;
    margin-bottom: 25px;
}

.rk-ozc-content li {
    font-size: 15px;
    color: #475569;
    margin-bottom: 12px;
    line-height: 1.6;
}

.rk-ozc-content li strong {
    color: var(--rk-ozc-dark);
    font-weight: 800;
}

/* MOCNE CTA */
.rk-ozc-cta-box {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    padding: 50px;
    text-align: center;
    border-top: 4px solid var(--rk-ozc-warning);
}

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

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

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

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

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

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

@media (max-width: 768px) {
    .rk-ozc-header, .rk-ozc-app, .rk-ozc-content, .rk-ozc-cta-box { padding: 30px 20px; }
    .rk-ozc-title { font-size: 24px; }
    .rk-ozc-grid { grid-template-columns: 1fr; }
    .rk-ozc-metrics { grid-template-columns: 1fr; }
    .rk-ozc-visual { min-height: 250px; padding: 15px; }
    .rk-btn-massive { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article-ozc-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
    },
    "headline": "Jak zabudowa meblowa wpływa na projekt OZC i hydraulikę podłogówki?",
    "description": "Zabranie 30% powierzchni pod szafy wymusza zmniejszenie rozstawu rur do 10 cm, co drastycznie zwiększa opory hydrauliczne (>20 kPa) i wymaga precyzyjnego zbalansowania rotametrów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2024-12-22",
    "dateModified": "2026-05-11"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#dataset-ozc-hydraulika",
    "name": "Parametry kompensacji hydraulicznej (OZC) przy zabudowie meblowej",
    "description": "Zestawienie zmian parametrów fizycznych instalacji ogrzewania podłogowego (opory przepływu, rozstaw rur, wymagana wydajność pompy obiegowej) wywołanych redukcją aktywnej powierzchni grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC",
      "przepływy hydrauliczne podłogówki",
      "opory pompy obiegowej",
      "rotametry",
      "rozstaw rur 10 cm"
    ],
    "measurementTechnique": "Kalkulacja oporów hydraulicznych (kPa) i przepływu masowego (l/min) w relacji do zagęszczenia rur i bilansu mocy (Q=1.2kW, ΔT=5K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak zabudowy (0%): Rozstaw 15 cm, przepływ 2.4 l/min, opory pętli 12 kPa.",
        "Mocna zabudowa (30%): Rozstaw 10 cm, przepływ 3.4 l/min, opory pętli > 20 kPa (wymaga przewymiarowania pompy)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webapp-ozc-hydraulika",
    "name": "Symulator Hydrauliki i Kompensacji OZC",
    "description": "Narzędzie inżynierskie pozwalające inwestorowi zaobserwować wykładniczy wzrost oporów hydraulicznych pętli grzewczej w odpowiedzi na redukcję wolnej powierzchni przez zabudowę meblową.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ozc-container" id="rk-ozc-app">
    
    <div class="rk-ozc-header">
        <div class="rk-ozc-badge">
            <svg width="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><polyline points="12 6 12 12 16 14"></polyline></svg>
            Zaawansowana Fizyka
        </div>
        <h2 class="rk-ozc-title">Jak zabudowa niszczy hydraulikę układu?</h2>
        <p class="rk-ozc-desc">Pominięcie powierzchni pod meblami ratuje wylewkę, ale drastycznie zmienia obliczenia OZC. Zobacz, jak utrata 30% powierzchni podłogi obciąża pompę obiegową i wymaga precyzyjnych rotametrów.</p>
    </div>

    <div class="rk-ozc-app">
        <h3>Symulator Obciążenia Hydraulicznego</h3>
        
        <div class="rk-ozc-slider-box">
            <div class="rk-ozc-slider-header">
                <h4 class="rk-ozc-slider-title">Zabudowa meblowa (Strefa martwa):</h4>
                <div class="rk-ozc-slider-val" id="ozc-val-display">0%</div>
            </div>
            <input type="range" min="0" max="30" value="0" step="1" class="rk-ozc-range" id="ozc-range-slider">
            <div style="display:flex; justify-content:space-between; margin-top:10px; font-size:12px; color:#64748b; font-weight:700;">
                <span>Pusty pokój (0%)</span>
                <span>Ciężka zabudowa (30%)</span>
            </div>
        </div>

        <div class="rk-ozc-grid">
            <div class="rk-ozc-metrics">
                
                <div class="rk-metric-card" id="card-spacing">
                    <div class="rk-metric-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="21" y1="10" x2="3" y2="10"></line><line x1="21" y1="6" x2="3" y2="6"></line><line x1="21" y1="14" x2="3" y2="14"></line><line x1="21" y1="18" x2="3" y2="18"></line></svg>
                    </div>
                    <p>Wymagany Rozstaw Rur</p>
                    <h4 id="txt-spacing">15 cm</h4>
                </div>

                <div class="rk-metric-card" id="card-flow">
                    <div class="rk-metric-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <p>Wymagany Przepływ (Q=1.2kW)</p>
                    <h4 id="txt-flow">2.4 l/min</h4>
                </div>

                <div class="rk-metric-card" id="card-pressure">
                    <div class="rk-metric-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M16 12l-4-4-4 4M12 8v8"></path></svg>
                    </div>
                    <p>Opory Hydrauliczne Pętli</p>
                    <h4 id="txt-pressure">12 kPa (Niskie)</h4>
                </div>

                <div class="rk-metric-card" id="card-balance">
                    <div class="rk-metric-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20V10M18 20V4M6 20v-4"></path></svg>
                    </div>
                    <p>Balansowanie Rotametrem</p>
                    <h4 id="txt-balance">Standardowe</h4>
                </div>

            </div>

            <div class="rk-ozc-visual">
                <svg class="rk-svg-engine" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet">
                    <rect x="5" y="5" width="90" height="90" fill="#f1f5f9" stroke="#cbd5e1" stroke-width="2" rx="4"/>
                    
                    <g stroke="#3b82f6" stroke-linecap="round">
                        <line x1="15" y1="15" x2="85" y2="15" stroke-width="2"/>
                        <line class="anim-pipe-grid opt-pipe" x1="15" y1="25" x2="85" y2="25" stroke-width="2" opacity="0"/>
                        <line x1="15" y1="35" x2="85" y2="35" stroke-width="2"/>
                        <line class="anim-pipe-grid opt-pipe" x1="15" y1="45" x2="85" y2="45" stroke-width="2" opacity="0"/>
                        <line x1="15" y1="55" x2="85" y2="55" stroke-width="2"/>
                        <line class="anim-pipe-grid opt-pipe" x1="15" y1="65" x2="85" y2="65" stroke-width="2" opacity="0"/>
                        <line x1="15" y1="75" x2="85" y2="75" stroke-width="2"/>
                        <line class="anim-pipe-grid opt-pipe" x1="15" y1="85" x2="85" y2="85" stroke-width="2" opacity="0"/>
                    </g>

                    <rect id="svg-furniture" class="anim-furniture" x="5" y="5" width="0" height="90" fill="#475569" opacity="0.9" rx="4"/>
                </svg>
            </div>
        </div>
    </div>

    <div class="rk-ozc-content">
        <p>Pominięcie powierzchni pod meblami diametralnie zmienia obliczenia <strong>OZC (Obciążenie Cieplne Budynku)</strong>. Jeśli w pokoju o stratach 800 W zabierzesz 30% powierzchni pod wielką szafę i łóżko, to pozostałe, odsłonięte 70% posadzki musi oddać do pomieszczenia te same 800 W, aby zachować komfort cieplny.</p>
        
        <ul>
            <li><strong>Rozstaw rur:</strong> Musi zostać zmniejszony z 15 cm na 10 cm (lub rzadziej na 7,5 cm), aby sztucznie zwiększyć moc jednostkową z m² i zachować wydajność przy tej samej, niskiej temperaturze zasilania z pompy ciepła.</li>
            <li><strong>Przepływy hydrauliczne:</strong> Przy mniejszej powierzchni, ale znacznie gęstszym rozstawie rur, fizyczna pętla staje się paradoksalnie dużo dłuższa. Przy zapotrzebowaniu Q = 1,2 kW i optymalnym ΔT = 5 K, wymagany przepływ rośnie drastycznie do ok. 3,4 l/min.</li>
            <li><strong>Opory tłoczenia:</strong> Jeśli zagęszczona pętla przekroczy granicę 100 mb, opory hydrauliczne wzrosną wykładniczo powyżej 20 kPa. To zjawisko bardzo często wymusza na instalatorze zastosowanie dodatkowej, mocniejszej pompy obiegowej (np. 25/7) oraz sprzęgła hydraulicznego.</li>
            <li><strong>Balansowanie układu:</strong> Rozdzielacz podłogowy musi być wyposażony w wysokiej klasy rotametry o bardzo szerokim zakresie pomiarowym (np. 0-5 l/min). Tylko wtedy instalator będzie w stanie precyzyjnie zadławić ekstremalnie krótkie pętle (np. w małym WC bez stałej zabudowy) i maksymalnie otworzyć te długie, o wysokim oporze w zagęszczonym salonie.</li>
        </ul>
    </div>

    <div class="rk-ozc-cta-box">
        <h3 class="rk-ozc-cta-title">Nie zgaduj z hydrauliką. Zleć to Inżynierom.</h3>
        <p class="rk-ozc-cta-text">Amatorski dobór pompy obiegowej i rozstawu rur „z głowy” przy mocno zabudowanym salonie gwarantuje strefy niedogrzania oraz wycie pompy na najwyższym biegu. Zamów kompleksowy projekt oparty o rzetelne obliczenia OZC.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowed.includes(domain)) {
        document.getElementById('rk-ozc-app').innerHTML = `
            <div style="padding: 40px; text-align: center; background: #0f172a; border-radius: 20px;">
                <div style="font-size: 20px; font-weight: 900; color: #ef4444; font-family: sans-serif; text-transform: uppercase;">
                    Ochrona Praw Autorskich
                </div>
                <div style="font-size: 14px; color: #cbd5e1; margin-top: 10px; font-family: sans-serif;">
                    Narzędzie obliczeniowe zablokowane. Wykryto nieautoryzowaną domenę. Właścicielem jest projekt-ogrzewania.pl
                </div>
            </div>`;
        return;
    }

    // 2. Logika Symulatora (Kalkulator OZC)
    const slider = document.getElementById('ozc-range-slider');
    const displayVal = document.getElementById('ozc-val-display');
    
    // UI Elements Data
    const txtSpacing = document.getElementById('txt-spacing');
    const txtFlow = document.getElementById('txt-flow');
    const txtPressure = document.getElementById('txt-pressure');
    const txtBalance = document.getElementById('txt-balance');
    const cards = document.querySelectorAll('.rk-metric-card');
    
    // SVG Elements
    const svgFurniture = document.getElementById('svg-furniture');
    const optPipes = document.querySelectorAll('.opt-pipe');

    function updatePhysics(value) {
        // value = 0 to 30 (Percentage)
        displayVal.innerText = `${value}%`;

        // SVG Visual Update
        // Max width of floor is 90. 30% of 90 is 27.
        const furWidth = (value / 100) * 90; 
        svgFurniture.setAttribute('width', furWidth);

        // OZC Logic Interpolation
        if (value < 10) {
            // SAFE
            cards.forEach(c => { c.classList.remove('alert', 'warn'); });
            
            txtSpacing.innerText = "15 cm";
            txtFlow.innerText = "2.4 l/min";
            txtPressure.innerText = "12 kPa (Niskie)";
            txtBalance.innerText = "Standardowe (0-2.5 l/min)";
            
            optPipes.forEach(p => p.setAttribute('opacity', '0'));
            
        } else if (value >= 10 && value <= 20) {
            // WARNING
            cards.forEach(c => { c.classList.remove('alert'); c.classList.add('warn'); });
            
            txtSpacing.innerText = "12.5 cm";
            txtFlow.innerText = "2.9 l/min";
            txtPressure.innerText = "16 kPa (Podwyższone)";
            txtBalance.innerText = "Precyzyjne (rotametry wyższej klasy)";
            
            optPipes.forEach(p => p.setAttribute('opacity', '0.5'));
            
        } else {
            // DANGER (High Load)
            cards.forEach(c => { c.classList.remove('warn'); c.classList.add('alert'); });
            
            txtSpacing.innerText = "10 cm (Mocno zagęszczone)";
            txtFlow.innerText = "3.4 l/min";
            txtPressure.innerText = "> 22 kPa (Wymaga mocniejszej pompy!)";
            txtBalance.innerText = "Trudne (Ryzyko szumów)";
            
            optPipes.forEach(p => p.setAttribute('opacity', '1'));
        }
    }

    slider.addEventListener('input', function() {
        updatePhysics(parseInt(this.value));
    });
    
    // Start
    updatePhysics(0);
});
</script>



<style>
:root {
    --rk-fq2-dark: #111827;
    --rk-fq2-card: #1f2937;
    --rk-fq2-brand: #0284c7; /* Ekspercki niebieski */
    --rk-fq2-brand-light: #e0f2fe;
    --rk-fq2-accent: #f59e0b; /* Bursztyn dla ostrzeżeń/ciepła */
    --rk-fq2-danger: #ef4444;
    --rk-fq2-bg: #f8fafc;
    --rk-fq2-border: #cbd5e1;
    --rk-fq2-text: #334155;
}

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

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

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

.rk-fq2-title {
    font-size: 30px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
}

.rk-fq2-title span { color: #7dd3fc; }

/* Sekcja Akordeonu */
.rk-fq2-interactive {
    padding: 40px 50px;
    background: var(--rk-fq2-bg);
}

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

.rk-fq2-item {
    background: #ffffff;
    border: 1px solid var(--rk-fq2-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
}

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

/* Przycisk Pytania */
.rk-fq2-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 22px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-fq2-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-fq2-question:hover { background: var(--rk-fq2-brand-light); }
.rk-fq2-item.active .rk-fq2-question { background: var(--rk-fq2-brand); color: #ffffff; }

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

.rk-fq2-item.active .rk-fq2-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

/* Kontener Odpowiedzi */
.rk-fq2-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-fq2-item.active .rk-fq2-answer-wrapper { grid-template-rows: 1fr; }
.rk-fq2-answer-inner { overflow: hidden; }

/* Wnętrze Odpowiedzi */
.rk-fq2-content {
    padding: 30px;
    border-top: 1px solid var(--rk-fq2-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 35px;
    align-items: center;
}

.rk-fq2-text {
    font-size: 15px;
    line-height: 1.8;
    color: var(--rk-fq2-text);
}

.rk-fq2-text strong {
    font-weight: 800;
    color: var(--rk-fq2-dark);
    background: rgba(245, 158, 11, 0.1);
    padding: 0 4px;
    border-radius: 4px;
}

.rk-link {
    color: var(--rk-fq2-brand);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px dashed rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
}
.rk-link:hover { color: #0369a1; border-bottom-style: solid; }

/* Wizualizacje SVG */
.rk-fq2-visual {
    background: var(--rk-fq2-dark);
    border-radius: 16px;
    padding: 20px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
    border: 2px solid #334155;
}

.rk-svg-box { width: 100%; height: 100%; }

/* Animacje specyficzne dla paneli */

/* FAQ 1: Szafa */
.anim-wardrobe-heat { opacity: 0; stroke-dasharray: 5 10; transition: opacity 0.3s; }
.rk-fq2-item.active .anim-wardrobe-heat { opacity: 1; animation: flowUp 1.5s linear infinite; }
.anim-stink { opacity: 0; transform: translateY(10px); transition: all 0.5s 0.5s; }
.rk-fq2-item.active .anim-stink { opacity: 1; transform: translateY(0); fill: var(--rk-fq2-accent); }

/* FAQ 2: Meble na nóżkach */
.anim-flow-around { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1.5s 0.3s ease; }
.rk-fq2-item.active .anim-flow-around { stroke-dashoffset: 0; stroke: #10b981; }

/* FAQ 3: Wanna */
.anim-tub-heat { opacity: 0; transition: opacity 0.5s; }
.rk-fq2-item.active .anim-tub-heat { opacity: 1; animation: pulseTub 2s infinite alternate; }
@keyframes pulseTub { from { fill: #fca5a5; } to { fill: #ef4444; } }
.anim-cold-room { stroke-dasharray: 5 10; animation: flowUp 2s linear infinite; opacity: 0; }
.rk-fq2-item.active .anim-cold-room { opacity: 1; stroke: #3b82f6; }

/* FAQ 4: Wyspa Kuchenna (Dylatacja) */
.anim-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.5s 0.5s ease; }
.rk-fq2-item.active .anim-crack { stroke-dashoffset: 0; stroke: var(--rk-fq2-danger); }
.anim-tape { opacity: 0; transition: opacity 0.5s 1s; }
.rk-fq2-item.active .anim-tape { opacity: 1; stroke: var(--rk-fq2-accent); }

/* FAQ 5: Dywan (Blokada) */
.anim-bounce { opacity: 0; transition: opacity 0.3s; }
.rk-fq2-item.active .anim-bounce { opacity: 1; animation: bounceDown 1.5s infinite; }
@keyframes bounceDown { 0% { transform: translateY(0); opacity: 1;} 50% { transform: translateY(10px); opacity: 0.5;} 100% { transform: translateY(0); opacity: 1;} }

@keyframes flowUp { to { stroke-dashoffset: -30; } }

@media (max-width: 768px) {
    .rk-fq2-header, .rk-fq2-interactive { padding: 30px 20px; }
    .rk-fq2-title { font-size: 24px; }
    .rk-fq2-content { grid-template-columns: 1fr; gap: 25px; padding: 25px 20px; }
    .rk-fq2-visual { height: 140px; max-width: 280px; margin: 0 auto; width: 100%; }
    .rk-fq2-question { font-size: 15px; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Eksperckie FAQ: Omijanie przeszkód i planowanie pętli podłogówki",
    "description": "Techniczne wyjaśnienie problemów z ogrzewaniem podłogowym pod szafami, wannami, wyspami kuchennymi oraz meblami.",
    "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-12",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#faq-page",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie podłogowe pod szafą w sypialni psuje ubrania?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, stałe podgrzewanie dolnej części szafy do temperatury 26-28°C przyspiesza wysychanie tkanin naturalnych i może powodować nieprzyjemny zapach kurzu. Zaleca się pozostawienie wolnego pasma o szerokości 60 cm pod szafy przesuwne."
        }
      },
      {
        "@type": "Question",
        "name": "Co jeśli zmienię ustawienie mebli za 5 lat?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W kuchni czy łazience układ jest stały przez dekady. W pokojach dziennych dopuszczalne jest ułożenie rur pod meblami na nóżkach (min. 5-8 cm prześwitu), co zapewnia elastyczność aranżacji bez strat efektywności."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rury pod wanną przyspieszą stygnięcie wody?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wręcz przeciwnie, będą podtrzymywać temperaturę wody w wannie, ale kosztem braku grzania łazienki. Jest to skrajnie nieefektywne energetycznie rozwiązanie."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można układać podłogówkę pod ciężką wyspą kuchenną?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie zaleca się tego. Wyspa blokuje wymianę ciepła, a brak dylatacji przy ogromnym obciążeniu punktowym może prowadzić do pęknięć wylewki i uszkodzenia rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego kładzenie grubych dywanów na podłogówce to błąd?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Grube dywany działają jak izolator termiczny o wysokim oporze cieplnym. Ciepło kumuluje się w wylewce, obniżając współczynnik COP pompy ciepła i prowadząc do strat energii."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-faq",
    "name": "Właściwości termiczne i blokady w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie analityczne wpływu elementów wyposażenia wnętrz (szafy, wanny, dywany) na rezystancję cieplną i wydajność pętli grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny dywanów",
      "ogrzewanie podłogowe pod meblami",
      "dylatacja wyspy kuchennej",
      "straty ciepła pod szafą",
      "podłogówka a sprzęt AGD"
    ],
    "measurementTechnique": "Analiza przepływu masowego, oporu cieplnego warstw wierzchnich oraz ryzyka naprężeń termicznych w jastrychu według norm ISO.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szafy z cokołem: Blokada konwekcji, wzrost temperatury punktowej.",
        "Wyspy kuchenne: Wymóg dylatacji obwodowej z uwagi na nacisk."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-faq",
    "name": "Wizualizator Blokad Termicznych",
    "description": "Aplikacja webowa z animacjami wektorowymi obrazującymi fizykę przepływu i blokowania ciepła przez elementy zabudowy stałej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fq2-container" id="rk-fq2-app">
    <div class="rk-fq2-header">
        <div class="rk-fq2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inwestora
        </div>
        <h2 class="rk-fq2-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-fq2-interactive">
        <div class="rk-fq2-list">
            
            <div class="rk-fq2-item">
                <button class="rk-fq2-question">
                    <span>1. Czy ogrzewanie pod szafą w sypialni psuje ubrania?</span>
                    <div class="rk-fq2-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-fq2-answer-wrapper">
                    <div class="rk-fq2-answer-inner">
                        <div class="rk-fq2-content">
                            <div class="rk-fq2-text">
                                <strong>Tak, to częsty problem.</strong> Stałe podgrzewanie dolnej części szafy na pełnym cokole do temperatury 26-28°C działa jak wielki kaloryfer uwięziony w drewnie. Przyspiesza to drastycznie wysychanie tkanin naturalnych (np. wełny, lnu), może powodować wypaczanie się płyt meblowych oraz generować charakterystyczny, nieprzyjemny zapach „podgrzanego kurzu”. Jako inżynierowie zalecamy pozostawienie <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-link">wolnego pasma brzegowego</a> o szerokości min. 60 cm pod planowane szafy przesuwne.
                            </div>
                            <div class="rk-fq2-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="20" y="10" width="60" height="50" fill="#475569" stroke="#94a3b8" stroke-width="2" rx="2"/>
                                    <line x1="50" y1="10" x2="50" y2="60" stroke="#94a3b8" stroke-width="2"/>
                                    <path class="anim-wardrobe-heat" d="M 35 60 L 35 45 M 65 60 L 65 45" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                    <path class="anim-stink" d="M 30 30 Q 35 20 40 30 T 50 20" fill="none" stroke-width="2" stroke-linecap="round"/>
                                    <path class="anim-stink" d="M 60 30 Q 65 20 70 30 T 80 20" fill="none" stroke-width="2" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-fq2-item">
                <button class="rk-fq2-question">
                    <span>2. Co jeśli zmienię ustawienie mebli za 5 lat?</span>
                    <div class="rk-fq2-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-fq2-answer-wrapper">
                    <div class="rk-fq2-answer-inner">
                        <div class="rk-fq2-content">
                            <div class="rk-fq2-text">
                                To najczęstsza obawa inwestorów i argument hydraulików za kładzeniem rur „od ściany do ściany”. W praktyce jednak, układ kuchni czy łazienki (wanna, prysznic, wyspa) pozostaje <strong>niezmienny przez dekady</strong>. W pokojach dziennych i salonach dopuszczalne jest <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/" class="rk-link">ułożenie rur pod meblami pod warunkiem, że meble te stoją na nóżkach</a>. Prześwit wynoszący minimum 5 do 8 cm gwarantuje bezproblemową wymianę ciepła przez promieniowanie i konwekcję, dając Ci pełną swobodę w przyszłych aranżacjach.
                            </div>
                            <div class="rk-fq2-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="10" y1="65" x2="90" y2="65" stroke="#334155" stroke-width="6" stroke-linecap="round"/>
                                    <circle cx="50" cy="65" r="3" fill="#10b981"/>
                                    <rect x="30" y="30" width="40" height="15" fill="#64748b" rx="2"/>
                                    <line x1="35" y1="45" x2="35" y2="55" stroke="#cbd5e1" stroke-width="3"/>
                                    <line x1="65" y1="45" x2="65" y2="55" stroke="#cbd5e1" stroke-width="3"/>
                                    <path class="anim-flow-around" d="M 50 60 C 50 45, 20 45, 20 20" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <path class="anim-flow-around" d="M 50 60 C 50 45, 80 45, 80 20" fill="none" stroke-width="3" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-fq2-item">
                <button class="rk-fq2-question">
                    <span>3. Czy rury pod wanną przyspieszą stygnięcie wody?</span>
                    <div class="rk-fq2-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-fq2-answer-wrapper">
                    <div class="rk-fq2-answer-inner">
                        <div class="rk-fq2-content">
                            <div class="rk-fq2-text">
                                Wręcz przeciwnie, wylewka o temperaturze np. 30°C będzie minimalnie podtrzymywać temperaturę wody w wannie akrylowej. Jednak z punktu widzenia inżynierii cieplnej, jest to <strong>skrajnie nieefektywne rozwiązanie</strong>. Gruba obudowa wanny oraz warstwa powietrza pod nią tworzą doskonały izolator. Zamiast ogrzewać kubaturę łazienki, ciepła woda wraca w pętli do rozdzielacza niemal nieschłodzona, co zaburza hydraulikę. Ogrzewanie pod wanną to strata <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/" class="rk-link">aktywnej powierzchni grzewczej</a>.
                            </div>
                            <div class="rk-fq2-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 20 L 80 20 L 70 50 L 30 50 Z" fill="#94a3b8" stroke="#cbd5e1" stroke-width="2"/>
                                    <path class="anim-tub-heat" d="M 25 25 L 75 25 L 67 45 L 33 45 Z"/>
                                    <path class="anim-cold-room" d="M 10 60 L 10 10 M 90 60 L 90 10" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <line x1="10" y1="65" x2="90" y2="65" stroke="#ef4444" stroke-width="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-fq2-item">
                <button class="rk-fq2-question">
                    <span>4. Czy można układać podłogówkę pod ciężką wyspą kuchenną?</span>
                    <div class="rk-fq2-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-fq2-answer-wrapper">
                    <div class="rk-fq2-answer-inner">
                        <div class="rk-fq2-content">
                            <div class="rk-fq2-text">
                                Stanowczo odradzamy. Problemem jest tutaj nie tylko blokowanie emisji ciepła, ale przede wszystkim <strong>fizyka jastrychu</strong>. Ciężka wyspa kuchenna (często z kamiennym blatem) wywiera ogromny nacisk punktowy. Podłoga grzewcza pracuje – rozszerza się i kurczy pod wpływem temperatury. Jeśli obciążymy ją punktowo w jednym miejscu, a w dodatku ułożymy pod nią rury, ryzykujemy niebezpieczne naprężenia. Prawidłowy montaż wymaga wykonania wokół obrysu wyspy <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-link">szczeliny dylatacyjnej</a>, a taśma dylatacyjna nie powinna przecinać pętli grzewczych.
                            </div>
                            <div class="rk-fq2-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="30" y="15" width="40" height="40" fill="#475569" rx="2"/>
                                    <path class="anim-crack" d="M 20 60 L 40 55 L 50 65 L 70 55 L 80 60" fill="none" stroke-width="3" stroke-linecap="round"/>
                                    <rect class="anim-tape" x="25" y="10" width="50" height="50" fill="none" stroke-width="3" stroke-dasharray="4 4" rx="4"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-fq2-item">
                <button class="rk-fq2-question">
                    <span>5. Dlaczego kładzenie grubych dywanów na podłogówce to błąd?</span>
                    <div class="rk-fq2-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-fq2-answer-wrapper">
                    <div class="rk-fq2-answer-inner">
                        <div class="rk-fq2-content">
                            <div class="rk-fq2-text">
                                Grube dywany typu &#8222;Shaggy&#8221; mają ogromny opór cieplny (tzw. parametr R), często przekraczający normatywne 0,15 m²K/W. Działają jak <strong>idealna warstwa izolacji termicznej</strong>. Układając je na wylewce, blokujesz oddawanie energii do salonu. W efekcie, aby utrzymać zadaną temperaturę w pokoju, automatyka kotła musi zwiększyć temperaturę zasilania pętli. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-link">Skutkuje to wyższymi rachunkami (spadek COP pompy)</a> oraz miejscowym przegrzewaniem posadzki pod dywanem, co może doprowadzić do deformacji paneli układanych w systemie pływającym.
                            </div>
                            <div class="rk-fq2-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <line x1="10" y1="60" x2="90" y2="60" stroke="#334155" stroke-width="6" stroke-linecap="round"/>
                                    <circle cx="30" cy="60" r="3" fill="#ef4444"/>
                                    <circle cx="50" cy="60" r="3" fill="#ef4444"/>
                                    <circle cx="70" cy="60" r="3" fill="#ef4444"/>
                                    <path d="M 20 50 Q 25 45 30 50 T 40 50 T 50 50 T 60 50 T 70 50 T 80 50" fill="none" stroke="#f59e0b" stroke-width="6" stroke-linecap="round"/>
                                    <path class="anim-bounce" d="M 30 40 L 30 30 M 50 40 L 50 20 M 70 40 L 70 30" stroke="#ef4444" stroke-width="3" stroke-linecap="round"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Prosta weryfikacja domenowa zabezpieczająca kod
    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-fq2-app').innerHTML = '<div style="padding:40px; text-align:center; background:#111827; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; text-transform:uppercase;">Błąd Praw Autorskich - Skrypt Zablokowany</div>';
        return;
    }

    const faqItems = document.querySelectorAll('.rk-fq2-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-fq2-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie pozostałe
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Jeśli nie był aktywny, otwórz go
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszy element domyślnie na start
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #1e293b;
    --rk-fin-slate: #334155;
    --rk-fin-accent: #f97316; /* Energetyczny pomarańcz */
    --rk-fin-accent-light: #fff7ed;
    --rk-fin-safe: #0d9488; /* Techniczny morski / teal */
    --rk-fin-danger: #e11d48; /* Ostrzegawcza czerwień */
    --rk-fin-gray-bg: #f8fafc;
    --rk-fin-border: #e2e8f0;
}

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

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

.rk-fin-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    letter-spacing: -0.5px;
    color: #ffffff;
}

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

/* Złote Zasady - Grid */
.rk-fin-rules {
    padding: 40px 50px 20px;
    background: var(--rk-fin-gray-bg);
}

.rk-fin-rules h3 {
    text-align: center;
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-fin-dark);
    margin: 0 0 30px 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

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

.rk-fin-rule-card {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-fin-border);
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

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

.rk-fin-rule-icon {
    width: 50px;
    height: 50px;
    background: var(--rk-fin-accent-light);
    color: var(--rk-fin-accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px auto;
}

.rk-fin-rule-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-fin-slate);
    margin: 0 0 10px 0;
}

.rk-fin-rule-card p {
    font-size: 14px;
    line-height: 1.5;
    color: #64748b;
    margin: 0;
}

/* Interaktywny Symulator - Aplikacja */
.rk-fin-app {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-fin-border);
}

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

.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
    background: var(--rk-fin-gray-bg);
    padding: 15px;
    border-radius: 999px;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}

.rk-toggle-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-fin-slate);
    cursor: pointer;
    transition: color 0.3s;
}

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

.rk-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-fin-danger);
    transition: .4s;
    border-radius: 36px;
}

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

input:checked + .rk-slider { background-color: var(--rk-fin-safe); }
input:checked + .rk-slider:before { transform: translateX(34px); }

/* Animacja i Opis */
.rk-sim-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 20px;
    padding: 30px;
}

.rk-sim-svg-container {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    position: relative;
}

/* SVG Animations & States */
.pipe-path { transition: all 0.5s ease; }
.fridge-bg { transition: all 0.5s ease; }
.fridge-heat { transition: opacity 0.5s ease; }
.danger-arrow { transition: opacity 0.3s ease; }
.good-heat { transition: opacity 0.3s ease; }

/* Stan domyślny (Błąd: Rura pod lodówką) */
.state-bad .pipe-path { stroke: var(--rk-fin-danger); d: path("M 5 82 L 95 82"); }
.state-bad .fridge-bg { fill: #fce7f3; }
.state-bad .fridge-heat { opacity: 1; stroke: var(--rk-fin-danger); animation: heatWiggle 2s infinite alternate; }
.state-bad .danger-arrow { opacity: 1; stroke: var(--rk-fin-danger); animation: arrowBounce 1.5s infinite alternate; }
.state-bad .good-heat { opacity: 0; }

/* Stan dobry (Projekt OZC: Omijanie AGD) */
.state-good .pipe-path { stroke: var(--rk-fin-safe); d: path("M 60 82 L 95 82"); }
.state-good .fridge-bg { fill: #f1f5f9; }
.state-good .fridge-heat { opacity: 0; }
.state-good .danger-arrow { opacity: 0; }
.state-good .good-heat { opacity: 1; stroke: var(--rk-fin-safe); animation: heatRiseGood 2s infinite; }

@keyframes heatWiggle {
    0% { transform: translateY(0); }
    100% { transform: translateY(-4px); }
}
@keyframes arrowBounce {
    0% { transform: translateY(0) translateX(0); }
    100% { transform: translateY(4px) translateX(-2px); }
}
@keyframes heatRiseGood {
    0% { transform: translateY(0) scale(1); opacity: 0.4; }
    50% { opacity: 0.8; }
    100% { transform: translateY(-15px) scale(1.1); opacity: 0; }
}

.rk-sim-content h4 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 15px 0;
    transition: color 0.3s;
}

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

.rk-sim-content ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-sim-content li {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-sim-content li::before {
    content: "•";
    font-size: 20px;
}

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

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

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

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-fin-accent);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 25px -5px rgba(249, 115, 22, 0.4);
}

.rk-btn-cta:hover {
    background: #ea580c;
    transform: translateY(-4px);
    box-shadow: 0 20px 35px -5px rgba(249, 115, 22, 0.5);
}

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

/* Linki wewnętrzne */
.rk-int-link {
    color: var(--rk-fin-safe);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-fin-safe);
    transition: all 0.3s;
}
.rk-int-link:hover { color: var(--rk-fin-dark); border-bottom-style: solid; }

/* RWD */
@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-rules, .rk-fin-app, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-rules-grid, .rk-sim-display { grid-template-columns: 1fr; }
    .rk-toggle-wrapper { flex-direction: column; gap: 10px; border-radius: 16px; }
    .rk-sim-display { text-align: center; gap: 20px; }
    .rk-sim-content li { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie: Sztuka zarządzania energią w podłogówce",
    "description": "Projektowanie ogrzewania podłogowego to optymalizacja przepływu energii. Omijaj sprzęt AGD, stosuj dylatacje i bazuj na realnych obliczeniach OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-12",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-straty-agd",
    "name": "Zestawienie Kosztów: Rury grzewcze pod zabudową AGD",
    "description": "Analiza finansowa i termiczna strat wynikających z układania rur ogrzewania podłogowego pod lodówkami i stałą zabudową meblową.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "straty ciepła podłogówka zabudowa",
      "spadek COP pompy ciepła",
      "obliczenia OZC dla kuchni",
      "koszty eksploatacji ogrzewania 2026",
      "gdzie nie układać rur grzewczych"
    ],
    "measurementTechnique": "Porównanie zapotrzebowania na moc grzewczą (W/m2) oraz spadku wydajności urządzeń chłodniczych (wzrost poboru kWh) na podstawie normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd: Instalacja pod lodówką = Wzrost zużycia prądu przez kompresor + spadek COP pompy.",
        "Rozwiązanie Inżynierskie: Dylatacja strefy i zagęszczenie rur przed zabudową."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#webapp-symulator-energii",
    "name": "Symulator Przepływu Energii i Decyzji Instalacyjnych",
    "description": "Interaktywny widget demonstracyjny wizualizujący wpływ rur podłogówki ułożonych pod lodówką na fizykę przepływu ciepła i koszty inwestycyjne.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="rk-podsumowanie-app">
    
    <div class="rk-fin-header">
        <h2>Podsumowanie</h2>
        <p>Projektowanie ogrzewania podłogowego to nie rzemieślnicza sztuka układania rur plastikiem w beton, ale <strong>inżynierska sztuka zarządzania przepływem energii</strong>.</p>
    </div>

    <div class="rk-fin-rules">
        <h3>3 Złote Zasady Bezpiecznej Posadzki</h3>
        <div class="rk-fin-rules-grid">
            <div class="rk-fin-rule-card">
                <div class="rk-fin-rule-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5v14"></path><path d="M15 19l-3 3-3-3"></path><path d="M19 15l3-3-3-3"></path><path d="M5 9l-3 3 3 3"></path><path d="M9 5l3-3 3 3"></path></svg>
                </div>
                <h4>Omijaj AGD</h4>
                <p>Każdy metr rury pod lodówką to obustronna strata. Niszczysz kompresor AGD i tracisz moc grzewczą w wylewce.</p>
            </div>
            <div class="rk-fin-rule-card">
                <div class="rk-fin-rule-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="12" y1="3" x2="12" y2="21"></line><line x1="3" y1="12" x2="21" y2="12"></line></svg>
                </div>
                <h4>Dylatuj Strefy</h4>
                <p>Zawsze oddzielaj taśmą brzegową strefy grzane od niegrzanych (pod ciężką zabudową), aby uniknąć pęknięć naprężeniowych.</p>
            </div>
            <div class="rk-fin-rule-card">
                <div class="rk-fin-rule-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                </div>
                <h4>Wymagaj OZC</h4>
                <p>Tylko <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-int-link">rzetelne obliczenia OZC</a> gwarantują, że zredukowana powierzchnia grzewcza poradzi sobie z mrozami.</p>
            </div>
        </div>
    </div>

    <div class="rk-fin-app">
        <h3>Symulator Decyzji Inwestora</h3>
        
        <div class="rk-toggle-wrapper">
            <span class="rk-toggle-label" id="lbl-bad" style="color: var(--rk-fin-danger);">Instalator &#8222;Na Oko&#8221;</span>
            <label class="rk-switch">
                <input type="checkbox" id="rk-logic-toggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-toggle-label" id="lbl-good">Projekt Inżynierski</span>
        </div>

        <div class="rk-sim-display state-bad" id="rk-sim-box">
            <div class="rk-sim-svg-container">
                <svg viewBox="0 0 100 100" style="width: 100%; height: auto;">
                    <rect x="5" y="75" width="90" height="15" fill="#f1f5f9" />
                    <line x1="5" y1="75" x2="95" y2="75" stroke="#cbd5e1" stroke-width="2" />
                    
                    <path class="pipe-path" fill="none" stroke-width="7" stroke-linecap="round" stroke-linejoin="round" />
                    
                    <rect class="fridge-bg" x="20" y="20" width="30" height="54" rx="2" stroke="#94a3b8" stroke-width="2" />
                    <line x1="26" y1="20" x2="26" y2="74" stroke="#94a3b8" stroke-width="1.5" />
                    
                    <g class="fridge-heat" fill="none" stroke-width="2.5" stroke-linecap="round">
                        <path d="M30 35 C 40 45, 20 55, 30 65" />
                        <path d="M40 35 C 50 45, 30 55, 40 65" />
                    </g>
                    
                    <g class="danger-arrow" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                        <line x1="60" y1="35" x2="52" y2="70" />
                        <polyline points="48,65 52,70 57,68" />
                    </g>
                    
                    <g class="good-heat" fill="none" stroke-width="2.5" stroke-linecap="round">
                        <path d="M75 70 Q70 60 80 50 T75 30" />
                        <path d="M85 70 Q80 60 90 50 T85 30" />
                    </g>
                </svg>
            </div>
            
            <div class="rk-sim-content" id="rk-sim-text">
                <h4 style="color: var(--rk-fin-danger);">Podwójna strata finansowa</h4>
                <p>Położenie rur pod stałą zabudową AGD to najdroższy błąd. Ciepło zostaje uwięzione w wylewce, nagrzewając kompresor lodówki.</p>
                <ul>
                    <li style="color: var(--rk-fin-danger);">Spadek COP pompy o ok. 10-15%</li>
                    <li style="color: var(--rk-fin-danger);">Wzrost zużycia prądu przez AGD</li>
                    <li style="color: var(--rk-fin-danger);">Koszty materiału rzucone w błoto</li>
                </ul>
            </div>
        </div>
    </div>

    <div class="rk-fin-cta">
        <h3>Nie płać za błędy przez lata</h3>
        <p>Tylko Twój świadomy wybór i <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" class="rk-int-link" style="color:#7dd3fc; border-color:#7dd3fc;">profesjonalny projekt do ogrzewania podłogowego</a> sprawią, że dom w 2026 roku będzie faktycznie tani w utrzymaniu. Dołącz do grona inwestorów, którzy budują bez ściemy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            CZYTAJ BAZĘ WIEDZY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-podsumowanie-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #1e293b; color: #f87171; border: 2px solid #e11d48; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Nieautoryzowane Użycie Skryptu</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Ten widget symulacyjny oraz powiązana struktura JSON-LD są chronione prawem autorskim i przypisane do domeny Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora (Toggle)
    const toggleInput = document.getElementById('rk-logic-toggle');
    const simBox = document.getElementById('rk-sim-box');
    const simTextContainer = document.getElementById('rk-sim-text');
    const lblBad = document.getElementById('lbl-bad');
    const lblGood = document.getElementById('lbl-good');

    toggleInput.addEventListener('change', function() {
        if (this.checked) {
            // Stan: Projekt Inżynierski
            simBox.classList.remove('state-bad');
            simBox.classList.add('state-good');
            lblBad.style.color = 'var(--rk-fin-slate)';
            lblGood.style.color = 'var(--rk-fin-safe)';
            
            simTextContainer.innerHTML = `
                <h4 style="color: var(--rk-fin-safe);">Maksymalna wydajność i ochrona</h4>
                <p>Na etapie projektu omijamy zabudowę stałą i gęściej układamy pętle w strefach brzegowych. Ciepło promieniuje bez przeszkód prosto do pomieszczenia.</p>
                <ul>
                    <li style="color: var(--rk-fin-safe);"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg> Optymalny COP pompy ciepła</li>
                    <li style="color: var(--rk-fin-safe);"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg> Brak ryzyka przegrzania wylewki</li>
                    <li style="color: var(--rk-fin-safe);"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg> Oszczędność materiału grzewczego</li>
                </ul>
            `;
        } else {
            // Stan: Instalator "Na Oko"
            simBox.classList.remove('state-good');
            simBox.classList.add('state-bad');
            lblBad.style.color = 'var(--rk-fin-danger)';
            lblGood.style.color = 'var(--rk-fin-slate)';
            
            simTextContainer.innerHTML = `
                <h4 style="color: var(--rk-fin-danger);">Podwójna strata finansowa</h4>
                <p>Położenie rur pod stałą zabudową AGD to najdroższy błąd. Ciepło zostaje uwięzione w wylewce, nagrzewając kompresor lodówki.</p>
                <ul>
                    <li style="color: var(--rk-fin-danger);"><span style="font-size: 16px;">✕</span> Spadek COP pompy o ok. 10-15%</li>
                    <li style="color: var(--rk-fin-danger);"><span style="font-size: 16px;">✕</span> Wzrost zużycia prądu przez AGD</li>
                    <li style="color: var(--rk-fin-danger);"><span style="font-size: 16px;">✕</span> Koszty materiału rzucone w błoto</li>
                </ul>
            `;
        }
    });
});
</script>



<style>
:root {
    --rk-hub-primary: #0f172a;
    --rk-hub-panel: #1e293b;
    --rk-hub-accent: #ea580c; /* Energetyczny pomarańcz - Ostrzeżenie/Ciepło */
    --rk-hub-accent-dark: #c2410c;
    --rk-hub-accent-light: #ffedd5;
    --rk-hub-bg: #f8fafc;
    --rk-hub-border: #e2e8f0;
    --rk-hub-text: #334155;
    --rk-hub-muted: #64748b;
    --rk-hub-white: #ffffff;
}

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

/* NAGŁÓWEK SEKCI */
.rk-hub-header {
    background: linear-gradient(135deg, var(--rk-hub-primary) 0%, #292524 100%);
    padding: 45px 50px;
    color: var(--rk-hub-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--rk-hub-accent);
}

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

.rk-hub-badge {
    display: inline-block;
    background: rgba(234, 88, 12, 0.2);
    border: 1px solid rgba(234, 88, 12, 0.4);
    color: #fdba74;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-hub-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.2;
}

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

/* WIZUALIZACJA PDF / IKONA */
.rk-hub-header-visual {
    position: relative;
    z-index: 2;
    padding-right: 20px;
}

.rk-hub-pdf-icon {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 20px rgba(0,0,0,0.4));
    animation: floatPdf 3.5s infinite ease-in-out alternate;
}

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

/* GŁÓWNY WORKSPACE */
.rk-hub-workspace {
    display: flex;
    padding: 45px 50px;
    gap: 45px;
    background: var(--rk-hub-white);
}

.rk-hub-preview-box {
    flex: 1;
    background: var(--rk-hub-bg);
    border: 2px dashed var(--rk-hub-border);
    border-radius: 16px;
    padding: 12px;
    position: relative;
    cursor: zoom-in;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: inset 0 0 20px rgba(0,0,0,0.02);
}

.rk-hub-preview-box:hover {
    transform: scale(1.03);
    border-color: var(--rk-hub-accent);
    border-style: solid;
    box-shadow: 0 20px 30px -10px rgba(234, 88, 12, 0.2);
}

.rk-hub-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-hub-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;
    transition: opacity 0.3s;
}

.rk-hub-preview-box:hover .rk-hub-zoom-hint {
    opacity: 0;
}

/* PRAWA STRONA - INFO I POBIERANIE */
.rk-hub-info-side {
    flex: 1.2;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-hub-feature-list {
    list-style: none;
    padding: 0;
    margin: 0 0 35px 0;
}

.rk-hub-feature-item {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-hub-text);
}

.rk-hub-check-svg {
    width: 24px;
    height: 24px;
    color: var(--rk-hub-accent);
    flex-shrink: 0;
    background: var(--rk-hub-accent-light);
    border-radius: 50%;
    padding: 3px;
}

/* PRZYCISK POBIERANIA */
.rk-hub-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-hub-accent);
    color: var(--rk-hub-white);
    text-decoration: none !important;
    padding: 20px 35px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 17px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 25px -5px rgba(234, 88, 12, 0.5);
    border: 2px solid transparent;
}

.rk-hub-main-btn:hover {
    background: var(--rk-hub-accent-dark);
    transform: translateY(-4px);
    box-shadow: 0 15px 35px -5px rgba(234, 88, 12, 0.6);
    border-color: #fdba74;
}

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

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

.rk-hub-cta-sub {
    margin-top: 20px;
    font-size: 14px;
    color: var(--rk-hub-muted);
    line-height: 1.5;
    background: var(--rk-hub-bg);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-hub-border);
}

.rk-hub-cta-sub a {
    color: var(--rk-hub-accent);
    font-weight: 800;
    text-decoration: none;
    border-bottom: 2px dashed rgba(234, 88, 12, 0.3);
    transition: all 0.3s;
}

.rk-hub-cta-sub a:hover {
    border-bottom-style: solid;
    color: var(--rk-hub-accent-dark);
}

/* STOPKA MODUŁU */
.rk-hub-footer {
    padding: 20px 50px;
    background: var(--rk-hub-bg);
    border-top: 1px solid var(--rk-hub-border);
    font-size: 13px;
    color: var(--rk-hub-muted);
    text-align: center;
}

@media (max-width: 800px) {
    .rk-hub-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-hub-header-content { max-width: 100%; margin-bottom: 30px; }
    .rk-hub-header-visual { padding-right: 0; }
    .rk-hub-workspace { flex-direction: column; padding: 35px 25px; gap: 30px; }
    .rk-hub-preview-box { margin-bottom: 10px; }
    .rk-hub-main-btn { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/"
    },
    "headline": "Gdzie nie układać ogrzewania podłogowego? Zestawienie i Infografika (PDF)",
    "description": "Pobierz inżynierskie zestawienie 8 stref zakazanych dla ogrzewania podłogowego. Kompletny poradnik unikania błędów instalacyjnych w formacie PDF i WEBP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Gdzie-nie-ukladac-ogrzewania-podlogowego-1.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": "2024-12-22",
    "dateModified": "2026-05-12"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Baza Danych: Strefy zakazane i statystyka błędów podłogówki",
    "description": "Zbiór danych określający 8 obszarów wewnątrz budynku, w których instalacja rur grzewczych powoduje straty ciepła i uszkodzenia, oraz statystyka (45% błędów wynika z braku projektu).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "strefy zakazane podłogówka",
      "błędy instalacyjne statystyka",
      "gdzie nie układać podłogówki PDF",
      "schemat warstw podłogi"
    ],
    "measurementTechnique": "Wizualizacja statystyczna błędów wykonawczych oraz zmapowanie oporów cieplnych elementów zabudowy stałej.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Wytyczne wyłączania stref grzewczych"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/#download-hub",
    "name": "Centrum Pobierania Wiedzy: Błędy Instalacyjne",
    "description": "Interaktywny moduł edukacyjny umożliwiający podgląd w wysokiej rozdzielczości i pobranie autorskiej dokumentacji ostrzegawczej w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-hub-container" id="app-dl-hub">
    
    <div class="rk-hub-header">
        <div class="rk-hub-header-content">
            <div class="rk-hub-badge">Darmowe Materiały Inżynierskie</div>
            <h2>Pobierz Kompletny Poradnik Wizualny</h2>
            <p>Zabierz inżynierską wiedzę bezpośrednio na budowę. Zestawienie stref zakazanych, statystyka najdroższych błędów i schemat poprawnych warstw w jednym pliku.</p>
        </div>
        <div class="rk-hub-header-visual">
            <svg class="rk-hub-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="#ea580c" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>
                <path d="M14 2V8H20" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <text x="7" y="17.5" fill="white" font-size="5.5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-hub-workspace">
        
        <div class="rk-hub-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Gdzie-nie-ukladac-ogrzewania-podlogowego-1.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Gdzie-nie-ukladac-ogrzewania-podlogowego-1.webp" alt="Infografika - Gdzie nie układać ogrzewania podłogowego. Błędy i strefy zakazane." class="rk-hub-preview-img" loading="lazy">
            <div class="rk-hub-zoom-hint">
                <svg width="16" height="16" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v3m0 0v3m0-3h3m-3 0H7"/></svg>
                Powiększ obraz
            </div>
        </div>

        <div class="rk-hub-info-side">
            <ul class="rk-hub-feature-list">
                <li class="rk-hub-feature-item">
                    <svg class="rk-hub-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    8 stref absolutnie zakazanych dla podłogówki
                </li>
                <li class="rk-hub-feature-item">
                    <svg class="rk-hub-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Zestawienie błędów (45% awarii to brak projektu)
                </li>
                <li class="rk-hub-feature-item">
                    <svg class="rk-hub-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Inżynierski schemat warstw posadzki
                </li>
                <li class="rk-hub-feature-item">
                    <svg class="rk-hub-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    Wysoka rozdzielczość gotowa do druku
                </li>
            </ul>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Gdzie-nie-ukladac-ogrzewania-podlogowego.pdf" class="rk-hub-main-btn" target="_blank">
                <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 class="rk-hub-cta-sub">
                <strong>Zabezpiecz się przed błędami instalatora.</strong> Pokaż mu ten schemat lub od razu <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">zamów profesjonalny projekt OZC</a>, który jednoznacznie wyeliminuje pętle grzewcze spod stałej zabudowy.
            </div>
        </div>

    </div>

    <div class="rk-hub-footer">
        © 2026 Projekt-Ogrzewania.pl | Opracowanie techniczne: <strong>Robert Kucharski</strong>. Kopiowanie i udostępnianie dozwolone z zachowaniem linku do źródła.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('app-dl-hub');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fef2f2; border: 2px dashed #ef4444; border-radius: 20px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 10px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; color: #991b1b; text-transform: uppercase;">Zasoby Chronione Prawem Autorskim</div>
                    <p style="color: #b91c1c; font-size: 14px; margin-top: 10px;">Ta infografika i dokumentacja PDF są własnością intelektualną serwisu Projekt-Ogrzewania.pl. Osadzanie skryptu na zewnętrznych serwerach jest zabronione.</p>
                </div>
            `;
            container.style.boxShadow = 'none';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">Gdzie nie układać ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Ile kosztuje projekt ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Dec 2024 13:00:41 +0000</pubDate>
				<category><![CDATA[Cennik]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projekty techniczne]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[planowanie ogrzewania]]></category>
		<category><![CDATA[profesjonalne projekty]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[technologie grzewcze]]></category>
		<category><![CDATA[zwrot kaucji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1756</guid>

					<description><![CDATA[<p>Projekt ogrzewania podłogowego to kluczowy etap planowania instalacji, który wpływa na efektywność i komfort cieplny w Twoim domu. Dowiedz się, ile kosztuje taki projekt, jakie czynniki wpływają na jego cenę oraz dlaczego warto zainwestować w profesjonalne rozwiązania. Na blogu wyjaśniamy również, jak możesz odzyskać koszty projektu, korzystając z oferty zwrotu kaucji. Poznaj szczegóły i sprawdź konkurencyjne ceny dostępne na stronie Projekt-Ogrzewania.pl</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">Ile kosztuje projekt ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/">Ogrzewanie podłogowe</a> cieszy się rosnącą popularnością w Polsce, głównie dzięki swoim licznym zaletom: komfort cieplny, oszczędność energii i estetyka wnętrz. Jednak zanim zdecydujesz się na ten rodzaj instalacji, jednym z pierwszych kroków jest przygotowanie profesjonalnego projektu ogrzewania podłogowego. W tym artykule odpowiemy na pytanie: <strong>ile kosztuje projekt ogrzewania podłogowego?</strong>, wskazując na najważniejsze czynniki wpływające na cenę oraz dostępne opcje.</p>



<h2 class="wp-block-heading">Czym jest projekt ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph">Projekt ogrzewania podłogowego to dokumentacja techniczna zawierająca szczegółowy plan instalacji grzewczej, uwzględniająca:</p>



<ul class="wp-block-list">
<li>rozmieszczenie pętli grzewczych,</li>



<li>obliczenia zapotrzebowania na ciepło,</li>



<li>dobór odpowiednich materiałów, takich jak <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rury</a>, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielacze</a> czy zawory,</li>



<li>wskazówki dotyczące izolacji i stref brzegowych.</li>
</ul>



<p class="wp-block-paragraph">Dobrze zaprojektowana instalacja zapewnia <strong>optymalne zużycie energii</strong>, trwałość oraz brak awarii wynikających z nieprawidłowego wykonania.</p>



<h2 class="wp-block-heading">Ile kosztuje projekt ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph">Cena projektu ogrzewania podłogowego zależy od kilku kluczowych czynników, takich jak:</p>



<ul class="wp-block-list">
<li><strong>Powierzchnia budynku</strong> – Większe powierzchnie wymagają bardziej szczegółowych planów i dłuższej pracy projektanta.</li>



<li><strong>Liczba kondygnacji</strong> – Dla budynków wielokondygnacyjnych projekt może być droższy ze względu na dodatkowe wymagania techniczne.</li>



<li><strong>Stopień skomplikowania</strong> – Projekty o niestandardowych wymaganiach, takich jak ogrzewanie zewnętrzne (np. tarasy czy podgrzewane podjazdy), mogą wiązać się z dodatkowymi kosztami.</li>
</ul>



<p class="wp-block-paragraph">Na naszej stronie znajdziesz szczegółowy cennik projektów dostosowany do różnych powierzchni:</p>



<ul class="wp-block-list">
<li><strong>Do 100 m²</strong>: już od <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">350 zł</a></strong>, co czyni tę opcję najtańszą na rynku.</li>



<li><strong>Do 150 m²</strong>: &#8211; <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">550</a> zł</strong></li>



<li><strong>Do 200 m²</strong>: &#8211; <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/">650</a> zł</strong></li>



<li><strong>Do 250 m²</strong>: &#8211; <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-250-m2/">750</a> zł</strong></li>
</ul>



<p class="wp-block-paragraph">Dodatkowo warto zwrócić uwagę na możliwość <strong>zwrotu kaucji</strong> za projekt. Jeśli zdecydujesz się na zakup materiałów w firmie, cała kwota wpłacona za projekt zostanie zwrócona. Więcej informacji znajdziesz na stronie <a href="https://projekt-ogrzewania.pl/zwrot-kaucji-za-zakupiony-projekt-ogrzewania-podlogowego/">Zwrot kaucji za zakupiony projekt</a>.</p>



<h2 class="wp-block-heading">Dlaczego warto zainwestować w profesjonalny projekt?</h2>



<p class="wp-block-paragraph">Profesjonalny projekt ogrzewania podłogowego to inwestycja, która przynosi wiele korzyści:</p>



<ul class="wp-block-list">
<li><strong>Optymalizacja kosztów eksploatacji</strong> – Dzięki precyzyjnym obliczeniom możesz zmniejszyć zużycie energii.</li>



<li><strong>Brak kosztownych błędów</strong> – Zlecenie projektu specjaliście eliminuje ryzyko niewłaściwego rozmieszczenia pętli czy zastosowania nieodpowiednich materiałów.</li>



<li><strong>Długotrwałość systemu</strong> – Właściwie zaprojektowany system działa bezawaryjnie przez wiele lat.</li>
</ul>



<p class="wp-block-paragraph">Jeśli chcesz dowiedzieć się więcej na temat zalet profesjonalnych projektów, zajrzyj na nasz <a href="https://projekt-ogrzewania.pl/blog/">blog</a>, gdzie znajdziesz artykuły takie jak <em>„Izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego”</em> czy <em>„Podgrzewane podjazdy – komfort zimą”</em>.</p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph"><strong>Koszt projektu ogrzewania podłogowego</strong> może się różnić w zależności od wielkości budynku i stopnia skomplikowania instalacji. Na stronie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/</a> <strong>znajdziesz projekt ogrzewania podłogowego od 350 zł</strong>, co czyni ofertę bardzo konkurencyjną. Dodatkowo, możliwość <strong>zwrotu kaucji</strong> za projekt przy zakupie materiałów stanowi duże udogodnienie dla inwestorów.</p>



<p class="wp-block-paragraph">Jeśli planujesz instalację ogrzewania podłogowego, zainwestuj w profesjonalny projekt, aby mieć pewność, że Twój system będzie efektywny, trwały i dostosowany do indywidualnych potrzeb.</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="eUTMiI85L2"><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=T6S7Wui9bA#?secret=eUTMiI85L2" data-secret="eUTMiI85L2" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">Ile kosztuje projekt ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
