<?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>Sat, 13 Jun 2026 15:08:51 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</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[
<style>
:root {
    --rk-int-dark: #0f172a;
    --rk-int-blue: #0284c7;
    --rk-int-blue-light: #f0f9ff;
    --rk-int-border: #e2e8f0;
    --rk-int-text: #334155;
    --rk-int-muted: #64748b;
    --rk-int-red: #dc2626;
    --rk-int-red-light: #fef2f2;
}

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

/* Sekcja Nagłówkowa */
.rk-int-header {
    padding: 40px 50px 25px;
    background: #ffffff;
}

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

/* Główny obszar roboczy - Jedna czysta kolumna */
.rk-int-main-stream {
    padding: 0 50px 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Zintegrowany Horyzontalny Dashboard Ostrzegawczy */
.rk-int-dashboard-bar {
    background: var(--rk-int-red-light);
    border: 2px solid var(--rk-int-red);
    border-radius: 16px;
    padding: 25px;
}

.rk-int-dash-title {
    font-size: 13px;
    font-weight: 900;
    color: var(--rk-int-red);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-int-dash-item {
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 10px;
    padding: 15px;
}

.rk-int-dash-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-int-dark);
    margin-bottom: 4px;
    display: block;
}

.rk-int-dash-desc {
    font-size: 13px;
    font-weight: 600;
    color: var(--rk-int-text);
    line-height: 1.4;
}

/* Szybka odpowiedź / Featured Snippet Box */
.rk-int-snippet-box {
    background: var(--rk-int-blue-light);
    border-left: 4px solid var(--rk-int-blue);
    padding: 25px;
    border-radius: 0 12px 12px 0;
}

.rk-int-snippet-box p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    font-weight: 700;
    color: var(--rk-int-dark);
}

/* Bloki tekstowe */
.rk-int-content-block h3 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-int-dark);
}

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

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

.rk-int-content-block strong {
    color: var(--rk-int-dark);
}

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

/* Lista co w artykule */
.rk-int-feature-list {
    margin: 15px 0 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-int-feature-list li {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    padding-left: 20px;
    position: relative;
}

.rk-int-feature-list li::before {
    content: "■";
    color: var(--rk-int-blue);
    position: absolute;
    left: 0;
    top: -1px;
    font-size: 14px;
}

/* Widget Dolny: Baza Wiedzy */
.rk-int-footer-widget {
    background: var(--rk-int-blue-light);
    border: 1px solid #bae6fd;
    border-radius: 16px;
    padding: 25px;
    margin-top: 10px;
}

.rk-int-widget-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-int-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 15px 0;
}

.rk-int-widget-links {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 15px;
}

.rk-int-widget-links li {
    font-size: 14px;
    line-height: 1.4;
}

.rk-int-widget-links a {
    color: var(--rk-int-dark);
    text-decoration: none;
    font-weight: 700;
}

.rk-int-widget-links a:hover {
    color: var(--rk-int-blue);
    text-decoration: underline;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-int-header { padding: 30px 20px 10px 20px; }
    .rk-int-header h2 { font-size: 24px; }
    .rk-int-main-stream { padding: 0 20px 30px 20px; gap: 25px; }
    .rk-int-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-int-widget-links { grid-template-columns: 1fr; gap: 12px; }
    .rk-int-snippet-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Czy do ogrzewania podłogowego potrzebny jest projekt? Szybka odpowiedź inżynierska i mapa drogowa",
    "description": "Wstęp inżynierski i ostateczny werdykt. Dowiedz się, dlaczego projekt techniczny podłogówki sankcjonowany normą PN-EN 1264 chroni przed awarią i stratami.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-wstep",
    "name": "Struktura merytoryczna bilansowania systemów niskotemperaturowych",
    "description": "Macierz wprowadzająca do kryteriów weryfikacji jastrychów grzewczych, strat ciepła oraz optymalizacji współczynników sprawności pomp ciepła SCOP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "norma obliczeń ogrzewania podłogowego en 1264",
      "błędy montażu ogrzewania podłogowego",
      "kompleksowy kalkulator ogrzewania podłogowego",
      "projekt ogrzewania podłogowego z pompą ciepła"
    ],
    "measurementTechnique": "Identyfikacja mostków termicznych i strat hydraulicznych w oparciu o wytyczne inżynierskie normy emisyjnej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Featured Snippet: Projekt instalacji jest formalnie i praktycznie niezbędny do zrównoważenia przepływów czynnika.",
        "Konsekwencje błędów: Wzrost rachunków o 35% z powodu złego rozstawu rur i asymetrii cieplnej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-wstep",
    "name": "Interaktywna Karta Nawigacji Merytorycznej",
    "description": "Narzędzie pozwalające czytelnikowi na natychmiastowe zmapowanie struktury inżynierskiej artykułu i weryfikację celów badawczych przed przystąpieniem do obliczeń.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-int-container" id="article-intro-block">
    <div class="rk-int-header">
        <h2>Czy do ogrzewania podłogowego potrzebny jest projekt? Szybka odpowiedź inżynierska i mapa drogowa</h2>
    </div>

    <div class="rk-int-main-stream">
        
        <div class="rk-int-dashboard-bar">
            <div class="rk-int-dash-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" 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>
                Statystyki awarii i strat bez projektu
            </div>
            <div class="rk-int-dash-grid">
                <div class="rk-int-dash-item">
                    <span class="rk-int-dash-val">&#8211; 2400 PLN</span>
                    <span class="rk-int-dash-desc">Średnia strata finansowa na rurach i szafkach przez kupowanie „z zapasem”.</span>
                </div>
                <div class="rk-int-dash-item">
                    <span class="rk-int-dash-val">+ 35%</span>
                    <span class="rk-int-dash-desc">Wyższe rachunki za energię elektryczną spowodowane oporami hydraulicznymi obwodów.</span>
                </div>
                <div class="rk-int-dash-item">
                    <span class="rk-int-dash-val">100% ryzyka</span>
                    <span class="rk-int-dash-desc">Niebezpieczeństwo pękania jastrychu i kafli przy zaniechaniu dylatacji.</span>
                </div>
            </div>
        </div>

        <div class="rk-int-snippet-box">
            <p>Tak, profesjonalny projekt techniczny instalacji ogrzewania podłogowego jest formalnie i praktycznie niezbędny do prawidłowego działania systemu, a jego wymóg bezpośrednio sankcjonuje europejska norma obliczeń ogrzewania podłogowego EN 1264. Brak obliczeń hydraulicznych i cieplnych skutkuje niedogrzaniem budynku, pękaniem jastrychu oraz drastycznym spadkiem efektywności pompy ciepła.</p>
        </div>

        <div class="rk-int-content-block">
            <h3>Koszty złudzeń inwestorskich</h3>
            <p>Wielu inwestorów ulega niebezpiecznemu złudzeniu, że ogrzewanie płaszczyznowe to jedynie ułożenie rur w pętle według uniwersalnego szablonu zaproponowanego przez montera. To intuicyjne podejście generuje realny ból na etapie użytkowania domu.</p>
            <p>Wadliwa instalacja objawia się niedogrzanymi pokojami dziecięcymi, uciążliwym „efektem zebry” (wyczuwalnymi pasami zimna i ciepła pod stopami) oraz rachunkami za prąd wyższymi o 35%. Projekt to nie koszt, lecz jedyna inżynierska tarcza chroniąca przed zniszczeniem podłóg.</p>
        </div>

        <div class="rk-int-content-block">
            <h3>Czego dowiesz się z tego przewodnika?</h3>
            <p>Ten artykuł przeprowadzi Cię przez proces inżynierski pod Twoją posadzką. W dalszych sekcjach udostępniliśmy dla Ciebie:</p>
            <ul class="rk-int-feature-list">
                <li><strong>Interaktywny kalkulator przepływów</strong>, wyznaczający <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> dla pokoju.</li>
                <li><strong>Symulator rozstawu wężownic</strong> optymalizujący <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania z pompą ciepła</a> pod wysoki SCOP.</li>
                <li><strong>Wizualny komparator jastrychów</strong> ukazujący właściwości fizyczne anhydrytu i betonu.</li>
                <li><strong>Rzeczywiste Case Study</strong> pokazujące zysk 2400 zł na samych materiałach u hurtownika.</li>
            </ul>
        </div>

        <div class="rk-int-footer-widget">
            <h4 class="rk-int-widget-title">Powiązana Baza Wiedzy HVAC</h4>
            <ul class="rk-int-widget-links">
                <li><a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Jak działa ogrzewanie podłogowe</a></li>
                <li><a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">Norma PN-EN 1264 w praktyce</a></li>
                <li><a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">Podłogówka vs Grzejniki</a></li>
            </ul>
        </div>

    </div>
</div>



<style>
:root {
    --rk-prc-dark: #0f172a;
    --rk-prc-blue: #0284c7;
    --rk-prc-blue-light: #f0f9ff;
    --rk-prc-border: #e2e8f0;
    --rk-prc-text: #334155;
    --rk-prc-muted: #64748b;
    --rk-prc-green: #10b981;
    --rk-prc-green-light: #dcfce7;
    --rk-prc-red: #ef4444;
    --rk-prc-red-light: #fef2f2;
    --rk-prc-gold: #f59e0b;
}

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

.rk-prc-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prc-border);
}

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

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

/* Moduł interaktywnego kalkulatora cenowego */
.rk-prc-workspace {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #fafafa;
    border-bottom: 1px solid var(--rk-prc-border);
}

/* Panel konfiguracyjny (lewa strona) */
.rk-prc-inputs-sidebar {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-prc-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-prc-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-prc-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-prc-dark);
}

.rk-prc-slider-container {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-prc-range {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    border-radius: 3px;
    background: var(--rk-prc-border);
    outline: none;
}

.rk-prc-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rk-prc-blue);
    cursor: pointer;
    transition: transform 0.1s;
}

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

.rk-prc-val-badge {
    width: 85px;
    padding: 8px 12px;
    border: 1px solid var(--rk-prc-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-prc-dark);
    text-align: center;
    background: #f8fafc;
}

/* Układ opcji wyboru */
.rk-prc-toggle-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-prc-toggle-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    background: #f8fafc;
    border: 1px solid var(--rk-prc-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.rk-prc-toggle-row:hover {
    border-color: var(--rk-prc-muted);
}

.rk-prc-toggle-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rk-prc-toggle-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-prc-dark);
}

.rk-prc-toggle-desc {
    font-size: 12px;
    color: var(--rk-prc-muted);
    font-weight: 500;
}

.rk-prc-checkbox {
    display: none;
}

.rk-prc-switch {
    width: 44px;
    height: 24px;
    background: #cbd5e1;
    border-radius: 999px;
    position: relative;
    transition: background 0.3s;
}

.rk-prc-switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #ffffff;
    border-radius: 50%;
    transition: transform 0.3s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.rk-prc-checkbox:checked + .rk-prc-switch {
    background: var(--rk-prc-blue);
}

.rk-prc-checkbox:checked + .rk-prc-switch::after {
    transform: translateX(20px);
}

/* Panel wyników (prawa strona) */
.rk-prc-results-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
}

.rk-prc-card {
    background: #ffffff;
    border: 1px solid var(--rk-prc-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-prc-card.primary {
    border-color: var(--rk-prc-blue);
    background: var(--rk-prc-blue-light);
}

.rk-prc-card.savings {
    border-color: var(--rk-prc-green);
    background: var(--rk-prc-green-light);
}

.rk-prc-meta-info h4 {
    margin: 0 0 6px 0;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-prc-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-prc-card.primary h4 {
    color: var(--rk-prc-blue);
}

.rk-prc-card.savings h4 {
    color: var(--rk-prc-green);
}

.rk-prc-meta-info .value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-prc-dark);
    line-height: 1.1;
}

.rk-prc-meta-info .sub-desc {
    margin-top: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #475569;
}

/* Sekcja szczegółowych wytycznych inżynierskich */
.rk-prc-details-block {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-prc-border);
}

.rk-prc-details-block h3 {
    margin: 0 0 20px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-prc-dark);
}

/* Wizualny Blok Porównawczy (Zastępuje ścianę tekstu) */
.rk-prc-comparison-box {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 20px;
    background: #f8fafc;
    border: 1px solid var(--rk-prc-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
    align-items: stretch;
}

.rk-prc-comp-side {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    border: 1px solid var(--rk-prc-border);
    display: flex;
    flex-direction: column;
}

.rk-prc-comp-side.danger {
    border-top: 4px solid var(--rk-prc-red);
}

.rk-prc-comp-side.success {
    border-top: 4px solid var(--rk-prc-green);
}

.rk-prc-comp-side h5 {
    margin: 0 0 15px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-prc-dark);
}

.rk-prc-comp-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

.rk-prc-comp-list li {
    font-size: 13px;
    color: var(--rk-prc-text);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px dashed var(--rk-prc-border);
    padding-bottom: 8px;
}

.rk-prc-comp-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-prc-comp-list li span {
    font-weight: 800;
    color: var(--rk-prc-red);
    background: var(--rk-prc-red-light);
    padding: 2px 8px;
    border-radius: 4px;
}

.rk-prc-comp-invest {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex: 1;
}

.rk-prc-comp-invest .price {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-prc-green);
    line-height: 1;
    margin-bottom: 8px;
}

.rk-prc-comp-invest p {
    font-size: 13px;
    color: var(--rk-prc-muted);
    margin: 0;
    line-height: 1.4;
}

.rk-prc-comp-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-prc-muted);
}

.rk-prc-text-link {
    font-size: 14px;
    color: var(--rk-prc-text);
    text-align: center;
    margin-bottom: 30px;
}

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

/* Siatka czynników */
.rk-prc-factors-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-prc-factor-row {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-prc-border);
}

.rk-prc-factor-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-prc-factor-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-prc-dark);
    margin-bottom: 6px;
}

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

.rk-prc-factor-row a {
    color: var(--rk-prc-blue);
    text-decoration: underline;
    font-weight: 700;
}

/* Wyróżniony Baner Promocyjny */
.rk-prc-promo-banner {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-prc-dark) 0%, #1e293b 100%);
    text-align: center;
    position: relative;
    border-top: 4px solid var(--rk-prc-gold);
}

.rk-prc-promo-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-prc-gold);
    color: var(--rk-prc-dark);
    padding: 6px 20px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 10px rgba(245, 158, 11, 0.3);
}

.rk-prc-banner-title {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin: 10px 0 10px 0;
}

.rk-prc-price-highlight {
    font-size: 20px;
    color: #e2e8f0;
    margin-bottom: 20px;
    font-weight: 600;
}

.rk-prc-price-highlight span {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-prc-gold);
    display: block;
    margin-top: 5px;
    line-height: 1;
}

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

.rk-prc-banner-desc strong {
    color: #ffffff;
}

.rk-btn-prc-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-prc-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 2px solid transparent;
}

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

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-prc-header { padding: 30px 20px; }
    .rk-prc-workspace { grid-template-columns: 1fr; }
    .rk-prc-inputs-sidebar { padding: 25px 20px; border-right: none; border-bottom: 1px solid var(--rk-prc-border); }
    .rk-prc-results-display { padding: 25px 20px; }
    .rk-prc-details-block { padding: 30px 20px; }
    
    .rk-prc-comparison-box { grid-template-columns: 1fr; gap: 15px; padding: 15px; }
    .rk-prc-comp-divider { display: none; }
    
    .rk-prc-promo-banner { padding: 45px 20px 35px; }
    .rk-prc-banner-title { font-size: 20px; }
    .rk-prc-price-highlight span { font-size: 32px; }
    .rk-btn-prc-massive { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-cena",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Ile kosztuje projekt ogrzewania podłogowego i od czego zależy cena?",
    "description": "Cennik i analiza kosztów projektu ogrzewania podłogowego. Sprawdź, jak obliczenia OZC oraz automatyka strefowa wpływają na wycenę i zwrot z inwestycji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-cena",
    "name": "Kalkulator kosztów projektowych i oszczędności materiałowych HVAC",
    "description": "Zestawienie stałych oraz zmiennych składowych wpływających na wycenę dokumentacji technicznej instalacji płaszczyznowych oraz estymacja redukcji nadmiaru materiałów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile kosztuje projekt ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "norma obliczeń ogrzewania podłogowego en 1264",
      "rura pex do ogrzewania podłogowego",
      "rozdzielacz do podłogówki kluczowy element"
    ],
    "measurementTechnique": "Algorytm kalkulacyjny oparty na stawce bazowej za metr kwadratowy powierzchni z uwzględnieniem narzutów pracochłonności inżynierskiej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wycena bazowa: Dla 150 m2 wynosi od 550 PLN netto (ok. 4 PLN/m2).",
        "Zwrot z inwestycji: Eliminacja zapasu rur i nadmiarowych sekcji generuje średnio 2500 PLN oszczędności."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-cena",
    "name": "Interaktywny Estymator Kosztów Projektowych i ROI",
    "description": "Narzędzie interaktywne pozwalające inwestorowi na dynamiczne wyliczenie ceny indywidualnego projektu instalacji oraz prognozowanych zysków materiałowych.",
    "applicationCategory": "FinancialApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-prc-container" id="pricing-estimator-block">
    <div class="rk-prc-header">
        <h2>Ile kosztuje projekt ogrzewania podłogowego i od czego zależy cena?</h2>
        <p>Cena indywidualnego projektu ogrzewania podłogowego dla domu jednorodzinnego o powierzchni 150 m² wynosi od <strong>550 PLN netto</strong> (średnio 4 PLN/m²). Koszt ten jest ściśle uzależniony od stopnia skomplikowania bryły budynku, obecności przeszkleń oraz dostępności aktualnego świadectwa charakterystyki energetycznej lub obliczeń OZC (Obliczeniowe Zapotrzebowanie na Ciepło). Wdrożenie projektu pozwala na redukcję kosztów materiałowych na etapie zakupów o średnio <strong>2500 PLN brutto</strong>.</p>
    </div>

    <div class="rk-prc-workspace">
        <div class="rk-prc-inputs-sidebar">
            <div class="rk-prc-group">
                <label class="rk-prc-label" for="rkPrcInpArea">Powierzchnia domu (A)</label>
                <div class="rk-prc-slider-container">
                    <input type="range" class="rk-prc-range" id="rkPrcInpArea" min="60" max="300" step="10" value="150">
                    <span class="rk-prc-val-badge" id="rkPrcLabelArea">150 m²</span>
                </div>
            </div>

            <div class="rk-prc-group">
                <label class="rk-prc-label">Czynniki modyfikujące pracochłonność</label>
                <div class="rk-prc-toggle-stack">
                    
                    <label class="rk-prc-toggle-row" for="chkPrcOzo">
                        <div class="rk-prc-toggle-info">
                            <span class="rk-prc-toggle-title">Brak gotowych obliczeń OZC</span>
                            <span class="rk-prc-toggle-desc">Wymaga wykonania bilansu cieplnego pokoi</span>
                        </div>
                        <input type="checkbox" class="rk-prc-checkbox" id="chkPrcOzo">
                        <div class="rk-prc-switch"></div>
                    </label>

                    <label class="rk-prc-toggle-row" for="chkPrcArch">
                        <div class="rk-prc-toggle-info">
                            <span class="rk-prc-toggle-title">Skomplikowana bryła i przeszklenia</span>
                            <span class="rk-prc-toggle-desc">Okna HST, antresole, dachy skośne</span>
                        </div>
                        <input type="checkbox" class="rk-prc-checkbox" id="chkPrcArch">
                        <div class="rk-prc-switch"></div>
                    </label>

                    <label class="rk-prc-toggle-row" for="chkPrcAuto">
                        <div class="rk-prc-toggle-info">
                            <span class="rk-prc-toggle-title">Integracja z automatyką</span>
                            <span class="rk-prc-toggle-desc">Projekt sterowania strefowego i okablowania</span>
                        </div>
                        <input type="checkbox" class="rk-prc-checkbox" id="chkPrcAuto">
                        <div class="rk-prc-switch"></div>
                    </label>

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

        <div class="rk-prc-results-display">
            <div class="rk-prc-card primary">
                <div class="rk-prc-meta-info">
                    <h4>Szacowany koszt projektu</h4>
                    <div class="value" id="rkPrcResTotal">550 PLN</div>
                    <div class="sub-desc" id="rkPrcResUnit">Cena jednostkowa: ~3.67 PLN/m² netto</div>
                </div>
            </div>

            <div class="rk-prc-card savings">
                <div class="rk-prc-meta-info">
                    <h4>Zysk przy zakupie materiałów</h4>
                    <div class="value" id="rkPrcResSavings" style="color: var(--rk-prc-green);">~2500 PLN</div>
                    <div class="sub-desc" style="color: #15803d;">Unikasz nadmiaru rur PEX i przewymiarowanych rozdzielaczy</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-prc-details-block">
        <h3>Od czego zależy końcowa wycena dokumentacji technicznej?</h3>
        
        <div class="rk-prc-comparison-box">
            <div class="rk-prc-comp-side danger">
                <h5>Brak projektu (Koszty ukryte)</h5>
                <ul class="rk-prc-comp-list">
                    <li>Kupno &#8222;na oko&#8221; 500m rury PEX <span>+ 2000 PLN</span></li>
                    <li>Przewymiarowany rozdzielacz <span>+ 500 PLN</span></li>
                </ul>
            </div>
            
            <div class="rk-prc-comp-divider">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="8" y1="12" x2="16" y2="12"></line><line x1="12" y1="8" x2="12" y2="16"></line></svg>
            </div>

            <div class="rk-prc-comp-side success">
                <h5>Inwestycja w dokumentację</h5>
                <div class="rk-prc-comp-invest">
                    <div class="price">550 PLN</div>
                    <p>Wydajesz raz, a zyskujesz natychmiast na zerowych stratach materiałowych.</p>
                </div>
            </div>
        </div>

        <p class="rk-prc-text-link">Sprawdź szczegółowy cennik w artykule: <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje projekt ogrzewania podłogowego</a>.</p>
        
        <div class="rk-prc-factors-grid">
            <div class="rk-prc-factor-row">
                <div class="rk-prc-factor-title">Dostępność OZC</div>
                <p>Jeśli projektant musi samodzielnie obliczyć straty ciepła dla każdego pomieszczenia zgodnie z normą PN-EN 12831, cena wzrasta o ok. 300-600 PLN. Bilans ten jest jednak kluczowy, by precyzyjnie wyznaczyć <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
            </div>
            <div class="rk-prc-factor-row">
                <div class="rk-prc-factor-title">Architektura budynku</div>
                <p>Duże przeszklenia typu HST, antresole oraz dachy skośne wymagają zaawansowanego modelowania stref brzegowych, co znacząco podnosi pracochłonność inżynierską i determinuje gęstość ułożenia przewodów w płycie grzewczej.</p>
            </div>
            <div class="rk-prc-factor-row">
                <div class="rk-prc-factor-title">Integracja z automatyką</div>
                <p>Zaprojektowanie dedykowanego okablowania pod systemy sterowania strefowego (np. listwy podłogowe, siłowniki termoelektryczne) podwyższa bazowy koszt dokumentacji o ok. 300 PLN, gwarantując jednak bezbłędny montaż elektryczny i hydrauliczny. Dowiedz się, jak powinien wyglądać <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt do ogrzewania podłogowego</a>.</p>
            </div>
        </div>
    </div>

    <div class="rk-prc-promo-banner">
        <div class="rk-prc-promo-badge">Oferta Specjalna</div>
        <h3 class="rk-prc-banner-title">Zyskaj pewność inżynierską i chroń swój budżet</h3>
        <div class="rk-prc-price-highlight">
            Kompletny projekt kupisz u nas już od
            <span>550 zł</span>
        </div>
        <p class="rk-prc-banner-desc">Zamów indywidualny projekt hydrauliczny ogrzewania płaszczyznowego. Uniknij błędów instalatorów i <strong>zaoszczędź nawet 2500 zł</strong> na samych materiałach (brak nadmiaru rur i zbyt dużych rozdzielaczy).</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-prc-massive">
            ZAMÓW SWÓJ PROJEKT ONLINE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const inpArea = document.getElementById('rkPrcInpArea');
    const chkOzo = document.getElementById('chkPrcOzo');
    const chkArch = document.getElementById('chkPrcArch');
    const chkAuto = document.getElementById('chkPrcAuto');

    const labelArea = document.getElementById('rkPrcLabelArea');
    const resTotal = document.getElementById('rkPrcResTotal');
    const resUnit = document.getElementById('rkPrcResUnit');
    const resSavings = document.getElementById('rkPrcResSavings');

    function calculateProjectCost() {
        const area = parseFloat(inpArea.value);
        labelArea.innerText = area + " m²";

        // Bazowy algorytm wyceny Robert-Ogrzewania dostosowany do progu 550 PLN dla 150m2
        let basePrice = Math.round(area * 3.666);
        if (basePrice < 400) basePrice = 400;

        // Modyfikatory pracochłonności
        if (chkOzo.checked) basePrice += 450;
        if (chkArch.checked) basePrice += 300;
        if (chkAuto.checked) basePrice += 300;

        resTotal.innerText = basePrice + " PLN";
        resUnit.innerText = "Cena jednostkowa: ~" + (basePrice / area).toFixed(2) + " PLN/m² netto";

        // Dynamiczne wyliczenie zysku z zakupu materiałów
        const dynamicSavings = Math.round(area * 16.66);
        resSavings.innerText = "~" + dynamicSavings + " PLN";
    }

    inpArea.addEventListener('input', calculateProjectCost);
    chkOzo.addEventListener('change', calculateProjectCost);
    chkArch.addEventListener('change', calculateProjectCost);
    chkAuto.addEventListener('change', calculateProjectCost);

    // Pierwsze uruchomienie
    calculateProjectCost();
});
</script>



<h2 class="wp-block-heading">Ile kosztuje projekt ogrzewania podłogowego i od czego zależy cena?</h2>



<p class="wp-block-paragraph">Cena indywidualnego projektu ogrzewania podłogowego dla domu jednorodzinnego o powierzchni <strong>150 m²</strong> wynosi od <strong>550 PLN</strong> netto (średnio <strong>4 PLN/m²</strong>). Koszt ten jest ściśle uzależniony od stopnia skomplikowania bryły budynku, obecności przeszkleń oraz dostępności aktualnego świadectwa charakterystyki energetycznej lub obliczeń OZC (Obliczeniowe Zapotrzebowanie na Ciepło). Wdrożenie projektu pozwala na redukcję kosztów materiałowych na etapie zakupów o średnio <strong>2500 PLN</strong> brutto.</p>



<p class="wp-block-paragraph">Inwestorzy często szukają oszczędności tam, gdzie generują one największe ryzyko straty. Wydatek rzędu <strong>550 PLN</strong> na rzetelną dokumentację inżynierską zwraca się natychmiast przy zakupie materiałów. Bez projektu instalatorzy rutynowo kupują rury "z zapasem", co przy średnim domu oznacza nadmiar nawet <strong>500 metrów</strong> rury PEX/AL/PEX 16x2 mm (generując zbędny koszt ok. <strong>2000 PLN</strong>) oraz montaż zbyt dużych, droższych o <strong>500 PLN</strong> rozdzielaczy z nadmiarową liczbą sekcji.</p>



<p class="wp-block-paragraph">Największy wpływ na finalną wycenę projektu mają:</p>



<ul class="wp-block-list">
<li><strong>Dostępność OZC:</strong> Jeśli projektant musi samodzielnie obliczyć straty ciepła dla każdego pomieszczenia zgodnie z normą <strong>PN-EN 12831</strong>, cena wzrasta o ok. <strong>300-600 PLN</strong>.</li>



<li><strong>Architektura budynku:</strong> Duże przeszklenia typu HST, antresole oraz dachy skośne wymagają zaawansowanego modelowania stref brzegowych, co podnosi pracochłonność inżynierską.</li>



<li><strong>Integracja z automatyką:</strong> Zaprojektowanie okablowania pod systemy sterowania strefowego (np. listwy podłogowe, siłowniki termoelektryczne) podwyższa bazowy koszt dokumentacji o ok. <strong>300 PLN</strong>.</li>
</ul>



<style>
:root {
    --rk-dist-dark: #0f172a;
    --rk-dist-blue: #0284c7;
    --rk-dist-blue-light: #f0f9ff;
    --rk-dist-border: #e2e8f0;
    --rk-dist-text: #334155;
    --rk-dist-muted: #64748b;
    --rk-dist-green: #10b981;
    --rk-dist-green-light: #dcfce7;
    --rk-dist-amber: #f59e0b;
    --rk-dist-amber-light: #fffbeb;
}

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

.rk-dist-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dist-border);
}

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

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

/* Moduł interaktywnego symulatora rozstawu */
.rk-dist-workspace {
    display: grid;
    grid-template-columns: 340px 1fr;
    background: #fafafa;
}

/* Selektor rozstawu (lewa strona) */
.rk-dist-menu {
    padding: 25px;
    background: #ffffff;
    border-right: 1px solid var(--rk-dist-border);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
}

.rk-dist-btn-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-dist-menu-btn {
    width: 100%;
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-dist-border);
    background: #f8fafc;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

.rk-dist-menu-btn.active[data-index="1"] {
    background: var(--rk-dist-blue-light);
    border-color: var(--rk-dist-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.08);
}

.rk-dist-menu-btn.active[data-index="2"] {
    background: var(--rk-dist-green-light);
    border-color: var(--rk-dist-green);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.08);
}

.rk-dist-menu-btn.active[data-index="3"] {
    background: var(--rk-dist-amber-light);
    border-color: var(--rk-dist-amber);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.08);
}

.rk-dist-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-dist-dark);
    margin-bottom: 4px;
}

.rk-dist-btn-desc {
    font-size: 12px;
    color: var(--rk-dist-muted);
    font-weight: 600;
}

/* Mini nawigacja boczna */
.rk-dist-sidebar-widget {
    background: #f8fafc;
    border: 1px solid var(--rk-dist-border);
    border-radius: 12px;
    padding: 20px;
}

.rk-dist-widget-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-dist-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-dist-widget-links {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-dist-widget-links li {
    font-size: 13px;
    line-height: 1.4;
}

.rk-dist-widget-links a {
    color: var(--rk-dist-blue);
    text-decoration: none;
    font-weight: 600;
}

.rk-dist-widget-links a:hover {
    text-decoration: underline;
}

/* Ekran Wizualizacji (prawa strona) */
.rk-dist-display {
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 25px;
    background: #f8fafc;
}

/* Monitor Parametrów Pompy Ciepła */
.rk-dist-monitor-box {
    background: #ffffff;
    border: 1px solid var(--rk-dist-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.rk-dist-visual-pipes {
    width: 130px;
    height: 100px;
    flex-shrink: 0;
    background: #f1f5f9;
    border-radius: 8px;
    border: 1px solid var(--rk-dist-border);
}

.rk-dist-metrics-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-dist-metric-card {
    background: #f8fafc;
    border: 1px solid var(--rk-dist-border);
    border-radius: 10px;
    padding: 12px 15px;
}

.rk-dist-metric-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-dist-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.rk-dist-metric-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-dist-dark);
}

/* Blok opisu tekstowego */
.rk-dist-text-card {
    background: #ffffff;
    border: 1px solid var(--rk-dist-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-dist-text-card h3 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-dist-dark);
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-dist-header { padding: 30px 20px; }
    .rk-dist-workspace { grid-template-columns: 1fr; }
    .rk-dist-menu { border-right: none; border-bottom: 1px solid var(--rk-dist-border); padding: 20px; }
    .rk-dist-display { padding: 25px 20px; }
    .rk-dist-monitor-box { flex-direction: column; text-align: center; padding: 20px; gap: 20px; }
    .rk-dist-metrics-grid { width: 100%; grid-template-columns: 1fr; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-rozstaw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Jaki rozstaw rur ogrzewania podłogowego wybrać dla pompy ciepła?",
    "description": "Poradnik inżynierski doboru rozstawu rur dla pompy ciepła. Sprawdź, jak gęstość ułożenia wężownic wpływa na sprawność SCOP i temperaturę zasilania 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-rozstaw",
    "name": "Korelacja gęstości wężownic i sprawności pompy ciepła",
    "description": "Zestawienie fizycznych i operacyjnych parametrów instalacji: przełożenie rozstawu rur (10 cm, 15 cm, 20 cm) na wymaganą temperaturę zasilania jastrychu oraz współczynnik SCOP.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "niska temperatura zasilania pompy ciepła",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "jak gęsto rozkładać podłogówkę",
      "norma obliczeń ogrzewania podłogowego en 1264"
    ],
    "measurementTechnique": "Obliczenia emisyjności cieplnej podłogi grzewczej dla stałego obciążenia 50 W/m² zgodnie z kryteriami technicznymi normy PN-EN 1264-2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 15 cm: Zapewnia niskie zasilanie 35°C i optymalny współczynnik SCOP w granicach 4.2 - 4.8.",
        "Rozstaw 20 cm: Wymaga podniesienia temperatury do 42°C, co zwiększa zużycie prądu o ok. 15-20%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-rozstaw",
    "name": "Interaktywny Symulator Sprawności Termicznej Emiterów",
    "description": "Moduł aplikacyjny wizualizujący zagęszczenie przewodów w płycie grzewczej i automatycznie wyliczający zmiany wydajności oraz strat sprawności pompy ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dist-container" id="pipe-spacing-simulator-block">
    <div class="rk-dist-header">
        <h2>Jaki rozstaw rur ogrzewania podłogowego wybrać dla pompy ciepła?</h2>
        <p>Optymalny rozstaw rur ogrzewania podłogowego dla pompy ciepła w standardowym budynku WT2021 wynosi <strong>10 cm w strefach brzegowych</strong> (przy oknach) oraz <strong>15 cm w strefach stałego przebywania ludzi</strong>. Zgodnie z normą <strong>PN-EN 1264-2</strong>, parametry te pozwalają utrzymać temperaturę zasilania na poziomie <strong>35°C</strong> (przy parametrach 35/30°C, gdzie różnica zasilania i powrotu wynosi 5 K), co gwarantuje uzyskanie najwyższego współczynnika efektywności SCOP pompy ciepła na poziomie <strong>4,2 - 4,8</strong>.</p>
    </div>

    <div class="rk-dist-workspace">
        <div class="rk-dist-menu" id="distMenuList">
            <div class="rk-dist-btn-group">
                <button class="rk-dist-menu-btn active" data-index="1" data-v1="35°C" data-v2="4.2 - 4.8" data-v3="Idealny (0%)">
                    <div class="rk-dist-btn-title">Rozstaw standardowy (15 cm)</div>
                    <div class="rk-dist-btn-desc">Strefy stałego przebywania</div>
                </button>
                <button class="rk-dist-menu-btn" data-index="2" data-v1="32°C" data-v2="4.9 - 5.2" data-v3="Zwiększony (+10%)">
                    <div class="rk-dist-btn-title">Rozstaw strefowy (10 cm)</div>
                    <div class="rk-dist-btn-desc">Strefy brzegowe i łazienki</div>
                </button>
                <button class="rk-dist-menu-btn" data-index="3" data-v1="42°C" data-v2="3.4 - 3.8" data-v3="Wzrost o 15% do 20%">
                    <div class="rk-dist-btn-title">Rozstaw rzadki (20 cm)</div>
                    <div class="rk-dist-btn-desc">Błędy instalacji "na oko"</div>
                </button>
            </div>

            <div class="rk-dist-sidebar-widget">
                <h4 class="rk-dist-sidebar-title">Zagadnienia projektowe</h4>
                <ul class="rk-dist-widget-links">
                    <li><a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">Rozstaw rur a pompa ciepła</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">Rola strefy brzegowej</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">Dlaczego 35°C to ideał dla podłogówki</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowego-co-10-czy-15-cm/">Rozstaw co 10 czy 15 cm</a></li>
                </ul>
            </div>
        </div>

        <div class="rk-dist-display">
            <div class="rk-dist-monitor-box">
                <div class="rk-dist-gauge-wrapper">
                    <svg class="rk-dist-svg-dial" viewBox="0 0 100 100" id="svgPipesVisual">
                        <rect x="5" y="75" width="90" height="15" fill="#94a3b8"/>
                        <g id="svgPipeGroup"></g>
                    </svg>
                </div>
                
                <div class="rk-dist-metrics-grid">
                    <div class="rk-dist-metric-card">
                        <div class="rk-dist-metric-label">Temp. zasilania</div>
                        <div class="rk-dist-metric-value" id="valDistMetric1">35°C</div>
                    </div>
                    <div class="rk-dist-metric-card">
                        <div class="rk-dist-metric-label">Efektywność SCOP</div>
                        <div class="rk-dist-metric-value" id="valDistMetric2">4.2 - 4.8</div>
                    </div>
                    <div class="rk-dist-metric-card" style="grid-column: span 2;">
                        <div class="rk-dist-metric-label">Pobór prądu / Rachunki</div>
                        <div class="rk-dist-metric-value" id="valDistMetric3" style="color: var(--rk-dist-blue);">Optymalny (0%)</div>
                    </div>
                </div>
            </div>

            <div class="rk-dist-text-card">
                <div id="distDescriptionTarget">
                    <h3>Rozstaw standardowy (15 cm)</h3>
                    <p>Zapewnia idealny kompromis między wydatkiem materiałowym a sprawnością niskotemperaturową pompy ciepła w pokojach dziennych i sypialniach. Pozwala pokryć standardowe straty ciepła bez potrzeby przegrzewania jastrychu. Zapobiega powstawaniu asymetrii termicznej, chroniąc przed pękaniem okładzin ceramicznych.</p>
                </div>
            </div>
        </div>
    </div>

    <div style="display: none;" id="distDataStorage">
        <div id="dist-txt-1">
            <h3>Rozstaw standardowy (15 cm)</h3>
            <p>Zapewnia idealny kompromis między wydatkiem materiałowym a sprawnością niskotemperaturową pompy ciepła w pokojach dziennych i sypialniach. Pozwala pokryć standardowe straty ciepła bez potrzeby przegrzewania jastrychu. Zapobiega powstawaniu asymetrii termicznej, chroniąc przed pękaniem okładzin ceramicznych. Sprawdź, <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a> w strefach przebywania stałego.</p>
        </div>
        <div id="dist-txt-2">
            <h3>Rozstaw strefowy (10 cm)</h3>
            <p>Stosowany bezwzględnie w strefach brzegowych (wzdłuż okien tarasowych i ścian zewnętrznych) oraz w łazienkach, gdzie ograniczona powierzchnia posadzki musi oddać wyższą moc grzewczą w celu osiągnięcia normatywnych 24°C. Tak gęste ułożenie rur pozwala obniżyć parametry temperaturowe całej instalacji, co maksymalizuje wskaźnik SCOP urządzenia. Poznaj zasady modelowania obwodów w artykule o <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefach brzegowych i obwodowych</a>.</p>
        </div>
        <div id="dist-txt-3">
            <h3>Rozstaw rzadki (20 cm)</h3>
            <p>Zwiększenie rozstawu rur do 20 cm w celu rzekomej oszczędności na materiale drastycznie obniża wydajność cieplną podłogi. Aby pokryć zapotrzebowanie pomieszczenia na ciepło wynoszące np. 50 W/m², instalacja o rozstawie 20 cm wymaga podniesienia temperatury zasilania z 35°C do 42°C. Dla pompy ciepła każdy wzrost temperatury zasilania o 1°C oznacza spadek sprawności i wzrost zużycia energii o około 2,5% do 3%. Stopa ludzka zaczyna też wyraźnie odczuwać tzw. efekt zebry, a naprężenia termiczne niszczą wiązania wylewek, wywołując pękanie płytek ceramicznych i paneli.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const menuBtns = document.querySelectorAll('.rk-dist-menu-btn');
    const valMetric1 = document.getElementById('valDistMetric1');
    const valMetric2 = document.getElementById('valDistMetric2');
    const valMetric3 = document.getElementById('valDistMetric3');
    const descTarget = document.getElementById('distDescriptionTarget');
    const pipeGroup = document.getElementById('svgPipeGroup');

    function drawPipes(index) {
        pipeGroup.innerHTML = '';
        let cxPoints = [];
        
        if(index === "1") { // 15 cm rozstaw
            cxPoints = [20, 50, 80];
        } else if(index === "2") { // 10 cm rozstaw
            cxPoints = [15, 32, 50, 68, 85];
        } else if(index === "3") { // 20 cm rozstaw
            cxPoints = [25, 75];
        }

        cxPoints.forEach(cx => {
            // Rysowanie rury w przekroju
            const circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
            circle.setAttribute("cx", cx);
            circle.setAttribute("cy", "75");
            circle.setAttribute("r", "6");
            circle.setAttribute("fill", "#ef4444");
            circle.setAttribute("stroke", "#b91c1c");
            circle.setAttribute("stroke-width", "2");
            pipeGroup.appendChild(circle);
        });
    }

    menuBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            menuBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const index = this.getAttribute('data-index');
            const v1 = this.getAttribute('data-v1');
            const v2 = this.getAttribute('data-v2');
            const v3 = this.getAttribute('data-v3');

            // Aktualizacja wskaźników tekstowych pompy obiegowej
            valMetric1.innerText = v1;
            valMetric2.innerText = v2;
            valMetric3.innerText = v3;

            // Zmiana barwy ostrzegawczej przy awaryjnym wariancie
            if(index === "3") {
                valMetric3.style.color = "var(--rk-dist-red)";
            } else if(index === "2") {
                valMetric3.style.color = "var(--rk-dist-green)";
            } else {
                valMetric3.style.color = "var(--rk-dist-blue)";
            }

            // Podmiana grafiki SVG rur
            drawPipes(index);

            // Podmiana tekstu opisu
            const localSource = document.getElementById(`dist-txt-${index}`);
            if (localSource) {
                descTarget.innerHTML = localSource.innerHTML;
            }
        });
    });

    // Wstępne narysowanie rur standardowych
    drawPipes("1");
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-blue: #0284c7;
    --rk-loop-blue-light: #e0f2fe;
    --rk-loop-bg-light: #f8fafc;
    --rk-loop-border: #e2e8f0;
    --rk-loop-text: #334155;
    --rk-loop-muted: #64748b;
    --rk-loop-green: #10b981;
    --rk-loop-green-light: #dcfce7;
    --rk-loop-red: #ef4444;
    --rk-loop-red-light: #fef2f2;
}

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

.rk-loop-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-loop-border);
}

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

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

/* Moduł interaktywnego kalkulatora i symulatora oporów */
.rk-loop-workspace {
    display: grid;
    grid-template-columns: 340px 1fr;
    background: var(--rk-loop-bg-light);
    border-bottom: 1px solid var(--rk-loop-border);
}

/* Panel sterowania parametrami */
.rk-loop-inputs-panel {
    padding: 35px 30px;
    background: #ffffff;
    border-right: 1px solid var(--rk-loop-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-loop-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

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

.rk-loop-slider-box {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-loop-range {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    border-radius: 3px;
    background: var(--rk-loop-border);
    outline: none;
}

.rk-loop-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rk-loop-blue);
    cursor: pointer;
    transition: transform 0.1s;
}

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

.rk-loop-val-badge {
    width: 75px;
    padding: 6px 10px;
    border: 1px solid var(--rk-loop-border);
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-loop-dark);
    text-align: center;
    background: var(--rk-loop-bg-light);
}

/* Przełącznik rozstawu rur dostosowany pionowo pod mobile */
.rk-loop-spacing-select {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-loop-spacing-btn {
    width: 100%;
    padding: 12px 15px;
    background: var(--rk-loop-bg-light);
    border: 1px solid var(--rk-loop-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-loop-text);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

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

/* Panel analizy graficzno-tekstowej */
.rk-loop-analysis-panel {
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: space-between;
}

/* Monitor Bezpieczeństwa Hydraulicznego */
.rk-loop-status-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.rk-loop-status-card.success {
    border-color: var(--rk-loop-green);
    background: var(--rk-loop-green-light);
}

.rk-loop-status-card.danger {
    border-color: var(--rk-loop-red);
    background: var(--rk-loop-red-light);
}

.rk-loop-indicator-svg {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
}

.rk-loop-summary-info {
    flex: 1;
}

.rk-loop-summary-info .status-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-loop-dark);
    margin-bottom: 4px;
}

.rk-loop-summary-info .status-desc {
    font-size: 14px;
    color: #475569;
    line-height: 1.4;
}

/* Blok dynamicznych wyliczeń i opisu */
.rk-loop-dynamic-text {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-loop-dynamic-text h3 {
    margin: 0 0 12px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-loop-dynamic-text p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

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

/* Dolna sekcja z opisem i CTA */
.rk-loop-footer-cta {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-loop-dark) 0%, #1e293b 100%);
    text-align: center;
}

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

.rk-loop-cta-desc {
    font-size: 15px;
    color: #94a3b8;
    max-width: 650px;
    margin: 0 auto 25px auto;
    line-height: 1.6;
}

.rk-btn-loop-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-loop-blue);
    color: #ffffff;
    font-size: 17px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-loop-massive:hover {
    transform: translateY(-3px);
    background: #0369a1;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-loop-header { padding: 30px 20px; }
    .rk-loop-workspace { grid-template-columns: 1fr; }
    .rk-loop-inputs-panel { padding: 25px 20px; border-right: none; border-bottom: 1px solid var(--rk-loop-border); }
    .rk-loop-analysis-panel { padding: 25px 20px; }
    .rk-loop-status-card { flex-direction: column; text-align: center; padding: 20px; }
    .rk-loop-footer-cta { padding: 35px 20px; }
    .rk-btn-loop-massive { width: 100%; padding: 16px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Jak obliczyć długość pętli podłogówki bez błędów w hydraulice?",
    "description": "Zasady obliczania długości wężownic ogrzewania podłogowego. Dowiedz się, dlaczego granica 100 metrów chroni instalację przed krytycznymi oporami.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-hydraulika",
    "name": "Graniczne limity oporów hydraulicznych rurociągów PEX 16mm",
    "description": "Zbiór danych technicznych dotyczących zależności liniowych długości obwodu grzewczego od narostu oporów miejscowych i liniowych (limit 20 kPa).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "ile rury na m² ogrzewania podłogowego",
      "rozdzielacz do podłogówki kluczowy element",
      "za długa pętla podłogówki",
      "zrównoważenie hydrauliczne instalacji"
    ],
    "measurementTechnique": "Modelowanie matematyczne przepływów i strat ciśnienia płynu grzewczego w przewodach polietylenowych PEX-Al-PEX 16x2 mm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalny obwód: 100 metrów bieżących (wliczając podejścia zasilania i powrotu do rozdzielacza).",
        "Granica strat ciśnienia: Straty liniowe i miejscowe nie powinny przekraczać progu 20 kPa (200 mbar)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-hydraulika",
    "name": "Symulator Przekroczeń Hydraulicznych Wężownic Podłogowych",
    "description": "Interaktywny algorytm sprawdzający liniowy i geometryczny dobór długości rury grzewczej i generujący ostrzeżenia o konieczności podziału sekcji rozdzielacza.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="hydraulic-loop-block">
    <div class="rk-loop-header">
        <h2>Jak obliczyć długość pętli podłogówki bez błędów w hydraulice?</h2>
        <p>Maksymalna długość pojedynczej pętli ogrzewania podłogowego dla rury o średnicy 16 mm wynosi <strong>100 metrów bieżących</strong> wraz z odcinkami doprowadzającymi (podejściami) do rozdzielacza. Zasada ta wynika z ograniczeń oporów hydraulicznych, które dla rury PEX 16x2 mm przy optymalnym przepływie nie powinny przekraczać wartości <strong>20 kPa (200 mbar)</strong>. Przekroczenie tej granicy blokuje hydrauliczną regulację instalacji.</p>
    </div>

    <div class="rk-loop-workspace">
        <div class="rk-loop-inputs-panel">
            <div class="rk-loop-group">
                <label class="rk-loop-label" for="rkLoopInpArea">Powierzchnia pola grzewczego</label>
                <div class="rk-loop-slider-box">
                    <input type="range" class="rk-loop-range" id="rkLoopInpArea" min="5" max="35" step="1" value="15">
                    <span class="rk-loop-val-badge" id="rkLoopLabelArea">15 m²</span>
                </div>
            </div>

            <div class="rk-loop-group">
                <label class="rk-loop-label">Planowany rozstaw rur</label>
                <div class="rk-loop-spacing-select">
                    <button class="rk-loop-spacing-btn" data-multiplier="10" id="btnSpacing10">Gęsty strefowy (co 10 cm) — 10 m/m²</button>
                    <button class="rk-loop-spacing-btn active" data-multiplier="6.7" id="btnSpacing15">Standardowy bytowy (co 15 cm) — 6.7 m/m²</button>
                    <button class="rk-loop-spacing-btn" data-multiplier="5" id="btnSpacing20">Rzadki ekonomiczny (co 20 cm) — 5 m/m²</button>
                </div>
            </div>

            <div class="rk-loop-group">
                <label class="rk-loop-label" for="rkLoopInpDist">Odległość do rozdzielacza</label>
                <div class="rk-loop-slider-box">
                    <input type="range" class="rk-loop-range" id="rkLoopInpDist" min="1" max="25" step="1" value="5">
                    <span class="rk-loop-val-badge" id="rkLoopLabelDist">5 m</span>
                </div>
            </div>
        </div>

        <div class="rk-loop-analysis-panel">
            <div class="rk-loop-status-card success" id="rkLoopStatusCard">
                <div class="rk-loop-indicator-svg" id="rkLoopIconBox">
                    <svg viewBox="0 0 24 24" fill="none" stroke="var(--rk-loop-green)" stroke-width="2.5" id="svgIconSuccess" style="display: block; width: 100%; height: 100%;"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg>
                    <svg viewBox="0 0 24 24" fill="none" stroke="var(--rk-loop-red)" stroke-width="2.5" id="svgIconDanger" style="display: none; width: 100%; height: 100%;"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
                </div>
                <div class="rk-loop-summary-info">
                    <div class="status-title" id="rkLoopTxtStatus">Bezpieczny przepływ liniowy</div>
                    <div class="status-desc" id="rkLoopTxtDesc">Opory hydrauliczne obwodu mieszczą się w normatywnym limicie do 20 kPa. Standardowa pompa obiegowa bez problemu przetłoczy wodę.</div>
                </div>
            </div>

            <div class="rk-loop-dynamic-text">
                <h3 id="rkLoopTxtCalculated">Całkowity obwód: 110.5 metra</h3>
                <p id="rkLoopTxtExplanation">Dla pokoju o metrażu 15 m² i rozstawie rur co 15 cm, zapotrzebowanie na rurę wynosi średnio 6,7 metra bieżącego na każdy metr kwadratowy, co daje 100,5 metra samej wężownicy. Dodając do tego odległość do rozdzielacza (2 × 5 metrów podejść), otrzymujemy wynik 110,5 metra. Taki obwód należy bezwzględnie podzielić na dwie równe pętle po ok. 55 metrów, co zredukuje opory hydrauliczne o ponad połowę i zapewni idealne zrównoważenie przepływów.</p>
            </div>
        </div>
    </div>

    <div class="rk-loop-footer-cta">
        <h3 class="rk-loop-cta-title">Błędy w obliczeniach pętli oznaczają konieczność kucia posadzek</h3>
        <p class="rk-loop-cta-desc">Gdy instalator ułoży zbyt długi obwód (np. 130 metrów), opór hydrauliczny rośnie wykładniczo, woda schładza się przed końcem pętli, a pomieszczenie pozostaje permanentnie niedogrzane. Nie pozwól na montaż "na oko".</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-loop-massive">
            Zleć Wykonanie Obliczeń Inżynierskich
            <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const inpArea = document.getElementById('rkLoopInpArea');
    const inpDist = document.getElementById('rkLoopInpDist');
    const lblArea = document.getElementById('rkLoopLabelArea');
    const lblDist = document.getElementById('rkLoopLabelDist');
    
    const spacingBtns = document.querySelectorAll('.rk-loop-spacing-select button');
    const statusCard = document.getElementById('rkLoopStatusCard');
    const iconSuccess = document.getElementById('svgIconSuccess');
    const iconDanger = document.getElementById('svgIconDanger');
    
    const txtStatus = document.getElementById('rkLoopTxtStatus');
    const txtDesc = document.getElementById('rkLoopTxtDesc');
    const txtCalculated = document.getElementById('rkLoopTxtCalculated');
    const txtExplanation = document.getElementById('rkLoopTxtExplanation');

    let currentMultiplier = 6.7;

    // Przełączanie wariantów rozstawu
    spacingBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            spacingBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentMultiplier = parseFloat(this.getAttribute('data-multiplier'));
            calculateHydraulicStatus();
        });
    });

    function calculateHydraulicStatus() {
        const area = parseFloat(inpArea.value);
        const dist = parseFloat(inpDist.value);

        // Aktualizacja etykiet suwaków
        lblArea.innerText = area + " m²";
        lblDist.innerText = dist + " m";

        // Wyliczenie długości
        const coilLength = parseFloat((area * currentMultiplier).toFixed(1));
        const leadsLength = dist * 2;
        const totalLength = parseFloat((coilLength + leadsLength).toFixed(1));

        txtCalculated.innerText = "Całkowity obwód: " + totalLength + " metra";

        // Sprawdzenie kryterium inżynierskiego (limit 100m wg PN-EN 1264)
        if (totalLength <= 100) {
            statusCard.className = "rk-loop-status-card success";
            iconSuccess.style.display = "block";
            iconDanger.style.display = "none";
            txtStatus.innerText = "Bezpieczny przepływ liniowy";
            txtDesc.innerText = "Opory hydrauliczne obwodu mieszczą się w normatywnym limicie do 20 kPa. Standardowa pompa obiegowa bez problemu przetłoczy wodę.";
            
            txtExplanation.innerHTML = "Dla wybranego pomieszczenia o powierzchni " + area + " m² rura w wężownicy zajmuje " + coilLength + " metrów. Dodając odległość do rozdzielacza (" + leadsLength + " m podeść w obie strony), zamykasz się w " + totalLength + " metrach. Taki obwód ułożony na jednej sekcji gwarantuje prawidłowe <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>zbalansowanie hydrauliczne</a> systemu bez strat energii.";
        } else {
            statusCard.className = "rk-loop-status-card danger";
            iconSuccess.style.display = "none";
            iconDanger.style.display = "block";
            txtStatus.innerText = "Krytyczne opory hydrauliczne!";
            txtDesc.innerText = "Przekroczenie bariery 100 metrów drastycznie podnosi straty ciśnienia powyżej 20 kPa. Ta sekcja grozi permanentnym niedogrzaniem strefowym.";
            
            const splitLoops = (totalLength / 2).toFixed(1);
            txtExplanation.innerHTML = "Uwaga: Całkowity wynik " + totalLength + " metra przekracza bezpieczną barierę inżynierską. Aby instalacja działała wydajnie, obwód ten należy bezwzględnie rozbić na <strong>dwie niezależne pętle</strong> po ok. " + splitLoops + " metra każda. Taki podział zredukuje opory o ponad połowę i uchroni Cię przed wadami, jakie generuje <a href='https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/'>za długa pętla podłogówki</a>. Pamiętaj, aby uwzględnić to, dobierając odpowiedni <a href='https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/'>rozdzielacz do podłogówki</a>.";
        }
    }

    inpArea.addEventListener('input', calculateHydraulicStatus);
    inpDist.addEventListener('input', calculateHydraulicStatus);

    // Pierwsze uruchomienie
    calculateHydraulicStatus();
});
</script>



<style>
:root {
    --rk-cons-dark: #0f172a;
    --rk-cons-blue: #0284c7;
    --rk-cons-blue-light: #f0f9ff;
    --rk-cons-red: #ef4444;
    --rk-cons-red-light: #fef2f2;
    --rk-cons-amber: #f59e0b;
    --rk-cons-border: #e2e8f0;
    --rk-cons-text: #334155;
    --rk-cons-muted: #64748b;
}

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

.rk-cons-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-cons-border);
}

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

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

/* Panel Interaktywnego Symulatora Usterek */
.rk-cons-workspace {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #fafafa;
}

/* Selektor awarii (pionowy stos) */
.rk-cons-menu {
    padding: 25px;
    background: #ffffff;
    border-right: 1px solid var(--rk-cons-border);
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Wypycha widget na dół */
    gap: 20px;
}

.rk-cons-btn-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-cons-menu-btn {
    width: 100%;
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-cons-border);
    background: #f8fafc;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-cons-menu-btn.active {
    background: var(--rk-cons-red-light);
    border-color: var(--rk-cons-red);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.05);
}

.rk-cons-btn-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-cons-muted);
    transition: all 0.3s;
    flex-shrink: 0;
}

.rk-cons-menu-btn.active .rk-cons-btn-dot {
    background: var(--rk-cons-red);
    transform: scale(1.3);
}

.rk-cons-btn-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-cons-dark);
}

/* Widget Długi Ogon - Lewa Kolumna Dół */
.rk-cons-sidebar-widget {
    background: var(--rk-cons-blue-light);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 20px;
}

.rk-cons-widget-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-cons-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 12px 0;
}

.rk-cons-widget-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-cons-widget-list li {
    font-size: 13px;
    line-height: 1.4;
    position: relative;
    padding-left: 15px;
}

.rk-cons-widget-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--rk-cons-blue);
    font-weight: bold;
}

.rk-cons-widget-list a {
    color: var(--rk-cons-text);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}

.rk-cons-widget-list a:hover {
    color: var(--rk-cons-blue);
    text-decoration: underline;
}

/* Ekran Wizualizacji i Monitora Danych */
.rk-cons-display {
    padding: 35px;
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    gap: 25px;
}

/* Panel Diagnostyczny SVG */
.rk-cons-monitor-box {
    background: #ffffff;
    border: 1px solid var(--rk-cons-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.rk-cons-gauge-wrapper {
    width: 120px;
    height: 120px;
    flex-shrink: 0;
}

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

.dial-pointer {
    transform-origin: 50px 50px;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    transform: rotate(0deg);
}

.rk-cons-metrics {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-cons-metric-card {
    background: #f8fafc;
    border: 1px solid var(--rk-cons-border);
    border-radius: 10px;
    padding: 12px 15px;
}

.rk-cons-metric-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-cons-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.rk-cons-metric-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cons-dark);
}

.rk-cons-metric-value.danger {
    color: var(--rk-cons-red);
}

/* Blok opisu tekstowego */
.rk-cons-text-card {
    background: #ffffff;
    border: 1px solid var(--rk-cons-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-cons-text-card h3 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cons-dark);
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-cons-header { padding: 30px 20px; }
    .rk-cons-workspace { grid-template-columns: 1fr; }
    .rk-cons-menu { border-right: none; border-bottom: 1px solid var(--rk-cons-border); padding: 20px; }
    .rk-cons-display { padding: 25px 20px; }
    .rk-cons-monitor-box { flex-direction: column; text-align: center; padding: 20px; gap: 20px; }
    .rk-cons-metrics { width: 100%; grid-template-columns: 1fr; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-konsekwencje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Jakie są konsekwencje braku projektu instalacji ogrzewania podłogowego?",
    "description": "Analiza awarii i strat finansowych wynikających z montażu podłogówki bez obliczeń: niedogrzanie łazienek, koszty kucia jastrychu i marnowanie energii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-konsekwencje",
    "name": "Koszty awaryjne i odchylenia temperatur HVAC",
    "description": "Zbiór danych techniczno-ekonomicznych obrazujących finansowe skutki błędów instalacyjnych: wydatki na kucie betonu, wzrost zużycia energii o 40% oraz niedogrzanie strefowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "konsekwencje braku projektu podłogówki",
      "za długa pętla podłogówki",
      "pękanie wylewki ogrzewanie podłogowe",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "objawy zapowietrzenia ogrzewania podłogowego"
    ],
    "measurementTechnique": "Kompilacja danych kosztorysowych i odchyleń temperatur posadzki na podstawie rzeczywistych ekspertyz inżynierskich HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Usterka hydrauliczna: Koszt naprawy po wylaniu posadzek wynosi od 30 000 do 80 000 PLN.",
        "Marnowanie energii: Praca na parametrach awaryjnych zwiększa zużycie prądu przez pompę o 40%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-konsekwencje",
    "name": "Interaktywny Panel Diagnostyki Wad Hydraulicznych",
    "description": "Moduł symulacyjny obrazujący odchylenia temperatur normatywnych i generowane straty finansowe w przypadku zaniechania obliczeń inżynierskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cons-container" id="consequences-simulator-block">
    <div class="rk-cons-header">
        <h2>Jakie są konsekwencje braku projektu instalacji ogrzewania podłogowego?</h2>
        <p>Najgroźniejszą konsekwencją braku projektu jest trwała usterka hydrauliczna objawiająca się niedogrzaniem pomieszczeń, której usunięcie po wykonaniu wylewek kosztuje od <strong>30 000 PLN</strong> do nawet <strong>80 000 PLN</strong>. Zgodnie z danymi technicznymi, wadliwie zbalansowany system bez obliczonych nastaw wstępnych na rotametrach zużywa do <strong>40% więcej energii</strong>, pracując na parametrach awaryjnych.</p>
    </div>

    <div class="rk-cons-workspace">
        <div class="rk-cons-menu" id="consMenuList">
            <div class="rk-cons-btn-group">
                <button class="rk-cons-menu-btn active" data-index="1" data-angle="45" data-l1="Wymagane: 24°C" data-v1="Realne: 19-20°C" data-l2="Skutek finansowy" data-v2="Dogrzewanie elektryczne">
                    <div class="rk-cons-btn-dot"></div>
                    <div class="rk-cons-btn-text">1. Niedogrzanie łazienek</div>
                </button>
                <button class="rk-cons-menu-btn" data-index="2" data-angle="-45" data-l1="Wymagane: 18°C" data-v1="Realne: Przegrzewanie" data-l2="Komfort dobowy" data-v2="Zła jakość snu">
                    <div class="rk-cons-btn-dot"></div>
                    <div class="rk-cons-btn-text">2. Przegrzewanie sypialni</div>
                </button>
                <button class="rk-cons-menu-btn" data-index="3" data-angle="90" data-l1="Dopuszczalna pow." data-v1="Powyżej 40 m²" data-l2="Koszt kucia posadzki" data-v2="30 000 - 80 000 PLN">
                    <div class="rk-cons-btn-dot"></div>
                    <div class="rk-cons-btn-text">3. Pękanie jastrychu</div>
                </button>
            </div>

            <div class="rk-cons-sidebar-widget">
                <h4 class="rk-cons-widget-title">Diagnostyka Pokrewna</h4>
                <ul class="rk-cons-widget-list">
                    <li><a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Najczęstsze błędy przy montażu ogrzewania podłogowego</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">Wady wodnego ogrzewania podłogowego</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">Objawy zapowietrzenia ogrzewania podłogowego</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">Próba szczelności ogrzewania podłogowego</a></li>
                </ul>
            </div>
        </div>

        <div class="rk-cons-display">
            <div class="rk-cons-monitor-box">
                <div class="rk-cons-gauge-wrapper">
                    <svg class="rk-cons-svg-dial" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="40" fill="none" stroke="#e2e8f0" stroke-width="6"/>
                        <path d="M 21.7 78.3 A 40 40 0 1 1 78.3 78.3" fill="none" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                        <g class="dial-pointer" id="consDialPointer" style="transform: rotate(45deg);">
                            <polygon points="50,15 46,50 54,50" fill="var(--rk-cons-dark)"/>
                            <circle cx="50" cy="50" r="5" fill="#ffffff" stroke="var(--rk-cons-dark)" stroke-width="2"/>
                        </g>
                    </svg>
                </div>
                
                <div class="rk-cons-metrics">
                    <div class="rk-cons-metric-card">
                        <div class="rk-cons-metric-label" id="lblMetric1">Wymg. Temperatura</div>
                        <div class="rk-cons-metric-value" id="valMetric1">Wymagane: 24°C</div>
                    </div>
                    <div class="rk-cons-metric-card">
                        <div class="rk-cons-metric-label" id="lblMetric2">Skutek finansowy</div>
                        <div class="rk-cons-metric-value danger" id="valMetric2">Dogrzewanie elektryczne</div>
                    </div>
                </div>
            </div>

            <div class="rk-cons-text-card">
                <div id="consDescriptionTarget">
                    <h3>Niedogrzanie łazienek</h3>
                    <p>Łazienka wymaga temperatury wewnętrznej 24°C (zgodnie z rozporządzeniem Ministra Infrastruktury). Bez projektu instalatorzy układają tam rury tak samo jak w salonie (co 15 cm), co przy ograniczonej powierzchni podłogi (pomniejszonej o brodzik czy wannę) pozwala uzyskać maksymalnie 19-20°C. Wybiera się wtedy rozwiązanie ratunkowe: dogrzewanie grzałkami elektrycznymi, generujące ogromne koszty eksploatacyjne. Często powodem jest też <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>, która wychładza się przed końcem obiegu.</p>
                </div>
            </div>
        </div>
    </div>

    <div style="display: none;" id="consDataStorage">
        <div id="cons-txt-1">
            <h3>Niedogrzanie łazienek</h3>
            <p>Łazienka wymaga temperatury wewnętrznej 24°C (zgodnie z rozporządzeniem Ministra Infrastruktury). Bez projektu instalatorzy układają tam rury tak samo jak w salonie (co 15 cm), co przy ograniczonej powierzchni podłogi (pomniejszonej o brodzik czy wannę) pozwala uzyskać maksymalnie 19-20°C. Wybiera się wtedy rozwiązanie ratunkowe: dogrzewanie grzałkami elektrycznymi, generujące ogromne koszty eksploatacyjne. Często powodem jest też <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>, która wychładza się przed końcem obiegu.</p>
        </div>
        <div id="cons-txt-2">
            <h3>Przegrzewanie sypialni</h3>
            <p>Pomieszczenia nocne wymagają stabilnej temperatury na poziomie 18°C. Brak precyzyjnych obliczeń cieplnych skutkuje ułożeniem nadmiernej ilości rur przez instalatorów pracujących bez dokumentacji, co wywołuje permanentne przegrzewanie i złą jakość snu mieszkańców. Prawidłowe zbalansowanie i podział na strefy grzewcze gwarantuje tylko rzetelne określenie geometrii pętli, co opisujemy w poradniku: <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>.</p>
        </div>
        <div id="cons-txt-3">
            <h3>Pękanie jastrychu i okładzin podłogowych</h3>
            <p>Brak wyznaczonych stref dylatacyjnych w projekcie (wymaganych bezwzględnie przy powierzchniach powyżej 40 m² lub długości boku pomieszczenia powyżej 8 m) prowadzi do niekontrolowanych pęknięć wylewki betonowej lub anhydrytowej pod wpływem ciągłej rozszerzalności termicznej, bezpowrotnie niszcząc drogie okładziny. Przed wylewkami sprawdź koniecznie, jak powinna wyglądać prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja brzegowa i dylatacje</a>, by uniknąć katastrofalnych naprężeń mechanicznych.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const menuBtns = document.querySelectorAll('.rk-cons-menu-btn');
    const pointer = document.getElementById('consDialPointer');
    const valMetric1 = document.getElementById('valMetric1');
    const valMetric2 = document.getElementById('valMetric2');
    const descTarget = document.getElementById('consDescriptionTarget');

    menuBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Przełączanie klas aktywności przycisków
            menuBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobieranie danych z atrybutów przycisku
            const index = this.getAttribute('data-index');
            const angle = this.getAttribute('data-angle');
            const v1 = this.getAttribute('data-v1');
            const v2 = this.getAttribute('data-v2');

            // Animacja obrotu wskazówki SVG
            pointer.style.transform = `rotate(${angle}deg)`;

            // Aktualizacja pól tekstowych metryk diagnostycznych
            valMetric1.innerText = v1;
            valMetric2.innerText = v2;

            // Zmiana etykiety opisu dla kroku 3 (Specyfika jastrychu)
            const lbl1 = document.getElementById('lblMetric1');
            if(index === "3") {
                lbl1.innerText = "Próg dylatacji";
            } else {
                lbl1.innerText = "Status termiczny";
            }

            // Podmiana głównego bloku opisu z ukrytego magazynu HTML
            const localSource = document.getElementById(`cons-txt-${index}`);
            if (localSource) {
                descTarget.innerHTML = localSource.innerHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-blue: #0284c7;
    --rk-tbl-blue-light: #f0f9ff;
    --rk-tbl-border: #e2e8f0;
    --rk-tbl-text: #334155;
    --rk-tbl-muted: #64748b;
    --rk-tbl-green: #10b981;
    --rk-tbl-green-light: #h1fdf4;
}

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

.rk-tbl-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-tbl-border);
}

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

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

/* Moduł Interaktywny */
.rk-tbl-workspace {
    padding: 35px 50px 40px;
    background: #f8fafc;
}

/* Selektor Wariantów (Widok Przełączników) */
.rk-tbl-selector-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}

.rk-tbl-tab-btn {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rk-tbl-tab-btn:hover {
    background: #f1f5f9;
    border-color: var(--rk-tbl-muted);
}

.rk-tbl-tab-btn.active {
    background: var(--rk-tbl-blue);
    border-color: var(--rk-tbl-blue);
    box-shadow: 0 8px 20px -6px rgba(2, 132, 199, 0.3);
}

.rk-tbl-tab-label {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-tbl-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-tbl-tab-btn.active .rk-tbl-tab-label {
    color: rgba(255,255,255,0.8);
}

.rk-tbl-tab-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
}

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

/* Tabela Główna (Desktop) */
.rk-tbl-desktop-wrapper {
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-matrix-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.rk-matrix-table th {
    background: #ffffff;
    padding: 20px;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-tbl-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--rk-tbl-border);
}

.rk-matrix-table td {
    padding: 20px;
    font-size: 15px;
    color: var(--rk-tbl-text);
    border-bottom: 1px solid var(--rk-tbl-border);
    line-height: 1.5;
}

.rk-matrix-table tr:last-child td {
    border-bottom: none;
}

.rk-matrix-table td.param-name {
    font-weight: 800;
    color: var(--rk-tbl-dark);
    background: #fafafa;
    width: 25%;
}

/* Dynamiczne podświetlanie kolumn */
.col-highlight {
    transition: background-color 0.3s ease;
}

tr:hover .col-highlight {
    background-color: var(--rk-tbl-blue-light);
}

.rk-matrix-table td.active-col {
    background-color: linear-gradient(0deg, rgba(2,132,199,0.05) 0%, rgba(2,132,199,0.02) 100%) !important;
    font-weight: 700;
}

/* Widok Mobilny (Kafelki zamiast poziomej tabeli) */
.rk-tbl-mobile-cards {
    display: none;
    flex-direction: column;
    gap: 16px;
}

.rk-tbl-mobile-card {
    background: #ffffff;
    border: 1px solid var(--rk-tbl-border);
    border-radius: 16px;
    padding: 24px;
    display: none;
    animation: rkTblFade 0.4s ease forwards;
}

.rk-tbl-mobile-card.active {
    display: block;
}

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

.rk-tbl-mobile-card h3 {
    margin: 0 0 20px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-tbl-blue);
    border-bottom: 1px solid var(--rk-tbl-border);
    padding-bottom: 10px;
}

.rk-mobile-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}

.rk-mobile-row:last-child {
    margin-bottom: 0;
}

.rk-mobile-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-tbl-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-mobile-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
}

.rk-tbl-mobile-card a {
    color: var(--rk-tbl-blue);
    text-decoration: underline;
    font-weight: 700;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-tbl-header { padding: 30px 20px; }
    .rk-tbl-workspace { padding: 20px; }
    .rk-tbl-selector-tabs { flex-direction: column; gap: 8px; }
    .rk-tbl-tab-btn { padding: 12px 16px; }
    .rk-tbl-desktop-wrapper { display: none; }
    .rk-tbl-mobile-cards { display: flex; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Parametry techniczne ogrzewania podłogowego – Porównanie rozwiązań",
    "description": "Zestawienie fizyczne i wykonawcze jastrychów anhydrytowych oraz betonowych. Poznaj minimalne grubości wylewek, przewodność cieplną i bezwładność termiczną.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-parametry",
    "name": "Baza Właściwości Termofizycznych Jastrychów Grzewczych",
    "description": "Porównanie charakterystyki przewodzenia ciepła, grubości konstrukcyjnych i czasów reakcji dla systemów mokrych ogrzewania podłogowego wg PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe",
      "rozstaw rur w ogrzewaniu podłogowym",
      "grubosc wylewki na ogrzewanie podlogowe",
      "czym jest system mokry w ogrzewaniu",
      "niska temperatura zasilania pompy ciepla"
    ],
    "measurementTechnique": "Dane laboratoryjno-normatywne wyznaczone na podstawie procedur badawczych określonych w europejskiej normie emisyjnej PN-EN 1264-2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wylewka anhydrytowa: Przewodność 1.6 - 1.8 W/(m·K), minimalna grubość nad rurą od 20 mm, krótki czas reakcji.",
        "Jastrych betonowy: Przewodność 1.2 - 1.4 W/(m·K), wymagana grubość nad rurą min. 45 mm, wysoka akumulacja."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-parametry",
    "name": "Interaktywny Komparator Jastrychów Posadzkowych",
    "description": "Narzędzie do porównywania parametrów fizycznych i dopasowania typu posadzki grzewczej do planowanego źródła ciepła w budownictwie WT2021.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="technical-matrix-block">
    <div class="rk-tbl-header">
        <h2>Parametry techniczne ogrzewania podłogowego – Porównanie rozwiązań</h2>
        <p>Poniższe zestawienie przedstawia kluczowe parametry techniczne instalacji ogrzewania podłogowego w zależności od rodzaju zastosowanej wylewki oraz wybranego rozstawu rur grzewczych. Dane oparto na rygorystycznych wytycznych normy <strong>PN-EN 1264</strong>.</p>
    </div>

    <div class="rk-tbl-workspace">
        <div class="rk-tbl-selector-tabs" id="matrixSelectorBox">
            <button class="rk-tbl-tab-btn active" data-index="1">
                <span class="rk-tbl-tab-label">Wariant A</span>
                <span class="rk-tbl-tab-title">Anhydryt (Rozstaw 10 cm)</span>
            </button>
            <button class="rk-tbl-tab-btn" data-index="2">
                <span class="rk-tbl-tab-label">Wariant B</span>
                <span class="rk-tbl-tab-title">Anhydryt (Rozstaw 15 cm)</span>
            </button>
            <button class="rk-tbl-tab-btn" data-index="3">
                <span class="rk-tbl-tab-label">Wariant C</span>
                <span class="rk-tbl-tab-title">Beton (Rozstaw 15 cm)</span>
            </button>
            <button class="rk-tbl-tab-btn" data-index="4">
                <span class="rk-tbl-tab-label">Wariant D</span>
                <span class="rk-tbl-tab-title">Beton (Rozstaw 20 cm)</span>
            </button>
        </div>

        <div class="rk-tbl-desktop-wrapper">
            <table class="rk-matrix-table" id="rkTechMatrixTable">
                <thead>
                    <tr>
                        <th>Parametr techniczny</th>
                        <th class="col-highlight col-1">Anhydryt (co 10 cm)</th>
                        <th class="col-highlight col-2">Anhydryt (co 15 cm)</th>
                        <th class="col-highlight col-3">Beton (co 15 cm)</th>
                        <th class="col-highlight col-4">Beton (co 20 cm)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class="param-name">Minimalna grubość nad rurą</td>
                        <td class="col-1"><strong>20 mm</strong></td>
                        <td class="col-2"><strong>25 mm</strong></td>
                        <td class="col-3"><strong>45 mm</strong></td>
                        <td class="col-4"><strong>50 mm</strong></td>
                    </tr>
                    <tr>
                        <td class="param-name">Przewodność cieplna (lambda)</td>
                        <td class="col-1"><strong>1,6 - 1,8 W/(m·K)</strong></td>
                        <td class="col-2"><strong>1,6 - 1,8 W/(m·K)</strong></td>
                        <td class="col-3"><strong>1,2 - 1,4 W/(m·K)</strong></td>
                        <td class="col-4"><strong>1,2 - 1,4 W/(m·K)</strong></td>
                    </tr>
                    <tr>
                        <td class="param-name">Max. wydajność (powierzchnia 29°C)</td>
                        <td class="col-1"><strong>100 W/m²</strong></td>
                        <td class="col-2"><strong>78 W/m²</strong></td>
                        <td class="col-3"><strong>65 W/m²</strong></td>
                        <td class="col-4"><strong>48 W/m²</strong></td>
                    </tr>
                    <tr>
                        <td class="param-name">Bezwładność cieplna (czas reakcji)</td>
                        <td class="col-1">ok. 1,5 - 2 godziny</td>
                        <td class="col-2">ok. 2 - 2,5 godziny</td>
                        <td class="col-3">ok. 4 - 5 godzin</td>
                        <td class="col-4">ok. 5 - 6 godzin</td>
                    </tr>
                    <tr>
                        <td class="param-name">Rekomendowane źródło ciepła</td>
                        <td class="col-1">Pompa ciepła (niskotemperaturowa)</td>
                        <td class="col-2">Pompa ciepła / Kocioł gazowy</td>
                        <td class="col-3">Kocioł gazowy / Pompa ciepła</td>
                        <td class="col-4">Kocioł gazowy / Kocioł na pellet</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rk-tbl-mobile-cards" id="rkTblMobileCardsContainer">
            <div class="rk-tbl-mobile-card active" id="m-card-1">
                <h3>Wylewka anhydrytowa (rozstaw rur 10 cm)</h3>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Minimalna grubość nad rurą:</span>
                    <span class="rk-mobile-value">20 mm</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Przewodność cieplna:</span>
                    <span class="rk-mobile-value">1,6 - 1,8 W/(m·K)</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Max. wydajność cieplna:</span>
                    <span class="rk-mobile-value">100 W/m²</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Czas reakcji systemu:</span>
                    <span class="rk-mobile-value">ok. 1,5 - 2 godziny</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Dedykowane źródło:</span>
                    <span class="rk-mobile-value">Certyfikowana <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> (niskotemperaturowa)</span>
                </div>
            </div>

            <div class="rk-tbl-mobile-card" id="m-card-2">
                <h3>Wylewka anhydrytowa (rozstaw rur 15 cm)</h3>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Minimalna grubość nad rurą:</span>
                    <span class="rk-mobile-value">25 mm</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Przewodność cieplna:</span>
                    <span class="rk-mobile-value">1,6 - 1,8 W/(m·K)</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Max. wydajność cieplna:</span>
                    <span class="rk-mobile-value">78 W/m²</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Czas reakcji systemu:</span>
                    <span class="rk-mobile-value">ok. 2 - 2,5 godziny</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Dedykowane źródło:</span>
                    <span class="rk-mobile-value">Pompa ciepła / Kondensacyjny <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a></span>
                </div>
            </div>

            <div class="rk-tbl-mobile-card" id="m-card-3">
                <h3>Jastrych betonowy (rozstaw rur 15 cm)</h3>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Minimalna grubość nad rurą:</span>
                    <span class="rk-mobile-value">45 mm</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Przewodność cieplna:</span>
                    <span class="rk-mobile-value">1,2 - 1,4 W/(m·K)</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Max. wydajność cieplna:</span>
                    <span class="rk-mobile-value">65 W/m²</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Czas reakcji systemu:</span>
                    <span class="rk-mobile-value">ok. 4 - 5 godzin</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Dedykowane źródło:</span>
                    <span class="rk-mobile-value">Kocioł gazowy / Klasyczna pompa obiegowa. Zobacz jak zachowuje się <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewka na ogrzewanie podłogowe</a> typu tradycyjnego.</span>
                </div>
            </div>

            <div class="rk-tbl-mobile-card" id="m-card-4">
                <h3>Jastrych betonowy (rozstaw rur 20 cm)</h3>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Minimalna grubość nad rurą:</span>
                    <span class="rk-mobile-value">50 mm</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Przewodność cieplna:</span>
                    <span class="rk-mobile-value">1,2 - 1,4 W/(m·K)</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Max. wydajność cieplna:</span>
                    <span class="rk-mobile-value">48 W/m²</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Czas reakcji systemu:</span>
                    <span class="rk-mobile-value">ok. 5 - 6 godzin</span>
                </div>
                <div class="rk-mobile-row">
                    <span class="rk-mobile-label">Dedykowane źródło:</span>
                    <span class="rk-mobile-value">Kocioł gazowy / Ekonomiczny <a href="https://projekt-ogrzewania.pl/kociol-na-pellet/">kocioł na pellet</a>. Zweryfikuj optymalny <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur w ogrzewaniu podłogowym</a> dla uniknięcia pętli awaryjnych.</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-tbl-tab-btn');
    const tableCells = document.querySelectorAll('#rkTechMatrixTable td, #rkTechMatrixTable th');
    const mobileCards = document.querySelectorAll('.rk-tbl-mobile-card');

    function highlightColumn(index) {
        // Usuwanie starych podświetleń z tabeli desktopowej
        tableCells.forEach(cell => {
            cell.style.backgroundColor = '';
            cell.style.fontWeight = '';
        });

        // Dodawanie podświetlenia dla wybranej kolumny (index od 1 do 4)
        const activeCells = document.querySelectorAll(`#rkTechMatrixTable .col-${index}`);
        activeCells.forEach(cell => {
            if(cell.tagName === 'TD' && !cell.classList.contains('param-name')) {
                cell.style.backgroundColor = 'var(--rk-tbl-blue-light)';
            }
        });
    }

    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            tabBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

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

            // Akcja Desktop
            highlightColumn(index);

            // Akcja Mobile
            mobileCards.forEach(card => card.classList.remove('active'));
            document.getElementById(`m-card-${index}`).classList.add('active');
        });
    });

    // Inicjalne podświetlenie pierwszej kolumny na starcie
    highlightColumn(1);
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #e0f2fe;
    --rk-calc-bg-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
    --rk-calc-green: #10b981;
    --rk-calc-green-light: #dcfce7;
}

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

.rk-calc-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-calc-border);
}

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

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

/* Moduł roboczy kalkulatora */
.rk-calc-workspace {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-calc-bg-light);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Panel wejściowy (lewa strona) */
.rk-calc-inputs-sidebar {
    padding: 40px;
    background: #ffffff;
    border-right: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-calc-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-calc-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

.rk-calc-slider-container {
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-calc-range {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 6px;
    border-radius: 3px;
    background: var(--rk-calc-border);
    outline: none;
}

.rk-calc-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    transition: transform 0.1s;
}

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

.rk-calc-number-box {
    width: 80px;
    padding: 8px 12px;
    border: 1px solid var(--rk-calc-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    text-align: center;
    background: var(--rk-calc-bg-light);
}

/* Panel wynikowy (prawa strona) */
.rk-calc-results-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
}

.rk-calc-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 14px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-calc-res-card.highlight {
    border-color: var(--rk-calc-green);
    background: var(--rk-calc-green-light);
}

.rk-calc-svg-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
}

.rk-calc-res-info h4 {
    margin: 0 0 4px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-calc-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-calc-res-info .value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
}

/* Sekcja opisu kroków algorytmu pod kalkulatorem */
.rk-calc-steps-details {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-calc-border);
}

.rk-calc-steps-details h3 {
    margin: 0 0 25px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

.rk-calc-step-row {
    margin-bottom: 30px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-step-row:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.rk-calc-step-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-blue);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-calc-formula-badge {
    display: inline-block;
    background: var(--rk-calc-bg-light);
    border: 1px solid var(--rk-calc-border);
    padding: 8px 16px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
}

.rk-calc-step-row a {
    color: var(--rk-calc-blue);
    text-decoration: underline;
    font-weight: 700;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header { padding: 30px 20px; }
    .rk-calc-workspace { grid-template-columns: 1fr; }
    .rk-calc-inputs-sidebar { padding: 25px 20px; border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-calc-results-display { padding: 25px 20px; }
    .rk-calc-steps-details { padding: 30px 20px; }
    .rk-calc-res-card { padding: 15px; gap: 15px; }
    .rk-calc-res-info .value { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Kalkulator ogrzewania podłogowego – Algorytm obliczeniowy krok po kroku",
    "description": "Profesjonalny inżynierski algorytm obliczeniowy instalacji podłogowej. Wyznacz projektowe obciążenie cieplne, gęstość strumienia oraz wymagany przepływ wody.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-kalkulator",
    "name": "Stałe fizyczne algorytmu hydraulicznego PN-EN 1264",
    "description": "Zestaw stałych obliczeniowych dla wody: ciepło właściwe 1.163 Wh/(kg·K), narzut bezpieczeństwa obciążenia 1.15, normatywny spadek temperatury deltaT = 5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kompleksowy kalkulator ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "norma obliczeń ogrzewania podłogowego en 1264",
      "spadek temperatury instalacji",
      "rotametr wskaźnik przepływu"
    ],
    "measurementTechnique": "Wyliczenia matematyczne bilansu cieplno-przepływowego stref grzewczych na podstawie zmiennych dynamicznych wprowadzanych przez użytkownika.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciepło właściwe wody: 1.163 Wh/(kg·K) stosowane do wyznaczenia strumienia masowego.",
        "Współczynnik korekcyjny: 1.15 podnoszący bazowe straty przenikania i wentylacji do wartości projektowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Przepływów Hydraulicznych HVAC",
    "description": "Aplikacja obliczeniowa służąca do symulacji gęstości strumienia cieplnego oraz pożądanych nastaw rotometrów w litrach na minutę.",
    "applicationCategory": "ComputationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="hydraulic-calculator-block">
    <div class="rk-calc-header">
        <h2>Kalkulator ogrzewania podłogowego – Algorytm obliczeniowy krok po kroku</h2>
        <p>Projektowanie instalacji ogrzewania podłogowego opiera się na ścisłym algorytmie matematyczno-fizycznym, determinowanym przez normę <strong>PN-EN 1264</strong>. Poniżej znajduje się inżynierski opis procedury obliczeniowej wraz z kalkulatorem, który pozwala wyznaczyć kluczowe parametry hydrauliczne dla pojedynczego pomieszczenia.</p>
    </div>

    <div class="rk-calc-workspace">
        <div class="rk-calc-inputs-sidebar">
            <div class="rk-calc-group">
                <label class="rk-calc-label" for="inpLosses">Straty ciepła pokoju (Q_tr + Q_v)</label>
                <div class="rk-calc-slider-container">
                    <input type="range" class="rk-calc-range" id="inpLosses" min="200" max="2500" step="50" value="1000">
                    <span class="rk-calc-number-box" id="valLosses">1000 W</span>
                </div>
            </div>
            <div class="rk-calc-group">
                <label class="rk-calc-label" for="inpArea">Aktywna powierzchnia grzewcza (A_g)</label>
                <div class="rk-calc-slider-container">
                    <input type="range" class="rk-calc-range" id="inpArea" min="5" max="50" step="1" value="20">
                    <span class="rk-calc-number-box" id="valArea">20 m²</span>
                </div>
            </div>
            <div class="rk-calc-group">
                <label class="rk-calc-label" for="inpDelta">Schłodzenie czynnika (Spadek temperatury ΔT)</label>
                <div class="rk-calc-slider-container">
                    <input type="range" class="rk-calc-range" id="inpDelta" min="3" max="8" step="1" value="5">
                    <span class="rk-calc-number-box" id="valDelta">5 K</span>
                </div>
            </div>
        </div>

        <div class="rk-calc-results-display">
            <div class="rk-calc-res-card">
                <svg class="rk-calc-svg-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-calc-blue)" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                <div class="rk-calc-res-info">
                    <h4>Obciążenie projektowe (Q_obl)</h4>
                    <div class="value" id="resQobl">1150 W</div>
                </div>
            </div>
            
            <div class="rk-calc-res-card">
                <svg class="rk-calc-svg-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-calc-blue)" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"></rect><path d="M9 3v18M15 3v18M3 9h18M3 15h18"></path></svg>
                <div class="rk-calc-res-info">
                    <h4>Gęstość strumienia (q)</h4>
                    <div class="value" id="resFlux">57.5 W/m²</div>
                </div>
            </div>

            <div class="rk-calc-res-card highlight">
                <svg class="rk-calc-svg-icon" viewBox="0 0 24 24" fill="none" stroke="var(--rk-calc-green)" stroke-width="2"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path></svg>
                <div class="rk-calc-res-info">
                    <h4>Nastawa na rotometrze (m)</h4>
                    <div class="value" id="resFlow" style="color: var(--rk-calc-green);">3.3 l/min</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-calc-steps-details">
        <h3>Opis procedury obliczeniowej</h3>
        
        <div class="rk-calc-step-row">
            <div class="rk-calc-step-title">Krok 1: Wyznaczenie projektowego obciążenia cieplnego (Q_obl)</div>
            <p>W pierwszym kroku obliczamy realne zapotrzebowanie pomieszczenia na ciepło, uwzględniając straty przez przenikanie oraz wentylację, powiększone o współczynnik bezpieczeństwa. Wszystkie te elementy uwzględnia profesjonalny <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projekt obciążenia cieplnego OZC</a>.</p>
            <div class="rk-calc-formula-badge">Wzór: Q_obl = (Q_tr + Q_v) * 1.15</div>
        </div>

        <div class="rk-calc-step-row">
            <div class="rk-calc-step-title">Krok 2: Obliczenie gęstości strumienia cieplnego (q)</div>
            <p>Gęstość strumienia cieplnego to ilość mocy grzewczej, jaką musi oddać jeden metr kwadratowy podłogi grzewczej, aby pokryć straty ciepła. Powierzchnia ta (A_g) jest pomniejszana o stałą zabudowę (np. wyspy kuchenne), co szczegółowo omawiamy w artykule opisującym <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">miejsca, gdzie nie należy układać ogrzewania podłogowego</a>.</p>
            <div class="rk-calc-formula-badge">Wzór: q = Q_obl / A_g</div>
        </div>

        <div class="rk-calc-step-row">
            <div class="rk-calc-step-title">Krok 3: Wyznaczenie przepływu masowego czynnika (m)</div>
            <p>Przepływ masowy określa, ile wody grzewczej musi przepłynąć przez wężownicę w ciągu godziny, aby dostarczyć wymaganą moc przy założonym schłodzeniu czynnika (ΔT). Uzyskany przepływ w litrach na minutę jest kluczowy dla instalatora – to właśnie tę wartość ustawia się na rotometrach rozdzielacza, co ułatwia nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">kompleksowy kalkulator ogrzewania podłogowego</a>.</p>
            <div class="rk-calc-formula-badge">Wzór: m = Q_obl / (c_w * ΔT)</div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const inpLosses = document.getElementById('inpLosses');
    const inpArea = document.getElementById('inpArea');
    const inpDelta = document.getElementById('inpDelta');

    const valLosses = document.getElementById('valLosses');
    const valArea = document.getElementById('valArea');
    const valDelta = document.getElementById('valDelta');

    const resQobl = document.getElementById('resQobl');
    const resFlux = document.getElementById('resFlux');
    const resFlow = document.getElementById('resFlow');

    const cw = 1.163; // Ciepło właściwe wody Wh/(kg·K)

    function calculateHydraulics() {
        const losses = parseFloat(inpLosses.value);
        const area = parseFloat(inpArea.value);
        const deltaT = parseFloat(inpDelta.value);

        // Aktualizacja etykiet tekstowych suwaków
        valLosses.innerText = losses + " W";
        valArea.innerText = area + " m²";
        valDelta.innerText = deltaT + " K";

        // Krok 1: Q_obl
        const qObl = Math.round(losses * 1.15);
        resQobl.innerText = qObl + " W";

        // Krok 2: q
        const flux = (qObl / area).toFixed(1);
        resFlux.innerText = flux + " W/m²";

        // Krok 3: Przepływ masowy i przeliczenie na l/min
        // m_kg_h = Q_obl / (c_w * deltaT)
        // l_min = m_kg_h / 60
        const massFlowKgH = qObl / (cw * deltaT);
        const flowLMin = (massFlowKgH / 60).toFixed(1);
        resFlow.innerText = flowLMin + " l/min";
    }

    inpLosses.addEventListener('input', calculateHydraulics);
    inpArea.addEventListener('input', calculateHydraulics);
    inpDelta.addEventListener('input', calculateHydraulics);

    // Inicjalizacja pierwszego wyliczenia
    calculateHydraulics();
});
</script>



<style>
:root {
    --rk-opt-dark: #0f172a;
    --rk-opt-blue: #0284c7;
    --rk-opt-blue-light: #e0f2fe;
    --rk-opt-bg-light: #f8fafc;
    --rk-opt-border: #e2e8f0;
    --rk-opt-text: #334155;
    --rk-opt-muted: #64748b;
    --rk-opt-green: #10b981;
}

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

.rk-opt-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-opt-border);
}

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

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

/* Interaktywny Moduł Flowchart i Zawartości */
.rk-opt-workspace {
    padding: 40px 50px;
    background: var(--rk-opt-bg-light);
}

/* Graficzny łańcuch projektowy (Desktop) */
.rk-opt-flowchart-desktop {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-opt-border);
}

.rk-opt-flow-node {
    flex: 1;
    background: var(--rk-opt-bg-light);
    border: 1px solid var(--rk-opt-border);
    border-radius: 10px;
    padding: 12px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-opt-flow-node.active {
    background: var(--rk-opt-blue);
    border-color: var(--rk-opt-blue);
}

.rk-opt-flow-node.active .rk-opt-node-title {
    color: #ffffff;
}

.rk-opt-node-step {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-opt-muted);
    margin-bottom: 4px;
    letter-spacing: 0.5px;
}

.rk-opt-flow-node.active .rk-opt-node-step {
    color: rgba(255, 255, 255, 0.8);
}

.rk-opt-node-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-opt-dark);
    line-height: 1.3;
}

.rk-opt-flow-arrow {
    display: flex;
    align-items: center;
    color: var(--rk-opt-muted);
    flex-shrink: 0;
}

/* Panele z opisami technicznymi */
.rk-opt-content-box {
    background: #ffffff;
    border: 1px solid var(--rk-opt-border);
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 25px -15px rgba(0,0,0,0.05);
}

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

.rk-opt-panel.active {
    display: block;
    animation: rkOptFadeIn 0.4s ease forwards;
}

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

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

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

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

.rk-opt-panel li {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-opt-text);
    margin-bottom: 12px;
}

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

.rk-opt-panel a:hover {
    color: #0369a1;
}

/* Układ Mobilny - Harmonijka / Akordeon zastępujący flowchart */
.rk-opt-accordion-mobile {
    display: none;
    flex-direction: column;
    gap: 12px;
}

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

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

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

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

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

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

.rk-btn-opt-action:hover svg {
    transform: translateX(5px);
}

@media (max-width: 768px) {
    .rk-opt-header { padding: 30px 20px; }
    .rk-opt-workspace { padding: 20px; }
    .rk-opt-flowchart-desktop { display: none; }
    .rk-opt-content-box { display: none; }
    
    .rk-opt-accordion-mobile { display: flex; }
    
    .rk-opt-acc-item {
        background: #ffffff;
        border: 1px solid var(--rk-opt-border);
        border-radius: 12px;
        overflow: hidden;
    }
    
    .rk-opt-acc-trigger {
        width: 100%;
        background: transparent;
        border: none;
        padding: 16px 20px;
        text-align: left;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .rk-opt-acc-trigger .rk-opt-node-title {
        font-size: 15px;
    }
    
    .rk-opt-acc-icon {
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #f1f5f9;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.3s;
    }
    
    .rk-opt-acc-item.active .rk-opt-acc-icon {
        transform: rotate(180deg);
        background: var(--rk-opt-blue);
        color: #ffffff;
    }
    
    .rk-opt-acc-content {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease-out;
    }
    
    .rk-opt-acc-body {
        padding: 0 20px 20px 20px;
        border-top: 1px solid #f1f5f9;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-opt-text);
    }
    
    .rk-opt-acc-body h3 {
        font-size: 16px;
        margin: 15px 0 10px 0;
        font-weight: 800;
    }
    
    .rk-opt-acc-body p {
        margin-bottom: 10px;
    }

    .rk-opt-cta-box { padding: 35px 20px; }
    .rk-btn-opt-action { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-optymalizacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Jak to wpływa na projekt ogrzewania podłogowego? Optymalizacja parametrów budowlanych",
    "description": "Fizyka budowli i instalacje sanitarne a projektowanie podłogówki. Poznaj wpływ obliczeń OZC, grubości styropianu oraz rekuperacji na hydraulikę instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-optymalizacja",
    "name": "Macierz Zależności Projektowych HVAC WT2021",
    "description": "Zbiór danych technicznych odzwierciedlających wpływ izolacji termicznej gruntu oraz odzysku ciepła z wentylacji mechanicznej na końcowe opory hydrauliczne pętli grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "ile styropianu pod ogrzewanie podłogowe",
      "rekuperacja i ogrzewanie podłogowe",
      "projektowe obciążenie cieplne ozc",
      "kalkulator doboru pompy obiegowej"
    ],
    "measurementTechnique": "Algorytm symulacyjny oporów hydraulicznych i przenikania ciepła w oparciu o wytyczne normy PN-EN 1264-4 oraz PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Izolacja: Wymóg minimalny oporu cieplnego R_ins = 1.25 m²·K/W przy gruncie.",
        "Wentylacja: Redukcja strat wentylacyjnych o 75-85% dzięki zastosowaniu rekuperacji zmienia zapotrzebowanie na moc wężownic."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-optymalizacja",
    "name": "Interaktywny Schemat Kaskady Projektowej HVAC",
    "description": "Narzędzie inżynierskie wizualizujące przełożenie fizyki budowli na parametry robocze wężownic ogrzewania podłogowego i punkt pracy pompy obiegowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-opt-container" id="parameter-optimizer-block">
    <div class="rk-opt-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego? Optymalizacja parametrów budowlanych</h2>
        <p>Wszystkie decyzje dotyczące fizyki budowli i pozostałych instalacji sanitarnych mają bezpośrednie, zwrotne przełożenie na projekt techniczny. System podłogowy nie istnieje w próżni; jest on finalnym emiterem energii, którego konfiguracja zależy od izolacji termicznej, konstrukcji posadzki oraz sposobu wentylacji budynku.</p>
    </div>

    <div class="rk-opt-workspace">
        <div class="rk-opt-flowchart-desktop" id="rkOptFlowchart">
            <div class="rk-opt-flow-node active" data-step="1">
                <div class="rk-opt-node-step">Krok 1</div>
                <div class="rk-opt-node-title">Obliczenia OZC</div>
            </div>
            <div class="rk-opt-flow-arrow">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </div>
            <div class="rk-opt-flow-node" data-step="2">
                <div class="rk-opt-node-step">Krok 2</div>
                <div class="rk-opt-node-title">Izolacja Gruntu</div>
            </div>
            <div class="rk-opt-flow-arrow">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </div>
            <div class="rk-opt-flow-node" data-step="3">
                <div class="rk-opt-node-step">Krok 3</div>
                <div class="rk-opt-node-title">Wpływ Rekuperacji</div>
            </div>
            <div class="rk-opt-flow-arrow">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </div>
            <div class="rk-opt-flow-node" data-step="4">
                <div class="rk-opt-node-step">Krok 4</div>
                <div class="rk-opt-node-title">Dobór Pompy</div>
            </div>
        </div>

        <div class="rk-opt-content-box" id="rkOptContentBox">
            <div class="rk-opt-panel active" id="opt-panel-1">
                <h3>Kompleksowe obliczenia OZC (Norma PN-EN 12831)</h3>
                <p>Punktem wyjścia dla każdego projektu instalacji grzewczej jest dokładne określenie zapotrzebowania budynku na energię cieplną. Wyznaczenie dokładnych strat ciepła pozwala uniknąć przewymiarowania źródła energii i jest bazą do obliczania parametrów hydraulicznych pętli.</p>
                <p>Rzetelnie wykonany projekt określa zbieżność zapotrzebowania cieplnego poszczególnych stref z ograniczeniami emisyjnymi płaszczyzny podłogi. Zobacz szczegóły w artykule: <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
            </div>
            
            <div class="rk-opt-panel" id="opt-panel-2">
                <h3>Grubość styropianu pod podłogówką a straty do gruntu</h3>
                <p>Zastosowanie odpowiedniej grubości izolacji termicznej pod rurami grzewczymi jest fundamentalne. Zgodnie z normą PN-EN 1264-4, opór cieplny izolacji pod elementem grzejnym w przypadku stropu nad przestrzenią nieogrzewaną lub gruntu musi wynosić minimum R_ins = 1.25 m²·K/W. W praktyce oznacza to konieczność użycia twardego styropianu (np. EPS 100 lub XPS) o łącznej grubości minimum 15 cm (układanego warstwowo, np. 10 cm + 5 cm z przesunięciem szwów w celu eliminacji mostków termicznych).</p>
                <p>Zmniejszenie tej grubości do 10 cm drastycznie zmienia wektor ucieczki ciepła. Podłogówka zamiast emitować energię w górę do pomieszczenia, zaczyna intensywnie grzać grunt pod budynkiem. Mostki termiczne na łączeniach płyt mogą generować straty ciepła w dół na poziomie nawet 15-20 W/m². Wpływa to bezpośrednio na projekt instalacji: projektant, widząc wyższe straty do gruntu, zmuszony jest zagęścić rozstaw rur lub podnieść temperaturę zasilania pompy ciepła, co bezpowrotnie obniża jej efektywność. Przeczytaj więcej o tym, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> należy zastosować w Twoim przypadku.</p>
            </div>

            <div class="rk-opt-panel" id="opt-panel-3">
                <h3>Wpływ rekuperacji na bilans cieplny i projekt pętli</h3>
                <p>Montaż wentylacji mechanicznej z odzyskiem ciepła (rekuperacji) radykalnie obniża zapotrzebowanie na moc grzewczą budynku, redukując straty wentylacyjne o 75-85%. Dla nowoczesnego domu oznacza to spadek całkowitego zapotrzebowania na ciepło o około 20-30 W/m².</p>
                <p>W kontekście projektu ogrzewania podłogowego obecność rekuperacji pozwala na:</p>
                <ul>
                    <li>Rozrzedzenie rozstawu rur w strefach bytowych z 10 cm do 15 cm, co generuje oszczędności na materiale (rura PEX, klipsy tackera).</li>
                    <li>Zmniejszenie liczby sekcji w rozdzielaczu, ponieważ mniejsze zapotrzebowanie na ciepło pozwala na projektowanie dłuższych pętli przy zachowaniu niskich oporów hydraulicznych.</li>
                    <li>Całkowitą zmianę bilansu cieplnego pomieszczeń o dużej kubaturze (np. salon z antresolą), gdzie rekuperacja zapobiega stagnacji ciepłego powietrza pod sufitem, eliminując konieczność przewymiarowywania pętli podłogowych w tych strefach. Dowiedz się czy <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> to opłacalny duet.</li>
                </ul>
            </div>

            <div class="rk-opt-panel" id="opt-panel-4">
                <h3>Dobór pompy ciepła i optymalizacja hydrauliczna</h3>
                <p>Projekt ogrzewania podłogowego jest dokumentem wyjściowym do prawidłowego doboru mocy pompy ciepła oraz parametrów jej pompy obiegowej. Dopiero po zsumowaniu mocy wszystkich pętli grzewczych oraz obliczeniu całkowitego strumienia objętościowego wody (przepływu masowego) znamy dokładny punkt pracy urządzenia.</p>
                <p>Jeśli z projektu wynika, że budynek przy temperaturze zewnętrznej -20°C potrzebuje 7,5 kW mocy grzewczej, a opory hydrauliczne najdłuższej pętli wraz z rozdzielaczem i rurociągami tranzytowymi wynoszą 24 kPa, dobiera się pompę ciepła o precyzyjnie dopasowanej krzywej grzewczej. Brak tych danych skutkuje dwojakim błędem: montażem pompy o zbyt dużej mocy (częste taktowanie, szybkie zużycie sprężarki) lub wyborem pompy ze zbyt słabą zintegrowaną pompą obiegową, co zmusza inwestora do montażu dodatkowego sprzęgła hydraulicznego i zewnętrznej pompy obiegowej, podnosząc koszt kotłowni o kolejne 2500 PLN. Skorzystaj z wiedzy i użyj <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowego/">kalkulatora doboru pompy obiegowej</a> dla optymalizacji hydrauliki.</p>
            </div>
        </div>

        <div class="rk-opt-accordion-mobile" id="rkOptAccordionMobile">
            <div class="rk-opt-acc-item active">
                <button class="rk-opt-acc-trigger">
                    <div class="rk-opt-node-title">Krok 1: Obliczenia OZC</div>
                    <div class="rk-opt-acc-icon">
                        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-opt-acc-content" style="max-height: 500px;">
                    <div class="rk-opt-acc-body">
                        <h3>Kompleksowe obliczenia OZC (Norma PN-EN 12831)</h3>
                        <p>Punktem wyjścia dla każdego projektu instalacji grzewczej jest dokładne określenie zapotrzebowania budynku na energię cieplną. Wyznaczenie dokładnych strat ciepła pozwala uniknąć przewymiarowania źródła energii i jest bazą do obliczania parametrów hydraulicznych pętli.</p>
                        <p>Rzetelnie wykonany projekt określa zbieżność zapotrzebowania cieplnego poszczególnych stref z ograniczeniami emisyjnymi płaszczyzny podłogi. Zobacz szczegóły w artykule: <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
                    </div>
                </div>
            </div>

            <div class="rk-opt-acc-item">
                <button class="rk-opt-acc-trigger">
                    <div class="rk-opt-node-title">Krok 2: Izolacja styropianowa</div>
                    <div class="rk-opt-acc-icon">
                        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-opt-acc-content">
                    <div class="rk-opt-acc-body">
                        <h3>Grubość styropianu pod podłogówką a straty do gruntu</h3>
                        <p>Zkonfigurowany opór cieplny izolacji pod elementem grzejnym w przypadku stropu nad gruntem musi wynosić minimum R_ins = 1.25 m²·K/W (Norma PN-EN 1264-4). W praktyce oznacza to twardy styropian EPS 100 o grubości minimum 15 cm.</p>
                        <p>Zmniejszenie grubości do 10 cm drastycznie przekierowuje strumień energii w grunt (straty rzędu 15-20 W/m²). Projektant zmuszony jest wtedy zagęścić rozstaw rur lub podnieść parametry temperaturowe zasilania. Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a>.</p>
                    </div>
                </div>
            </div>

            <div class="rk-opt-acc-item">
                <button class="rk-opt-acc-trigger">
                    <div class="rk-opt-node-title">Krok 3: Wpływ Rekuperacji</div>
                    <div class="rk-opt-acc-icon">
                        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-opt-acc-content">
                    <div class="rk-opt-acc-body">
                        <h3>Wpływ rekuperacji na bilans cieplny i projekt pętli</h3>
                        <p>Rekuperacja redukuje straty wentylacyjne o 75-85%, co obniża całkowite zapotrzebowanie budynku o ok. 20-30 W/m².</p>
                        <p>W projekcie instalacji podłogowej pozwala to na bezpieczne rozrzedzenie rur z 10 cm do 15 cm w strefach bytowych, ograniczenie sekcji w rozdzielaczu oraz optymalne zrównoważenie pomieszczeń o dużej kubaturze z antresolami. Sprawdź: <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a>.</p>
                    </div>
                </div>
            </div>

            <div class="rk-opt-acc-item">
                <button class="rk-opt-acc-trigger">
                    <div class="rk-opt-node-title">Krok 4: Pompa i Hydraulika</div>
                    <div class="rk-opt-acc-icon">
                        <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-opt-acc-content">
                    <div class="rk-opt-acc-body">
                        <h3>Dobór pompy ciepła i optymalizacja hydrauliczna</h3>
                        <p>Suma mocy pętli oraz obliczony przepływ masowy definiują precyzyjny punkt pracy pompy obiegowej. Jeśli opory hydrauliczne najdłuższej sekcji wynoszą np. 24 kPa przy obciążeniu projektowym 7,5 kW (dla temperatury zewnętrznej -20°C), dobiera się precyzyjną krzywą grzewczą.</p>
                        <p>Brak obliczeń grozi taktowaniem sprężarki bądź koniecznością montażu dodatkowego sprzęgła hydraulicznego i zewnętrznej pompy, co podwyższa koszt inwestycji o kolejne 2500 PLN. Sprawdź <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowego/">kalkulator doboru pompy obiegowej</a>.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
    
    <div class="rk-opt-cta-box">
        <h3 class="rk-opt-cta-title">Fizyka budynku nie wybacza błędów w hydraulice</h3>
        <p class="rk-opt-cta-text">
            Nie zgaduj, czy Twoja pompa ciepła poradzi sobie z ucieczką energii do gruntu. Zamień ryzyko na twarde obliczenia inżynierskie i zyskaj idealnie zoptymalizowany system na lata.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-opt-action">
            ZAMÓW PROJEKT I ZOPTYMALIZUJ KOSZTY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const nodes = document.querySelectorAll('.rk-opt-flow-node');
    const panels = document.querySelectorAll('.rk-opt-panel');

    nodes.forEach(node => {
        node.addEventListener('click', function() {
            nodes.forEach(n => n.classList.remove('active'));
            this.classList.add('active');

            const step = this.getAttribute('data-step');
            panels.forEach(p => p.classList.remove('active'));
            document.getElementById(`opt-panel-${step}`).classList.add('active');
        });
    });

    const accItems = document.querySelectorAll('.rk-opt-acc-item');

    accItems.forEach(item => {
        const trigger = item.querySelector('.rk-opt-acc-trigger');
        const content = item.querySelector('.rk-opt-acc-content');

        trigger.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            accItems.forEach(i => {
                i.classList.remove('active');
                i.querySelector('.rk-opt-acc-content').style.maxHeight = null;
            });

            if (!isActive) {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #dc2626;
    --rk-err-red-light: #fef2f2;
    --rk-err-amber: #d97706;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
    --rk-err-blue: #0284c7;
}

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

.rk-err-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

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

.rk-err-header p {
    font-size: 16px;
    color: var(--rk-err-gray);
    line-height: 1.6;
    margin: 0;
}

/* Interaktywny Panel Diagnostyczny */
.rk-err-diagnostic-panel {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #fafafa;
}

/* Selektor błędów (lewa strona) */
.rk-err-selector-list {
    padding: 25px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

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

.rk-err-menu-btn:hover {
    background: #f1f5f9;
    border-color: var(--rk-err-gray);
}

.rk-err-menu-btn.active {
    background: var(--rk-err-red-light);
    border-color: var(--rk-err-red);
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.05);
}

.rk-err-btn-num {
    font-size: 12px;
    font-weight: 800;
    background: #e2e8f0;
    color: var(--rk-err-dark);
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

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

.rk-err-btn-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-dark);
    line-height: 1.3;
}

/* Ekran Wizualizacji Tekstowej (prawa strona) */
.rk-err-display-screen {
    padding: 35px 40px;
    display: flex;
    align-items: flex-start;
    background: #f8fafc;
}

.rk-err-content-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 35px 30px;
    width: 100%;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    border-top: 4px solid var(--rk-err-red);
}

/* Animacja podmiany tekstu */
.rk-anim-fade-in {
    animation: fadeSlideIn 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes fadeSlideIn {
    0% { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Bloki Opisowe */
.rk-err-description-block h3 {
    margin: 0 0 15px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-err-red);
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.rk-err-description-block h3 svg {
    flex-shrink: 0;
    margin-top: 2px;
}

.rk-err-description-block p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
}

.rk-err-description-block a {
    color: var(--rk-err-blue);
    text-decoration: underline;
    font-weight: 700;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-err-description-block a:hover {
    color: #0369a1;
}

/* Tagi SEO (Ukryte) */
.rk-err-hidden-meta {
    display: none;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-header { padding: 30px 20px; }
    .rk-err-diagnostic-panel { grid-template-columns: 1fr; }
    .rk-err-selector-list { border-right: none; border-bottom: 1px solid var(--rk-err-border); padding: 20px; }
    .rk-err-display-screen { padding: 25px 20px; }
    .rk-err-content-card { padding: 25px 20px; }
    .rk-err-description-block h3 { font-size: 18px; }
    .rk-err-description-block p { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Najczęstsze błędy wykonawcze wynikające z braku dokumentacji projektowej",
    "description": "Analiza inżynierska krytycznych błędów montażowych podłogówki: brak dylatacji, mieszanie rur i blokowanie emisji ciepła przez stałą zabudowę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-bledy",
    "name": "Metryka awaryjności jastrychów grzewczych",
    "description": "Baza danych fizycznych konsekwencji błędów wykonawczych: wydłużenie liniowe betonu, współczynniki sztywności rur, parametry deformacji termicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażu ogrzewania podłogowego",
      "dylatacje ogrzewania podłogowego",
      "pękanie jastrychu podłogówki",
      "gdzie nie układać podłogówki",
      "awaria ogrzewania podłogowego koszty"
    ],
    "measurementTechnique": "Modelowanie naprężeń termiczno-mechanicznych płyty grzewczej dla wydłużeń liniowych na poziomie 0.5 mm na metr bieżący posadzki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wydłużenie jastrychu: Brak dylatacji niszczy wielkoformatowe gresy w pierwszym sezonie.",
        "Zasłanianie emisji: Układanie rur pod meblami stojącymi bezpośrednio na gruncie marnuje strumień ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-bledy",
    "name": "Interaktywny Symulator Wad Wykonawczych Jastrychu",
    "description": "Aplikacja inżynierska zestawiająca konsekwencje hydrauliczne i budowlane instalacji podłogowej w przypadku pominięcia wytycznych projektu technicznego.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="diagnostic-app-block">
    <div class="rk-err-header">
        <h2>Najczęstsze błędy wykonawcze wynikające z braku dokumentacji projektowej</h2>
        <p>Realizacja instalacji "na oko" przez ekipy wykonawcze bez nadzoru inżynierskiego to prosta droga do katastrofy budowlanej. Brak projektu uniemożliwia weryfikację poprawności prac na poszczególnych etapach technologicznych.</p>
    </div>

    <div class="rk-err-diagnostic-panel">
        <div class="rk-err-selector-list" id="errMenuList">
            <button class="rk-err-menu-btn active" data-error="error1">
                <div class="rk-err-btn-num">1</div>
                <div class="rk-err-btn-text">Brak dylatacji strefowych</div>
            </button>
            <button class="rk-err-menu-btn" data-error="error2">
                <div class="rk-err-btn-num">2</div>
                <div class="rk-err-btn-text">Mieszanie typów materiałów</div>
            </button>
            <button class="rk-err-menu-btn" data-error="error3">
                <div class="rk-err-btn-num">3</div>
                <div class="rk-err-btn-text">Przejścia przez szczeliny</div>
            </button>
            <button class="rk-err-menu-btn" data-error="error4">
                <div class="rk-err-btn-num">4</div>
                <div class="rk-err-btn-text">Zasłanianie stref zabudowy</div>
            </button>
        </div>

        <div class="rk-err-display-screen" id="errDisplayScreen">
            <div class="rk-err-content-card rk-anim-fade-in" id="errContentCard">
                <div class="rk-err-description-block" id="errDescriptionTarget">
                    <h3>
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                        Brak dylatacji strefowych
                    </h3>
                    <p>Wylewka betonowa pod wpływem temperatury rozszerza się liniowo o ok. 0,5 mm na każdy metr. Brak wykonania szczelin dylatacyjnych wokół pomieszczeń oraz w progach drzwiowych skutkuje powstawaniem potężnych naprężeń. Efekt to pękanie jastrychu, odklejanie się wielkoformatowych gresów lub wybrzuszanie paneli podłogowych już w pierwszym sezonie grzewczym. Sprawdź, jak prawidłowo powinna zostać wykonana <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja brzegowa i dylatacje</a> w Twoim domu.</p>
                </div>
            </div>
        </div>
    </div>
    
    <div class="rk-err-hidden-meta" id="errDataStorage">
        <div id="txt-error1">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Brak dylatacji strefowych
            </h3>
            <p>Wylewka betonowa pod wpływem temperatury rozszerza się liniowo o ok. 0,5 mm na każdy metr. Brak wykonania szczelin dylatacyjnych wokół pomieszczeń oraz w progach drzwiowych skutkuje powstawaniem potężnych naprężeń. Efekt to pękanie jastrychu, odklejanie się wielkoformatowych gresów lub wybrzuszanie paneli podłogowych już w pierwszym sezonie grzewczym. Sprawdź, jak prawidłowo powinna zostać wykonana <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacja brzegowa i dylatacje</a> w Twoim domu.</p>
        </div>
        <div id="txt-error2">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Mieszanie materiałów o różnej rozszerzalności
            </h3>
            <p>Układanie w obrębie jednej pętli grzewczej rur różnych producentów lub o różnych parametrach sztywności (np. rury PE-RT bez wkładki aluminiowej połączonej z PEX/AL/PEX) utrudnia prawidłowe zbalansowanie systemu i sprzyja powstawaniem ognisk korozji naprężeniowej na złączkach. Zobacz, jakie są <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu ogrzewania podłogowego</a> i chroń swój budżet przed awarią.</p>
        </div>
        <div id="txt-error3">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Nieprawidłowe przejścia przez szczeliny dylatacyjne
            </h3>
            <p>Rury przechodzące przez dylatacje muszą być bezwzględnie prowadzone w rurach ochronnych (peszlach) o długości minimum 50 cm (25 cm po każdej stronie szczeliny). Instalatorzy bez projektu często ignorują ten wymóg, co przy ruchach pracującej płyty betonowej doprowadza do ścięcia przewodu i spektakularnego wycieku wody pod posadzki. Wybierz sprawdzone rozwiązania, takie jak certyfikowana <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rura PEX do ogrzewania podłogowego</a> z barierą antydyfuzyjną.</p>
        </div>
        <div id="txt-error4">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Zasłanianie stref zabudowy stałej
            </h3>
            <p>Układanie rur pod planowanymi szafami wnękowymi, wyspami kuchennymi czy szafkami stojącymi bezpośrednio na podłodze prowadzi do przegrzewania mebli, zsychana się drewna oraz marnowania energii. Projekt architektoniczny wnętrza musi być bezwzględnie zintegrowany z mapą pętli grzewczych. Przeczytaj szczegółowy poradnik o tym, <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">gdzie nie układać ogrzewania podłogowego</a>, by uniknąć ekranowania strumienia ciepła.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const menuBtns = document.querySelectorAll('.rk-err-menu-btn');
    const contentCard = document.getElementById('errContentCard');
    const descTarget = document.getElementById('errDescriptionTarget');

    menuBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Przełączanie klas aktywności przycisków
            menuBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const errorType = this.getAttribute('data-error');

            // Reset animacji dla płynnego przejścia
            contentCard.classList.remove('rk-anim-fade-in');
            void contentCard.offsetWidth; // Wymuszenie reflow
            contentCard.classList.add('rk-anim-fade-in');

            // Podmiana treści opisu z ukrytego kontenera danych
            const dataSource = document.getElementById(`txt-${errorType}`);
            if (dataSource) {
                descTarget.innerHTML = dataSource.innerHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-blue: #0284c7;
    --rk-cs-blue-light: #f0f9ff;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-muted: #64748b;
    --rk-cs-green: #10b981;
    --rk-cs-green-light: #dcfce7;
    --rk-cs-red: #ef4444;
    --rk-cs-red-light: #fef2f2;
    --rk-cs-gold: #f59e0b;
}

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

/* Sekcja Nagłówkowa */
.rk-cs-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-cs-border);
}

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

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

/* Panel Interaktywnego Studium Przypadku */
.rk-cs-workspace {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #fafafa;
    border-bottom: 1px solid var(--rk-cs-border);
}

/* Selektor Wariantów (Lewa kolumna) */
.rk-cs-menu {
    padding: 25px;
    background: #ffffff;
    border-right: 1px solid var(--rk-cs-border);
    display: flex;
    flex-direction: column;
    gap: 20px; /* Zastąpiono space-between naturalnym odstępem */
}

.rk-cs-btn-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-cs-menu-btn {
    width: 100%;
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-cs-border);
    background: #f8fafc;
    text-align: left;
    cursor: pointer;
}

.rk-cs-menu-btn.active[data-index="1"] {
    background: var(--rk-cs-red-light);
    border-color: var(--rk-cs-red);
}

.rk-cs-menu-btn.active[data-index="2"] {
    background: var(--rk-cs-green-light);
    border-color: var(--rk-cs-green);
}

.rk-cs-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin-bottom: 4px;
}

.rk-cs-btn-subtitle {
    font-size: 12px;
    color: var(--rk-cs-muted);
    font-weight: 600;
}

/* Nowy Widget: Paragon Oszczędności */
.rk-cs-receipt-box {
    background: #ffffff;
    border: 2px dashed var(--rk-cs-green);
    border-radius: 12px;
    padding: 20px;
    position: relative;
    margin-top: 5px;
}

.rk-cs-receipt-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-cs-green);
    color: #ffffff;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 4px 12px;
    border-radius: 999px;
    white-space: nowrap;
}

.rk-cs-receipt-items {
    list-style: none;
    padding: 0;
    margin: 5px 0 12px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-cs-receipt-items li {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--rk-cs-text);
    font-weight: 600;
}

.rk-cs-receipt-items li span {
    font-weight: 900;
    color: var(--rk-cs-green);
}

.rk-cs-receipt-total {
    border-top: 1px solid var(--rk-cs-border);
    padding-top: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-receipt-total span {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-cs-green);
}

/* Widget Nawigacyjny na Długi Ogon */
.rk-cs-sidebar-widget {
    background: var(--rk-cs-blue-light);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 20px;
}

.rk-cs-widget-title {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-cs-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
}

.rk-cs-widget-links {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-cs-widget-links li {
    font-size: 13px;
    line-height: 1.4;
}

.rk-cs-widget-links a {
    color: var(--rk-cs-text);
    text-decoration: none;
    font-weight: 600;
}

.rk-cs-widget-links a:hover {
    color: var(--rk-cs-blue);
    text-decoration: underline;
}

/* Ekran Wyświetlania Danych (Prawa strona) */
.rk-cs-display {
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Panel Metryk i Podsumowań */
.rk-cs-monitor-box {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 30px;
}

.rk-cs-icon-wrapper {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    background: var(--rk-cs-bg-light);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-cs-metrics-grid {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-cs-metric-card {
    background: #f8fafc;
    border: 1px solid var(--rk-cs-border);
    border-radius: 10px;
    padding: 12px 15px;
}

.rk-cs-metric-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--rk-cs-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}

.rk-cs-metric-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

.rk-cs-metric-value.danger { color: var(--rk-cs-red); }
.rk-cs-metric-value.success { color: var(--rk-cs-green); }

/* Karta Opisowa Tekstu */
.rk-cs-text-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 30px;
}

.rk-cs-text-card h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-cs-dark);
}

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

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

/* Baner Promocyjny Premium na Końcu */
.rk-cs-promo-banner {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    text-align: center;
    position: relative;
    border-top: 4px solid var(--rk-cs-gold);
}

.rk-cs-promo-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-cs-gold);
    color: var(--rk-cs-dark);
    padding: 6px 20px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-cs-banner-title {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin: 10px 0;
}

.rk-cs-price-highlight {
    font-size: 18px;
    color: #e2e8f0;
    margin-bottom: 20px;
    font-weight: 600;
}

.rk-cs-price-highlight span {
    font-size: 38px;
    font-weight: 900;
    color: var(--rk-cs-gold);
    display: block;
    margin-top: 5px;
    line-height: 1;
}

.rk-cs-banner-desc {
    font-size: 15px;
    color: #94a3b8;
    max-width: 620px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-cs-banner-desc strong {
    color: #ffffff;
}

.rk-btn-cs-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-cs-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 2px solid transparent;
}

.rk-btn-cs-massive:hover {
    background: #0369a1;
    border-color: #7dd3fc;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-cs-header { padding: 30px 20px; }
    .rk-cs-workspace { grid-template-columns: 1fr; }
    .rk-cs-menu { border-right: none; border-bottom: 1px solid var(--rk-cs-border); padding: 20px; }
    .rk-cs-display { padding: 25px 20px; }
    .rk-cs-monitor-box { flex-direction: column; text-align: center; padding: 20px; gap: 20px; }
    .rk-cs-metrics-grid { width: 100%; grid-template-columns: 1fr; gap: 10px; }
    .rk-cs-promo-banner { padding: 45px 20px 35px; }
    .rk-cs-banner-title { font-size: 20px; }
    .rk-cs-price-highlight span { font-size: 32px; }
    .rk-btn-cs-massive { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Zdaniem Roberta Kucharskiego: Studium przypadku optymalizacji kosztów instalacji 200 m²",
    "description": "Rzeczywiste studium przypadku pani Jadwigi z Poznania. Porównanie kosztów hydraulika szacującego 'na oko' z oszczędnościami z projektu inżynierskiego HVAC.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-casestudy",
    "name": "Zestawienie bilansu materiałowego wężownic PEX",
    "description": "Porównanie zapotrzebowania na rury grzewcze dla budynku 200 m² w oparciu o wskaźnik ryczałtowy (10m/m²) oraz zróżnicowany rozstaw strefowy (10 cm i 15 cm).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile rury na m² ogrzewania podłogowego",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "projektowe obciążenie cieplne ozc",
      "rozdzielacz do podłogówki kluczowy element",
      "błędy montażu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Porównanie ryczałtu wykonawczego z obliczeniami numerycznymi długości przewodów grzewczych w oparciu o geometrię budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szacunek na oko: Płaskie zapotrzebowanie 2000m rury prowadzące do zakupu nadmiarowych obwodów i szafek.",
        "Obliczenia inżynierskie: Realne zużycie 1560m rury, redukcja pętli z 20 do 16, mniejsze rozdzielacze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-casestudy",
    "name": "Interaktywny Analizator Wariantów Materiałowych Case Study",
    "description": "Narzędzie zestawiania kosztów ryczałtowych instalatorów z precyzyjnymi danymi wynikającymi z obliczeń inżynierskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="case-study-block">
    <div class="rk-cs-header">
        <h2>Zdaniem Roberta Kucharskiego: Wydatek czy inwestycja? Analiza kosztów na przykładzie domu 200 m²</h2>
        <p>Aby ostatecznie dowieść, jak potężne znaczenie ma indywidualna dokumentacja techniczna, przeanalizujmy autentyczne studium przypadku pani Jadwigi z Poznania, właścicielki nowo wybudowanego domu o powierzchni użytkowej 200 m².</p>
    </div>

    <div class="rk-cs-workspace">
        <div class="rk-cs-menu" id="csMenuList">
            <div class="rk-cs-btn-group">
                <button class="rk-cs-menu-btn active" data-index="1" data-v1="2000 metrów" data-v2="20 pętli" data-v3="20 sekcji (Duże szafki)" data-v4="Tradycyjny ryczałt">
                    <div class="rk-cs-btn-title">Wycena hydraulika „na oko”</div>
                    <div class="rk-cs-btn-subtitle">Standardowy szablon wykonawcy</div>
                </button>
                <button class="rk-cs-menu-btn" data-index="2" data-v1="1560 metrów" data-v2="16 pętli" data-v3="16 sekcji (Mniejsze szafki)" data-v4="Zbalansowany inżyniersko">
                    <div class="rk-cs-btn-title">Projekt inżynierski OZC</div>
                    <div class="rk-cs-btn-subtitle">Dokładne wyliczenia numeryczne</div>
                </button>
            </div>

            <div class="rk-cs-receipt-box">
                <div class="rk-cs-receipt-badge">Analiza Zysków</div>
                <h4 class="rk-cs-receipt-title">Bilans materiałowy z projektu</h4>
                <ul class="rk-cs-receipt-items">
                    <li>Brak nadmiaru rur <span>+ 1760 zł</span></li>
                    <li>Mniejsze rozdzielacze <span>+ 640 zł</span></li>
                </ul>
                <div class="rk-cs-receipt-total">
                    Zostaje w kieszeni: <span>2400 zł</span>
                </div>
            </div>

            <div class="rk-cs-sidebar-widget">
                <h4 class="rk-cs-widget-title">Powiązane analizy</h4>
                <ul class="rk-cs-widget-links">
                    <li><a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/">Ile rury na m² podłogówki</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">Rola strefy przy oknach</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">Wybór sekcji rozdzielacza</a></li>
                    <li><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Jak obliczamy OZC</a></li>
                </ul>
            </div>
        </div>

        <div class="rk-cs-display">
            <div class="rk-cs-monitor-box">
                <div class="rk-cs-icon-wrapper" id="rkCsStatusIcon">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-cs-red)" stroke-width="2" id="csIconDanger" style="display: block;"><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>
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-cs-green)" stroke-width="2" id="csIconSuccess" style="display: none;"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
                
                <div class="rk-cs-metrics-grid">
                    <div class="rk-cs-metric-card">
                        <div class="rk-cs-metric-label">Długość rury PEX</div>
                        <div class="rk-cs-metric-value danger" id="valCsMetric1">2000 metrów</div>
                    </div>
                    <div class="rk-cs-metric-card">
                        <div class="rk-cs-metric-label">Liczba obwodów</div>
                        <div class="rk-cs-metric-value" id="valCsMetric2">20 pętli</div>
                    </div>
                    <div class="rk-cs-metric-card">
                        <div class="rk-cs-metric-label">Wymóg rozdzielaczy</div>
                        <div class="rk-cs-metric-value" id="valCsMetric3">20 sekcji (Duże szafki)</div>
                    </div>
                    <div class="rk-cs-metric-card">
                        <div class="rk-cs-metric-label">Stan hydrauliki</div>
                        <div class="rk-cs-metric-value" id="valCsMetric4">Tradycyjny ryczałt</div>
                    </div>
                </div>
            </div>

            <div class="rk-cs-text-card">
                <div id="csDescriptionTarget">
                    <h4>Zagrożenie przeszacowaniem materiałowym</h4>
                    <p>Hydraulik wezwany na budowę pani Jadwigi zastosował potoczną metodę mnożenia powierzchni przez ryczałtowe zużycie (10 m rury na każdy m² posadzki). Zsumował całą przestrzeń i nakazał zakup aż 2000 metrów rury. Takie podejście wymusiło podział na 20 obwodów, generując olbrzymie, nadmiarowe koszty u hurtownika i zakup przewymiarowanych rozdzielaczy z szafkami, bez uwzględnienia realnych stref strat ciepła.</p>
                </div>
            </div>
        </div>
    </div>

    <div style="display: none;" id="csDataStorage">
        <div id="cs-txt-1">
            <h4>Zagrożenie przeszacowaniem materiałowym</h4>
            <p>Hydraulik wezwany na budowę pani Jadwigi zastosował potoczną metodę mnożenia powierzchni przez ryczałtowe zużycie (10 m rury na każdy m² posadzki). Zsumował całą przestrzeń i nakazał zakup aż 2000 metrów rury. Takie podejście wymusiło podział na 20 obwodów, generując olbrzymie, nadmiarowe koszty u hurtownika i zakup przewymiarowanych rozdzielaczy z szafkami, bez uwzględnienia realnych stref strat ciepła.</p>
        </div>
        <div id="cs-txt-2">
            <h4>Optymalizacja inżynierska i oszczędności</h4>
            <p>Złożenie zamówienia na projekt techniczny całkowicie zmieniło strukturę kosztów. Przeprowadzone obliczenia wykazały, że łazienki (20 m²) oraz krytyczne strefy przy oknach tarasowych HS (15 m²) wymagają zagęszczonego rozstawu rur co 10 cm. Jednak w pozostałych strefach bytowych (165 m²) w zupełności wystarczył optymalny rozstaw rur co 15 cm. Sumaryczne zużycie rurociągów spadło do 1560 metrów (o 440 m mniej!), co zredukowało liczbę pętli do 16 sekcji. Pani Jadwiga zakupiła mniejsze rozdzielacze i szafki, a instalacja działa bezawaryjnie na najniższych temperaturach roboczych pompy ciepła.</p>
        </div>
    </div>

    <div class="rk-cs-promo-banner">
        <div class="rk-cs-promo-badge">Promocja portalu</div>
        <h3 class="rk-cs-banner-title">Zainwestuj w projekt i zyskaj natychmiastowy zwrot</h3>
        <div class="rk-cs-price-highlight">
            Kompletny projekt techniczny ogrzewania podłogowego
            <span>550 zł za całość</span>
        </div>
        <p class="rk-cs-banner-desc">Historia pani Jadwigi udowadnia, że brak obliczeń to prosta droga do przepłacenia za materiały. Wydając 550 zł na profesjonalny projekt, <strong>zyskujesz średnio 2400 zł realnych oszczędności</strong> na samych rurach i rozdzielaczach. Otrzymujesz pełne obliczenia, rozstaw rur, przepływy oraz kompletną specyfikację do hurtowni.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cs-massive">
            ZAMÓW PROJEKT ZA 550 ZŁ I OSZCZĘDZAJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const menuBtns = document.querySelectorAll('.rk-cs-menu-btn');
    const iconDanger = document.getElementById('csIconDanger');
    const iconSuccess = document.getElementById('csIconSuccess');
    
    const val1 = document.getElementById('valCsMetric1');
    const val2 = document.getElementById('valCsMetric2');
    const val3 = document.getElementById('valCsMetric3');
    const val4 = document.getElementById('valCsMetric4');
    
    const descTarget = document.getElementById('csDescriptionTarget');

    menuBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe usuwanie i dodawanie klas aktywnych bez animacji
            menuBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const index = this.getAttribute('data-index');
            const v1 = this.getAttribute('data-v1');
            const v2 = this.getAttribute('data-v2');
            const v3 = this.getAttribute('data-v3');
            const v4 = this.getAttribute('data-v4');

            // Przypisywanie metryk
            val1.innerText = v1;
            val2.innerText = v2;
            val3.innerText = v3;
            val4.innerText = v4;

            // Zmiana stylów wizualnych w zależności od wariantu
            if (index === "1") {
                iconDanger.style.display = "block";
                iconSuccess.style.display = "none";
                val1.className = "rk-cs-metric-value danger";
                val4.className = "rk-cs-metric-value";
            } else {
                iconDanger.style.display = "none";
                iconSuccess.style.display = "block";
                val1.className = "rk-cs-metric-value success";
                val4.className = "rk-cs-metric-value success";
            }

            // Podmiana zawartości opisu
            const localSource = document.getElementById(`cs-txt-${index}`);
            if (localSource) {
                descTarget.innerHTML = localSource.innerHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-muted: #64748b;
    --rk-auth-bg: #f8fafc;
    --rk-auth-gold: #b45309;
    --rk-auth-gold-light: #fef3c7;
}

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

/* Sekcja Nagłówka z nazwiskiem w H2 */
.rk-auth-header {
    background: var(--rk-auth-dark);
    padding: 35px 50px;
    color: #ffffff;
}

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

.rk-auth-header h2 span {
    color: #38bdf8;
}

/* Główny układ: Profil + Treść */
.rk-auth-workspace {
    display: grid;
    grid-template-columns: 280px 1fr;
}

/* Lewa kolumna: Twarz i Autorytet */
.rk-auth-profile-box {
    padding: 40px 30px;
    background: var(--rk-auth-bg);
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-auth-image-wrapper {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    overflow: hidden;
    margin-bottom: 20px;
}

.rk-auth-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

.rk-auth-role {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 25px;
}

.rk-auth-socials {
    display: flex;
    gap: 15px;
    width: 100%;
    justify-content: center;
}

.rk-auth-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: #ffffff;
    border: 1px solid var(--rk-auth-border);
    border-radius: 8px;
    color: var(--rk-auth-dark);
    text-decoration: none;
}

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

/* Prawa kolumna: Cytat i Interakcja */
.rk-auth-content-box {
    padding: 40px 50px;
}

.rk-auth-quote {
    font-size: 18px;
    line-height: 1.6;
    color: var(--rk-auth-dark);
    font-style: italic;
    font-weight: 600;
    margin: 0 0 30px 0;
    position: relative;
}

.rk-auth-quote::before {
    content: '"';
    font-size: 60px;
    color: var(--rk-auth-blue);
    opacity: 0.2;
    position: absolute;
    top: -20px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

/* Interaktywny Weryfikator (Bez animacji) */
.rk-auth-verifier {
    border: 1px solid var(--rk-auth-border);
    border-radius: 12px;
    overflow: hidden;
}

.rk-auth-verifier-header {
    background: var(--rk-auth-bg);
    padding: 15px 20px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-auth-dark);
    border-bottom: 1px solid var(--rk-auth-border);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-auth-border);
}

.rk-auth-tab-btn {
    flex: 1;
    padding: 15px;
    background: #ffffff;
    border: none;
    border-right: 1px solid var(--rk-auth-border);
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-auth-muted);
    cursor: pointer;
}

.rk-auth-tab-btn:last-child {
    border-right: none;
}

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

.rk-auth-panel {
    display: none;
    padding: 25px;
    background: #ffffff;
}

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

.rk-auth-myth {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-auth-border);
}

.rk-auth-fact {
    display: flex;
    align-items: flex-start;
    gap: 15px;
}

.rk-auth-badge {
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.rk-auth-badge.myth { background: #fee2e2; color: #b91c1c; }
.rk-auth-badge.fact { background: #dcfce7; color: #15803d; }

.rk-auth-text-content {
    flex: 1;
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-auth-header { padding: 25px 20px; }
    .rk-auth-header h2 { font-size: 22px; }
    .rk-auth-workspace { grid-template-columns: 1fr; }
    .rk-auth-profile-box { border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-content-box { padding: 30px 20px; }
    .rk-auth-quote { font-size: 16px; }
    .rk-auth-tabs { flex-direction: column; }
    .rk-auth-tab-btn { border-right: none; border-bottom: 1px solid var(--rk-auth-border); text-align: left; padding: 15px 20px; }
    .rk-auth-myth, .rk-auth-fact { flex-direction: column; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Ostateczny werdykt inżynierski: Czy do ogrzewania podłogowego potrzebny jest projekt? – Robert Kucharski",
    "description": "Autorskie zestawienie faktów i mitów dotyczących projektowania instalacji płaszczyznowych. Ekspert HVAC Robert Kucharski weryfikuje opłacacalność projektów OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "jobTitle": "Inżynier HVAC / CEO",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-ekspert",
    "name": "Baza Inżynierskich Mitów i Faktów HVAC",
    "description": "Zestawienie najczęstszych obiekcji inwestorskich zderzonych z rygorystycznymi wymogami norm PN-EN 1264 oraz fizyką budowli WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "prawidłowy projekt ozc",
      "wycena projektu instalacji grzewczej",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "rozstaw rur w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Weryfikacja obiegowych opinii instalatorskich poprzez zastosowanie wzorów hydraulicznych i kalkulacji przepływów masowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Mit instalatora: Projekt to zbędny papier.",
        "Fakt inżynierski: Bez dokumentacji system działa na parametrach awaryjnych, zużywając do 40% więcej energii w skali roku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-ekspert",
    "name": "Weryfikator Opinii Instalacyjnych",
    "description": "Narzędzie pozwalające na błyskawiczne zderzenie najczęstszych obietnic wykonawczych z bezwzględnymi prawami fizyki i hydrauliki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="expert-verdict-block">
    <div class="rk-auth-header">
        <h2>Ostateczny werdykt: Czy projekt ogrzewania podłogowego to wymóg? <span>Ocenia  Robert Kucharski</span></h2>
    </div>

    <div class="rk-auth-workspace">
        
        <!-- Lewy Panel: Autor i zaufanie (E-E-A-T) -->
        <div class="rk-auth-profile-box">
            <div class="rk-auth-image-wrapper">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC">
            </div>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-role">CEO / Specjalista HVAC</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" title="LinkedIn">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"></path></svg>
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener nofollow" class="rk-auth-social-link" title="Facebook">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"></path></svg>
                </a>
            </div>
        </div>

        <!-- Prawy Panel: Treść ekspercka i narzędzie -->
        <div class="rk-auth-content-box">
            <div class="rk-auth-quote">
                Jako inżynier projektujący instalacje od kilkunastu lat widziałem setki zniszczonych posadzek i zrujnowanych budżetów domowych. Powód zawsze był ten sam: wiara w to, że instalator "wie jak to ułożyć z pamięci". Podłogówka to matematyka, opory hydrauliczne i gęstość strumienia. Fizyki nie da się oszukać doświadczeniem montera.
            </div>

            <div class="rk-auth-verifier">
                <div class="rk-auth-verifier-header">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="var(--rk-auth-blue)" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    Weryfikator obiekcji (Fakty vs Mity)
                </div>
                
                <div class="rk-auth-tabs" id="authTabs">
                    <button class="rk-auth-tab-btn active" data-target="tab1">Obliczenia vs "Na Oko"</button>
                    <button class="rk-auth-tab-btn" data-target="tab2">Rozstaw wężownic</button>
                    <button class="rk-auth-tab-btn" data-target="tab3">Koszty dokumentacji</button>
                </div>

                <div class="rk-auth-panel active" id="tab1">
                    <div class="rk-auth-myth">
                        <div class="rk-auth-badge myth">Zły doradca</div>
                        <div class="rk-auth-text-content">
                            <p>„Zrobiłem 100 domów bez papierka i u wszystkich grzeje. Dobry instalator wie, jak ułożyć rury bez projektu.”</p>
                        </div>
                    </div>
                    <div class="rk-auth-fact">
                        <div class="rk-auth-badge fact">Prawda Inżynierska</div>
                        <div class="rk-auth-text-content">
                            <p>To, że podłoga robi się ciepła, nie znaczy, że system jest zbalansowany. Bez obliczeń <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego OZC</a>, pompa ciepła wymusza wyższe parametry zasilania (aby nadrobić błędy w hydraulice). W skali roku zużywasz do 40% więcej energii. Koszty eksploatacji rosną lawinowo.</p>
                        </div>
                    </div>
                </div>

                <div class="rk-auth-panel" id="tab2">
                    <div class="rk-auth-myth">
                        <div class="rk-auth-badge myth">Zły doradca</div>
                        <div class="rk-auth-text-content">
                            <p>„Wszędzie kładziemy rury co 15 centymetrów i będzie pan zadowolony. Nie ma co kombinować.”</p>
                        </div>
                    </div>
                    <div class="rk-auth-fact">
                        <div class="rk-auth-badge fact">Prawda Inżynierska</div>
                        <div class="rk-auth-text-content">
                            <p>Pokoje mają różne straty ciepła. Stosowanie uniwersalnego rozstawu powoduje przegrzewanie sypialni i ciągłe niedogrzanie łazienek. Prawidłowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym</a> wylicza się na podstawie rygorystycznej normy PN-EN 1264, z podziałem na dedykowane strefy brzegowe.</p>
                        </div>
                    </div>
                </div>

                <div class="rk-auth-panel" id="tab3">
                    <div class="rk-auth-myth">
                        <div class="rk-auth-badge myth">Zły doradca</div>
                        <div class="rk-auth-text-content">
                            <p>„Szkoda wydawać kilkaset złotych na projekt, te pieniądze lepiej dołożyć do lepszych płytek w salonie.”</p>
                        </div>
                    </div>
                    <div class="rk-auth-fact">
                        <div class="rk-auth-badge fact">Prawda Inżynierska</div>
                        <div class="rk-auth-text-content">
                            <p>Profesjonalna <a href="https://projekt-ogrzewania.pl/wycena-projektu-ogrzewania-podlogowego/">wycena projektu instalacji grzewczej</a> to ułamek promila wartości budowy. Brak projektu oznacza straty rzędu 2500 zł już na etapie zakupów – instalator kupi przewymiarowany rozdzielacz i kilkaset metrów zbędnych rur jako "zapas bezpieczeństwa". Projekt to nie koszt, to Twoja finansowa tarcza ochronna.</p>
                        </div>
                    </div>
                </div>

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

<script>
// Prosty skrypt natychmiastowego przełączania bez żadnych animacji
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-auth-tab-btn');
    const panels = document.querySelectorAll('.rk-auth-panel');

    tabBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Natychmiastowe usunięcie klas aktywnych
            tabBtns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Natychmiastowe dodanie klas aktywnych do klikniętego elementu
            this.classList.add('active');
            const targetId = this.getAttribute('data-target');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



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

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

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
    text-align: center;
}

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

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

/* Główny obszar - Jedna centralna kolumna */
.rk-faq-workspace {
    padding: 40px 50px;
    background: #fafafa;
}

/* Harmonijka FAQ */
.rk-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 800px;
    margin: 0 auto;
}

.rk-faq-item {
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
}

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

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

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

.rk-faq-item.active .rk-faq-trigger h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-icon-box {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

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

/* Usunięto animacje - natychmiastowe wyświetlanie */
.rk-faq-content {
    display: none;
}

.rk-faq-item.active .rk-faq-content {
    display: block;
}

.rk-faq-content-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-content-inner {
    border-top-color: var(--rk-faq-blue-light);
    padding-top: 15px;
}

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

.rk-faq-content-inner a:hover {
    color: #0369a1;
}

/* Tagi SEO na samym dole kontenera */
.rk-faq-meta-tags {
    margin-top: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-transform: lowercase;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { padding: 35px 20px; }
    .rk-faq-header h2 { font-size: 24px; }
    .rk-faq-workspace { padding: 25px 20px; }
    .rk-faq-trigger { padding: 18px 20px; }
    .rk-faq-trigger h3 { font-size: 15px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania: Czy do ogrzewania podłogowego potrzebny jest projekt?",
    "description": "Odpowiedzi na kluczowe pytania inwestorów dotyczące projektowania podłogówki, kosztów dokumentacji technicznej i doboru pomp ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-faq",
    "name": "Baza Wiedzy i Zapytań Inwestorskich HVAC",
    "description": "Zbiór ustrukturyzowanych zapytań z zakresu wymogów prawnych i technicznych projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy można zrobić ogrzewanie podłogowe bez projektu",
      "ile kosztuje projekt ogrzewania podłogowego",
      "projekt ogrzewania podłogowego z pompą ciepła",
      "jakie dane są potrzebne do wykonania projektu",
      "czy trzeba mieć projekt na ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Bezpośrednia weryfikacja zapytań użytkowników z normami PN-EN 12831 oraz wymogami instalacyjnymi producentów urządzeń grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg projektu: Niezbędny do precyzyjnego wyliczenia oporów dla pomp ciepła.",
        "Koszt dokumentacji: Średnio 550 PLN netto, co stanowi ułamek kosztów ewentualnych poprawek."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-faq",
    "name": "Moduł Weryfikacji Zapytań Technicznych FAQ",
    "description": "Narzędzie typu akordeon dostarczające natychmiastowych odpowiedzi inżynierskich na najczęstsze obiekcje inwestorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można zrobić ogrzewanie podłogowe bez projektu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Fizycznie ułożenie rur bez dokumentacji jest możliwe, jednak z punktu widzenia sztuki inżynierskiej to błąd. Skutkuje to brakiem zrównoważenia hydraulicznego, co prowadzi do niedogrzewania wybranych pomieszczeń, wyższych o kilkadziesiąt procent rachunków za prąd oraz ryzyka pękania jastrychu z powodu przegrzewania stref."
        }
      },
      {
        "@type": "Question",
        "name": "Ile kosztuje projekt ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Cena profesjonalnego projektu dla standardowego domu jednorodzinnego o powierzchni 150 m² zaczyna się od około 550 PLN netto. Jest to wydatek, który natychmiast zwraca się na etapie zakupów w hurtowni, ponieważ eliminuje konieczność kupowania rur i rozdzielaczy 'z zapasem'."
        }
      },
      {
        "@type": "Question",
        "name": "Czy hydraulik może sam zaprojektować podłogówkę?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Instalator bazujący wyłącznie na swoim doświadczeniu, bez wsparcia programów inżynierskich, jedynie 'szacuje' parametry. Nie jest w stanie w głowie precyzyjnie wyliczyć oporów hydraulicznych pętli ani projektowego obciążenia cieplnego (OZC) dla każdego pokoju zgodnie z normą PN-EN 12831."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie dane są potrzebne do wykonania projektu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Do sporządzenia rzetelnych obliczeń projektant potrzebuje rzutów architektonicznych budynku, przekrojów, informacji o planowanych źródłach ciepła (np. rodzaj pompy ciepła), materiałach z jakich zbudowano ściany, grubości izolacji (styropianu) oraz docelowych okładzinach podłogowych w poszczególnych pokojach."
        }
      },
      {
        "@type": "Question",
        "name": "Czy projekt ogrzewania podłogowego jest wymagany przy pompie ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przy pompie ciepła projekt to absolutna konieczność. Pompy ciepła są urządzeniami skrajnie wrażliwymi na opory przepływu i wymaganą temperaturę zasilania. Instalacja zrobiona 'na oko' wymusi pracę urządzenia na wyższych temperaturach, co drastycznie obniży współczynnik sprawności SCOP i zniszczy sprężarkę."
        }
      }
    ]
  }
]
</script>

<div class="rk-faq-container" id="faq-app-section">
    <div class="rk-faq-header">
        <h2>FAQ – Najczęściej zadawane pytania inwestorów</h2>
        <p>Rozwiewamy inżynierskie wątpliwości. Sprawdź szybkie odpowiedzi na najpopularniejsze pytania dotyczące dokumentacji dla ogrzewania płaszczyznowego.</p>
    </div>

    <div class="rk-faq-workspace">
        <div class="rk-faq-accordion" id="rkFaqAccordion">
            
            <div class="rk-faq-item active">
                <button class="rk-faq-trigger">
                    <h3>Czy można zrobić ogrzewanie podłogowe bez projektu?</h3>
                    <div class="rk-faq-icon-box">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        Fizycznie ułożenie rur bez dokumentacji jest możliwe, jednak z punktu widzenia sztuki inżynierskiej to błąd. Skutkuje to brakiem zrównoważenia hydraulicznego, co prowadzi do niedogrzewania wybranych pomieszczeń, wyższych o kilkadziesiąt procent rachunków za prąd oraz ryzyka pękania jastrychu z powodu przegrzewania stref.
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <h3>Ile kosztuje projekt ogrzewania podłogowego?</h3>
                    <div class="rk-faq-icon-box">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        Cena profesjonalnego projektu dla standardowego domu jednorodzinnego o powierzchni 150 m² zaczyna się od około 550 PLN netto. Jest to wydatek, który natychmiast zwraca się na etapie zakupów w hurtowni, ponieważ eliminuje konieczność kupowania rur i rozdzielaczy "z zapasem". Sprawdź pełne zestawienie w artykule: <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje projekt ogrzewania podłogowego</a>.
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <h3>Czy hydraulik może sam zaprojektować podłogówkę?</h3>
                    <div class="rk-faq-icon-box">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        Instalator bazujący wyłącznie na swoim doświadczeniu, bez wsparcia programów inżynierskich, jedynie "szacuje" parametry. Nie jest w stanie w głowie precyzyjnie wyliczyć oporów hydraulicznych pętli ani <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowego obciążenia cieplnego (OZC)</a> dla każdego pokoju osobno, co nakazuje norma PN-EN 12831.
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <h3>Jakie dane są potrzebne do wykonania projektu?</h3>
                    <div class="rk-faq-icon-box">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        Do sporządzenia rzetelnych obliczeń projektant potrzebuje rzutów architektonicznych budynku, przekrojów, informacji o planowanych źródłach ciepła, materiałach z jakich zbudowano ściany, odpowiedniej <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">grubości styropianu</a> oraz docelowych okładzinach podłogowych w poszczególnych pokojach.
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <h3>Czy projekt ogrzewania podłogowego jest wymagany przy pompie ciepła?</h3>
                    <div class="rk-faq-icon-box">
                        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                    </div>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        Tak, to absolutna konieczność. Pompy ciepła są urządzeniami skrajnie wrażliwymi na opory przepływu i wymaganą temperaturę zasilania. Instalacja zrobiona "na oko" wymusi pracę urządzenia na wyższych temperaturach, co drastycznie obniży współczynnik sprawności SCOP i przyspieszy zużycie sprężarki. Dowiedz się więcej o <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projektowaniu instalacji pod pompy ciepła</a>.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-meta-tags">
            <span class="rk-mat-tag"># czy trzeba mieć projekt na ogrzewanie podłogowe</span>
            <span class="rk-mat-tag"># ile kosztuje projekt ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># jakie dane są potrzebne do wykonania projektu</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego z pompą ciepła</span>
        </div>
    </div>
</div>

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

    faqItems.forEach(item => {
        const trigger = item.querySelector('.rk-faq-trigger');

        trigger.addEventListener('click', () => {
            const isActive = item.classList.contains('active');

            // Natychmiastowe zamknięcie wszystkich innych paneli
            faqItems.forEach(i => i.classList.remove('active'));

            // Natychmiastowe otwarcie klikniętego panelu (jeśli był zamknięty)
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0284c7;
    --rk-fin-light-blue: #f0f9ff;
    --rk-fin-green: #10b981;
    --rk-fin-green-light: #dcfce7;
    --rk-fin-red: #ef4444;
    --rk-fin-red-light: #fef2f2;
    --rk-fin-gold: #eab308;
    --rk-fin-gray: #64748b;
    --rk-fin-border: #e2e8f0;
    --rk-fin-bg: #ffffff;
}

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

.rk-fin-header {
    padding: 40px 50px 30px;
    background: var(--rk-fin-light-blue);
    border-bottom: 1px solid var(--rk-fin-border);
}

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

.rk-fin-header p {
    font-size: 16px;
    color: var(--rk-fin-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-fin-interactive-area {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-fin-toggle {
    display: flex;
    background: #f1f5f9;
    border-radius: 999px;
    padding: 6px;
    border: 1px solid var(--rk-fin-border);
    position: relative;
}

.rk-fin-toggle-btn {
    padding: 12px 30px;
    border-radius: 999px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-fin-toggle-btn svg {
    width: 20px;
    height: 20px;
}

.rk-fin-toggle-slider {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    border-radius: 999px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Panele z treścią */
.rk-fin-panel {
    display: none;
    animation: fadeIn 0.5s ease-out forwards;
}

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

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

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

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

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

.rk-fin-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rk-fin-card li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.rk-fin-card li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 20px;
    height: 20px;
    background-size: contain;
    background-repeat: no-repeat;
}

.panel-pro .rk-fin-card {
    border-color: var(--rk-fin-green-light);
    background: #f0fdf4;
}
.panel-pro .rk-fin-card li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310b981' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
}

.panel-amateur .rk-fin-card {
    border-color: var(--rk-fin-red-light);
    background: #fef2f2;
}
.panel-amateur .rk-fin-card li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
}

/* Tagi SEO */
.rk-fin-tags {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    text-transform: lowercase;
    transition: all 0.2s;
}

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

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

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

.rk-btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-gold);
    color: var(--rk-fin-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(234, 179, 8, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-btn-action:hover {
    transform: translateY(-4px);
    background: #facc15;
    box-shadow: 0 15px 30px -5px rgba(234, 179, 8, 0.5);
}

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

.rk-btn-action:hover svg {
    transform: translateX(5px);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive-area, .rk-fin-cta-box { padding: 30px 20px; }
    .rk-fin-toggle { flex-direction: column; border-radius: 12px; }
    .rk-fin-toggle-slider { display: none; } /* Upraszczamy na mobile */
    .rk-fin-toggle-btn { border-radius: 8px; margin-bottom: 5px; justify-content: center; }
    .rk-fin-toggle-btn.active { background: var(--rk-fin-dark); }
    .rk-fin-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-btn-action { width: 100%; padding: 18px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Podsumowanie – Dlaczego projekt to absolutny fundament inwestycji",
    "description": "Ogrzewanie podłogowe to system o dużej bezwładności, który nie wybacza pomyłek. Zobacz, dlaczego brak obliczeń prowadzi do przegrzewania podłogi i wysokich rachunków.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-podsumowanie",
    "name": "Konsekwencje braku projektu podłogówki",
    "description": "Porównanie techniczno-eksploatacyjne parametrów instalacji wykonanej na podstawie wytycznych normatywnych oraz instalacji układanej 'na oko'.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "temperatura zasilania ogrzewania podłogowego",
      "dopuszczalna temperatura podłogi",
      "koszty eksploatacji pompy ciepła",
      "projekt instalacji grzewczej cena",
      "błędy ogrzewania podłogowego"
    ],
    "measurementTechnique": "Symulacja interaktywna zestawiająca optymalne parametry pracy (temp. pokojowa, SCOP) z parametrami awaryjnymi wynikającymi z braku zrównoważenia hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Inwestycja z projektem: Gwarancja normatywnych temperatur powierzchni (29°C i 33°C), stabilna praca pompy ciepła.",
        "Montaż na oko: Pękanie paneli, przegrzewanie powyżej normy, drastyczny wzrost kosztów prądu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-podsumowanie",
    "name": "Symulator Decyzji Inwestycyjnych HVAC",
    "description": "Aplikacja pozwalająca inwestorowi na wizualizację skutków inżynierskich i ekonomicznych w zależności od wybranego wariantu wykonawczego instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-container" id="podsumowanie-app">
    <div class="rk-fin-header">
        <h2>Podsumowanie – Dlaczego projekt to absolutny fundament inwestycji</h2>
        <p>Ogrzewanie podłogowe to system niskotemperaturowy, który cechuje się ogromną masą akumulacyjną i dużą bezwładnością. W przeciwieństwie do tradycyjnych grzejników, gdzie błędy hydrauliczne można częściowo zmaskować podnosząc temperaturę na kotle o 10°C, <strong>podłogówka nie wybacza pomyłek.</strong></p>
    </div>

    <div class="rk-fin-interactive-area">
        
        <div class="rk-fin-switch-wrapper">
            <div class="rk-fin-toggle" id="finToggleBox">
                <div class="rk-fin-toggle-slider" id="finSlider" style="width: 50%; background: var(--rk-fin-green);"></div>
                <button class="rk-fin-toggle-btn active" data-target="panel-pro" style="color: #ffffff;">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                    Instalacja z Projektem
                </button>
                <button class="rk-fin-toggle-btn" data-target="panel-amateur">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                    Montaż "Na Oko"
                </button>
            </div>
        </div>

        <div class="rk-fin-panel active panel-pro" id="panel-pro">
            <div class="rk-fin-grid">
                <div class="rk-fin-card">
                    <h3 style="color: var(--rk-fin-green);">
                        Święty spokój i fizyka
                    </h3>
                    <ul>
                        <li><strong>Pewność temperaturowa:</strong> Gwarancja utrzymania projektowanej temperatury komfortu nawet w skrajnych warunkach zimowych (-20°C).</li>
                        <li><strong>Ochrona posadzki:</strong> Idealnie dobrana temperatura zasilania, która nie zniszczy podłogi drewnianej i zachowa normatywne maksima (29°C w salonie, 33°C w łazienkach).</li>
                    </ul>
                </div>
                <div class="rk-fin-card">
                    <h3 style="color: var(--rk-fin-green);">
                        Maksymalne oszczędności
                    </h3>
                    <ul>
                        <li><strong>Optymalizacja OZC:</strong> Precyzyjne dopasowanie układu hydraulicznego do krzywej grzewczej pompy ciepła.</li>
                        <li><strong>ROI inwestycji:</strong> Koszt projektu zwraca się już przy zakupie materiałów (brak rur "z zapasem") oraz gwarantuje najniższe rachunki za prąd przez dekady.</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="rk-fin-panel panel-amateur" id="panel-amateur">
            <div class="rk-fin-grid">
                <div class="rk-fin-card">
                    <h3 style="color: var(--rk-fin-red);">
                        Katastrofa budowlana
                    </h3>
                    <ul>
                        <li><strong>Destrukcja materiałów:</strong> Konieczność podniesienia temperatury w celu zmaskowania błędów prowadzi do trwałego pękania paneli i zsychana się drewna.</li>
                        <li><strong>Brak balansu:</strong> Niekontrolowane opory w pętlach powodują efekt "zebry" (zimne i gorące pasy na podłodze) oraz permanentne niedogrzanie skrajnych stref.</li>
                    </ul>
                </div>
                <div class="rk-fin-card">
                    <h3 style="color: var(--rk-fin-red);">
                        Drastyczny skok kosztów
                    </h3>
                    <ul>
                        <li><strong>Zajechana sprężarka:</strong> Taktowanie przewymiarowanej pompy ciepła, pracującej na wadliwych nastawach przepływów.</li>
                        <li><strong>Rachunki +30%:</strong> Każdy dodatkowy stopień na zasilaniu to bezpośredni spadek parametru SCOP i potężny wzrost zużycia energii elektrycznej.</li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># koszty eksploatacji pompy ciepła</span>
            <span class="rk-mat-tag"># temperatura zasilania ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># dopuszczalna temperatura podłogi</span>
            <span class="rk-mat-tag"># projekt instalacji grzewczej cena</span>
        </div>

    </div>

    <div class="rk-fin-cta-box">
        <h3 class="rk-fin-cta-title">Nie pozwól, aby o komforcie Twojego domu decydował przypadek</h3>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-action">
            ZAINWESTUJ W PROFESJONALNY PROJEKT TECHNICZNY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-fin-toggle-btn');
    const panels = document.querySelectorAll('.rk-fin-panel');
    const slider = document.getElementById('finSlider');

    // Ustawienie szerokości slidera w oparciu o przyciski
    if(window.innerWidth > 768 && btns.length > 0) {
        slider.style.width = btns[0].offsetWidth + 'px';
    }

    btns.forEach((btn, index) => {
        btn.addEventListener('click', function() {
            // Zarządzanie aktywnym stanem przycisków
            btns.forEach(b => {
                b.classList.remove('active');
                b.style.color = 'var(--rk-fin-gray)';
            });
            this.classList.add('active');
            this.style.color = '#ffffff';

            // Animacja slidera (tylko na desktop)
            if(window.innerWidth > 768) {
                slider.style.width = this.offsetWidth + 'px';
                slider.style.left = this.offsetLeft + 'px';
                
                if(this.getAttribute('data-target') === 'panel-pro') {
                    slider.style.background = 'var(--rk-fin-green)';
                } else {
                    slider.style.background = 'var(--rk-fin-red)';
                }
            } else {
                // Zachowanie kolorów tła na urządzeniach mobilnych bez animacji slidera
                 if(this.getAttribute('data-target') === 'panel-pro') {
                    this.style.background = 'var(--rk-fin-green)';
                    btns[1].style.background = 'transparent';
                } else {
                    this.style.background = 'var(--rk-fin-red)';
                    btns[0].style.background = 'transparent';
                }
            }

            // Przełączanie paneli
            const targetId = this.getAttribute('data-target');
            panels.forEach(panel => {
                panel.classList.remove('active');
            });
            document.getElementById(targetId).classList.add('active');
        });
    });

    // Ustawienie stanu początkowego na mobile
    if(window.innerWidth <= 768) {
        btns[0].style.background = 'var(--rk-fin-green)';
    }

    // Obsługa zmiany rozmiaru okna
    window.addEventListener('resize', () => {
        if(window.innerWidth > 768) {
            const activeBtn = document.querySelector('.rk-fin-toggle-btn.active');
            slider.style.display = 'block';
            slider.style.width = activeBtn.offsetWidth + 'px';
            slider.style.left = activeBtn.offsetLeft + 'px';
            activeBtn.style.background = 'transparent'; // slider robi tło
        } else {
            slider.style.display = 'none';
            const activeBtn = document.querySelector('.rk-fin-toggle-btn.active');
            activeBtn.style.background = activeBtn.getAttribute('data-target') === 'panel-pro' ? 'var(--rk-fin-green)' : 'var(--rk-fin-red)';
        }
    });
});
</script>



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

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

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

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

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

/* Główny obszar roboczy (Pełna szerokość) */
.rk-dl-workspace {
    background: var(--rk-dl-gray-bg);
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 35px;
}

/* Centralny podgląd obrazu */
.rk-dl-preview-box {
    width: 100%;
    max-width: 800px;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 15px;
    box-shadow: 0 10px 25px -10px rgba(0,0,0,0.05);
    position: relative;
}

.rk-dl-preview-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    padding: 0 10px;
}

.rk-dl-preview-title {
    font-size: 12px;
    font-weight: 900;
    color: var(--rk-dl-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-dl-zoom-btn {
    background: var(--rk-dl-gray-bg);
    border: 1px solid var(--rk-dl-border);
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-dl-dark);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-dl-image-element {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 10px;
    object-fit: contain;
    max-height: 450px;
    border: 1px solid var(--rk-dl-gray-bg);
}

.rk-dl-image-element.expanded {
    max-height: none;
}

/* Panel Akcji (Pobieranie i specyfikacja) */
.rk-dl-action-bar {
    width: 100%;
    max-width: 800px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
}

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

.rk-dl-spec-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: var(--rk-dl-muted);
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-dl-border);
    padding-bottom: 8px;
}

.rk-dl-spec-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.rk-dl-spec-row span {
    font-weight: 900;
    color: var(--rk-dl-dark);
}

.rk-dl-download-area {
    display: flex;
    align-items: stretch;
}

.rk-btn-dl-massive {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--rk-dl-green);
    color: #ffffff;
    padding: 20px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    width: 100%;
    border: 2px solid transparent;
}

.rk-btn-dl-massive:hover {
    background: #059669;
    border-color: #6ee7b7;
}

.rk-btn-dl-title {
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-btn-dl-subtitle {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255,255,255,0.8);
}

/* Tagi długiego ogona (SEO) i Stopka Prawa Autorskie */
.rk-dl-footer-block {
    background: var(--rk-dl-bg);
    padding: 30px 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.rk-dl-seo-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-dl-gray-bg);
    color: var(--rk-dl-muted);
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid var(--rk-dl-border);
    font-size: 12px;
    font-weight: 800;
    text-transform: lowercase;
}

.rk-dl-copyright {
    color: var(--rk-dl-muted);
    font-size: 13px;
    line-height: 1.6;
    text-align: center;
    border-top: 1px solid var(--rk-dl-border);
    padding-top: 20px;
    width: 100%;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-header { padding: 35px 20px 20px; }
    .rk-dl-header h2 { font-size: 24px; }
    .rk-dl-workspace { padding: 25px 20px; }
    .rk-dl-action-bar { grid-template-columns: 1fr; }
    .rk-dl-footer-block { padding: 30px 20px; }
    .rk-btn-dl-title { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#article-download",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/"
    },
    "headline": "Darmowe materiały inżynierskie: Infografika i schemat instalacji PDF",
    "description": "Pobierz bezpłatną infografikę oraz dokumentację PDF podsumowującą wymogi inżynierskie i zasady projektowania instalacji ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-13",
    "dateModified": "2026-06-13"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#dataset-download",
    "name": "Schemat i infografika do projektowania instalacji płaszczyznowej",
    "description": "Zbiór wytycznych projektowych i normatywnych zawarty w interaktywnej infografice oraz skompresowanym pliku PDF przeznaczonym do pobrania i druku.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "darmowy projekt ogrzewania podłogowego",
      "schemat instalacji ogrzewania podłogowego pdf",
      "infografika podłogówka",
      "jak ułożyć rury do ogrzewania podłogowego",
      "instalacja ogrzewania podłogowego krok po kroku"
    ],
    "measurementTechnique": "Prezentacja graficzna zależności hydraulicznych, rozstawów strefowych i wymogów normy PN-EN 1264 dostosowana do szybkiej analizy wizualnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format PDF: Dokumentacja przygotowana w wysokiej rozdzielczości do swobodnego druku i przekazania wykonawcom.",
        "Format WEBP: Zoptymalizowana, lekka grafika poglądowa do weryfikacji online."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/#webapp-download",
    "name": "Interaktywna Przeglądarka Schematów Instalacyjnych",
    "description": "Moduł bezpośredniego podglądu i udostępniania plików graficznych z wytycznymi wykonawczymi dla instalacji HVAC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="material-download-block">
    <div class="rk-dl-header">
        <h2>Darmowe materiały inżynierskie: Infografika i schemat instalacji PDF</h2>
        <p>Szukasz skondensowanej wiedzy w pigułce, którą możesz pokazać swojemu instalatorowi? Zebraliśmy najważniejsze normy, zasady wyznaczania pętli i dobór parametrów zasilania w jeden przystępny materiał wizualny.</p>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-box">
            <div class="rk-dl-preview-header">
                <span class="rk-dl-preview-title">Podgląd bezpośredni</span>
                <button class="rk-dl-zoom-btn" id="rkDlZoomBtn">
                    <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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    Rozwiń grafikę
                </button>
            </div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt.webp" alt="Infografika inżynierska instalacji HVAC" class="rk-dl-image-element" id="rkDlPreviewImage" loading="lazy">
        </div>

        <div class="rk-dl-action-bar">
            <div class="rk-dl-specs">
                <div class="rk-dl-spec-row">
                    Format pliku: <span>PDF (Wysoka rozdzielczość)</span>
                </div>
                <div class="rk-dl-spec-row">
                    Przeznaczenie: <span>Do druku / Na budowę</span>
                </div>
                <div class="rk-dl-spec-row">
                    Weryfikacja: <span>Robert Kucharski</span>
                </div>
            </div>
            
            <div class="rk-dl-download-area">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt.pdf" target="_blank" class="rk-btn-dl-massive">
                    <div class="rk-btn-dl-title">
                        <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="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 materiał PDF
                    </div>
                    <div class="rk-btn-dl-subtitle">Całkowicie za darmo, bez podawania emaila</div>
                </a>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer-block">
        <div class="rk-dl-seo-tags">
            <span class="rk-mat-tag"># darmowy projekt ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># schemat instalacji ogrzewania podłogowego pdf</span>
            <span class="rk-mat-tag"># infografika podłogówka</span>
        </div>

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

<script>
// Skrypt natychmiastowego powiększania obrazu bez animacji css transition
document.addEventListener('DOMContentLoaded', function() {
    const zoomBtn = document.getElementById('rkDlZoomBtn');
    const previewImg = document.getElementById('rkDlPreviewImage');

    zoomBtn.addEventListener('click', function() {
        const isExpanded = previewImg.classList.contains('expanded');

        if (isExpanded) {
            previewImg.classList.remove('expanded');
            zoomBtn.innerHTML = '<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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg> Rozwiń grafikę';
        } else {
            previewImg.classList.add('expanded');
            zoomBtn.innerHTML = '<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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg> Zwiń grafikę';
        }
    });
});
</script>
<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>
