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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa budowa domu - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/budowa-domu/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 28 Jun 2026 16:13:31 +0000</pubDate>
				<category><![CDATA[Budowa stanu zero]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Płyta fundamentowa]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[budownictwo energooszczędne]]></category>
		<category><![CDATA[energooszczędny dom]]></category>
		<category><![CDATA[fundament grzewczy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[nowoczesne fundamenty]]></category>
		<category><![CDATA[ogrzewanie płaszczyznowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe w płycie fundamentowej]]></category>
		<category><![CDATA[ogrzewanie podłogowe z pompą ciepła]]></category>
		<category><![CDATA[płyta fundamentowa]]></category>
		<category><![CDATA[płyta fundamentowa z ogrzewaniem]]></category>
		<category><![CDATA[płyta grzewcza]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[termiczna płyta fundamentowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6375</guid>

					<description><![CDATA[<p>Planowanie posadowienia budynku na etapie stanu zero to moment, w którym podejmujesz decyzje rzutujące na koszty eksploatacji domu przez najbliższe kilkadziesiąt lat. Tradycyjne ławy i ściany fundamentowe powoli ustępują miejsca nowoczesnym rozwiązaniom monolitycznym. Inwestorzy coraz częściej dostrzegają, że ogrzewanie podłogowe w płycie fundamentowej gwarantuje niespotykaną stabilność termiczną i eliminuje liniowe mostki termiczne przy gruncie. W tym artykule brutalnie rozprawiamy się z mitami wykonawczymi, analizujemy realne koszty inwestycji na bazie autentycznego Case Study z Pomorza oraz udostępniamy interaktywne kalkulatory, które pozwolą Ci samodzielnie obliczyć opłacalność oraz parametry hydrauliczne całego systemu pod Twoją pompę ciepła.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
/* Wymuszenie czystego fontu i twardy reset */
#rk-intro-guide-app,
#rk-intro-guide-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-bg: #ffffff;
    --rk-intro-accent: #10b981;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-intro-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Mocny, autorytarny nagłówek bez animacji */
.rk-intro-header {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-intro-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

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

/* Moduł Nawigacyjny (Błyskawiczne przełączniki) */
.rk-intro-nav {
    display: flex;
    flex-direction: column;
    background: var(--rk-intro-light);
    padding: 25px 45px;
    border-bottom: 1px solid var(--rk-intro-border);
    gap: 10px;
}

@media (min-width: 768px) {
    .rk-intro-nav {
        flex-direction: row;
    }
}

.rk-intro-tab-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-text);
    cursor: pointer;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    /* Brak animacji zgodnie z wytycznymi */
}

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

.rk-intro-tab-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-intro-blue);
    color: var(--rk-intro-blue);
}

/* Zawartość zakładek */
.rk-intro-content-wrapper {
    padding: 35px 45px 40px 45px;
    background: #ffffff;
}

.rk-intro-tab-pane {
    display: none; /* Sterowane z JS */
}

.rk-intro-tab-pane.active {
    display: block;
}

/* Karta Szybkiej Odpowiedzi (Direct Answer) */
.rk-intro-quick-answer {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-left: 6px solid var(--rk-intro-accent);
    border-radius: 14px;
    padding: 25px 30px;
    margin-bottom: 25px;
}

.rk-intro-quick-answer h3 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #166534;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

/* Tekst główny */
.rk-intro-text-block {
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--rk-intro-text);
}

.rk-intro-text-block p {
    margin: 0 0 20px 0;
}

.rk-intro-text-block strong {
    color: var(--rk-intro-dark);
    font-weight: 700;
}

/* Lista korzyści - Czego się dowiesz */
.rk-intro-roadmap {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-roadmap-item {
    background: #f8fafc;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-intro-roadmap-icon {
    width: 40px;
    height: 40px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    flex-shrink: 0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.rk-intro-roadmap-text h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 5px 0;
}

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

/* Ostrzeżenie / Hook na interakcje */
.rk-intro-alert-box {
    margin-top: 25px;
    padding: 18px 25px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    color: #92400e;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-nav, .rk-intro-content-wrapper { padding: 25px 20px; }
    .rk-intro-roadmap-item { padding: 15px; flex-direction: column; align-items: flex-start; text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Ogrzewanie podłogowe w płycie fundamentowej – Kompletny Przewodnik Inżynierski",
    "description": "Czym jest termiczna płyta fundamentowa? Szybka odpowiedź oraz interaktywny zbiór narzędzi obliczeniowych i symulatorów do projektowania podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Baza wiedzy i definicji: Termiczna Płyta Fundamentowa",
    "description": "Zestawienie inżynierskich faktów, wytycznych normy PN-EN 1264 oraz charakterystyki masy akumulacyjnej fundamentów grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "termiczna płyta fundamentowa",
      "akumulacja ciepła w betonie",
      "norma PN-EN 1264",
      "rury PEX PERT w fundamencie"
    ],
    "measurementTechnique": "Bezpośrednia analiza norm inżynieryjnych dotyczących wbudowanych płaszczyznowych systemów ogrzewania niskotemperaturowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja: Zintegrowany system nośno-grzewczy z zatopionymi rurami PEX/PERT.",
        "Masa akumulacyjna układu: Od 50 do 80 ton betonu konstrukcyjnego.",
        "Kompatybilność źródła ciepła: Inwerterowe pompy ciepła (powietrze-woda, solanka-woda)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Przewodnik i Tablica Sterownicza Kompendium",
    "description": "Aplikacja pełniąca rolę nawigatora merytorycznego, udostępniająca błyskawiczne odpowiedzi techniczne oraz agendę interaktywnych narzędzi dostępnych w artykule.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-guide-app">
    
    <div class="rk-intro-header">
        <h2>Ogrzewanie podłogowe w płycie fundamentowej – Kompletny Przewodnik</h2>
        <p class="rk-intro-lead">
            Budujesz dom i zastanawiasz się nad sposobem posadowienia? Błąd popełniony w tym miejscu jest nieodwracalny po wylaniu betonu. Poznaj technologię, która łączy potężny fundament z sercem energetycznym Twojego budynku.
        </p>
    </div>

    <div class="rk-intro-nav">
        <button class="rk-intro-tab-btn active" id="rk-intro-btn-1">
            <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="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Szybka Odpowiedź
        </button>
        <button class="rk-intro-tab-btn" id="rk-intro-btn-2">
            <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="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
            Narzędzia w tym artykule
        </button>
    </div>

    <div class="rk-intro-content-wrapper">
        
        <div class="rk-intro-tab-pane active" id="rk-intro-pane-1">
            
            <div class="rk-intro-quick-answer">
                <h3>Szybka odpowiedź eksperta</h3>
                <p>Ogrzewanie podłogowe w płycie fundamentowej (termiczna płyta fundamentowa) to zintegrowany system, w którym rury PEX lub PERT są na stałe zatapiane bezpośrednio w zbrojonej masie betonu konstrukcyjnego. Dół budynku staje się potężnym wymiennikiem ciepła o masie do 80 ton.</p>
            </div>

            <div class="rk-intro-text-block">
                <p>
                    Rozwiązanie to łączy niezbędną funkcję nośną posadowienia z potężnym, niskotemperaturowym płaszczyznowym wymiennikiem ciepła. Zabetonowana instalacja gromadzi energię niczym ogromny piec akumulacyjny o masie przekraczającej często <strong>50-80 ton</strong>.
                </p>
                <p>
                    Jako specjalista HVAC oraz kilkudziesięcioletni praktyk z dorobkiem <strong>ponad 1000 projektów instalacji sanitarnych</strong> wskazuję wprost: kluczem do bezawaryjnej pracy tego potężnego układu jest bezwzględne przestrzeganie rygorystycznych wytycznych normy budowlanej <strong>PN-EN 1264</strong>. Nie ma tu miejsca na układanie obwodów &#8222;na oko&#8221;. Wymagane jest precyzyjne skoordynowanie parametrów hydraulicznych pętli z charakterystyką wybranego źródła ciepła – jakim najczęściej i najbardziej opłacalnie jest inwerterowa pompa ciepła typu powietrze-woda lub solanka-woda.
                </p>
            </div>

        </div>

        <div class="rk-intro-tab-pane" id="rk-intro-pane-2">
            
            <div class="rk-intro-text-block">
                <p>
                    Ten artykuł to nie jest zwykła ściana teoretycznego tekstu. Przygotowałem dla Ciebie zestaw dedykowanych, <strong>interaktywnych kalkulatorów i symulatorów inżynierskich</strong>, z którymi możesz pracować w czasie rzeczywistym. Przewijając stronę w dół, zyskasz dostęp do następujących narzędzi:
                </p>
            </div>

            <div class="rk-intro-roadmap">
                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Symulator Oporów i Długości Pętli</h4>
                        <p>Zmienisz długość rury i na żywo zobaczysz, w którym momencie ciśnienie blokuje pracę rotametrów i dławi pompę obiegową.</p>
                    </div>
                </div>

                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 20V10"></path><path d="M12 20V4"></path><path d="M6 20v-6"></path></svg>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Kalkulator Rentowności (ROI)</h4>
                        <p>Wybierzesz swoją strefę klimatyczną w Polsce i porównasz koszty płyty grzewczej z tradycyjnymi ławami fundamentowymi.</p>
                    </div>
                </div>

                <div class="rk-intro-roadmap-item">
                    <div class="rk-intro-roadmap-icon">
                        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                    </div>
                    <div class="rk-intro-roadmap-text">
                        <h4>Interaktywny Komparator Rozstawów</h4>
                        <p>Sprawdzisz, jak układanie rur co 10, 15 lub 20 cm wpływa bezpośrednio na wydajność pompy ciepła (wskaźnik SCOP).</p>
                    </div>
                </div>
            </div>

            <div class="rk-intro-alert-box">
                Zjedź niżej i przetestuj parametry swojego przyszłego domu bezpośrednio w naszych narzędziach na żywo.
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-intro-btn-1');
    var btn2 = document.getElementById('rk-intro-btn-2');
    
    var pane1 = document.getElementById('rk-intro-pane-1');
    var pane2 = document.getElementById('rk-intro-pane-2');

    // Bezpieczne przełączanie zakładek bez użycia &&
    if (btn1) {
        btn1.addEventListener('click', function() {
            if (btn2) { btn2.classList.remove('active'); }
            btn1.classList.add('active');
            
            if (pane2) { pane2.classList.remove('active'); }
            if (pane1) { pane1.classList.add('active'); }
        });
    }

    if (btn2) {
        btn2.addEventListener('click', function() {
            if (btn1) { btn1.classList.remove('active'); }
            btn2.classList.add('active');
            
            if (pane1) { pane1.classList.remove('active'); }
            if (pane2) { pane2.classList.add('active'); }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu bezszeryfowego i reset */
#rk-roi-thermal-app,
#rk-roi-thermal-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-darker: #080f1e;
    --rk-roi-blue: #0284c7;
    --rk-roi-light: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-bg: #ffffff;
    --rk-roi-success: #10b981;
    --rk-roi-warning: #f59e0b;
    --rk-roi-danger: #ef4444;
}

.rk-roi-main-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-roi-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

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

.rk-roi-title-block h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-roi-title-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Wertykalny Stack */
.rk-roi-panel-body {
    padding: 35px 45px;
    background: var(--rk-roi-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Karta Formularza Wejściowego */
.rk-roi-form-card {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.rk-roi-input-row {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-roi-input-row label {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
}

/* Stylowanie kontrolek select i input */
.rk-roi-select-custom,
.rk-roi-num-input {
    width: 100%;
    padding: 14px 16px;
    border-radius: 12px;
    border: 2px solid var(--rk-roi-border);
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-roi-dark);
    background-color: #ffffff;
    outline: none;
    transition: border-color 0.3s;
}

.rk-roi-select-custom:focus,
.rk-roi-num-input:focus {
    border-color: var(--rk-roi-blue);
}

/* Przyciski Opcji (Segmented Controls) */
.rk-roi-opt-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media (min-width: 576px) {
    .rk-roi-opt-group {
        flex-direction: row;
    }
}

.rk-roi-opt-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 12px;
    padding: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-roi-text);
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-roi-opt-btn:hover {
    border-color: #cbd5e1;
}

.rk-roi-opt-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-roi-blue);
    color: var(--rk-roi-blue);
}

/* Wyróżniona Deska Rozdzielcza Wyników */
.rk-roi-dashboard-frame {
    background: var(--rk-roi-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-roi-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-roi-dash-cell {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-roi-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-roi-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-roi-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Sekcja Rozbitych Kart Wiedzy */
.rk-roi-text-infografika {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-roi-block-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-roi-blue);
    transition: background 0.3s ease;
}

/* Zmieniony styl dla karty podsumowującej */
.rk-roi-summary-card {
    background: #f0fdf4;
    border-color: var(--rk-roi-success);
}

.rk-roi-block-card:hover {
    background: #f1f5f9;
}

.rk-roi-summary-card:hover {
    background: #dcfce7;
}

.rk-roi-block-card h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 10px 0;
}

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

.rk-roi-block-card strong {
    color: var(--rk-roi-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-roi-title-block, .rk-roi-panel-body, .rk-roi-text-infografika { padding: 30px 20px; }
    .rk-roi-form-card, .rk-roi-block-card { padding: 20px; }
    .rk-roi-dashboard-frame { grid-template-columns: 1fr; padding: 25px 20px; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?",
    "description": "Profesjonalna analiza ekonomiczna posadowienia budynku na płycie grzewczej akumulacyjnej. Koszty wykonania, amortyzacja i kalkulator stref klimatycznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-dataset",
    "name": "Baza danych zapotrzebowania energetycznego stref klimatycznych Polski",
    "description": "Zbiór zmiennych przeliczeniowych i projektowych obciążeń cieplnych dla stref klimatycznych I-V według normy PN-EN 12831 w relacji do oporu cieplnego płyt grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy ogrzewanie podłogowe w płycie się opłaca",
      "koszt płyty fundamentowej 150m2",
      "strefy klimatyczne polski podłogówka",
      "amortyzacja płyty fundamentowej",
      "współczynnik przenikania ciepła u płyty"
    ],
    "measurementTechnique": "Modelowanie bilansu finansowo-cieplnego budynków jednorodzinnych o powierzchni 150 m2 w oparciu o projektowe temperatury zewnętrzne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Konstrukcja stanu zero: Czas realizacji skrócony do 7-10 dni roboczych",
        "Efektywność przegrody dolnej: Współczynnik przenikania U poniżej 0,11 W/m2K",
        "Oszczędność energii wg PN-EN 12831: Redukcja strat o 30 do 40 procent"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-analysis-webapp",
    "name": "Symulator Amortyzacji i Kosztów Eksploatacji Płyty Grzewczej",
    "description": "Zaawansowana aplikacja obliczeniowa szacująca roczne koszty ogrzewania i okres zwrotu nakładów finansowych w oparciu o strefy klimatyczne i ceny energii.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-main-container" id="rk-roi-thermal-app">
    <div class="rk-roi-title-block">
        <h2>Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?</h2>
        <p>
            Wykonanie termicznej płyty akumulacyjnej to inwestycja długoterminowa. Skonfiguruj parametry swojego regionu i posadowienia, aby sprawdzić precyzyjne symulacje kosztów eksploatacji.
        </p>
    </div>

    <div class="rk-roi-body">
        
        <div class="rk-roi-form-card">
            <div class="rk-roi-input-row">
                <label for="rk-roi-zone">Wybierz strefę klimatyczną Polski (PN-EN 12831):</label>
                <select class="rk-roi-select-custom" id="rk-roi-zone">
                    <option value="1">Strefa I (np. Wrocław, Szczecin) &#8211; Temp. projektowa -16°C</option>
                    <option value="2">Strefa II (np. Poznań, Gdańsk) &#8211; Temp. projektowa -18°C</option>
                    <option value="3" selected>Strefa III (np. Rzeszów, Warszawa, Łódź) &#8211; Temp. projektowa -20°C</option>
                    <option value="4">Strefa IV (np. Białystok, Zakopane) &#8211; Temp. projektowa -22°C</option>
                    <option value="5">Strefa V (np. Suwałki, tereny górskie) &#8211; Temp. projektowa -24°C</option>
                </select>
            </div>

            <div class="rk-roi-input-row">
                <label>Grubość i rodzaj izolacji dolnej:</label>
                <div class="rk-roi-opt-group" id="rk-group-ins">
                    <button class="rk-roi-opt-btn" data-type="ins" data-val="10">10 cm EPS (Amatorski)</button>
                    <button class="rk-roi-opt-btn active" data-type="ins" data-val="15">15 cm XPS (Standard)</button>
                    <button class="rk-roi-opt-btn" data-type="ins" data-val="20">20 cm XPS (Pasywny)</button>
                </div>
            </div>

            <div class="rk-roi-input-row">
                <label>Planowany rozstaw rur grzewczych:</label>
                <div class="rk-roi-opt-group" id="rk-group-space">
                    <button class="rk-roi-opt-btn" data-type="space" data-val="20">Co 20 cm (Rzadko)</button>
                    <button class="rk-roi-opt-btn active" data-type="space" data-val="15">Co 15 cm (Optymalny)</button>
                    <button class="rk-roi-opt-btn" data-type="space" data-val="10">Co 10 cm (Gęsto)</button>
                </div>
            </div>

            <div class="rk-roi-input-row">
                <label for="rk-roi-price">Koszt energii elektrycznej (PLN / kWh brutto):</label>
                <input type="number" class="rk-roi-num-input" id="rk-roi-price" min="0.4" max="2.5" step="0.05" value="1.00">
            </div>
        </div>

        <div class="rk-roi-dashboard-frame">
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Współczynnik U Płyty</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-u">0.11 <span>W/(m²·K)</span></div>
            </div>
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Szacowany Koszt Roczny</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-year">2160 <span>PLN / rok</span></div>
            </div>
            <div class="rk-roi-dash-cell">
                <span class="rk-roi-dash-label">Czas Zwrotu z Rachunków</span>
                <div class="rk-roi-dash-value" id="rk-roi-dash-payback">7 <span>lat</span></div>
            </div>
        </div>

    </div>

    <div class="rk-roi-text-infografika">
        
        <div class="rk-roi-block-card rk-roi-summary-card">
            <h4>Krótkie podsumowanie inwestycyjne</h4>
            <p>
                <strong>Wyższy nakład początkowy to mit.</strong> Eliminacja kosztownych i czasochłonnych etapów budowlanych (takich jak wylewanie chudziaka, izolacje pionowe fundamentów czy jastrychy maszynowe) sprawia, że całkowity koszt płyty bilansuje się z tradycyjnymi ławami, a wyższa efektywność termiczna generuje czysty zysk przez kolejne dekady.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var zoneSelect = document.getElementById('rk-roi-zone');
    var priceInput = document.getElementById('rk-roi-price');
    
    var dashU = document.getElementById('rk-roi-dash-u');
    var dashYear = document.getElementById('rk-roi-dash-year');
    var dashPayback = document.getElementById('rk-roi-dash-payback');

    var currentIns = 15;
    var currentSpace = 15;

    var insBtns = document.querySelectorAll('#rk-group-ins .rk-roi-opt-btn');
    for (var i = 0; i < insBtns.length; i++) {
        insBtns[i].addEventListener('click', function() {
            for (var j = 0; j < insBtns.length; j++) { insBtns[j].classList.remove('active'); }
            this.classList.add('active');
            currentIns = parseFloat(this.getAttribute('data-val'));
            calculateRoi();
        });
    }

    var spaceBtns = document.querySelectorAll('#rk-group-space .rk-roi-opt-btn');
    for (var k = 0; k < spaceBtns.length; k++) {
        spaceBtns[k].addEventListener('click', function() {
            for (var m = 0; m < spaceBtns.length; m++) { spaceBtns[m].classList.remove('active'); }
            this.classList.add('active');
            currentSpace = parseFloat(this.getAttribute('data-val'));
            calculateRoi();
        });
    }

    function calculateRoi() {
        var zone = 3;
        var electricityPrice = 1.00;

        if (zoneSelect) { zone = parseFloat(zoneSelect.value); }
        if (priceInput) { electricityPrice = parseFloat(priceInput.value); }

        var zoneFactor = 1.0;
        if (zone === 1) { zoneFactor = 0.85; }
        if (zone === 2) { zoneFactor = 0.93; }
        if (zone === 3) { zoneFactor = 1.00; }
        if (zone === 4) { zoneFactor = 1.12; }
        if (zone === 5) { zoneFactor = 1.25; }

        var uValue = 0.11;
        var insulationMultiplier = 1.0;
        var basePayback = 7;

        if (currentIns === 10) {
            uValue = 0.35;
            insulationMultiplier = 1.45;
            basePayback = 12;
        }
        if (currentIns === 15) {
            uValue = 0.11;
            insulationMultiplier = 1.00;
            basePayback = 7;
        }
        if (currentIns === 20) {
            uValue = 0.08;
            insulationMultiplier = 0.82;
            basePayback = 6;
        }

        var spacingMultiplier = 1.0;
        if (currentSpace === 20) { spacingMultiplier = 1.22; basePayback = basePayback + 2; }
        if (currentSpace === 15) { spacingMultiplier = 1.00; }
        if (currentSpace === 10) { spacingMultiplier = 0.91; }

        var baseEnergyDemand = 2000; 
        var calculatedCost = baseEnergyDemand * zoneFactor * insulationMultiplier * spacingMultiplier * electricityPrice;
        
        if (calculatedCost < 0) { calculatedCost = 0; }

        if (dashU) { dashU.innerHTML = uValue.toFixed(2) + " <span>W/(m²·K)</span>"; }
        if (dashYear) { dashYear.innerHTML = calculatedCost.toFixed(0) + " <span>PLN / rok</span>"; }
        if (dashPayback) {
            var finalPayback = basePayback;
            if (zone === 1) { finalPayback = basePayback + 1; }
            if (zone === 5) { finalPayback = basePayback - 1; }
            if (finalPayback < 5) { finalPayback = 5; }
            
            dashPayback.innerHTML = finalPayback + " <span>" + (finalPayback <= 4 ? "lata" : "lat") + "</span>";
        }
    }

    if (zoneSelect) { zoneSelect.addEventListener('change', calculateRoi); }
    if (priceInput) { priceInput.addEventListener('input', calculateRoi); }

    calculateRoi();
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-roi-simulator-app,
#rk-roi-simulator-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-darker: #080f1e;
    --rk-roi-blue: #0284c7;
    --rk-roi-light: #f8fafc;
    --rk-roi-border: #e2e8f0;
    --rk-roi-text: #334155;
    --rk-roi-bg: #ffffff;
    --rk-roi-danger: #ef4444;
    --rk-roi-warning: #f59e0b;
    --rk-roi-success: #10b981;
}

.rk-roi-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-roi-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

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

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

.rk-roi-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Jednokolumnowy */
.rk-roi-body {
    padding: 35px 45px;
    background: var(--rk-roi-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Przełączniki Metody Posadowienia */
.rk-roi-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-roi-controls {
        flex-direction: row;
    }
}

.rk-roi-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

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

.rk-roi-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-roi-blue);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-roi-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
}

.rk-roi-btn-subtitle {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

.rk-roi-btn.active .rk-roi-btn-title {
    color: var(--rk-roi-blue);
}

/* Ciemna Ramka Wynikowa Dashboardu */
.rk-roi-dashboard {
    background: var(--rk-roi-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-roi-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-roi-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-roi-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-roi-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-roi-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Analizy Kontekstowej */
.rk-roi-desc-card {
    background: #ffffff;
    border: 1px solid var(--rk-roi-border);
    border-radius: 16px;
    padding: 25px 30px;
    border-left: 5px solid var(--rk-roi-success);
    transition: border-color 0.3s ease;
}

.rk-roi-desc-card h3 {
    font-size: 19px;
    font-weight: 800;
    color: var(--rk-roi-dark);
    margin: 0 0 12px 0;
}

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

/* Opracowanie Tekstowe - Niszczenie ściany tekstu kartami inżynierskimi */
.rk-roi-text-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

.rk-roi-cards-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-roi-insight-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-roi-blue);
    transition: background 0.3s ease;
}

.rk-roi-insight-card:hover {
    background: #f1f5f9;
}

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

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

.rk-roi-insight-card strong {
    color: var(--rk-roi-dark);
    font-weight: 700;
}

.rk-roi-insight-card a {
    color: var(--rk-roi-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-roi-header-block, .rk-roi-body, .rk-roi-text-zone { padding: 30px 20px; }
    .rk-roi-desc-card, .rk-roi-insight-card { padding: 20px; }
    .rk-roi-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-roi-dash-value { font-size: 24px; }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?",
    "description": "Inżynierska analiza opłacalności, kosztów początkowych oraz czasu zwrotu z inwestycji dla termicznych płyt fundamentowych z podłogówką.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-dataset",
    "name": "Bilans finansowo-termiczny metod posadowienia budynków jednorodzinnych",
    "description": "Zestawienie kosztów startowych, redukcji liniowych mostków termicznych oraz okresu amortyzacji nakładów dla płyt akumulacyjnych vs ławy fundamentowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy plyta fundamentowa sie oplaca",
      "koszt termicznej plyty fundamentowej",
      "redukcja mostkow termicznych en 12831",
      "zwrot z inwestycji w ogrzewanie podlogowe",
      "przenikanie ciepla u przegrody dolnej"
    ],
    "measurementTechnique": "Kalkulacja kosztów inwestycyjnych na podstawie uśrednionych cenników wykonawczych 2026 oraz obliczenia fizykalne strat wg normy PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt płyty grzewczej 150m2: 65 000 do 85 000 PLN",
        "Redukcja strat ciepła do gruntu: 30 do 40 procent oszczędności",
        "Amortyzacja kosztów z rachunków: 6 do 8 lat"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#roi-webapp",
    "name": "Symulator Opłacalności Ekonomiczno-Termicznej Posadowienia",
    "description": "Interaktywna aplikacja przeliczająca nakłady inwestycyjne, współczynniki przenikania ciepła U oraz czas amortyzacji dla różnych technologii fundamentowych.",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="rk-roi-simulator-app">
    <div class="rk-roi-header-block">
        <h2>Czy ogrzewanie podłogowe w płycie fundamentowej się opłaca?</h2>
        <p>
            Wybór posadowienia budynku rzutuje na koszty startowe oraz późniejsze rachunki za energię. Przełącz warianty poniżej, aby porównać twarde wskaźniki ekonomiczno-termiczne.
        </p>
    </div>

    <div class="rk-roi-body">
        
        <div class="rk-roi-controls">
            <button class="rk-roi-btn" id="rk-rbtn-1">
                <span class="rk-roi-btn-title">Ławy Tradycyjne + Jastrych</span>
                <span class="rk-roi-btn-subtitle">Standardowy montaż wieloetapowy</span>
            </button>
            <button class="rk-roi-btn active" id="rk-rbtn-2">
                <span class="rk-roi-btn-title">Termiczna Płyta Fundamentowa</span>
                <span class="rk-roi-btn-subtitle">Zintegrowany monolit akumulacyjny</span>
            </button>
        </div>

        <div class="rk-roi-dashboard">
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Średni Koszt (150 m²)</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-cost">75 000 <span>PLN</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Czas Budowy Stanu Zero</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-time">7 &#8211; 10 <span>dni roboczych</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Straty Ciepła do Ziemi</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-loss" style="color: var(--rk-roi-success);">-35% <span>(Kompensacja)</span></div>
            </div>
            <div class="rk-roi-dash-item">
                <span class="rk-roi-dash-label">Przenikanie Ciepła U</span>
                <div class="rk-roi-dash-value" id="rk-roi-val-u">0.11 <span>W/(m²·K)</span></div>
            </div>
        </div>

        <div class="rk-roi-desc-card" id="rk-roi-card-box">
            <h3 id="rk-roi-card-title">Analiza Opłacalności: Bilans zysków i czysty zysk inżynierski</h3>
            <p id="rk-roi-card-txt">
                Wykonanie kompletnej płyty grzewczej eliminuje długą listę kosztów cząstkowych: hydroizolację pionową ścian, murowanie bloczków, zasypkę piaskową z mechanicznym zagęszczaniem oraz późniejsze wylewanie jastrychów maszynowych. Całość zamyka się w maksymalnie 10 dniach, a potężna akumulacja termiczna płyty pozwala drastycznie obniżyć koszty eksploatacji pomp ciepła.
            </p>
        </div>

    </div>

    <div class="rk-roi-text-zone">
        <div class="rk-roi-cards-stack">
            
            <div class="rk-roi-insight-card">
                <h4>Koszty początkowe a realny zwrot z inwestycji (ROI)</h4>
                <p>
                    Koszt wykonania konstrukcji, jaką jest <strong>termiczna płyta fundamentowa</strong> dla domu o powierzchni <strong>150 m²</strong> wynosi średnio od <strong>65 000 do 85 000 PLN</strong> w zależności od lokalnych warunków gruntowo-wodnych działki. Stanowi to wydatek o około <strong>15-20% wyższy</strong> w bezpośrednim porównaniu do tradycyjnych ław fundamentowych z kompletem późniejszych jastrychów podłogowych. Jednak kalkulacja ekonomiczna uwzględniająca fizykę budowli wykazuje szybki zwrot z inwestycji: dzięki potężnej redukcji strat energii, nakłady finansowe amortyzują się w postaci niższych rachunków za prąd w okresie od <strong>6 do 8 lat</strong> ciągłej eksploatacji budynku.
                </p>
            </div>

            <div class="rk-roi-insight-card">
                <h4>Normatywne wytyczne strat energii wg PN-EN 12831</h4>
                <p>
                    Zgodnie z rygorystycznymi wytycznymi normy <strong>PN-EN 12831</strong> dotyczącej metod obliczania projektowego obciążenia cieplnego, liniowe posadowienie budynku na płycie całkowicie eliminuje powszechne mostki termiczne na styku gruntu i ścian zewnętrznych. Przekłada się to na zmniejszenie strat ciepła do ziemi o imponujące <strong>30-40%</strong>. 
                </p>
                <p>
                    Uzyskany w ten sposób opór cieplny całej dolnej przegrody budowlanej znacznie przewyższa aktualne wymagania krajowych Warunków Technicznych (WT2021), pozwalając osiągnąć współczynnik przenikania ciepła <strong>U poniżej lub równy 0,11 W/(m²·K)</strong>, co jest wynikiem nieosiągalnym dla klasycznych ław bez gigantycznych nakładów na izolacje obwodowe.
                </p>
            </div>

            <div class="rk-roi-insight-card">
                <h4>Psychologia inwestora: Lęk przed monolitem grzewczym</h4>
                <p>
                    Kluczowym problemem, z którym mierzą się inwestorzy na etapie wyboru technologii stanu zero, jest lęk przed zabetonowaniem instalacji hydraulicznej &#8222;na całe życie&#8221;. Wizja potencjalnej usterki ukrytej pod <strong>20 cm zbrojonego betonu konstrukcyjnego klasy C25/30</strong> bywa paraliżująca. 
                </p>
                <p>
                    Jako inżynier praktyk wskazuję jednak na fakt, że profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a>, zastosowanie bezszwowych rur z barierą antydyfuzyjną oraz bezkompromisowa próba ciśnieniowa redukują ryzyko jakiejkolwiek awarii strukturalnej do zera. Beton staje się wtedy Twoim najwartościwszym sprzymierzeńcem – potężnym, stabilnym buforem ciepła o masie kilkudziesięciu ton.
                </p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var b1 = document.getElementById('rk-rbtn-1');
    var b2 = document.getElementById('rk-rbtn-2');
    
    var vCost = document.getElementById('rk-roi-val-cost');
    var vTime = document.getElementById('rk-roi-val-time');
    var vLoss = document.getElementById('rk-roi-val-loss');
    var vU = document.getElementById('rk-roi-val-u');
    
    var cBox = document.getElementById('rk-roi-card-box');
    var cTitle = document.getElementById('rk-roi-card-title');
    var cTxt = document.getElementById('rk-roi-card-txt');

    function resetActive() {
        if(b1) { b1.classList.remove('active'); }
        if(b2) { b2.classList.remove('active'); }
    }

    if(b1) {
        b1.addEventListener('click', function() {
            resetActive();
            this.classList.add('active');
            
            if(vCost) { vCost.innerHTML = '63 000 <span>PLN (Etap I)</span>'; }
            if(vTime) { vTime.innerHTML = '18 - 25 <span>dni roboczych</span>'; }
            if(vLoss) { 
                vLoss.innerHTML = 'Bazowe <span>(100%)</span>'; 
                vLoss.style.color = '#ffffff';
            }
            if(vU) { vU.innerHTML = '0.23 <span>W/(m²·K)</span>'; }

            if(cBox) { cBox.style.borderLeftColor = 'var(--rk-roi-warning)'; }
            if(cTitle) { cTitle.innerHTML = 'Wariant Tradycyjny: Ukryte koszty i ryzyko mostków liniowych'; }
            if(cTxt) {
                cTxt.innerHTML = 'Choć koszt startowy samych ław jest o ok. 15% niższy, technologia ta wymaga rozbicia budowy na odległe etapy: murowanie ścian fundamentowych, izolacje pionowe, zasypka piaskowa, zagęszczanie, chudy beton, a na końcu – po postawieniu ścian – układanie styropianu i wylewanie jastrychów. Sumaryczny czas prac przekracza 3 tygodnie, a powstałe na stykach z gruntem mostki termiczne generują stałe, wysokie straty ciepła przez cały okres użytkowania pomp ciepła.';
            }
        });
    }

    if(b2) {
        b2.addEventListener('click', function() {
            resetActive();
            this.classList.add('active');
            
            if(vCost) { vCost.innerHTML = '75 000 <span>PLN (Komplet)</span>'; }
            if(vTime) { vTime.innerHTML = '7 - 10 <span>dni roboczych</span>'; }
            if(vLoss) { 
                vLoss.innerHTML = '-35% do -40% <span>ciepła</span>'; 
                vLoss.style.color = 'var(--rk-roi-success)';
            }
            if(vU) { vU.innerHTML = '0.11 <span>W/(m²·K)</span>'; }

            if(cBox) { cBox.style.borderLeftColor = 'var(--rk-roi-success)'; }
            if(cTitle) { cTitle.innerHTML = 'Analiza Opłacalności: Bilans zysków i czysty zysk inżynierski'; }
            if(cTxt) {
                cTxt.innerHTML = 'Wykonanie kompletnej płyty grzewczej eliminuje długą listę kosztów cząstkowych: hydroizolację pionową ścian, murowanie bloczków, zasypkę piaskową z mechanicznym zagęszczaniem oraz późniejsze wylewanie jastrychów maszynowych. Całość zamyka się w maksymalnie 10 dniach, a potężna akumulacja termiczna płyty pozwala drastycznie obniżyć koszty eksploatacji pomp ciepła.';
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-pipe-spacing-app,
#rk-pipe-spacing-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-spc-dark: #0f172a;
    --rk-spc-darker: #080f1e;
    --rk-spc-blue: #0284c7;
    --rk-spc-light: #f8fafc;
    --rk-spc-border: #e2e8f0;
    --rk-spc-text: #334155;
    --rk-spc-bg: #ffffff;
    --rk-spc-danger: #ef4444;
    --rk-spc-warning: #f59e0b;
    --rk-spc-success: #10b981;
}

.rk-spc-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-spc-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-spc-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

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

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

.rk-spc-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Stack */
.rk-spc-body {
    padding: 35px 45px;
    background: var(--rk-spc-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Przełączniki Wariantów (Segmented Controls) */
.rk-spc-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-spc-controls {
        flex-direction: row;
    }
}

.rk-spc-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-spc-border);
    border-radius: 16px;
    padding: 18px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

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

.rk-spc-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-spc-blue);
    transform: translateY(0);
}

.rk-spc-btn-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-spc-dark);
}

.rk-spc-btn-subtitle {
    font-size: 12.5px;
    color: #64748b;
    font-weight: 500;
}

.rk-spc-btn.active .rk-spc-btn-title {
    color: var(--rk-spc-blue);
}

/* Wyróżniony Dashboard Wyników */
.rk-spc-dashboard {
    background: var(--rk-spc-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-spc-blue);
}

.rk-spc-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-spc-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-spc-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-spc-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
}

/* Karta Statusu */
.rk-spc-status-card {
    background: #ffffff;
    border: 1px solid var(--rk-spc-border);
    border-radius: 16px;
    padding: 25px;
    border-left: 5px solid var(--rk-spc-success);
    transition: border-color 0.3s ease;
}

.rk-spc-status-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-spc-dark);
    margin: 0 0 10px 0;
}

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

/* Przejrzyste Opracowanie Merytoryczne (Rozbita ściana tekstu) */
.rk-spc-text-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

.rk-spc-cards-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-spc-insight-card {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-spc-blue);
    transition: background 0.3s ease;
}

.rk-spc-insight-card:hover {
    background: #f1f5f9;
}

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

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

.rk-spc-insight-card strong {
    color: var(--rk-spc-dark);
    font-weight: 700;
}

.rk-spc-insight-card a {
    color: var(--rk-spc-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

@media (max-width: 768px) {
    .rk-spc-header-block, .rk-spc-body, .rk-spc-text-zone { padding: 30px 20px; }
    .rk-spc-status-card, .rk-spc-insight-card { padding: 20px; }
    .rk-spc-dashboard { grid-template-columns: 1fr; padding: 20px; gap: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jaki rozstaw rur w płycie fundamentowej przy pompie ciepła jest optymalny?",
    "description": "Profesjonalna analiza doboru rozstawu rur grzewczych w płytach fundamentowych współpracujących z pompami ciepła. Wpływ na SCOP, temperaturę zasilania i błędy montażowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-dataset",
    "name": "Korelacja gęstości ułożenia pętli grzewczych z efektywnością energetyczną SCOP",
    "description": "Zbiór danych empirycznych odnośnie wpływu rozstawu przewodów (10 cm, 15 cm, 20 cm) na wymaganą temperaturę czynnika grzewczego i spadek sprawności pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "efekt zebry termicznej podłogówki",
      "gęstość strumienia cieplnego en 1264",
      "strefa brzegowa ogrzewania podłogowego",
      "temperatura zasilania pompy ciepła"
    ],
    "measurementTechnique": "Modelowanie rozkładu temperatur płaszczyzny grzewczej i symulacja parametrów hydraulicznych pętli według wytycznych normy PN-EN 1264-2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw optymalny 15 cm: zasilanie 35C, gęstość 35-45 W/m2, SCOP maksymalny",
        "Rozstaw zagęszczony 10 cm: dedykowany dla stref przyokiennych (brzegowych)",
        "Rozstaw wadliwy 20-25 cm: zasilanie 42C, spadek SCOP o 15-20 procent, efekt zebry"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#pipe-spacing-webapp",
    "name": "Symulator Efektywności Termodynamicznej Rozstawu Pętli",
    "description": "Interaktywna aplikacja przeliczająca parametry gęstości strumienia cieplnego i straty sprawności pompy ciepła na podstawie konfiguracji rozstawu rur.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spc-container" id="rk-pipe-spacing-app">
    <div class="rk-spc-header-block">
        <h2>Jaki rozstaw rur w płycie fundamentowej przy pompie ciepła jest optymalny?</h2>
        <p>
            Gęstość ułożenia pętli w monolicie betonowym decyduje o wymaganej temperaturze roboczej czynnika. Wybierz rozstaw rur, aby natychmiast sprawdzić parametry termodynamiczne przegrody i sprawność pompy ciepła.
        </p>
    </div>

    <div class="rk-spc-body">
        
        <div class="rk-spc-controls">
            <button class="rk-spc-btn" id="rk-sbtn-1">
                <span class="rk-spc-btn-title">Rozstaw co 10 cm</span>
                <span class="rk-spc-btn-subtitle">Strefy brzegowe i przyokienne</span>
            </button>
            <button class="rk-spc-btn active" id="rk-sbtn-2">
                <span class="rk-spc-btn-title">Rozstaw co 15 cm</span>
                <span class="rk-spc-btn-subtitle">Standard Inżynierski (Bytowy)</span>
            </button>
            <button class="rk-spc-btn" id="rk-sbtn-3">
                <span class="rk-spc-btn-title">Rozstaw co 20-25 cm</span>
                <span class="rk-spc-btn-subtitle">Błąd Wykonawczy (Zwyczajowy)</span>
            </button>
        </div>

        <div class="rk-spc-dashboard">
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Temperatura Zasilania</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-temp">35 <span>°C</span></div>
            </div>
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Strumień Cieplny</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-flux">45 <span>W/m²</span></div>
            </div>
            <div class="rk-spc-dash-item">
                <span class="rk-spc-dash-label">Wpływ na SCOP Pompy</span>
                <div class="rk-spc-dash-value" id="rk-spc-dash-scop" style="color: var(--rk-spc-success);">Maksymalny SCOP</div>
            </div>
        </div>

        <div class="rk-spc-status-card" id="rk-spc-status-box">
            <h3 id="rk-spc-status-title">Optymalna ergonomiczna konfiguracja płaszczyzny</h3>
            <p id="rk-spc-status-desc">Rozstaw co 15 cm to złoty standard inżynierski. Zapewnia doskonałe zrównoważenie hydrauliczne rotametrów i pozwala pompie ciepła pracować z najwyższą sprawnością.</p>
        </div>

    </div>

    <div class="rk-spc-text-zone">
        <div class="rk-spc-cards-stack">
            
            <div class="rk-spc-insight-card" style="border-left-color: var(--rk-spc-danger);">
                <h4>Fizyczne konsekwencje błędów montażowych</h4>
                <p>
                    Konsekwencje błędów przy doborze rozstawu rur są całkowicie <strong>nieodwracalne po zalaniu mieszanki betonowej</strong>:
                </p>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; font-size: 14.5px; color: var(--rk-spc-text);">
                    <li style="margin-bottom: 8px;">
                        <strong>Rozstaw co 20-25 cm:</strong> Powoduje powstanie uciążliwego zjawiska, jakim jest <strong>efekt zebry termicznej</strong> (wyczuwalne pasy ciepła i chłodu na okładzinie posadzkowej) oraz niedogrzanie budynku w trakcie mrozów projektowych (np. -20°C dla III strefy klimatycznej Polski). Wymusza to podniesienie temperatury zasilania do 42°C, generując spadek SCOP pompy o około <strong>15-20%</strong>.
                    </li>
                    <li>
                        <strong>Zbyt gęsty rozstaw (poniżej 10 cm):</strong> Generuje gigantyczne opory hydrauliczne wewnątrz pętli. Skutkuje to drastycznym wzrostem poboru prądu przez pompę obiegową lub całkowicie uniemożliwia prawidłowe <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zrównoważenie hydrauliczne instalacji</a> na rotametrach rozdzielacza.
                    </li>
                </ul>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var b1 = document.getElementById('rk-sbtn-1');
    var b2 = document.getElementById('rk-sbtn-2');
    var b3 = document.getElementById('rk-sbtn-3');
    
    var dTemp = document.getElementById('rk-spc-dash-temp');
    var dFlux = document.getElementById('rk-spc-dash-flux');
    var dScop = document.getElementById('rk-spc-dash-scop');
    
    var sBox = document.getElementById('rk-spc-status-box');
    var sTitle = document.getElementById('rk-spc-status-title');
    var sDesc = document.getElementById('rk-spc-status-desc');

    function clearActive() {
        if(b1) { b1.classList.remove('active'); }
        if(b2) { b2.classList.remove('active'); }
        if(b3) { b3.classList.remove('active'); }
    }

    if(b1) {
        b1.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '30 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '55 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = 'Maksymalny SCOP'; 
                dScop.style.color = 'var(--rk-spc-success)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-blue)'; }
            if(sTitle) { sTitle.innerHTML = 'Zagęszczenie brzegowe (Kompensacja radiacji)'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw 10 cm stosuje się wyłącznie na pasach szerokości 1-1,5 m od dużych przeszkleń. Generuje większe opory, ale idealnie odcina chłód z zewnątrz.'; }
        });
    }

    if(b2) {
        b2.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '35 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '45 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = 'Optymalny SCOP'; 
                dScop.style.color = 'var(--rk-spc-success)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-success)'; }
            if(sTitle) { sTitle.innerHTML = 'Optymalna ergonomiczna konfiguracja płaszczyzny'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw co 15 cm to złoty standard inżynierski. Zapewnia doskonałe zrównoważenie hydrauliczne rotametrów i pozwala pompie ciepła pracować z najwyższą sprawnością.'; }
        });
    }

    if(b3) {
        b3.addEventListener('click', function() {
            clearActive();
            this.classList.add('active');
            
            if(dTemp) { dTemp.innerHTML = '42 <span>°C</span>'; }
            if(dFlux) { dFlux.innerHTML = '25 <span>W/m²</span>'; }
            if(dScop) { 
                dScop.innerHTML = '-20% Wydajności'; 
                dScop.style.color = 'var(--rk-spc-danger)';
            }
            
            if(sBox) { sBox.style.borderLeftColor = 'var(--rk-spc-danger)'; }
            if(sTitle) { sTitle.innerHTML = 'Wadliwy montaż: Ryzyko zebry termicznej'; }
            if(sDesc) { sDesc.innerHTML = 'Rozstaw co 20-25 cm to poważny błąd. Wymusza przegrzewanie zładu do 42°C, drastycznie podnosi rachunki za prąd i tworzy wyczuwalne pasy chłodu na posadzce.'; }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-hydraulic-loop-app,
#rk-hydraulic-loop-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-darker: #080f1e;
    --rk-loop-blue: #0284c7;
    --rk-loop-light: #f8fafc;
    --rk-loop-border: #e2e8f0;
    --rk-loop-text: #334155;
    --rk-loop-bg: #ffffff;
    --rk-loop-danger: #ef4444;
    --rk-loop-warning: #f59e0b;
    --rk-loop-success: #10b981;
}

.rk-loop-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-loop-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-loop-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

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

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

.rk-loop-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Panel Roboczy - Układ Jednokolumnowy */
.rk-loop-body {
    padding: 35px 45px;
    background: var(--rk-loop-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Strefa Interaktywna: Przełączniki i Suwak */
.rk-loop-interactive-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-loop-toggle-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-loop-toggle-row span {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

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

.rk-loop-toggle-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 14px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-loop-text);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
}

.rk-loop-toggle-btn:hover {
    border-color: #cbd5e1;
}

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

.rk-loop-slider-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-loop-label-zone {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

.rk-loop-current-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-loop-blue);
    background: #f0f9ff;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

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

.rk-loop-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-loop-blue);
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(2, 132, 199, 0.4);
}

/* Szybka Ramka Wynikowa (Dashboard) */
.rk-loop-dashboard {
    background: var(--rk-loop-darker);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 25px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-loop-blue);
}

.rk-loop-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-loop-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-loop-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    transition: color 0.3s ease;
}

.rk-loop-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
}

/* Status Alert */
.rk-loop-status-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 16px;
    padding: 25px;
    border-left: 5px solid var(--rk-loop-success);
    transition: border-color 0.3s ease;
}

.rk-loop-status-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin: 0 0 10px 0;
}

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

/* Nowoczesne Karty Edukacyjne (Zastępują ścianę tekstu) */
.rk-loop-insights-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 10px;
}

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

.rk-loop-insight-card:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);
}

.rk-loop-insight-icon {
    width: 44px;
    height: 44px;
    background: #f8fafc;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-loop-blue);
    flex-shrink: 0;
}

.rk-loop-insight-content h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin: 0 0 8px 0;
}

.rk-loop-insight-content p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-loop-text);
    margin: 0;
}

.rk-loop-insight-content strong {
    color: var(--rk-loop-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-loop-header-block, .rk-loop-body { padding: 30px 20px; }
    .rk-loop-interactive-card, .rk-loop-status-card { padding: 20px; }
    .rk-loop-dashboard { grid-template-columns: 1fr; padding: 20px; gap: 15px; }
    .rk-loop-btn-group { flex-direction: column; }
    .rk-loop-insight-card { flex-direction: column; gap: 12px; padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jaka jest maksymalna długość pętli w płycie fundamentowej?",
    "description": "Poradnik inżynierski opisujący limity długości obwodów grzewczych w termicznej płycie fundamentowej. Konsekwencje hydrauliczne przekroczenia 100 metrów długości pętli.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-dataset",
    "name": "Właściwości hydrodynamiczne obwodów płaszczyznowych PERT-PEX",
    "description": "Zestawienie fizyczne korelacji długości przewodów z oporami przepływu liniowego i spadkiem temperatury Delta T dla średnic nominalnych 16 mm i 20 mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna dlugosc petli podlogowki",
      "za dluga petla podlogowki",
      "rura pex 16 opory hydrauliczne",
      "cisnienie pompy obiegowej",
      "spadek temperatury podlogowki"
    ],
    "measurementTechnique": "Modelowanie matematyczne strat ciśnienia liniowego oraz przepływów masowych cieczy zgodnie z normą PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura grzewcza 16x2 mm: Maksymalna zalecana długość 100 metrów bieżących",
        "Rura grzewcza 20x2 mm: Dopuszczalna długość konstrukcyjna do 150 metrów bieżących",
        "Wysokość podnoszenia standardowego układu pompowego: 6 metrów słupa wody (60 kPa)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#loop-length-webapp",
    "name": "Symulator Oporów i Przepływu Pętli Grzewczej",
    "description": "Zaawansowana aplikacja obliczeniowa służąca do symulacji oporów hydraulicznych i spadków temperatur w zatopionych w fundamencie rurociągach grzewczych.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-hydraulic-loop-app">
    <div class="rk-loop-header-block">
        <h2>Jaka jest maksymalna długość pętli w płycie fundamentowej?</h2>
        <p>
            Przekroczenie granicznych długości obwodów grzewczych w fundamencie grozi trwałym zablokowaniem przepływu wody. Wybierz średnicę rury i ustaw długość pętli, aby zasymulować opory hydrauliczne układu.
        </p>
    </div>

    <div class="rk-loop-body">
        
        <div class="rk-loop-interactive-card">
            <div class="rk-loop-toggle-row">
                <span>Wybierz średnicę rury grzewczej:</span>
                <div class="rk-loop-btn-group">
                    <button class="rk-loop-toggle-btn active" id="rk-pipe-16">Średnica 16 mm (ścianka 2 mm)</button>
                    <button class="rk-loop-toggle-btn" id="rk-pipe-20">Średnica 20 mm (ścianka 2 mm)</button>
                </div>
            </div>

            <div class="rk-loop-slider-row">
                <div class="rk-loop-label-zone">
                    <label for="rk-loop-slider">Całkowita długość pojedynczej pętli (L):</label>
                    <span class="rk-loop-current-value" id="rk-loop-len-lbl">100 m</span>
                </div>
                <input type="range" class="rk-loop-range-input" id="rk-loop-slider" min="50" max="180" step="5" value="100">
            </div>
        </div>

        <div class="rk-loop-dashboard">
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Opór Hydrauliczny</span>
                <div class="rk-loop-dash-value" id="rk-dash-press">20.0 <span>kPa</span></div>
            </div>
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Spadek Temperatury</span>
                <div class="rk-loop-dash-value" id="rk-dash-dt">5.0 <span>K</span></div>
            </div>
            <div class="rk-loop-dash-item">
                <span class="rk-loop-dash-label">Przepływ na rotametrze</span>
                <div class="rk-loop-dash-value" id="rk-dash-rotam">2.0 <span>l/min</span></div>
            </div>
        </div>

        <div class="rk-loop-status-card" id="rk-loop-status-box">
            <h3 id="rk-loop-status-title">Optymalna praca hydrauliczna</h3>
            <p id="rk-loop-status-desc">Obwód grzewczy mieści się w bezpiecznych granicach projektowych. Opory liniowe nie przeciążają pompy obiegowej, a rozkład temperatur jest w pełni jednorodny.</p>
        </div>

        <div class="rk-loop-insights-grid">
            
            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Normy i fizyczne opory przepływu</h4>
                    <p>Maksymalna długość pojedynczej pętli grzewczej o średnicy 16 mm (z grubością ścianki 2 mm) w płycie fundamentowej wynosi <strong>100 m bieżących</strong>, wliczając w to odcinki doprowadzające do rozdzielacza. Zgodnie z zasadami hydrauliki instalacyjnej i normą <strong>PN-EN 1264-4</strong>, przekroczenie tej wartości powoduje wzrost oporów przepływu powyżej <strong>20 kPa</strong>, co skutkuje drastycznym spadkiem przepływu masowego poniżej wartości projektowych. Dla rur o średnicy 20 mm dopuszczalna długość pętli wzrasta do <strong>150 m</strong>, jednak wymagają one znacznie większego promienia gięcia przy montażu na siatkach zbrojeniowych.</p>
                </div>
            </div>

            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 9a4 4 0 0 0-2 7.5"></path><path d="M12 3v2"></path><path d="M6.6 18.4l-1.4 1.4"></path><path d="M20 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0z"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Zjawisko całkowitego wychłodzenia</h4>
                    <p>Jeśli pętla będzie za długa (np. 130-140 m dla rury 16 mm), woda w końcowej części obwodu ulegnie całkowitemu wychłodzeniu. Spadek temperatury <strong>Delta T</strong> wykroczy poza dopuszczalne 5-10 K, osiągając nawet <strong>15 K</strong>, co doprowadzi do odczuwalnych, chłodnych stref na posadzce.</p>
                </div>
            </div>

            <div class="rk-loop-insight-card">
                <div class="rk-loop-insight-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <div class="rk-loop-insight-content">
                    <h4>Blokada pompy i rotametrów</h4>
                    <p>Pompa obiegowa o standardowej wysokości podnoszenia 6 m słupa wody (<strong>60 kPa</strong>) nie zdoła przetłoczyć odpowiedniej ilości czynnika przez tak wysokie opory. W efekcie całe pomieszczenie obsługiwane przez dany obwód pozostanie niedogrzane, a rotametr na rozdzielaczu zatrzyma się w pozycji bliskiej <strong>0 l/min</strong>, bez możliwości mechanicznej regulacji.</p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rk-loop-slider');
    var btn16 = document.getElementById('rk-pipe-16');
    var btn20 = document.getElementById('rk-pipe-20');
    
    var lenLbl = document.getElementById('rk-loop-len-lbl');
    var dPress = document.getElementById('rk-dash-press');
    var dDt = document.getElementById('rk-dash-dt');
    var dRotam = document.getElementById('rk-dash-rotam');
    
    var statusBox = document.getElementById('rk-loop-status-box');
    var statusTitle = document.getElementById('rk-loop-status-title');
    var statusDesc = document.getElementById('rk-loop-status-desc');

    var currentPipe = 16; // Domyślnie 16mm

    function calculateHydraulics() {
        var length = 100;
        if (slider) { length = parseFloat(slider.value); }
        if (lenLbl) { lenLbl.innerHTML = length + " m"; }

        var press = 0;
        var dt = 5.0;
        var rotam = 2.0;

        // Bezpieczny algorytm w zagnieżdżonych blokach if
        if (currentPipe === 16) {
            press = 5 + ((length * length) / 500);
            
            if (length <= 100) {
                dt = 5.0 + ((length - 50) / 25);
                rotam = 2.2 - ((length - 50) / 250);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-success)"; }
                if (statusTitle) { statusTitle.innerHTML = "Optymalna praca hydrauliczna"; }
                if (statusDesc) { statusDesc.innerHTML = "Pętla 16 mm mieści się w normatywnych 100 metrach. Opory przepływu liniowego są niskie, a spadek temperatury Delta T zapewnia idealny komfort bez przeciążania pompy."; }
            }
            if (length > 100) {
                if (length <= 125) {
                    dt = 7.0 + ((length - 100) / 10);
                    rotam = 1.8 - ((length - 100) / 50);
                    if (rotam < 0.4) { rotam = 0.4; }
                    
                    if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-warning)"; }
                    if (statusTitle) { statusTitle.innerHTML = "Przekroczony opór graniczny (Wskazane pogrubienie rury)"; }
                    if (statusDesc) { statusDesc.innerHTML = "Pętla jest za długa dla rury 16 mm. Opory przekraczają 25 kPa, co wymusi podniesienie biegu pompy obiegowej i zwiększy zużycie prądu."; }
                }
            }
            if (length > 125) {
                dt = 11.0 + ((length - 125) / 5);
                rotam = 0.3 - ((length - 125) / 200);
                if (rotam <= 0) { rotam = 0.0; }
                if (dt > 15.0) { dt = 15.0; }
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-danger)"; }
                if (statusTitle) { statusTitle.innerHTML = "Krytyczna awaria: Brak przepływu i zimna strefa"; }
                if (statusDesc) { statusDesc.innerHTML = "Pętla uległa hydraulicznemu zablokowaniu. Opory są wyższe niż ciśnienie tłoczenia pompy obiegowej (60 kPa). Rotametr opadł do zera, a woda wychładza się całkowicie, powodując niedogrzanie pomieszczenia."; }
            }
        }

        if (currentPipe === 20) {
            press = 3 + ((length * length) / 1100);
            
            if (length <= 145) {
                dt = 5.0 + ((length - 50) / 45);
                rotam = 2.5 - ((length - 50) / 400);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-success)"; }
                if (statusTitle) { statusTitle.innerHTML = "Optymalna praca hydrauliczna (Profil 20 mm)"; }
                if (statusDesc) { statusDesc.innerHTML = "Rura o średnicy 20 mm bezproblemowo radzi sobie z długimi obiegami do 150 metrów. Opory mieszczą się w normie, zapewniając stabilne zrównoważenie hydrauliczne instalacji."; }
            }
            if (length > 145) {
                dt = 7.5 + ((length - 145) / 12);
                rotam = 1.9 - ((length - 145) / 60);
                
                if (statusBox) { statusBox.style.borderLeftColor = "var(--rk-loop-warning)"; }
                if (statusTitle) { statusTitle.innerHTML = "Ostrzeżenie: Duża bezwładność pętli"; }
                if (statusDesc) { statusDesc.innerHTML = "Długość zbliża się do krytycznej granicy dla profilu 20 mm. Wymagany promieni gięcia na zbrojeniu utrudnia montaż, a opory zaczynają dławić przepływ masowy."; }
            }
        }

        if (dPress) { dPress.innerHTML = press.toFixed(1) + " <span>kPa</span>"; }
        if (dDt) { dDt.innerHTML = dt.toFixed(1) + " <span>K</span>"; }
        if (dRotam) { dRotam.innerHTML = rotam.toFixed(2) + " <span>l/min</span>"; }
    }

    if (btn16) {
        btn16.addEventListener('click', function() {
            if (btn20) { btn20.classList.remove('active'); }
            this.classList.add('active');
            currentPipe = 16;
            if (slider) {
                slider.min = "50";
                slider.max = "150";
            }
            calculateHydraulics();
        });
    }

    if (btn20) {
        btn20.addEventListener('click', function() {
            if (btn16) { btn16.classList.remove('active'); }
            this.classList.add('active');
            currentPipe = 20;
            if (slider) {
                slider.min = "50";
                slider.max = "180";
            }
            calculateHydraulics();
        });
    }

    if (slider) { slider.addEventListener('input', calculateHydraulics); }

    calculateHydraulics();
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-systems-comparison-app,
#rk-systems-comparison-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-darker: #080f1e;
    --rk-comp-blue: #0284c7;
    --rk-comp-light: #f8fafc;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #334155;
    --rk-comp-bg: #ffffff;
    --rk-comp-active-bg: #f0f9ff;
    --rk-comp-active-border: #0284c7;
}

.rk-comp-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-comp-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

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

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

.rk-comp-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

/* Sekcja Główna - Układ Jednokolumnowy */
.rk-comp-body {
    padding: 35px 45px;
    background: var(--rk-comp-bg);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Kontrolki wyboru (Segmented Control - Przełączniki) */
.rk-comp-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-comp-controls {
        flex-direction: row;
    }
}

.rk-comp-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-comp-btn:hover {
    border-color: #94a3b8;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px -3px rgba(15, 23, 42, 0.08);
}

.rk-comp-btn.active {
    background: var(--rk-comp-active-bg);
    border-color: var(--rk-comp-active-border);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

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

.rk-comp-btn-subtitle {
    font-size: 13px;
    color: #64748b;
    font-weight: 500;
}

.rk-comp-btn.active .rk-comp-btn-title {
    color: var(--rk-comp-blue);
}

/* Ciemny Dashboard Wynikowy (Zamiast Tabeli) */
.rk-comp-dashboard {
    background: var(--rk-comp-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-comp-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-comp-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-comp-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-comp-dash-value {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
}

.rk-comp-dash-value span {
    font-size: 15px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Opisowa pod Dashboardem */
.rk-comp-desc-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px 30px;
    border-left: 4px solid #10b981;
    transition: border-color 0.3s ease;
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-body { padding: 30px 20px; }
    .rk-comp-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-comp-dash-value { font-size: 24px; }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Porównanie parametrów technicznych systemów płytowych",
    "description": "Szczegółowe zestawienie parametrów technicznych dla termicznych płyt fundamentowych. Porównanie rur 16 mm i 20 mm, grubości izolacji oraz temperatur zasilania.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-dataset",
    "name": "Matryca Techniczna Termicznych Płyt Fundamentowych",
    "description": "Zestawienie właściwości hydraulicznych i termicznych: opór przegrody, maksymalne długości pętli rur PEX/PERT, jednostkowy zrzut wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne płyty grzewczej",
      "opór cieplny płyty fundamentowej",
      "rozstaw rur w płycie fundamentowej",
      "maksymalna długość pętli w betonie",
      "jednostkowy zrzut wody ogrzewania"
    ],
    "measurementTechnique": "Obliczenia hydrauliczne i cieplne zgodne z normami budowlanymi dotyczącymi instalacji płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Standardowy 16mm: Opór R = 4.41 m2K/W, Długość pętli do 100 m",
        "System Wysokoprzepływowy 20mm: Opór R = 4.41 m2K/W, Długość pętli do 150 m",
        "Klasa Pasywna NF15 16mm: Opór R = 7.35 m2K/W, Długość pętli do 90 m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-webapp",
    "name": "Interaktywny Komparator Systemów Płytowych",
    "description": "Aplikacja służąca do zestawiania i bezpośredniego porównywania kluczowych wskaźników inżynierskich dla fundamentowych systemów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-wrapper" id="rk-systems-comparison-app">
    <div class="rk-comp-header">
        <h2>Porównanie parametrów technicznych systemów płytowych</h2>
        <p>
            Poniższy panel zastępuje tradycyjną, nieczytelną tabelę. Wybierz odpowiedni wariant konstrukcyjny, aby błyskawicznie sprawdzić kluczowe parametry techniczne i projektowe dla Twojej płyty fundamentowej.
        </p>
    </div>

    <div class="rk-comp-body">
        
        <div class="rk-comp-controls">
            <button class="rk-comp-btn active" id="rk-tab-1">
                <span class="rk-comp-btn-title">System Standardowy</span>
                <span class="rk-comp-btn-subtitle">Rura 16 mm</span>
            </button>
            <button class="rk-comp-btn" id="rk-tab-2">
                <span class="rk-comp-btn-title">Wysokoprzepływowy</span>
                <span class="rk-comp-btn-subtitle">Rura 20 mm</span>
            </button>
            <button class="rk-comp-btn" id="rk-tab-3">
                <span class="rk-comp-btn-title">Klasa Pasywna NF15</span>
                <span class="rk-comp-btn-subtitle">Rura 16 mm</span>
            </button>
        </div>

        <div class="rk-comp-dashboard">
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Rozstaw Rur (Strefa Bytowa)</span>
                <div class="rk-comp-dash-value" id="rk-val-space">15 <span>cm</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Maks. Długość Pętli</span>
                <div class="rk-comp-dash-value" id="rk-val-len">100 <span>m</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Grubość Izolacji XPS</span>
                <div class="rk-comp-dash-value" id="rk-val-xps">150 <span>mm</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Opór Cieplny (R)</span>
                <div class="rk-comp-dash-value" id="rk-val-res">4,41 <span>m²·K/W</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Projektowa Temp. Zasilania</span>
                <div class="rk-comp-dash-value" id="rk-val-temp">35 <span>°C</span></div>
            </div>
            <div class="rk-comp-dash-item">
                <span class="rk-comp-dash-label">Zrzut Wody</span>
                <div class="rk-comp-dash-value" id="rk-val-water">0,113 <span>l/m</span></div>
            </div>
        </div>

        <div class="rk-comp-desc-card" id="rk-desc-card">
            <h3 id="rk-desc-title">System Standardowy: Optymalny wybór inwestycyjny</h3>
            <p id="rk-desc-text">
                Klasyczny układ na rurze 16 mm zapewnia idealny balans między kosztami materiałowymi a sprawnością hydrauliczną. Przy długości pętli nieprzekraczającej 100 metrów i rozstawie co 15 cm, standardowa pompa obiegowa bez problemu tłoczy zład wodny, a temperatura zasilania rzędu 35°C gwarantuje wysoki, średnioroczny współczynnik efektywności pompy ciepła (SCOP).
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-tab-1');
    var btn2 = document.getElementById('rk-tab-2');
    var btn3 = document.getElementById('rk-tab-3');
    
    var valSpace = document.getElementById('rk-val-space');
    var valLen = document.getElementById('rk-val-len');
    var valXps = document.getElementById('rk-val-xps');
    var valRes = document.getElementById('rk-val-res');
    var valTemp = document.getElementById('rk-val-temp');
    var valWater = document.getElementById('rk-val-water');

    var descCard = document.getElementById('rk-desc-card');
    var descTitle = document.getElementById('rk-desc-title');
    var descText = document.getElementById('rk-desc-text');

    function resetActiveBtns() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '15 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '100 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '150 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '4,41 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '35 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,113 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#10b981'; } // Zielony
            if(descTitle) { descTitle.innerHTML = 'System Standardowy: Optymalny wybór inwestycyjny'; }
            if(descText) { 
                descText.innerHTML = 'Klasyczny układ na rurze 16 mm zapewnia idealny balans między kosztami materiałowymi a sprawnością hydrauliczną. Przy długości pętli nieprzekraczającej 100 metrów i rozstawie co 15 cm, standardowa pompa obiegowa bez problemu tłoczy zład wodny, a temperatura zasilania rzędu 35°C gwarantuje wysoki, średnioroczny współczynnik efektywności pompy ciepła (SCOP).'; 
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '20 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '150 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '150 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '4,41 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '38 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,177 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#f59e0b'; } // Pomarańczowy
            if(descTitle) { descTitle.innerHTML = 'Wysokoprzepływowy: Dedykowany do dużych kubatur'; }
            if(descText) { 
                descText.innerHTML = 'Rozwiązanie wykorzystujące grubszą rurę 20 mm świetnie sprawdza się w budynkach komercyjnych lub salonach o ogromnej powierzchni. Większa średnica redukuje opory hydrauliczne i pozwala na formowanie ekstremalnie długich pętli (do 150 m). Wymaga to jednak nieco rzadszego rozstawienia rur i podniesienia temperatury zasilania do ok. 38°C.'; 
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            resetActiveBtns();
            this.classList.add('active');
            
            if(valSpace) { valSpace.innerHTML = '10 <span>cm</span>'; }
            if(valLen) { valLen.innerHTML = '90 <span>m</span>'; }
            if(valXps) { valXps.innerHTML = '250 <span>mm</span>'; }
            if(valRes) { valRes.innerHTML = '7,35 <span>m²·K/W</span>'; }
            if(valTemp) { valTemp.innerHTML = '30 <span>°C</span>'; }
            if(valWater) { valWater.innerHTML = '0,113 <span>l/m</span>'; }

            if(descCard) { descCard.style.borderLeftColor = '#0284c7'; } // Niebieski
            if(descTitle) { descTitle.innerHTML = 'Klasa Pasywna NF15: Maksymalna energooszczędność'; }
            if(descText) { 
                descText.innerHTML = 'Bezkompromisowy wariant inżynierski. Potężna warstwa izolacji dolnej (XPS 25 cm) w połączeniu z gęstym rozstawem rur (co 10 cm) pozwala na obniżenie krzywej grzewczej pompy ciepła do zaledwie 30°C. Straty ciepła w dół gruntu są niemal zerowe, a urządzenie grzewcze pracuje z najwyższą możliwą sprawnością elektryczną przez cały sezon zimowy.'; 
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu bezszeryfowego i reset */
#rk-systems-comparison,
#rk-systems-comparison * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-light: #f8fafc;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #334155;
    --rk-comp-bg: #ffffff;
    --rk-comp-active-bg: #f0f9ff;
    --rk-comp-active-border: #0284c7;
}

.rk-comp-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-comp-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

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

.rk-comp-header-zone h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

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

/* Panel Główny */
.rk-comp-body {
    padding: 35px 45px;
    background: var(--rk-comp-light);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Selektory wariantu - Układ poziomy na desktopie, pionowy na mobile */
.rk-comp-tabs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-comp-tabs {
        flex-direction: row;
    }
}

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

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

.rk-comp-tab-btn.active {
    background: var(--rk-comp-active-bg);
    border-color: var(--rk-comp-active-border);
    transform: translateY(0);
}

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

.rk-comp-tab-desc {
    font-size: 12px;
    color: #64748b;
}

/* Karta specyfikacji danych */
.rk-comp-display-board {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.01);
}

.rk-comp-board-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    margin: 0 0 20px 0;
    border-bottom: 2px solid var(--rk-comp-light);
    padding-bottom: 12px;
}

/* Siatka parametrów - jedno kolumnowa, przejrzysta struktura */
.rk-comp-grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-comp-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f5f9;
}

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

.rk-comp-param-label {
    font-size: 14.5px;
    color: var(--rk-comp-text);
    font-weight: 500;
}

.rk-comp-param-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-comp-dark);
    background: #f1f5f9;
    padding: 6px 14px;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.rk-comp-tab-btn.active .rk-comp-param-value {
    background: #e0f2fe;
    color: #0369a1;
}

@media (max-width: 768px) {
    .rk-comp-header-zone, .rk-comp-body { padding: 30px 20px; }
    .rk-comp-display-board { padding: 20px; }
    .rk-comp-row { flex-direction: column; align-items: flex-start; gap: 8px; }
    .rk-comp-param-value { align-self: flex-end; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Porównanie parametrów technicznych systemów płytowych",
    "description": "Zestawienie fizyczne i hydrauliczne trzech głównych wariantów wykonawczych termicznych płyt fundamentowych. Analiza rozstawu rur, oporu przegrody i temperatur zasilania.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-dataset",
    "name": "Matryca Techniczna Systemów Termicznych Płyt Fundamentowych",
    "description": "Porównawcza baza danych właściwości fizycznych: opór cieplny jastrychów betonu nośnego, maksymalne długości rur PEX/PERT, normatywne limity zrzutu wody.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne płyty grzewczej",
      "opór cieplny płyty fundamentowej",
      "rozstaw rur w płycie fundamentowej",
      "maksymalna długość pętli w betonie",
      "jednostkowy zrzut wody ogrzewania"
    ],
    "measurementTechnique": "Badania fizykalne oporu przewodzenia i obliczenia hydrauliczne zgodne z normami PN-EN 1264-2 oraz PN-EN ISO 15875.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Standardowy 16mm: Opór R = 4.41 m2K/W, Długość pętli do 100 m",
        "System Wysokoprzepływowy 20mm: Opór R = 4.41 m2K/W, Długość pętli do 150 m",
        "Klasa Pasywna NF15 16mm: Opór R = 7.35 m2K/W, Długość pętli do 90 m"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#comparison-webapp",
    "name": "Interaktywny Komparator Systemów Płytowych",
    "description": "Narzędzie służące do selektywnego przełączania i dynamicznej analizy wariantów konstrukcyjno-instalacyjnych fundamentów grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-systems-comparison">
    <div class="rk-comp-header-zone">
        <h2>Porównanie parametrów technicznych systemów płytowych</h2>
        <p>
            Poniższe zestawienie przedstawia kluczowe parametry techniczne i projektowe dla termicznych płyt fundamentowych w zależności od przyjętej konfiguracji rur oraz standardu izolacji obwodowej.
        </p>
    </div>

    <div class="rk-comp-body">
        
        <div class="rk-comp-tabs">
            <button class="rk-comp-tab-btn active" id="rk-ctab-1">
                <span class="rk-comp-tab-title">System Standardowy</span>
                <span class="rk-comp-tab-desc">Rura 16 mm – Klasyczny zrównoważony wybór</span>
            </button>
            <button class="rk-comp-tab-btn" id="rk-ctab-2">
                <span class="rk-comp-tab-title">System Wysokoprzepływowy</span>
                <span class="rk-comp-tab-desc">Rura 20 mm – Niski opór dla dużych powierzchni</span>
            </button>
            <button class="rk-comp-tab-btn" id="rk-ctab-3">
                <span class="rk-comp-tab-title">Klasa Pasywna NF15</span>
                <span class="rk-comp-tab-desc">Rura 16 mm – Maksymalna izolacja dolna</span>
            </button>
        </div>

        <div class="rk-comp-display-board">
            <div class="rk-comp-board-title" id="rk-comp-board-name">Specyfikacja: System Standardowy (Rura 16 mm)</div>
            
            <div class="rk-comp-grid">
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Rozstaw rur (strefa bytowa)</span>
                    <span class="rk-comp-param-value" id="rk-val-spacing">15 cm</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Maksymalna długość pętli grzewczej</span>
                    <span class="rk-comp-param-value" id="rk-val-loop">100 m</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Grubość izolacji termicznej XPS</span>
                    <span class="rk-comp-param-value" id="rk-val-xps">150 mm</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Opór cieplny przegrody R</span>
                    <span class="rk-comp-param-value" id="rk-val-resistance">4,41 m²·K/W</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Projektowa temperatura zasilania podłogówki</span>
                    <span class="rk-comp-param-value" id="rk-val-temp">35°C</span>
                </div>
                <div class="rk-comp-row">
                    <span class="rk-comp-param-label">Jednostkowy zrzut wody w rurociągu</span>
                    <span class="rk-comp-param-value" id="rk-val-water">0,113 l/m</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tab1 = document.getElementById('rk-ctab-1');
    var tab2 = document.getElementById('rk-ctab-2');
    var tab3 = document.getElementById('rk-ctab-3');
    
    var boardName = document.getElementById('rk-comp-board-name');
    var valSpacing = document.getElementById('rk-val-spacing');
    var valLoop = document.getElementById('rk-val-loop');
    var valXps = document.getElementById('rk-val-xps');
    var valResistance = document.getElementById('rk-val-resistance');
    var valTemp = document.getElementById('rk-val-temp');
    var valWater = document.getElementById('rk-val-water');

    function clearTabs() {
        if(tab1) { tab1.classList.remove('active'); }
        if(tab2) { tab2.classList.remove('active'); }
        if(tab3) { tab3.classList.remove('active'); }
    }

    if(tab1) {
        tab1.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: System Standardowy (Rura 16 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '15 cm'; }
            if(valLoop) { valLoop.innerHTML = '100 m'; }
            if(valXps) { valXps.innerHTML = '150 mm'; }
            if(valResistance) { valResistance.innerHTML = '4,41 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '35°C'; }
            if(valWater) { valWater.innerHTML = '0,113 l/m'; }
        });
    }

    if(tab2) {
        tab2.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: System Wysokoprzepływowy (Rura 20 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '20 cm'; }
            if(valLoop) { valLoop.innerHTML = '150 m'; }
            if(valXps) { valXps.innerHTML = '150 mm'; }
            if(valResistance) { valResistance.innerHTML = '4,41 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '38°C'; }
            if(valWater) { valWater.innerHTML = '0,177 l/m'; }
        });
    }

    if(tab3) {
        tab3.addEventListener('click', function() {
            clearTabs();
            this.classList.add('active');
            if(boardName) { boardName.innerHTML = 'Specyfikacja: Klasa Pasywna NF15 (Rura 16 mm)'; }
            if(valSpacing) { valSpacing.innerHTML = '10 cm'; }
            if(valLoop) { valLoop.innerHTML = '90 m'; }
            if(valXps) { valXps.innerHTML = '250 mm'; }
            if(valResistance) { valResistance.innerHTML = '7,35 m²·K/W'; }
            if(valTemp) { valTemp.innerHTML = '30°C'; }
            if(valWater) { valWater.innerHTML = '0,113 l/m'; }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-engineering-calc-app,
#rk-engineering-calc-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-bg: #ffffff;
    --rk-calc-accent: #0f766e;
    --rk-calc-highlight: #f0f9ff;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

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

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

.rk-calc-header-block p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 auto;
    max-width: 750px;
}

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

/* Strefa Interaktywna: Suwaki + Wynik na żywo */
.rk-calc-interactive-zone {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    gap: 35px;
}

/* Sekcja Suwaków Wejściowych */
.rk-calc-inputs-wrapper {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-calc-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-calc-label-zone {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

.rk-calc-current-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-highlight);
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid #bae6fd;
}

/* Wygląd suwaka */
.rk-calc-slider-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    transition: background 0.3s;
}

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

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

/* Szybka Ramka Wynikowa (Dashboard) */
.rk-calc-dashboard {
    background: var(--rk-calc-dark);
    border-radius: 16px;
    padding: 25px 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    position: relative;
    overflow: hidden;
}

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

.rk-calc-dash-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-calc-dash-label {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-calc-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
}

.rk-calc-dash-value span {
    font-size: 16px;
    color: #38bdf8;
    font-weight: 700;
}

/* Sekcja Kroków - Detale Obliczeniowe */
.rk-calc-steps-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 10px 0 0 0;
    text-align: center;
}

.rk-calc-results-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-step-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.3s ease;
}

.rk-calc-step-card:hover {
    border-color: #cbd5e1;
}

.rk-calc-step-top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-calc-step-badge {
    background: #f1f5f9;
    color: var(--rk-calc-text);
    font-size: 12px;
    font-weight: 900;
    padding: 4px 10px;
    border-radius: 6px;
    text-transform: uppercase;
}

.rk-calc-step-top h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
}

.rk-calc-formula-display {
    font-family: monospace !important;
    font-size: 13.5px;
    background: #f8fafc;
    padding: 8px 14px;
    border-radius: 8px;
    color: #0f766e;
    border-left: 3px solid var(--rk-calc-accent);
    margin: 4px 0;
}

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

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-calc-header-block, .rk-calc-body { padding: 30px 20px; }
    .rk-calc-interactive-zone { padding: 25px 20px; gap: 25px; }
    .rk-calc-dashboard { grid-template-columns: 1fr; gap: 15px; padding: 20px; }
    .rk-calc-step-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Algorytmy i obliczenia hydrauliczne w płytach fundamentowych",
    "description": "Profesjonalna ścieżka obliczeniowa zapotrzebowania na moc, przepływ masowy czynnika oraz pojemność zładu wodnego w termicznych płytach fundamentowych.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-dataset",
    "name": "Stałe fizyczne i przeliczniki pojemnościowe rurociągów PEX-PERT",
    "description": "Zbiór danych stałych stosowanych w algorytmach sanitarnych: ciepło właściwe wody (1,163 Wh/kgK), jednostkowa pojemność rur 16x2 mm (0,113 l/m), współczynnik bezwładności (1,15).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator ogrzewania podłogowego",
      "przepływ masowy podłogówki",
      "pojemność wodna rury pex 16",
      "moc obliczeniowa pętli grzewczej",
      "obliczenia hydrauliczne płyty fundamentowej"
    ],
    "measurementTechnique": "Algorytmy i wzory bilansowania strumieni energii i masy płynów wg wytycznych zawartych w normie PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jednostkowa pojemność rury 16x2: 0,113 litra na metr",
        "Stała ciepła właściwego wody: 1,163 Wh/(kgK)",
        "Naddatek na bezwładność akumulacyjną płyty: 15 procent"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#calculator-webapp",
    "name": "Kalkulator Przepływów i Pojemności Płyty Grzewczej",
    "description": "Zaawansowane, interaktywne narzędzie realizujące ścieżkę obliczeniową parametrów hydraulicznych dla ogrzewania płaszczyznowego w fundamencie.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-engineering-calc-app">
    <div class="rk-calc-header-block">
        <h2>Algorytmy obliczeniowy instalacji w płycie (Kalkulator Inżynierski)</h2>
        <p>
            Projektowanie hydrauliki ogrzewania w płycie fundamentowej wymaga ścisłego wyliczenia zapotrzebowania na strumień masowy czynnika grzewczego. Wykorzystaj poniższe narzędzie, aby błyskawicznie sprawdzić parametry dla swojego budynku.
        </p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-interactive-zone">
            
            <div class="rk-calc-inputs-wrapper">
                <div class="rk-calc-row">
                    <div class="rk-calc-label-zone">
                        <label for="rk-input-qpom">Zapotrzebowanie cieplne pomieszczenia z OZC (Q_pom):</label>
                        <span class="rk-calc-current-value" id="rk-lbl-qpom">2000 W</span>
                    </div>
                    <input type="range" class="rk-calc-slider-input" id="rk-input-qpom" min="500" max="5000" step="100" value="2000">
                </div>

                <div class="rk-calc-row">
                    <div class="rk-calc-label-zone">
                        <label for="rk-input-length">Sumaryczna długość rur w obwodach (L):</label>
                        <span class="rk-calc-current-value" id="rk-lbl-length">150 m</span>
                    </div>
                    <input type="range" class="rk-calc-slider-input" id="rk-input-length" min="20" max="800" step="10" value="150">
                </div>
            </div>

            <div class="rk-calc-dashboard">
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Moc Obliczeniowa</span>
                    <div class="rk-calc-dash-value" id="rk-dash-qobl">2300 <span>W</span></div>
                </div>
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Przepływ Masowy</span>
                    <div class="rk-calc-dash-value" id="rk-dash-flow">395.53 <span>kg/h</span></div>
                </div>
                <div class="rk-calc-dash-item">
                    <span class="rk-calc-dash-label">Pojemność Zładu</span>
                    <div class="rk-calc-dash-value" id="rk-dash-vol">16.95 <span>litra</span></div>
                </div>
            </div>
            
        </div>

        <h3 class="rk-calc-steps-title">Podstawa obliczeniowa (dla dociekliwych)</h3>

        <div class="rk-calc-results-panel">
            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 1</span>
                    <h4>Wyznaczenie całkowitej mocy cieplnej pętli</h4>
                </div>
                <div class="rk-calc-formula-display">Q_obl = Q_pom * 1.15</div>
                <p class="rk-calc-step-explain">
                    Moc projektową obwodu podwyższamy o równe 15% z uwagi na olbrzymią bezwładność cieplną grubego, zbrojonego betonu konstrukcyjnego.
                </p>
            </div>

            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 2</span>
                    <h4>Obliczenie wymaganego przepływu masowego</h4>
                </div>
                <div class="rk-calc-formula-display">m = Q_obl / (c_w * Delta_T)</div>
                <p class="rk-calc-step-explain">
                    Wyznaczamy strumień masowy wyrażony w kilogramach na godzinę dla optymalnego schłodzenia czynnika Delta_T = 5 K. Przyjmujemy stałą wartość ciepła właściwego wody c_w = 1.163 Wh/(kg·K).
                </p>
            </div>

            <div class="rk-calc-step-card">
                <div class="rk-calc-step-top">
                    <span class="rk-calc-step-badge">Krok 3</span>
                    <h4>Wyliczenie całkowitej pojemności wodnej</h4>
                </div>
                <div class="rk-calc-formula-display">V_inst = L * 0.113</div>
                <p class="rk-calc-step-explain">
                    Dla standardowej rury typu PERT/Al/PERT 16&#215;2 mm, pojemność wewnętrzna wynosi dokładnie 0.113 litra na każdy metr bieżący przewodu.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inputQpom = document.getElementById('rk-input-qpom');
    var inputLength = document.getElementById('rk-input-length');
    
    var lblQpom = document.getElementById('rk-lbl-qpom');
    var lblLength = document.getElementById('rk-lbl-length');
    
    var dashQobl = document.getElementById('rk-dash-qobl');
    var dashFlow = document.getElementById('rk-dash-flow');
    var dashVol = document.getElementById('rk-dash-vol');

    function executeCalculations() {
        // Pobranie wartości wejściowych
        var qPomVal = 2000;
        var lengthVal = 150;
        
        if (inputQpom) { qPomVal = parseFloat(inputQpom.value); }
        if (inputLength) { lengthVal = parseFloat(inputLength.value); }

        // Aktualizacja etykiet suwaków
        if (lblQpom) { lblQpom.innerHTML = qPomVal + " W"; }
        if (lblLength) { lblLength.innerHTML = lengthVal + " m"; }

        // Obliczenia
        var qOblVal = qPomVal * 1.15;
        var flowVal = qOblVal / 5.815; // 1.163 * 5
        var volVal = lengthVal * 0.113;

        // Aktualizacja Dashboardu
        if (dashQobl) { dashQobl.innerHTML = qOblVal.toFixed(0) + " <span>W</span>"; }
        if (dashFlow) { dashFlow.innerHTML = flowVal.toFixed(2) + " <span>kg/h</span>"; }
        if (dashVol) { dashVol.innerHTML = volVal.toFixed(2) + " <span>litra</span>"; }
    }

    // Nasłuchiwanie zdarzeń
    if (inputQpom) { inputQpom.addEventListener('input', executeCalculations); }
    if (inputLength) { inputLength.addEventListener('input', executeCalculations); }

    executeCalculations();
});
</script>



<style>
/* Reset i wymuszenie czystego fontu bezszeryfowego */
#rk-execution-failures-app,
#rk-execution-failures-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-light: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-bg: #ffffff;
    --rk-err-warn: #f59e0b;
    --rk-err-crit: #ef4444;
}

.rk-errors-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-err-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-err-border);
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

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

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

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

/* Panel Roboczy - Układ Poziomy */
.rk-err-body {
    padding: 35px 45px;
    background: var(--rk-err-light);
}

/* Selektory (Zakładki/Tabs) - Desktop w poziomie, Mobile w pionie */
.rk-err-selectors {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 30px;
}

@media (min-width: 768px) {
    .rk-err-selectors {
        flex-direction: row;
    }
}

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

.rk-err-btn:hover {
    border-color: var(--rk-err-warn);
    box-shadow: 0 8px 15px -3px rgba(245, 158, 11, 0.1);
    transform: translateY(-2px);
}

.rk-err-btn.active {
    border-color: var(--rk-err-crit);
    background: #fff5f5;
    box-shadow: 0 10px 25px -5px rgba(239, 68, 68, 0.15);
    transform: translateY(0);
}

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

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

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

/* Ekran Wizualizacji i Detali (Złamana ściana tekstu, usunięta sekcja SVG) */
.rk-err-display-screen {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.rk-err-details h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-err-crit);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

.rk-err-details strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

.rk-err-details ul {
    margin: 0;
    padding-left: 20px;
    font-size: 14.5px;
    color: #475569;
}

.rk-err-details li {
    margin-bottom: 10px;
    line-height: 1.6;
}

.rk-err-details a {
    color: var(--rk-err-blue);
    text-decoration: underline;
    font-weight: 600;
    text-underline-offset: 3px;
}

/* Responsywność Mobile (dopieszczenie) */
@media (max-width: 768px) {
    .rk-err-header-zone, .rk-err-body { padding: 30px 20px; }
    .rk-err-display-screen { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Najczęstsze błędy wykonawcze przy montażu ogrzewania w fundamencie",
    "description": "Przewodnik inżynierski piętnujący kardynalne błędy wykonawcze podczas montażu ogrzewania podłogowego w płytach fundamentowych. Brak prób szczelności, zła głębokość rur, brak 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.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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-dataset",
    "name": "Ewidencja awaryjności i patologii wykonawczych w monolitach grzewczych",
    "description": "Zbiór danych empirycznych określający fizyczne konsekwencje błędów: skoki ciśnienia niszczące strukturę rury, straty ciepła w gruncie przez złą głębokość, naprężenia ścinające jastrychów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "bledy montazowe ogrzewania podlogowego",
      "proba szczelnosci podlogowki w plycie",
      "glebokosc rur w plycie fundamentowej",
      "brak dylatacji ogrzewania podlogowego",
      "uszkodzenie rur podczas zalewania betonu"
    ],
    "measurementTechnique": "Ekspertyzy techniczne z użyciem kamer termowizyjnych oraz analizy naprężeń mechanicznych betonu zgodnie z kryteriami normy DIN 4726.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalne ciśnienie próby normatywnej: 0,6 MPa (6 bar)",
        "Optymalne osadzenie przewodów: 5 do 7 cm od górnej krawędzi",
        "Opóźnienie termiczne przy błędnym montażu: 12 do 24 godziny opóźnienia"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#errors-webapp",
    "name": "Interaktywny Analizator Patologii Wykonawczych",
    "description": "Aplikacja symulująca proces powstawania uszkodzeń mechanicznych i strat energetycznych w strukturze nośnej termicznej płyty fundamentowej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-container" id="rk-execution-failures-app">
    <div class="rk-err-header-zone">
        <h2>Najczęstsze błędy wykonawcze przy montażu ogrzewania w fundamencie</h2>
        <p>
            Błędy popełnione podczas montażu rur w płycie fundamentowej są niemożliwe do skorygowania po związaniu betonu konstrukcyjnego. Wybierz zakładkę, aby poznać inżynierskie konsekwencje patologii wykonawczych.
        </p>
    </div>

    <div class="rk-err-body">
        
        <div class="rk-err-selectors">
            <button class="rk-err-btn active" id="rk-ebtn-1">
                <div class="rk-err-btn-num">1</div>
                <span class="rk-err-btn-title">Brak próby ciśnieniowej przy wylewaniu</span>
            </button>
            <button class="rk-err-btn" id="rk-ebtn-2">
                <div class="rk-err-btn-num">2</div>
                <span class="rk-err-btn-title">Złe, zbyt głębokie pozycjonowanie rur</span>
            </button>
            <button class="rk-err-btn" id="rk-ebtn-3">
                <div class="rk-err-btn-num">3</div>
                <span class="rk-err-btn-title">Całkowity brak dylatacji konstrukcyjnych</span>
            </button>
        </div>

        <div class="rk-err-display-screen" id="rk-err-screen">
            <div class="rk-err-details" id="rk-err-details-text">
                <h3>Katastrofalne uszkodzenie rur podczas zalewania betonu</h3>
                <p>
                    Rezygnacja z procedury, jaką jest profesjonalna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności podłogówki w płycie</a> to czysta rosyjska ruletka. Rury grzewcze muszą być bezwzględnie napompowane sprężonym powietrzem lub medium wodnym do poziomu, który definiuje <strong>ciśnienie normatywne proby cisnieniowej</strong>, czyli minimum 0,6 MPa (6 bar).
                </p>
                <ul>
                    <li>Manometr musi być stale kontrolowany przez kierownika budowy w trakcie pracy pompy.</li>
                    <li>Agresywne uderzenie wibratora buławowego potrafi bez śladu zmiażdżyć lub rozszczelnić strukturę rury.</li>
                    <li>Bez ciśnienia wstępnego wewnątrz przewodu, te <strong>bledy montazowe ogrzewania podlogowego</strong> wykryjesz dopiero zimą, gdy zabetonowany monolit zacznie przeciekać.</li>
                </ul>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-ebtn-1');
    var btn2 = document.getElementById('rk-ebtn-2');
    var btn3 = document.getElementById('rk-ebtn-3');
    
    var detailsBox = document.getElementById('rk-err-details-text');

    function resetActiveStates() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3>Katastrofalne uszkodzenie rur podczas zalewania betonu</h3>' +
                    '<p>Rezygnacja z procedury, jaką jest profesjonalna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności podłogówki w płycie</a> to czysta rosyjska ruletka. Rury grzewcze muszą być bezwzględnie napompowane sprężonym powietrzem lub medium wodnym do poziomu, który definiuje <strong>ciśnienie normatywne proby cisnieniowej</strong>, czyli minimum 0,6 MPa (6 bar).</p>' +
                    '<ul>' +
                    '<li>Manometr musi być stale kontrolowany przez kierownika budowy w trakcie pracy pompy.</li>' +
                    '<li>Agresywne uderzenie wibratora buławowego potrafi bez śladu zmiażdżyć lub rozszczelnić strukturę rury.</li>' +
                    '<li>Bez ciśnienia wstępnego wewnątrz przewodu, te <strong>bledy montazowe ogrzewania podlogowego</strong> wykryjesz dopiero zimą, gdy zabetonowany monolit zacznie przeciekać.</li>' +
                    '</ul>';
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3 style="color: var(--rk-err-warn);">Potężny drenaż energetyczny i opóźnienie grzewcze</h3>' +
                    '<p>Złe, zbyt niskie ułożenie pętli w grubości betonu to kluczowa przyczyna strat dolnych. Projektowana <strong>glebokosc rur w plycie fundamentowej</strong> powinna wynosić sztywne 5-7 cm od górnej powierzchni. Przewody muszą być stabilnie powiązane ze stalową kratownicą siatki zbrojeniowej.</p>' +
                    '<ul>' +
                    '<li>Ułożenie pętli na samym dnie konstrukcji, tuż przy hydroizolacji XPS, drastycznie zwiększa transfer ciepła bezpośrednio w grunt pod budynkiem.</li>' +
                    '<li>Taka patologia wykonawcza diametralnie wydłuża czas reakcji systemu i sprawia, że nominalna <strong>bezwladnosc termiczna plyty grzewczej</strong> generuje dodatkowe 12-24 godziny opóźnienia w ogrzewaniu pomieszczeń.</li>' +
                    '</ul>';
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            resetActiveStates();
            this.classList.add('active');
            if(detailsBox) {
                detailsBox.innerHTML = '<h3>Pękanie posadzki i mechaniczne ścinanie rurociągów</h3>' +
                    '<p>Powszechny <strong>brak dylatacji ogrzewania podlogowego</strong> przy ścianach konstrukcyjnych i przejściach komunikacyjnych to prosta droga do katastrofy budowlanej. Choć fundament tworzy potężną płytę, brak elastycznych taśm brzegowych generuje niszczycielskie naprężenia fizyczne.</p>' +
                    '<ul>' +
                    '<li>Zgodnie z parametrami, które narzuca <strong>norma din 4726 dylatacje</strong> obwodowe muszą bezwzględnie oddzielać monolit grzewczy od pionowych przegród nośnych.</li>' +
                    '<li>Brak zachowania tej zasady skutkuje niekontrolowanym pękaniem wykończeniowych warstw posadzkowych oraz trwałym zerwaniem rur przechodzących przez strefy otworów drzwiowych bez elastycznych peszli ochronnych.</li>' +
                    '</ul>';
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i reset */
#rk-design-project-app,
#rk-design-project-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-dp-dark: #0f172a;
    --rk-dp-blue: #0284c7;
    --rk-dp-light: #f8fafc;
    --rk-dp-border: #e2e8f0;
    --rk-dp-text: #334155;
    --rk-dp-bg: #ffffff;
    --rk-dp-success: #10b981;
    --rk-dp-warning: #f59e0b;
    --rk-dp-danger: #ef4444;
}

.rk-design-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-dp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-dp-border);
    box-shadow: 0 20px 40px -15px rgba(2, 132, 199, 0.08);
    overflow: hidden;
}

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

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

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

/* Moduł Główny - Układ Jednokolumnowy (Stack) */
.rk-dp-body-stack {
    display: flex;
    flex-direction: column;
}

/* Strefa Interaktywna na pełną szerokość */
.rk-dp-interactive-zone {
    padding: 40px 45px;
    background: var(--rk-dp-light);
    border-bottom: 1px solid var(--rk-dp-border);
}

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

/* Na szerokich ekranach suwaki po lewej, zegar po prawej (wewnątrz strefy) */
@media (min-width: 768px) {
    .rk-dp-interactive-grid {
        grid-template-columns: 1.3fr 0.7fr;
        align-items: center;
    }
}

.rk-dp-control-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dp-control-item {
    background: #ffffff;
    border: 1px solid var(--rk-dp-border);
    border-radius: 14px;
    padding: 18px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-dp-item-info h4 {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 4px 0;
}

.rk-dp-item-info p {
    font-size: 13px;
    color: #64748b;
    margin: 0;
}

/* Przełącznik */
.rk-dp-switch {
    position: relative;
    display: inline-block;
    width: 54px;
    height: 28px;
    flex-shrink: 0;
}

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

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

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

input:checked + .rk-dp-slider { background-color: var(--rk-dp-blue); }
input:checked + .rk-dp-slider:before { transform: translateX(26px); }

/* Wskaźnik Statusu */
.rk-dp-status-box {
    background: #ffffff;
    border: 1px solid var(--rk-dp-border);
    border-radius: 16px;
    padding: 30px 25px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-dp-gauge-wrapper {
    position: relative;
    width: 110px; height: 110px;
    margin: 0 auto 15px auto;
}

.rk-dp-gauge-val {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    font-size: 24px; font-weight: 900; color: var(--rk-dp-dark);
}

.rk-dp-gauge-svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rk-dp-gauge-bg { fill: none; stroke: #f1f5f9; stroke-width: 8; }
.rk-dp-gauge-bar {
    fill: none; stroke: var(--rk-dp-danger); stroke-width: 8;
    stroke-linecap: round;
    stroke-dasharray: 314; stroke-dashoffset: 314;
    transition: stroke-dashoffset 0.6s ease, stroke 0.6s ease;
}

.rk-dp-status-heading {
    font-size: 17px; font-weight: 800; margin: 0 0 10px 0;
}
.rk-dp-status-msg {
    font-size: 14px; line-height: 1.5; color: var(--rk-dp-text); margin: 0;
}

/* Strefa Treści Architektonicznej (Pełna szerokość) */
.rk-dp-content-zone {
    padding: 40px 45px;
    background: #ffffff;
}

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

.rk-dp-lead-text strong {
    color: var(--rk-dp-dark);
    font-weight: 700;
}

/* Karty Tekstowe bez Ikon */
.rk-dp-feature-cards {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dp-feature-card {
    padding: 25px;
    background: #f8fafc;
    border-radius: 12px;
    border-left: 4px solid var(--rk-dp-blue);
    transition: background 0.3s ease;
}

.rk-dp-feature-card:hover {
    background: #f1f5f9;
}

.rk-dp-feature-card h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 10px 0;
}

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

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

/* Sekcja CTA (Ramka) */
.rk-dp-cta-block {
    background-color: #f4f7f9;
    padding: 50px 40px;
    text-align: center;
    border-top: 1px solid var(--rk-dp-border);
}

.rk-dp-cta-block h3 {
    font-size: 26px;
    font-weight: 800;
    color: var(--rk-dp-dark);
    margin: 0 0 15px 0;
}

.rk-dp-cta-block p {
    font-size: 16px;
    color: #52606d;
    max-width: 800px;
    margin: 0 auto 35px auto;
    line-height: 1.6;
}

.rk-dp-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background-color: #0488d1;
    color: #ffffff !important;
    font-size: 16px;
    font-weight: 700;
    padding: 18px 36px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.rk-dp-cta-btn:hover {
    background-color: #036fbc;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px -4px rgba(4, 136, 209, 0.4);
}

.rk-dp-cta-btn svg {
    width: 22px;
    height: 22px;
    transition: transform 0.3s ease;
}

.rk-dp-cta-btn:hover svg {
    transform: translateX(4px);
}

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-dp-header, .rk-dp-interactive-zone, .rk-dp-content-zone, .rk-dp-cta-block { padding: 30px 20px; }
    .rk-dp-interactive-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-dp-feature-card { padding: 20px; }
    .rk-dp-cta-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/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-impact-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Jak ogrzewanie w płycie fundamentowej wpływa na projekt ogrzewania podłogowego?",
    "description": "Analiza inżynierska parametrów projektowych dla instalacji grzewczych w termicznych płytach fundamentowych. Rola OZC, oporów hydraulicznych i wentylacji.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-dataset",
    "name": "Zmienne hydrauliczne i termodynamiczne układów fundamentowych",
    "description": "Zbiór danych technicznych odnośnie bezwładności cieplnej betonu konstrukcyjnego, krytycznych oporów pętli grzewczych oraz strumieni powietrza wentylacyjnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "obliczenia ozc",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "dobór pompy obiegowej do podłogówki",
      "rekuperacja i ogrzewanie podłogowe",
      "bezwładność cieplna w płycie fundamentowej",
      "automatyka pokojowa do podłogówki",
      "zrównoważenie hydrauliczne instalacji"
    ],
    "measurementTechnique": "Algorytmy równoważenia hydraulicznego pętli grzewczych wg kryteriów strat ciśnienia liniowego i miejscowego w rurach zatopionych w monolicie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność cieplna zbrojonej płyty: 12 do 24 godzin opóźnienia",
        "Wymagane zrównoważenie hydrauliczne instalacji dla pomp obiegowych",
        "Korelacja strumienia termicznego z automatyką pokojową do podłogówki"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#design-webapp",
    "name": "Kalkulator Stabilności Hydrauliczno-Termicznej Płyty Grzewczej",
    "description": "Narzędzie symulujące poziom bezpieczeństwa i poprawności inżynierskiej systemu płaszczyznowego w fundamencie na bazie zmiennych projektowych.",
    "applicationCategory": "CalculationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-design-wrapper" id="rk-design-project-app">
    <div class="rk-dp-header">
        <h2>Jak ogrzewanie w płycie fundamentowej wpływa na projekt ogrzewania podłogowego?</h2>
        <p class="rk-dp-intro">
            Zintegrowanie całego układu hydraulicznego z nośnym elementem konstrukcyjnym budynku diametralnie zmienia podejście do planowania. Tradycyjne reguły montażowe jastrychowe tutaj nie obowiązują.
        </p>
    </div>

    <div class="rk-dp-body-stack">
        
        <div class="rk-dp-interactive-zone">
            <div class="rk-dp-interactive-grid">
                
                <div class="rk-dp-control-list">
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Obliczenia cieplne budynku</h4>
                            <p>Brak audytu vs precyzyjne OZC</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-ozc">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Obiegi hydrauliczne</h4>
                            <p>Zwijanie &#8222;na oko&#8221; vs limity oporów</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-hydr">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                    <div class="rk-dp-control-item">
                        <div class="rk-dp-item-info">
                            <h4>Wymiana powietrza</h4>
                            <p>Wentylacja pasywna vs rekuperator</p>
                        </div>
                        <label class="rk-dp-switch">
                            <input type="checkbox" id="rk-dp-sw-vent">
                            <span class="rk-dp-slider"></span>
                        </label>
                    </div>
                </div>

                <div class="rk-dp-status-box">
                    <div class="rk-dp-gauge-wrapper">
                        <div class="rk-dp-gauge-val" id="rk-dp-gauge-val">20%</div>
                        <svg class="rk-dp-gauge-svg" viewBox="0 0 100 100">
                            <circle class="rk-dp-gauge-bg" cx="50" cy="50" r="45"></circle>
                            <circle class="rk-dp-gauge-bar" id="rk-dp-gauge-bar" cx="50" cy="50" r="45"></circle>
                        </svg>
                    </div>
                    <h4 class="rk-dp-status-heading" id="rk-dp-status-lbl" style="color: var(--rk-dp-danger);">Krytyczne ryzyko usterki</h4>
                    <p class="rk-dp-status-msg" id="rk-dp-status-txt">Brak danych i układanie rur intuicyjnie w głębokim betonie grozi przeciążeniem pompy i trwałym niedogrzaniem.</p>
                </div>
                
            </div>
        </div>

        <div class="rk-dp-content-zone">
            <p class="rk-dp-lead-text">
                Podstawą bezpiecznej realizacji jest pełny audyt techniczny, czyli <strong>obliczenia OZC</strong>. Płyta nośna posiada cechę, którą jest gigantyczna <strong>bezwładność cieplna w płycie fundamentowej</strong> – układ stygnie lub ładuje się przez kilkanaście godzin. Z tego powodu tradycyjna <strong>automatyka pokojowa do podłogówki</strong> staje się w tym wariancie bezużyteczna.
            </p>
            
            <div class="rk-dp-feature-cards">
                <div class="rk-dp-feature-card">
                    <h4>Geometria i układ pętli</h4>
                    <p>Zastosowany <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur ogrzewania podłogowego przy pompie ciepła</a> musi być stały i ściśle wyliczony na podstawie OZC. Nie ma tu miejsca na błędy wykonawcze, ponieważ zmiana zagęszczenia drastycznie psuje opór cieplny całej przegrody.</p>
                </div>

                <div class="rk-dp-feature-card">
                    <h4>Wydajność obiegowa</h4>
                    <p>Właściwy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">dobór pompy obiegowej do podłogówki</a> jest kluczowy. Urządzenie musi pokonać gigantyczne opory hydrauliczne niezwykle długich, monolitycznych obwodów, zapewniając odpowiedni strumień przepływu masowego.</p>
                </div>

                <div class="rk-dp-feature-card">
                    <h4>Wsparcie termodynamiczne</h4>
                    <p>Mechaniczna <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> tworzą perfekcyjny duet. Centrala wentylacyjna równomiernie i błyskawicznie dystrybuuje zyski cieplne (np. od słońca w salonie) po całej kubaturze domu.</p>
                </div>
            </div>
        </div>
        
    </div>

    <div class="rk-dp-cta-block">
        <h3>Zabetonuj parametry, a nie błędy wykonawcze</h3>
        <p>Termiczna płyta fundamentowa nośna nie wybacza poprawek. Jeden błąd w rozstawie rur lub hydraulice i Twój dom będzie niedogrzany przez dekady. Zamów autorski, precyzyjny projekt inżynierski dopasowany do specyfiki pomp ciepła.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-dp-cta-btn">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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() {
    var swO = document.getElementById('rk-dp-sw-ozc');
    var swH = document.getElementById('rk-dp-sw-hydr');
    var swV = document.getElementById('rk-dp-sw-vent');
    
    var gVal = document.getElementById('rk-dp-gauge-val');
    var gBar = document.getElementById('rk-dp-gauge-bar');
    var sLbl = document.getElementById('rk-dp-status-lbl');
    var sTxt = document.getElementById('rk-dp-status-txt');

    function updateDpApp() {
        var points = 20;
        
        if (swO) { if (swO.checked === true) { points = points + 30; } }
        if (swH) { if (swH.checked === true) { points = points + 30; } }
        if (swV) { if (swV.checked === true) { points = points + 20; } }

        // Obwód koła dla r=45 -> 2 * PI * 45 = 282.7 (przyjmujemy 314 jako wartość startową SVG viewboxa)
        // Koryguję obwód dla r=45, r=45 -> c = 282.7
        // W CSS mamy stroke-dasharray: 314 dla r=50! Koryguję promień w HTML na r=50 i dostosowuję algorytm
        var offset = 314 - (314 * points / 100);
        
        if (gBar) { gBar.style.strokeDashoffset = offset; }
        if (gVal) { gVal.innerHTML = points + "%"; }

        if (points === 20) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-danger)"; }
            if (sLbl) {
                sLbl.innerHTML = "Krytyczne ryzyko usterki";
                sLbl.style.color = "var(--rk-dp-danger)";
            }
            if (sTxt) { sTxt.innerHTML = "Brak danych i układanie rur intuicyjnie w głębokim betonie grozi przeciążeniem pompy i trwałym niedogrzaniem."; }
        }
        
        if (points === 50) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-warning)"; }
            if (sLbl) {
                sLbl.innerHTML = "Niestabilność hydrauliczna";
                sLbl.style.color = "var(--rk-dp-warning)";
            }
            if (sTxt) { sTxt.innerHTML = "Brak korelacji wszystkich parametrów pętli wygeneruje potężne straty i uniemożliwi wyregulowanie rotametrów."; }
        }

        if (points === 80) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-blue)"; }
            if (sLbl) {
                sLbl.innerHTML = "Standard bezpieczny";
                sLbl.style.color = "var(--rk-dp-blue)";
            }
            if (sTxt) { sTxt.innerHTML = "Układ wodny jest poprawny inżyniersko. Do pełnej dystrybucji zysków cieplnych brakuje tylko centrali nawiewnej."; }
        }

        if (points === 100) {
            if (gBar) { gBar.style.stroke = "var(--rk-dp-success)"; }
            if (sLbl) {
                sLbl.innerHTML = "Perfekcyjny monolit";
                sLbl.style.color = "var(--rk-dp-success)";
            }
            if (sTxt) { sTxt.innerHTML = "Maksymalna sprawność SCOP. Fizyka budowli i hydraulika idealnie ze sobą współpracują. Instalacja gotowa na pokolenia."; }
        }
    }

    if (swO) { swO.addEventListener('change', updateDpApp); }
    if (swH) { swH.addEventListener('change', updateDpApp); }
    if (swV) { swV.addEventListener('change', updateDpApp); }

    updateDpApp();
});
</script>



<style>
/* Wymuszenie czystego fontu i pełen reset */
#rk-casestudy-app,
#rk-casestudy-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-darker: #080f1e;
    --rk-cs-blue: #0284c7;
    --rk-cs-light: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-bg: #ffffff;
    --rk-cs-danger: #ef4444;
    --rk-cs-warning: #f59e0b;
    --rk-cs-success: #10b981;
}

.rk-cs-wrapper {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-cs-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-cs-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

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

.rk-cs-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

.rk-cs-subtitle {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

/* Metryczka Inwestycji */
.rk-cs-client-badge {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 25px;
}

.rk-cs-tag {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #e0f2fe;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13.5px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Sekcja Główna - Układ Jednokolumnowy */
.rk-cs-body {
    padding: 35px 45px;
    background: var(--rk-cs-light);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Kontrolki wyboru etapów (Segmented Controls) */
.rk-cs-steps-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 768px) {
    .rk-cs-steps-nav {
        flex-direction: row;
    }
}

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

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

.rk-cs-step-btn.active {
    background: #f0f9ff;
    border-color: var(--rk-cs-blue);
    transform: translateY(0);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

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

.rk-cs-step-btn.active .rk-cs-step-num {
    background: var(--rk-cs-blue);
    color: #ffffff;
}

.rk-cs-step-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.rk-cs-step-title {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    transition: color 0.3s;
}

.rk-cs-step-btn.active .rk-cs-step-title {
    color: var(--rk-cs-blue);
}

/* Dashboard Danych (Zmieniający się z etapami) */
.rk-cs-dashboard {
    background: var(--rk-cs-darker);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 25px 20px;
    position: relative;
    overflow: hidden;
    border-left: 6px solid var(--rk-cs-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.2);
}

.rk-cs-dash-item {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rk-cs-dash-label {
    font-size: 12px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-cs-dash-value {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
}

.rk-cs-dash-value span {
    font-size: 14px;
    font-weight: 700;
    color: #38bdf8;
    margin-left: 4px;
}

/* Karta Opisowa Case Study */
.rk-cs-story-card {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 16px;
    padding: 30px;
    border-left: 5px solid var(--rk-cs-success);
    transition: border-color 0.3s ease;
}

.rk-cs-story-card h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-cs-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-cs-story-card p {
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--rk-cs-text);
    margin: 0 0 15px 0;
}

.rk-cs-story-card p:last-child {
    margin: 0;
}

.rk-cs-story-card strong {
    color: var(--rk-cs-dark);
    font-weight: 700;
}

/* Czyste Kafelki z Wnioskami (zamiast ściany tekstu poniżej) */
.rk-cs-insights-zone {
    padding: 10px 45px 40px 45px;
    background: #ffffff;
}

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

.rk-cs-insight-block {
    background: #f8fafc;
    border-radius: 14px;
    padding: 24px;
    border-left: 4px solid var(--rk-cs-blue);
}

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

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

.rk-cs-insight-block strong {
    color: var(--rk-cs-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-body, .rk-cs-insights-zone { padding: 30px 20px; }
    .rk-cs-story-card { padding: 25px 20px; }
    .rk-cs-dashboard { grid-template-columns: 1fr 1fr; padding: 25px 20px; gap: 20px 15px; }
    .rk-cs-dash-value { font-size: 22px; }
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Case Study: Termiczna Płyta Fundamentowa 135 m² (Lębork, woj. pomorskie)",
    "description": "Analiza inżynierska przypadku. Porównanie kosztów inwestycji i optymalizacji OZC dla inwestora z województwa pomorskiego budującego dom o powierzchni 135 m2.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-dataset",
    "name": "Audyt opłacalności fundamentu dla domu jednorodzinnego 135m2 w warunkach pomorskich",
    "description": "Baza danych finansowo-technicznych obrazująca przejście od kosztorysów ław tradycyjnych do monolitycznej płyty fundamentowej. Zawiera redukcję kosztów jastrychu i izolacji EPS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy opłaca się płyta z podłogówką",
      "koszt płyty fundamentowej 130m2 pomorskie",
      "projekt ogrzewania podłogowego dla pompy ciepła",
      "zapotrzebowanie cieplne ozc lębork",
      "różnica w cenie płyta a ławy fundamentowe"
    ],
    "measurementTechnique": "Realna wycena wykonawcza B2C połączona z bilansem cieplnym OZC dla budynku zlokalizowanego w wietrznej strefie klimatycznej Pomorza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt alternatywny: Eliminacja osobnych wylewek maszynowych i piaskowania",
        "Współczynnik przenikania U z optymalizacją XPS: Osiągnięcie normy energooszczędnej",
        "Rozwiązanie techniczne: Rury 16mm w rozstawie co 15 cm z zagęszczeniem brzegowym"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#case-study-webapp",
    "name": "Oś Czasu Projektu - Interaktywne Case Study",
    "description": "Narzędzie prezentacyjne pozwalające na śledzenie ewolucji kosztów i decyzji inżynierskich w procesie projektowania instalacji HVAC dla konkretnej inwestycji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-wrapper" id="rk-casestudy-app">
    
    <div class="rk-cs-header">
        <h2>Case Study: Od wątpliwości do najwyższej efektywności cieplnej</h2>
        <p class="rk-cs-subtitle">
            Prześledź na żywo drogę decyzyjną naszego klienta, który weryfikował opłacalność zintegrowanej płyty grzewczej dla swojego nowo budowanego domu.
        </p>
        <div class="rk-cs-client-badge">
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                Inwestor: Tomasz
            </span>
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg>
                Lokalizacja: Lębork (woj. pomorskie)
            </span>
            <span class="rk-cs-tag">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                Powierzchnia: 135 m²
            </span>
        </div>
    </div>

    <div class="rk-cs-body">
        
        <div class="rk-cs-steps-nav">
            <button class="rk-cs-step-btn active" id="rk-cs-btn-1">
                <div class="rk-cs-step-num">1</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Wątpliwości Kosztowe</span>
                </div>
            </button>
            <button class="rk-cs-step-btn" id="rk-cs-btn-2">
                <div class="rk-cs-step-num">2</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Audyt &#038; Optymalizacja</span>
                </div>
            </button>
            <button class="rk-cs-step-btn" id="rk-cs-btn-3">
                <div class="rk-cs-step-num">3</div>
                <div class="rk-cs-step-info">
                    <span class="rk-cs-step-title">Realny Wynik (ROI)</span>
                </div>
            </button>
        </div>

        <div class="rk-cs-dashboard" id="rk-cs-dash-container">
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Początkowa Wycena Wykonawcy</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-cost">79 000 <span>PLN</span></div>
            </div>
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Planowane Źródło Ciepła</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-source">Pompa Ciepła <span>(Wysoki opór)</span></div>
            </div>
            <div class="rk-cs-dash-item">
                <span class="rk-cs-dash-label">Stan Emocjonalny Inwestora</span>
                <div class="rk-cs-dash-value" id="rk-cs-val-status" style="color: var(--rk-cs-warning);">Wahanie <span>(Koszty)</span></div>
            </div>
        </div>

        <div class="rk-cs-story-card" id="rk-cs-story-box">
            <h3 id="rk-cs-story-title">Dylemat Startowy: Pozorny wzrost kosztów</h3>
            <p id="rk-cs-story-text">
                Pan Tomasz z Lęborka, planujący dom o powierzchni 135 m², zgłosił się do nas z poważnym dylematem. Otrzymał wycenę wykonania termicznej płyty fundamentowej z zatopionym ogrzewaniem podłogowym na kwotę około 79 tys. PLN. Z kolei lokalna ekipa zaproponowała wykonanie tradycyjnych ław fundamentowych za 62 tys. PLN. Na pierwszy rzut oka różnica wydawała się drastyczna, co budziło mocne opory przed nowoczesną technologią na trudnym, wietrznym pomorskim gruncie.
            </p>
        </div>

    </div>

    <div class="rk-cs-insights-zone">
        <div class="rk-cs-insight-grid">
            <div class="rk-cs-insight-block">
                <h4>Fikcja &#8222;Tańszych&#8221; Ław Fundamentowych</h4>
                <p>
                    Przypadek Pana Tomasza doskonale obrazuje błąd w potocznym kalkulowaniu inwestycji. Tradycyjna wycena ław (62 tys. PLN) <strong>nie uwzględniała</strong> późniejszego zakupu i układania styropianu (EPS) na chudziaku, rur do podłogówki oraz wylania docelowej wylewki jastrychowej. Po zsumowaniu tych elementów koszt &#8222;taniej&#8221; metody poszybował do ponad 81 tys. PLN, czyniąc termiczną płytę nośną rozwiązaniem tańszym i szybszym o ponad 3 tygodnie prac.
                </p>
            </div>
            <div class="rk-cs-insight-block">
                <h4>Kluczowa rola mikroklimatu (woj. pomorskie)</h4>
                <p>
                    Lębork znajduje się w strefie o podwyższonej wilgotności i chłodnych, morskich wiatrach. Rezygnacja z grubego izolatora XPS (co proponowała ekipa od ław) i pozostawienie mostków termicznych na styku ściany i fundamentu naraziłoby inwestora na drastyczne wychłodzenie dolnych partii ścian. Profesjonalny <strong>projekt ogrzewania podłogowego w płycie</strong> zapewnił współczynnik przenikania ciepła równy U = 0,10 W/(m²·K), definitywnie odcinając wilgoć i zimno od reszty budynku.
                </p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btn1 = document.getElementById('rk-cs-btn-1');
    var btn2 = document.getElementById('rk-cs-btn-2');
    var btn3 = document.getElementById('rk-cs-btn-3');
    
    var dashContainer = document.getElementById('rk-cs-dash-container');
    var valCost = document.getElementById('rk-cs-val-cost');
    var valSource = document.getElementById('rk-cs-val-source');
    var valStatus = document.getElementById('rk-cs-val-status');
    
    var storyBox = document.getElementById('rk-cs-story-box');
    var storyTitle = document.getElementById('rk-cs-story-title');
    var storyText = document.getElementById('rk-cs-story-text');

    function clearStates() {
        if(btn1) { btn1.classList.remove('active'); }
        if(btn2) { btn2.classList.remove('active'); }
        if(btn3) { btn3.classList.remove('active'); }
    }

    if(btn1) {
        btn1.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(valCost) { valCost.innerHTML = '79 000 <span>PLN</span>'; }
            if(valSource) { valSource.innerHTML = 'Pompa Ciepła <span>(Wysoki opór)</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Wahanie <span>(Koszty)</span>'; 
                valStatus.style.color = 'var(--rk-cs-warning)';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-warning)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Dylemat Startowy: Pozorny wzrost kosztów'; }
            if(storyText) { 
                storyText.innerHTML = 'Pan Tomasz z Lęborka, planujący dom o powierzchni 135 m², zgłosił się do nas z poważnym dylematem. Otrzymał wycenę wykonania termicznej płyty fundamentowej z zatopionym ogrzewaniem podłogowym na kwotę około 79 tys. PLN. Z kolei lokalna ekipa zaproponowała wykonanie tradycyjnych ław fundamentowych za 62 tys. PLN. Na pierwszy rzut oka różnica wydawała się drastyczna, co budziło mocne opory przed nowoczesną technologią na trudnym, wietrznym pomorskim gruncie.'; 
            }
        });
    }

    if(btn2) {
        btn2.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(valCost) { valCost.innerHTML = 'Pełne OZC <span>135 m²</span>'; }
            if(valSource) { valSource.innerHTML = 'Rura 16mm <span>(Rozstaw 15 cm)</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Audyt <span>W toku</span>'; 
                valStatus.style.color = '#38bdf8';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-blue)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Wejście Inżynierii: Eliminacja błędów przed zalaniem'; }
            if(storyText) { 
                storyText.innerHTML = 'Zleciliśmy wykonanie twardych obliczeń (Projektowe Obciążenie Cieplne - OZC). Okazało się, że układając rury 16 mm w rygorystycznym rozstawie co 15 cm i stosując płytę grubości 20 cm, uzyskamy gigantyczny monolit akumulacyjny. Skorygowaliśmy projekt stref przyokiennych w salonie (duże witryny od strony południowej) zagęszczając pętle do 10 cm. Wdrożono rygorystyczny wymóg wielogodzinnej próby ciśnieniowej na 6 barów podczas całego procesu betonowania.'; 
            }
        });
    }

    if(btn3) {
        btn3.addEventListener('click', function() {
            clearStates();
            this.classList.add('active');
            
            if(dashContainer) { dashContainer.style.borderLeftColor = 'var(--rk-cs-success)'; }
            if(valCost) { valCost.innerHTML = 'Zysk: ~450 <span>PLN/rok</span>'; }
            if(valSource) { valSource.innerHTML = 'Czas Budowy: <span>-3 Tygodnie</span>'; }
            if(valStatus) { 
                valStatus.innerHTML = 'Sukces <span>Pasywny monolit</span>'; 
                valStatus.style.color = 'var(--rk-cs-success)';
            }
            
            if(storyBox) { storyBox.style.borderLeftColor = 'var(--rk-cs-success)'; }
            if(storyTitle) { storyTitle.innerHTML = 'Finał: Niższe koszty, wyższy komfort i bezpieczeństwo na dekady'; }
            if(storyText) { 
                storyText.innerHTML = 'Po przeliczeniu ukrytych kosztów ław fundamentowych (izolacje, wylewki maszynowe, instalacja hydrauliczna nakładana później), ostateczny rachunek wykazał, że płyta akumulacyjna opłaciła się już w momencie budowy stanu zero. Dodatkowo, dzięki wyeliminowaniu mostków termicznych i pracy pompy ciepła na niskim zasilaniu (32°C), rachunki Pana Tomasza za ogrzewanie zimowe są co roku niższe o kilkaset złotych w porównaniu do okolicznych domów na tradycyjnych ławach.'; 
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i pełna kontrola typografii */
#rk-author-authority-app,
#rk-author-authority-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-darker: #080f1e;
    --rk-auth-blue: #0284c7;
    --rk-auth-light: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-bg: #ffffff;
    --rk-auth-success: #10b981;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-auth-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-auth-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

/* Sekcja Nagłówka H2 */
.rk-auth-header-zone {
    padding: 40px 45px 30px;
    background: linear-gradient(135deg, var(--rk-auth-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

/* Wizualna Wizytówka Autora - Jednokolumnowy Stack */
.rk-auth-profile-card {
    background: var(--rk-auth-light);
    padding: 30px 45px;
    border-bottom: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    gap: 25px;
    align-items: center;
    text-align: center;
}

@media (min-width: 768px) {
    .rk-auth-profile-card {
        flex-direction: row;
        text-align: left;
        align-items: flex-start;
    }
}

.rk-auth-avatar-frame {
    width: 130px;
    height: 130px;
    border-radius: 50%;
    border: 4px solid #ffffff;
    box-shadow: 0 8px 16px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    flex-shrink: 0;
}

.rk-auth-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rk-auth-bio-info {
    flex: 1;
}

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

.rk-auth-position {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 15px 0;
}

.rk-auth-short-bio {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-auth-text);
    margin: 0 0 18px 0;
}

/* Przyciski Społecznościowe */
.rk-auth-social-links {
    display: flex;
    gap: 12px;
    justify-content: center;
}

@media (min-width: 768px) {
    .rk-auth-social-links {
        justify-content: flex-start;
    }
}

.rk-auth-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none !important;
    border: 1px solid var(--rk-auth-border);
    background: #ffffff;
    color: var(--rk-auth-text);
}

.rk-auth-social-btn:hover {
    background: #f1f5f9;
    color: var(--rk-auth-dark);
    border-color: #cbd5e1;
}

/* Strefa Interaktywnego Wyboru Złotych Zasad */
.rk-auth-interactive-zone {
    padding: 35px 45px;
    background: #ffffff;
}

.rk-auth-selectors-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 25px;
}

.rk-auth-rule-trigger {
    width: 100%;
    background: var(--rk-auth-light);
    border: 1px solid var(--rk-auth-border);
    border-radius: 14px;
    padding: 18px 20px;
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-auth-rule-trigger:hover {
    border-color: #cbd5e1;
}

.rk-auth-rule-trigger.active {
    background: #f0f9ff;
    border-color: var(--rk-auth-blue);
}

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

.rk-auth-rule-trigger.active .rk-auth-trigger-text {
    color: var(--rk-auth-blue);
}

/* Ikona statusu */
.rk-auth-trigger-indicator {
    width: 20px;
    height: 20px;
    color: #94a3b8;
    flex-shrink: 0;
}

.rk-auth-rule-trigger.active .rk-auth-trigger-indicator {
    color: var(--rk-auth-blue);
}

/* Panel Wynikowy (Dashboard Komentarza) */
.rk-auth-insight-board {
    background: var(--rk-auth-darker);
    border-radius: 16px;
    padding: 30px;
    border-left: 6px solid var(--rk-auth-blue);
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.1);
}

.rk-auth-board-title {
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.rk-auth-board-content {
    font-size: 15.5px;
    line-height: 1.75;
    color: #e2e8f0;
    margin: 0;
}

.rk-auth-board-content strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-auth-board-content a {
    color: #38bdf8;
    text-decoration: underline;
    font-weight: 600;
}

@media (max-width: 768px) {
    .rk-auth-header-zone, .rk-auth-profile-card, .rk-auth-interactive-zone { padding: 30px 20px; }
    .rk-auth-social-links { flex-direction: column; width: 100%; }
    .rk-auth-social-btn { justify-content: center; width: 100%; }
    .rk-auth-insight-board { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Zdaniem Roberta Kucharskiego – Złote zasady instalacji w płycie",
    "description": "Ekspercki komentarz Roberta Kucharskiego na temat projektowania, rozstawu rur oraz kontroli hydraulicznej przy wykonawstwie termicznych płyt fundamentowych.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Wytyczne inżynieryjne dla betonowych monolitycznych wymienników ciepła",
    "description": "Matryca dopuszczalnych kryteriów wykonawczych: graniczne opory hydrauliczne pomp ciepła, rekuperacja ciepła posadzkowego, wytyczne OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "projektowe obciążenie cieplne ozc",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "dobór pompy obiegowej do podłogówki",
      "rekuperacja i ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Weryfikacja kryteriów fizyki budowli i mechaniki płynów w posadowieniach termicznych zgodnie z normą PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik przenikania przegrody dolnej: U do 0,11 W/m2K",
        "Maksymalny czas bezwładności akumulacyjnej betonu: 24 do 48 godzin",
        "Krytyczny próg oporów hydraulicznych pętli: 20 kPa"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Analizator Zasad Inżynierskich Roberta Kucharskiego",
    "description": "Moduł aplikacyjny weryfikujący zgodność założeń wykonawczych z kryteriami poprawności instalacji płaszczyznowych w fundamencie budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-author-authority-app">
    <div class="rk-auth-header-zone">
        <h2>Zdaniem Roberta Kucharskiego – Złote zasady instalacji w płycie</h2>
    </div>

    <div class="rk-auth-profile-card">
        <div class="rk-auth-avatar-frame">
            <img decoding="async" class="rk-auth-avatar-img" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski">
        </div>
        <div class="rk-auth-bio-info">
            <div class="rk-auth-name-title">Robert Kucharski</div>
            <div class="rk-auth-position">Specjalista HVAC &amp; Założyciel Projekt-Ogrzewania.pl</div>
            <p class="rk-auth-short-bio">
                Projektant i praktyk z dorobkiem ponad 1000 zrealizowanych systemów płaszczyznowych. Na co dzień demaskuję mity instalatorskie i uczę inwestorów, jak budować bez ściemy w oparciu o twarde dane, fizykę budowli oraz rygorystyczne normy sanitarne.
            </p>
            <div class="rk-auth-social-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-auth-social-btn" target="_blank" rel="noopener">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    LinkedIn Profile
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-auth-social-btn" target="_blank" rel="noopener">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-4h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    Facebook Strona
                </a>
            </div>
        </div>
    </div>

    <div class="rk-auth-interactive-zone">
        <div class="rk-auth-selectors-stack">
            <button class="rk-auth-rule-trigger active" id="rk-rtrig-1">
                <span class="rk-auth-trigger-text">Reguła 1: Absolutny prymat inżynierskiego OZC</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-auth-rule-trigger" id="rk-rtrig-2">
                <span class="rk-auth-trigger-text">Reguła 2: Bezkompromisowa weryfikacja szczelności monolitu</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-auth-rule-trigger" id="rk-rtrig-3">
                <span class="rk-auth-trigger-text">Reguła 3: Ścisła koordynacja hydrauliki i źródła ciepła</span>
                <svg class="rk-auth-trigger-indicator" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
        </div>

        <div class="rk-auth-insight-board">
            <div class="rk-auth-board-title" id="rk-auth-board-lbl">Komentarz Roberta Kucharskiego</div>
            <p class="rk-auth-board-content" id="rk-auth-board-txt">
                Prawidłowe <strong>projektowanie ogrzewania w płycie fundamentowej</strong> kategorycznie wyklucza intuicyjne działanie na placu budowy. Kluczowym dokumentem jest rzetelne, pełne <strong>projektowe obciążenie cieplne OZC</strong> każdego pokoju z osobna. Ponieważ betonowa konstrukcja wykazuje potężną cechę, jaką jest gigantyczna <strong>bezwładność cieplna monolitu betonowego</strong>, grubość rur i zagęszczenie obwodów muszą idealnie równoważyć straty energii, czyniąc tradycyjne termostaty ścienne zbędnymi.
            </p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var t1 = document.getElementById('rk-rtrig-1');
    var t2 = document.getElementById('rk-rtrig-2');
    var t3 = document.getElementById('rk-rtrig-3');
    
    var bTxt = document.getElementById('rk-auth-board-txt');
    var bLbl = document.getElementById('rk-auth-board-lbl');

    function resetTriggers() {
        if(t1) { t1.classList.remove('active'); }
        if(t2) { t2.classList.remove('active'); }
        if(t3) { t3.classList.remove('active'); }
    }

    if(t1) {
        t1.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Komentarz Roberta Kucharskiego'; }
            if(bTxt) {
                bTxt.innerHTML = 'Prawidłowe <strong>projektowanie ogrzewania w płycie fundamentowej</strong> kategorycznie wyklucza intuicyjne działanie na placu budowy. Kluczowym dokumentem jest rzetelne, pełne <strong>projektowe obciążenie cieplne OZC</strong> każdego pokoju z osobna. Ponieważ betonowa konstrukcja wykazuje potężną cechę, jaką jest gigantyczna <strong>bezwładność cieplna monolitu betonowego</strong>, grubość rur i zagęszczenie obwodów muszą idealnie równoważyć straty energii, czyniąc tradycyjne termostaty ścienne zbędnymi.';
            }
        });
    }

    if(t2) {
        t2.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Procedura Bezpieczeństwa'; }
            if(bTxt) {
                bTxt.innerHTML = 'Obowiązkowa, wielogodzinna <strong>próba szczelności płyty grzewczej</strong> pod sztywnym ciśnieniem 0,6 MPa (6 bar) musi trwać przez cały okres pracy pompy do betonu. Brak nadzoru nad manometrem podczas wylewania monolitu to sabotaż. Każde przypadkowe uderzenie wibratora buławowego może doprowadzić do ukrytego rozszczelnienia, którego naprawa po związaniu mieszanki nośnej będzie całkowicie niemożliwa.';
            }
        });
    }

    if(t3) {
        t3.addEventListener('click', function() {
            resetTriggers();
            this.classList.add('active');
            if(bLbl) { bLbl.innerHTML = 'Optymalizacja Hydrauliczna'; }
            if(bTxt) {
                bTxt.innerHTML = 'Wysoka <strong>efektywność pompy ciepła z płytą fundamentową</strong> wymaga utrzymania jak najniższej krzywej grzewczej (zasilanie rzędu 30-35 stopni). Aby to osiągnąć, należy zastosować stały, zweryfikowany inżyniersko, <strong>prawidłowy rozstaw rur w fundamencie</strong> co 15 cm. Ponadto wymagany jest precyzyjny <strong>profesjonalny projekt ogrzewania płaszczyznowego</strong>, który określi optymalny <strong>dobór pompy obiegowej do podłogówki</strong>, zapobiegając dławieniu strumienia masowego czynnika.';
            }
        });
    }
});
</script>



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

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

/* Sekcja Nagłówkowa */
.rk-faq-header-block {
    padding: 40px 45px 25px;
    background: linear-gradient(145deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

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

.rk-faq-header-block h3 {
    font-size: 16px;
    font-weight: 500;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

/* Układ Główny - Split Screen na Desktop */
.rk-faq-body {
    display: grid;
    grid-template-columns: 1fr;
    background: #ffffff;
}

@media (min-width: 992px) {
    .rk-faq-body {
        grid-template-columns: 1.2fr 0.8fr;
        gap: 20px;
        padding: 30px;
        background: var(--rk-faq-light);
    }
}

/* Panel Accordionu */
.rk-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
}

@media (min-width: 992px) {
    .rk-faq-accordion {
        padding: 0;
    }
}

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

.rk-faq-item:hover {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.05);
}

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

/* Przycisk Wyzwalający */
.rk-faq-trigger {
    width: 100%;
    padding: 20px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.rk-faq-question-text {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-faq-item.active .rk-faq-question-text {
    color: var(--rk-faq-blue);
}

/* Ikona SVG */
.rk-faq-icon-svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    color: var(--rk-faq-gray);
}

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

/* Zawartość Odpowiedzi */
.rk-faq-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}

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

.rk-faq-item.active .rk-faq-content-inner {
    border-top-color: #f1f5f9;
}

/* Ukryte tagi nasycające pod roboty AI - eleganckie wplecenie fraz */
.rk-seo-inline-phrase {
    font-weight: 600;
    color: var(--rk-faq-dark);
}

/* Panel Boczny Inżynierski (Desktop Only) */
.rk-faq-sidebar {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    padding: 25px;
    align-self: start;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

@media (min-width: 992px) {
    .rk-faq-sidebar {
        display: block;
    }
}

.rk-sidebar-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-faq-blue);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-sidebar-descr {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-faq-text);
    margin: 0;
}

.rk-faq-item a {
    color: var(--rk-faq-blue);
    text-decoration: underline;
    font-weight: 600;
}

.rk-faq-item a:hover {
    color: var(--rk-faq-blue-hover);
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Często zadawane pytania (FAQ) – Ogrzewanie podłogowe w płycie fundamentowej",
    "description": "Odpowiedzi na kluczowe pytania inwestorów dotyczące montażu rur grzewczych, doboru betonu konstrukcyjnego oraz procedur bezpieczeństwa w termicznych płytach fundamentowych.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-page",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można stosować rury PE-RT/Al/PE-RT w płycie fundamentowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, są one w pełni rekomendowane pod warunkiem posiadania bariery antydyfuzyjnej EVOH zgodnej z normą DIN 4726. Warstwa aluminium dodatkowo chroni przed dyfuzją tlenu do instalacji i ułatwia profilowanie rur na zbrojeniu."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się ogrzewanie w płycie fundamentowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Czas pierwszego rozruchu i pełnego nagrzania płyty o grubości 20 cm wynosi od 24 do 48 godzin. Wynika to z ogromnej pojemności cieplnej betonu, który działa jak potężny bufor termiczny."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki beton zastosować na płytę grzewczą?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy stosować wyłącznie konstrukcyjny beton towarowy klasy minimum C20/25 lub C25/30 o konsystencji ciekłej (S4/S5), z dodatkiem plastyfikatorów zwiększających przewodność cieplną oraz gęstość mieszanki wokół rur grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy na płycie fundamentowej z ogrzewaniem można kłaść panele drewniane?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ale opór cieplny paneli wraz z podkładem nie może przekraczać R = 0,15 m²K/W. Zaleca się jednak stosowanie płytek ceramicznych lub gresu, które charakteryzują się najniższym oporem i idealnie przewodzą ciepło."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie w przypadku awarii i wycieku wody w płycie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy zastosowaniu rur bezszwowych, sprawdzonych ciśnieniowo przed zalaniem, ryzyko awarii wynosi blisko 0%. W przypadku mechanicznego przewiercenia płyty, lokalizację wycieku przeprowadza się kamerą termowizyjną, a naprawę wykonuje się poprzez miejscowe skucie betonu i montaż specjalnej mufy prasowanej."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-dataset",
    "name": "Fizyka budowli i wytyczne wykonawcze dla termicznych płyt fundamentowych",
    "description": "Baza parametrów technicznych: opór cieplny przegród, normy betonu towarowego, czasy bezwładności termicznej masy betonowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jakie rury do płyty fundamentowej",
      "jaki beton na ogrzewanie podłogowe",
      "czas nagrzewania płyty fundamentowej",
      "panele na płycie fundamentowej z ogrzewaniem",
      "awaria ogrzewania w płycie fundamentowej"
    ],
    "measurementTechnique": "Obliczenia fizykalne oparte na współczynnikach oporu przewodzenia jastrychów i betonu konstrukcyjnego wg normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Graniczny opór cieplny okładzin: R = 0,15 m²K/W",
        "Czas bezwładności cieplnej elementu nośnego: 24 do 48 godzin",
        "Wymagana klasa plastyczności mieszanki: S4 do S5"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#faq-webapp",
    "name": "Walidator Poprawności Parametrów Płyty Grzewczej",
    "description": "Zintegrowany z interfejsem użytkownika system weryfikacji norm budowlanych i parametrów fizycznych dla posadowienia budynków z systemem grzewczym.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header-block">
        <h2>Często zadawane pytania (FAQ)</h2>
        <h3>Ogrzewanie podłogowe w płycie fundamentowej bez tajemnic – wiedza inżynierska w pigułce</h3>
    </div>

    <div class="rk-faq-body">
        <div class="rk-faq-accordion">
            
            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Czy można stosować rury PE-RT/Al/PE-RT w płycie fundamentowej?</span>
                    <svg class="rk-faq-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="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Tak, są one w pełni rekomendowane pod warunkiem, że sprawdzisz, czy wybrany system posiada cechę, jaką jest <span class="rk-seo-inline-phrase">bariera antydyfuzyjna evoh w fundamencie</span> zgodna z rygorystyczną normą DIN 4726.</p>
                        <p>Analizując zagadnienie, <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">jakie rury do płyty fundamentowej</a> wybrać, warto wiedzieć, że wewnętrzna warstwa aluminium dodatkowo chroni przed szkodliwą dyfuzją tlenu do zładu wodnego instalacji oraz trwale ułatwia ręczne profilowanie i gięcie rur na stalowych siatkach konstrukcyjnych zbrojenia.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Ile czasu nagrzewa się ogrzewanie w płycie fundamentowej?</span>
                    <svg class="rk-faq-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="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Nominalny <span class="rk-seo-inline-phrase">czas nagrzania płyty fundamentowej</span> przy pierwszym, technologicznym rozruchu oraz pełnym wygrzaniu masy monolitu o grubości 20 cm wynosi od 24 do 48 godzin.</p>
                        <p>Zjawisko to wynika bezpośrednio z ogromnej akumulacyjności cieplnej masy zbrojonego betonu. Działa on jak potężny, stabilny bufor termiczny, co sprawia, że dobowe wahania temperatur na zewnątrz budynku są całkowicie niewyczuwalne wewnątrz pomieszczeń.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Jaki beton zastosować na płytę grzewczą?</span>
                    <svg class="rk-faq-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="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>W procesie wykonawczym należy stosować wyłącznie konstrukcyjny beton towarowy klasy minimum C20/25 lub C25/30. Kluczowy jest parametr określający <span class="rk-seo-inline-phrase">jaki beton na ogrzewanie podłogowe</span> sprawdzi się najlepiej – wymagana jest konsystencja ciekła w klasach S4 lub S5.</p>
                        <p>Mieszanka musi bezwzględnie zawierać dedykowane plastyfikatory chemiczne, które eliminują pęcherze powietrza, podnoszą gęstość strukturalną betonu i gwarantują idealne otoczenie rur grzewczych, maksymalizując przewodność cieplną przegrody dolnej.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Czy na płycie fundamentowej z ogrzewaniem można kłaść panele drewniane?</span>
                    <svg class="rk-faq-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="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Tak, montaż jest możliwy, jednak całkowity <span class="rk-seo-inline-phrase">opór cieplny podłogówki w betonie</span> łącznie z wybraną okładziną wierzchnią i podkładem nie może przekroczyć wartości granicznej R = 0,15 m²K/W.</p>
                        <p>Planując <span class="rk-seo-inline-phrase">panele na płycie fundamentowej z ogrzewaniem</span>, warto wybierać produkty dedykowane, montowane najlepiej w systemie klejonym. Jako inżynier polecam jednak gres lub płytki ceramiczne, które cechuje najniższy opór termiczny i najwyższa efektywność radiacji.</p>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-trigger">
                    <span class="rk-faq-question-text">Co się stanie w przypadku awarii i wycieku wody w płycie?</span>
                    <svg class="rk-faq-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="6 9 12 15 18 9"></polyline></svg>
                </button>
                <div class="rk-faq-content">
                    <div class="rk-faq-content-inner">
                        <p>Przy zachowaniu procedur (rury bezszwowe, ciśnieniowe <span class="rk-seo-inline-phrase">badanie szczelności termicznej płyty</span>) ryzyko usterki wynosi blisko zero. Jeśli jednak nastąpi fizyczna <span class="rk-seo-inline-phrase">awaria ogrzewania w płycie fundamentowej</span> na skutek np. przewiercenia mechanicznego, sytuacja wymaga precyzyjnego działania.</p>
                        <p>Lokalizację wycieku bezbłędnie wskazuje profesjonalna kamera termowizyjna. Naprawę wykonuje się poprzez precyzyjne, punktowe skucie fragmentu betonu, a uszkodzony odcinek rury łączy się na stałe za pomocą specjalistycznej mufy prasowanej o wysokiej odporności mechanicznej.</p>
                    </div>
                </div>
            </div>

        </div>

        <div class="rk-faq-sidebar">
            <div class="rk-sidebar-title">
                <svg width="18" height="18" 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>
                Okiem Praktyka
            </div>
            <p class="rk-sidebar-descr">
                Zadaniem sekcji FAQ w standardzie inżynierskim jest rozwianie wątpliwości na bazie liczb i norm, a nie teorii. Płyta grzewcza to monolit pracujący przez dekady. Każda decyzja o doborze betonu plastycznego czy rodzaju rury z barierą EVOH rzutuje bezpośrednio na sprawność hydrauliczną instalacji połączonej z pompą ciepła. Buduj mądrze, opierając się na faktach.
            </p>
        </div>
    </div>
</div>

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

    faqItems.forEach(function(item) {
        var trigger = item.querySelector('.rk-faq-trigger');
        
        if (trigger) {
            trigger.addEventListener('click', function() {
                var content = item.querySelector('.rk-faq-content');
                var isActive = item.classList.contains('active');

                // Zamknięcie wszystkich innych elementów dla czystości interfejsu
                faqItems.forEach(function(otherItem) {
                    otherItem.classList.remove('active');
                    var otherContent = otherItem.querySelector('.rk-faq-content');
                    if (otherContent) {
                        otherContent.style.maxHeight = null;
                    }
                });

                // Jeśli element nie był aktywny, otwieramy go
                if (isActive === false) {
                    item.classList.add('active');
                    if (content) {
                        content.style.maxHeight = content.scrollHeight + "px";
                    }
                }
            });
        }
    });
});
</script>



<style>
:root {
    --rk-base-dark: #0f172a;
    --rk-base-blue: #0284c7;
    --rk-base-blue-light: #e0f2fe;
    --rk-base-green: #059669;
    --rk-base-green-light: #d1fae5;
    --rk-base-red: #dc2626;
    --rk-base-red-light: #fee2e2;
    --rk-base-gray: #64748b;
    --rk-base-border: #cbd5e1;
    --rk-base-bg: #ffffff;
}

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

/* Sekcja Nagłówkowa */
.rk-sum-top {
    padding: 40px 45px 30px;
    background: linear-gradient(145deg, var(--rk-base-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-sum-top h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    color: #ffffff;
    line-height: 1.3;
}

.rk-sum-intro {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0 0 20px 0;
}

/* Tag Cloud - Długi Ogon */
.rk-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
}

.rk-mat-tag {
    background: rgba(255, 255, 255, 0.1);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid rgba(125, 211, 252, 0.2);
    transition: all 0.3s ease;
}

.rk-mat-tag:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

/* Interaktywny Przełącznik (Aplikacja) */
.rk-interactive-app {
    padding: 40px 45px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-base-border);
}

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

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

.rk-switch-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 40px;
}

.rk-switch-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-base-gray);
    transition: color 0.3s ease;
}

.rk-switch-label.active-red { color: var(--rk-base-red); }
.rk-switch-label.active-green { color: var(--rk-base-green); }

/* 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-base-red);
    transition: .4s;
    border-radius: 36px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.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-base-green); }
input:checked + .rk-slider:before { transform: translateX(34px); }

/* Panele Zawartości */
.rk-panel {
    display: none;
    padding: 30px;
    border-radius: 16px;
    animation: fadeIn 0.5s ease-out forwards;
}

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

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

.rk-panel-danger {
    background: var(--rk-base-red-light);
    border: 1px solid rgba(220, 38, 38, 0.2);
}

.rk-panel-safe {
    background: var(--rk-base-green-light);
    border: 1px solid rgba(5, 150, 105, 0.2);
}

.rk-panel-grid {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 25px;
    align-items: center;
}

.rk-panel-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-panel h4 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px 0;
}

.rk-panel-danger h4 { color: var(--rk-base-red); }
.rk-panel-safe h4 { color: var(--rk-base-green); }

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

.rk-panel a {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.rk-panel-danger a { color: var(--rk-base-red); }
.rk-panel-safe a { color: var(--rk-base-green); }

/* Sekcja CTA */
.rk-sum-action {
    padding: 40px 45px;
    text-align: center;
    background: #ffffff;
}

.rk-sum-action h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-base-dark);
    margin: 0 0 15px 0;
}

.rk-sum-action p {
    font-size: 16px;
    color: var(--rk-base-gray);
    max-width: 600px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-base-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

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

/* Responsywność - Mobile First dla elementów interaktywnych */
@media (max-width: 768px) {
    .rk-sum-top, .rk-interactive-app, .rk-sum-action { padding: 30px 20px; }
    .rk-panel-grid { grid-template-columns: 1fr; text-align: center; gap: 15px; }
    .rk-panel-icon { margin: 0 auto; width: 60px; height: 60px; }
    .rk-switch-wrapper { flex-direction: column; gap: 15px; }
    .rk-tags-container { justify-content: center; }
    .rk-btn-cta { 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/ogrzewanie-podlogowe-w-plycie-fundamentowej#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Podsumowanie – Ogrzewanie podłogowe w płycie fundamentowej",
    "description": "Termiczna płyta fundamentowa to zaawansowany system grzewczy. Wymaga rygorystycznych obliczeń OZC i prób ciśnieniowych, ponieważ zabetonowanie pętli uniemożliwia późniejsze poprawki.",
    "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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#dataset",
    "name": "Parametry graniczne instalacji grzewczej w betonie",
    "description": "Zestawienie wymogów technicznych dla ogrzewania w płycie fundamentowej: długość pętli, testy szczelności i zasady obliczeniowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w płycie fundamentowej",
      "projekt ogrzewania podłogowego dla pompy ciepła",
      "obliczenia ozc dla płyty fundamentowej",
      "próba ciśnieniowa podłogówki przed wylewką",
      "maksymalna długość pętli w betonie"
    ],
    "measurementTechnique": "Weryfikacja hydrauliczna układu w oparciu o projekt instalacyjny oraz normatywne testy ciśnieniowe przed procesem betonowania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna długość pętli grzewczej: do 100 m",
        "Wymagane obliczenia: Projektowe Obciążenie Cieplne OZC",
        "Próba szczelności: bezwzględnie wymagana przed i w trakcie wylewania betonu"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#webapp",
    "name": "Symulator Konsekwencji Montażowych",
    "description": "Interaktywny panel demonstrujący różnicę pomiędzy montażem intuicyjnym a rygorystycznym podejściem inżynierskim przy zalewaniu instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-module" id="fundament-sum-app">
    <div class="rk-sum-top">
        <h2>Podsumowanie</h2>
        <p class="rk-sum-intro">
            <strong>Ogrzewanie podłogowe w płycie fundamentowej to najwyższy ewolucyjnie stopień niskotemperaturowych systemów grzewczych</strong> dedykowanych dla nowoczesnego, energooszczędnego budownictwa. Kluczem do bezwzględnego sukcesu tej inwestycji jest całkowite odrzucenie metod montażu &#8222;na oko&#8221; i zastąpienie ich rygorystyczną inżynierią instalacyjną.
        </p>
        <p class="rk-sum-intro">
            Płyta fundamentowa nie wybacza błędów – raz zalany beton pieczętuje układ hydrauliczny na dekady. Dlatego sprawność i ekonomia eksploatacji Twojego domu przez najbliższe 50 lat zależą od twardych danych i procedur.
        </p>
        
        <div class="rk-tags-container">
            <span class="rk-mat-tag"># ogrzewanie podłogowe w płycie fundamentowej</span>
            <span class="rk-mat-tag"># termiczna płyta fundamentowa koszty</span>
            <span class="rk-mat-tag"># rury do ogrzewania podłogowego w betonie</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego dla pompy ciepła</span>
            <span class="rk-mat-tag"># obliczenia ozc dla płyty fundamentowej</span>
            <span class="rk-mat-tag"># próba ciśnieniowa podłogówki przed wylewką</span>
            <span class="rk-mat-tag"># instalacja grzewcza w fundamencie</span>
            <span class="rk-mat-tag"># trwałość instalacji w płycie fundamentowej</span>
        </div>
    </div>

    <div class="rk-interactive-app">
        <div class="rk-toggle-header">
            <h3>Symulator Decyzji Inwestycyjnych</h3>
        </div>
        
        <div class="rk-switch-wrapper">
            <span class="rk-switch-label active-red" id="label-amator">Intuicja Instalatora</span>
            <label class="rk-switch">
                <input type="checkbox" id="rk-approach-toggle">
                <span class="rk-slider"></span>
            </label>
            <span class="rk-switch-label" id="label-inzynier">Inżynieria i Normy</span>
        </div>

        <div id="panel-amator" class="rk-panel rk-panel-danger active">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-red)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div>
                    <h4>Beton ukryje wszystko, ale portfel tego nie wytrzyma</h4>
                    <p>Układanie rur &#8222;z głowy&#8221; zazwyczaj kończy się przekroczeniem <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a>. Brak próby pod ciśnieniem to rosyjska ruletka w trakcie wylewania ton betonu.</p>
                    <p>Gdy dojdzie do usterki lub niedogrzania, skucie 20 cm zbrojonej płyty nośnej jest niemożliwe bez naruszenia konstrukcji budynku.</p>
                </div>
            </div>
        </div>

        <div id="panel-inzynier" class="rk-panel rk-panel-safe">
            <div class="rk-panel-grid">
                <div class="rk-panel-icon">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-green)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div>
                    <h4>Gwarancja 50 lat bezawaryjnej pracy</h4>
                    <p>Precyzyjne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia OZC</a> definiują dokładnie zapotrzebowanie. Pętle rozplanowane do optymalnych 100 m minimalizują opory dla pompy ciepła.</p>
                    <p>Bezkompromisowa, wielogodzinna <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności</a> wykonana przed zabetonowaniem gwarantuje absolutny spokój inwestora.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-sum-action">
        <h3>Twoja płyta fundamentowa już schnie?</h3>
        <p>Nie pozwól, by amatorskie błędy zabetonowały Twój budżet i komfort na długie lata. Wejdź na wyższy poziom wiedzy instalacyjnej, poznaj schematy, zdemaskuj branżowe mity i buduj bez ściemy.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-cta">
            DOŁĄCZ DO BAZY WIEDZY HVAC
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('rk-approach-toggle');
    var panelAmator = document.getElementById('panel-amator');
    var panelInzynier = document.getElementById('panel-inzynier');
    var labelAmator = document.getElementById('label-amator');
    var labelInzynier = document.getElementById('label-inzynier');

    if(toggleBtn) {
        toggleBtn.addEventListener('change', function() {
            if (this.checked === true) {
                // Tryb Inżynier
                panelAmator.classList.remove('active');
                panelInzynier.classList.add('active');
                labelAmator.classList.remove('active-red');
                labelInzynier.classList.add('active-green');
            } else {
                // Tryb Amator
                panelInzynier.classList.remove('active');
                panelAmator.classList.add('active');
                labelInzynier.classList.remove('active-green');
                labelAmator.classList.add('active-red');
            }
        });
    }
});
</script>



<style>
/* Wymuszenie czystego fontu i twardy reset */
#rk-download-hub-app,
#rk-download-hub-app * {
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    box-sizing: border-box;
}

:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-light: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-bg: #ffffff;
}

.rk-dl-container {
    max-width: 950px;
    margin: 40px auto;
    background: var(--rk-dl-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Ciemny Nagłówek */
.rk-dl-header {
    padding: 35px 45px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    border-bottom: 6px solid var(--rk-dl-blue);
}

.rk-dl-header-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-dl-header-text h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0;
    color: #ffffff;
    line-height: 1.2;
    letter-spacing: -0.5px;
}

.rk-dl-header-text p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
}

.rk-dl-header-icon {
    color: #38bdf8;
    flex-shrink: 0;
}

/* Obszar Roboczy - Split Layout */
.rk-dl-grid {
    display: flex;
    flex-direction: column;
}

@media (min-width: 768px) {
    .rk-dl-grid {
        flex-direction: row;
    }
}

/* Lewa Kolumna - Podgląd */
.rk-dl-preview-col {
    flex: 0 0 40%;
    background: var(--rk-dl-light);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border-right: 1px solid var(--rk-dl-border);
}

.rk-dl-thumbnail-box {
    width: 100%;
    max-width: 260px;
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
    border: 1px solid var(--rk-dl-border);
    transition: transform 0.3s ease;
}

.rk-dl-thumbnail-box:hover {
    transform: translateY(-5px);
}

.rk-dl-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
    border: 1px solid #f1f5f9;
}

.rk-dl-preview-link {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-dl-blue);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: color 0.3s;
}

.rk-dl-preview-link:hover {
    color: #0369a1;
}

/* Prawa Kolumna - Akcje */
.rk-dl-action-col {
    flex: 0 0 60%;
    padding: 40px 45px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-action-col h3 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-dl-action-col p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    margin: 0 0 30px 0;
}

.rk-dl-buttons-stack {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Przyciski Pobierania */
.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-radius: 14px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}

.rk-dl-btn-primary {
    background: var(--rk-dl-blue);
    color: #ffffff !important;
    box-shadow: 0 4px 6px -1px rgba(2, 132, 199, 0.2);
}

.rk-dl-btn-primary:hover {
    background: #0369a1;
    transform: translateY(-2px);
    box-shadow: 0 8px 15px -3px rgba(2, 132, 199, 0.3);
}

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

.rk-dl-btn-secondary:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
    transform: translateY(-2px);
}

.rk-dl-btn-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-dl-btn-text {
    font-size: 17px;
    font-weight: 800;
}

.rk-dl-btn-sub {
    font-size: 14px;
    font-weight: 500;
    opacity: 0.9;
}

.rk-dl-btn-secondary .rk-dl-btn-sub {
    color: #64748b;
}

/* Stopka - Copyright */
.rk-dl-footer {
    background: var(--rk-dl-light);
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 30px;
    text-align: center;
}

.rk-dl-footer p {
    font-size: 14px;
    line-height: 1.6;
    color: #64748b;
    margin: 0;
}

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

@media (max-width: 768px) {
    .rk-dl-header { flex-direction: column; align-items: flex-start; padding: 30px 20px; }
    .rk-dl-header-icon { display: none; }
    .rk-dl-preview-col { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-action-col { padding: 30px 20px; }
    .rk-dl-btn { flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-dl-btn-sub { align-self: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej"
    },
    "headline": "Materiały do pobrania: Infografika techniczna płyty fundamentowej",
    "description": "Ściągawka inwestora. Autorska infografika i przewodnik techniczny po projektowaniu ogrzewania podłogowego. Pobierz darmowe materiały edukacyjne (PDF, WebP).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.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-28",
    "dateModified": "2026-06-28"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-dataset",
    "name": "Kompendium graficzne: Zasady montażu płyty grzewczej",
    "description": "Zbiór ustrukturyzowanej wiedzy inżynierskiej podanej w formie graficznej, obejmujący parametry rozstawów rur, grubości izolacji oraz wytyczne OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "schemat płyty fundamentowej pdf",
      "zasady montażu podłogówki obrazek",
      "pobierz projekt instalacji",
      "techniczny przewodnik ogrzewania"
    ],
    "measurementTechnique": "Wizualizacja parametrów mechaniki płynów oraz fizyki budowli zawartych w normach inżynierskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format wektorowy do wydruku: Dokument PDF (Zabezpieczony)",
        "Format rastrowy do przeglądania na urządzeniach mobilnych: Obraz WebP wysokiej rozdzielczości"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej#infographic-webapp",
    "name": "Interaktywne Repozytorium Plików Technicznych",
    "description": "Narzędzie sieciowe umożliwiające bezpieczny podgląd i natychmiastowe pobieranie załączników technicznych, zabezpieczonych klauzulą praw autorskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-text">
            <h2>Materiały do pobrania</h2>
            <p>Zachowaj tę wiedzę dla siebie lub przekaż ją swojemu wykonawcy.</p>
        </div>
        <div class="rk-dl-header-icon">
            <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>
        </div>
    </div>

    <div class="rk-dl-grid">
        
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumbnail-box">
                <img decoding="async" class="rk-dl-thumbnail-img" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" alt="Infografika: Ściągawka Inwestora" loading="lazy">
            </div>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" target="_blank" rel="noopener" class="rk-dl-preview-link">
                KLIKNIJ, ABY PODGLĄDNĄĆ
            </a>
        </div>

        <div class="rk-dl-action-col">
            <h3>Infografika: Ściągawka Inwestora</h3>
            <p>
                Przygotowałem skrót najważniejszych norm, zaleceń i pułapek technologicznych w wygodnej formie graficznej. Zapisz plik na telefonie przed wizytą na budowie.
            </p>

            <div class="rk-dl-buttons-stack">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.pdf" download class="rk-dl-btn rk-dl-btn-primary" rel="noopener">
                    <div class="rk-dl-btn-left">
                        <div class="rk-dl-btn-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><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>
                        <span class="rk-dl-btn-text">Pobierz jako dokument PDF</span>
                    </div>
                    <span class="rk-dl-btn-sub">Wysoka jakość</span>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ogrzewanie-podlogowe-w-plycie-fundamentowej-–-techniczny-przewodnik-po-projektowaniu-i-montazu.webp" download class="rk-dl-btn rk-dl-btn-secondary" rel="noopener">
                    <div class="rk-dl-btn-left">
                        <div class="rk-dl-btn-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        </div>
                        <span class="rk-dl-btn-text">Pobierz jako Obraz (WebP)</span>
                    </div>
                    <span class="rk-dl-btn-sub">Lekki plik</span>
                </a>
            </div>
        </div>

    </div>

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

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Bezpieczna inicjalizacja modułu bez użycia operatorów && i zbędnych animacji.
    // Śledzenie kliknięć w przyciski pobierania dla analityki (opcjonalnie)
    var pdfBtn = document.querySelector('.rk-dl-btn-primary');
    var webpBtn = document.querySelector('.rk-dl-btn-secondary');

    function logDownloadEvent(type) {
        // Placeholder dla eventów Google Analytics lub Tag Managera
        if (window.console) {
            console.log('Pobrano plik:', type);
        }
    }

    if (pdfBtn) {
        pdfBtn.addEventListener('click', function() {
            logDownloadEvent('PDF');
        });
    }

    if (webpBtn) {
        webpBtn.addEventListener('click', function() {
            logDownloadEvent('WebP');
        });
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">Ogrzewanie podłogowe w płycie fundamentowej – techniczny przewodnik po projektowaniu i montażu.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</title>
		<link>https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[błędy wykonawcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[montaż samodzielny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[porady techniczne]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[zebra termiczna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4245</guid>

					<description><![CDATA[<p>Planujesz samodzielny montaż instalacji grzewczej, by zaoszczędzić na robociźnie? Wiele osób, wpisując w wyszukiwarkę frazę „jak samemu zrobić ogrzewanie podłogowe”, skupia się wyłącznie na prostocie rozkładania rur PEX, zapominając o bezlitosnych prawach fizyki budowli i mechaniki płynów. Ten techniczny przewodnik obala popularne mity i analizuje pięć najpoważniejszych „grzechów głównych” popełnianych przez inwestorów. Dowiesz się z niego, dlaczego brak profesjonalnego projektu, zignorowanie dylatacji czy zbyt długie pętle grzewcze mogą doprowadzić do nieodwracalnych uszkodzeń wylewki i kosztownego remontu. Zamiast uczyć się na własnych błędach pod warstwą betonu, poznaj inżynierskie standardy, które zagwarantują Ci komfort cieplny i niskie rachunki przez kolejne trzydzieści lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #dc2626; /* Czerwony ostrzegawczy */
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #fef2f2;
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(220, 38, 38, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fef2f2;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #fecaca;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(220, 38, 38, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce",
    "description": "Techniczny przewodnik po najczęstszych błędach podczas montażu podłogówki DIY. Dowiedz się, dlaczego fizyka budowli i mechanika płynów są ważniejsze niż samo układanie rur.",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny błędów montażowych",
    "description": "Zestawienie kluczowych parametrów technicznych i zagrożeń wynikających z błędów przy samodzielnym montażu ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Projekt hydrauliczny",
        "value": "Równowaga oporów",
        "description": "Zagrożenie: Niedogrzane pomieszczenia"
      },
      {
        "@type": "PropertyValue",
        "name": "Test ciśnieniowy",
        "value": "6 bar (0.6 MPa)",
        "description": "Zagrożenie: Wyciek pod wylewką"
      },
      {
        "@type": "PropertyValue",
        "name": "Dylatacje",
        "value": "0.012 mm/(m·K)",
        "description": "Zagrożenie: Pękanie płytek i jastrychu"
      },
      {
        "@type": "PropertyValue",
        "name": "Długość obwodów",
        "value": "Max 100m (PEX 16)",
        "description": "Zagrożenie: Przeciążenie pompy obiegowej"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>⚠️</span> Punkt bez powrotu
        </div>
        
        <p class="hero-text">Kiedy wpisujesz w wyszukiwarkę frazę <strong>„jak samemu zrobić ogrzewanie podłogowe”</strong>, widzisz dziesiątki poradników pokazujących, jak łatwo rozwinąć rolkę czerwonej lub białej rury PEX i przyszpilić ją do styropianu. Rzeczywiście, sama czynność układania wężyków jest prosta i może dać ogromną satysfakcję oraz oszczędności na robociźnie rzędu kilku tysięcy złotych.</p>
        
        <p class="hero-text">Problem w tym, że prawdziwa wiedza potrzebna przy samodzielnym montażu ogrzewania podłogowego nie dotyczy wpinania rury w rozdzielacz, ale <strong>fizyki budowli i mechaniki płynów</strong>. Poniższy artykuł to techniczny przewodnik dla tych, którzy rozumieją, że po stwardnieniu betonowej wylewki jedyną metodą naprawy błędu jest młot udarowy i nowy remont.</p>

        <div class="hero-modules-title">Poznaj katalog głównych grzechów:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Brak projektu i obliczeń</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Zła próba szczelności</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🏗️</span>
                <span class="hero-card-title">Zignorowanie dylatacji</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚠️</span>
                <span class="hero-card-title">Błędy długości pętli</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Przegląd techniczny błędów montażowych</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Obszar kontroli</th>
                        <th style="padding: 10px 0; color: #475569;">Kluczowy parametr</th>
                        <th style="padding: 10px 0; color: #475569;">Zagrożenie</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Projekt hydrauliczny</td>
                        <td style="padding: 10px 0; font-weight: bold;">Równowaga oporów</td>
                        <td style="padding: 10px 0; color: #dc2626;">Niedogrzane pomieszczenia</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Test ciśnieniowy</td>
                        <td style="padding: 10px 0; font-weight: bold;">6 bar (0.6 MPa)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Wyciek pod wylewką</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dylatacje</td>
                        <td style="padding: 10px 0; font-weight: bold;">0.012 mm/(m·K)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Pękanie płytek i jastrychu</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Długość obwodów</td>
                        <td style="padding: 10px 0; font-weight: bold;">Max 100m (PEX 16)</td>
                        <td style="padding: 10px 0; color: #dc2626;">Przeciążenie pompy obiegowej</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-physics-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.physics-header {
    background: var(--primary);
    color: #ffffff;
    padding: 30px 40px;
    position: relative;
    overflow: hidden;
}

.physics-header::after {
    content: '📐';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 80px;
    opacity: 0.1;
}

.physics-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
}

.physics-header p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    line-height: 1.5;
}

.physics-content {
    padding: 40px;
}

.physics-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 25px;
}

.physics-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 30px 0;
}

.sim-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--accent);
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: block;
    text-align: center;
}

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

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

.loop-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.loop-val {
    color: var(--accent);
    font-weight: 900;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.flow-bar-container {
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.flow-bar {
    height: 100%;
    width: 50%;
    background: var(--success);
    transition: width 0.4s ease, background-color 0.4s ease;
}

.flow-text {
    position: absolute;
    width: 100%;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    font-weight: 800;
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3);
}

#sim-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

/* LINKI / CTA */
.physics-cta-box {
    margin-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.physics-cta-text {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 5px;
}

.cta-link-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.3s ease;
}

.cta-primary {
    background: var(--accent);
    color: #ffffff !important;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2);
}

.cta-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.3);
}

.cta-secondary {
    background: var(--accent-light);
    color: var(--accent) !important;
    border: 1px solid #bfdbfe;
}

.cta-secondary:hover {
    background: #dbeafe;
}

@media (max-width: 768px) {
    .physics-header { padding: 25px 20px; }
    .physics-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .cta-link-btn { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Symulacja oporów hydraulicznych i prawa Hagena-Poiseuille’a",
    "description": "Zależność między długością pętli grzewczych a oporem hydraulicznym i przepływem w systemach ogrzewania podłogowego.",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Długość pętli krytyczna",
        "value": "100",
        "unitCode": "MTR",
        "description": "Maksymalna długość pętli dla rury 16mm"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna dopuszczalna różnica długości pętli",
        "value": "15",
        "unitText": "%",
        "description": "Powyżej 15% różnicy woda omija dłuższą pętlę i nie da się jej zbilansować na rotametrach"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące wpływ różnicy długości pętli grzewczych na równowagę oporów hydraulicznych i przepływ wody.",
    "featureList": [
      "Wizualizacja prawa Hagena-Poiseuille’a",
      "Obliczanie stosunku przepływu na podstawie różnicy długości",
      "Wykrywanie przekroczenia krytycznej granicy zbilansowania (15%)"
    ]
  }
]
</script>

<div class="premium-physics-box" id="physics-app-lock">
    <div class="physics-header">
        <h3>Projekt instalacji – fundament, a nie fanaberia</h3>
        <p>Dlaczego metoda &#8222;na oko&#8221; i brak obliczeń to przepis na zimną podłogę?</p>
    </div>

    <div class="physics-content">
        <p class="physics-text">
            Zanim przejdziemy do konkretnych błędów montażowych, musimy postawić sprawę jasno: <strong>brak projektu hydraulicznego i cieplnego jest matką wszystkich tych wpadek.</strong> Wpisując w Google <em>jak samemu zrobić ogrzewanie podłogowe</em>, większość majsterkowiczów szuka schematu rozstawu rur („ślimak czy meander?”), całkowicie ignorując obliczenia oporów hydraulicznych i strat ciepła.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator przepływu: Prawo Hagena-Poiseuille’a w praktyce</span>
            <div class="sim-grid">
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla A (np. Łazienka)</span><span class="loop-val"><span id="val-loop1">45</span> m</span></div>
                    <input type="range" id="loop1" min="20" max="150" value="45">
                    <div class="flow-bar-container">
                        <div id="bar-loop1" class="flow-bar"></div>
                        <span id="text-loop1" class="flow-text">Przepływ: Wysoki (Gorąca)</span>
                    </div>
                </div>
                <div class="loop-control">
                    <div class="loop-label"><span>Pętla B (np. Salon)</span><span class="loop-val"><span id="val-loop2">120</span> m</span></div>
                    <input type="range" id="loop2" min="20" max="150" value="120">
                    <div class="flow-bar-container">
                        <div id="bar-loop2" class="flow-bar" style="background:var(--danger)"></div>
                        <span id="text-loop2" class="flow-text">Przepływ: Niski (Zimna)</span>
                    </div>
                </div>
            </div>
            <div id="sim-warning">⚠️ Różnica oporów jest zbyt duża (>15%). Woda omija dłuższą pętlę. Tego układu nie da się zbilansować na rozdzielaczu!</div>
        </div>

        <p class="physics-text">
            Próba wykonania instalacji „na oko” prowadzi dokładnie do sytuacji z powyższego symulatora, w której <strong>jedna pętla ma 120 metrów, a druga 45 metrów.</strong> Zgodnie z prawami fizyki, woda przepływa tam, gdzie jest najmniejszy opór. W takim układzie krótsza pętla będzie gorąca, a długa – ledwo letnia. 
            <br><br>
            <strong>Nie da się tego skorygować zaworem na rozdzielaczu, jeśli różnica długości przekracza 10-15%.</strong> 
        </p>

        <div class="physics-cta-box">
            <div class="physics-cta-text">Chcesz uchronić się przed kosztownymi pomyłkami?</div>
            
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-link-btn cta-primary">
                <span>📐 Zleć profesjonalny projekt instalacji u specjalisty</span>
                <span>ZAMÓW PROJEKT →</span>
            </a>
            
            <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/" class="cta-link-btn cta-secondary">
                <span>📖 Dowiedz się, ile możesz stracić na błędach bez wyliczeń</span>
                <span>PRZECZYTAJ ARTYKUŁ →</span>
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Parametry hydrauliczne pętli grzewczych (Prawo Hagena-Poiseuille’a)</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Długość pętli</th>
                        <th style="padding: 10px 0; color: #475569;">Zdolność przepływu w układzie mieszanym</th>
                        <th style="padding: 10px 0; color: #475569;">Ocena hydrauliczna</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">45 m (Krótka)</td>
                        <td style="padding: 10px 0;">Pętla o niskim oporze &#8211; przejmuje większość przepływu</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Gorąca (Przegrzewanie)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">120 m (Długa)</td>
                        <td style="padding: 10px 0;">Pętla o wysokim oporze &#8211; woda ją omija</td>
                        <td style="padding: 10px 0; color: #2563eb; font-weight: bold;">Zimna (Niedogrzanie)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Różnica &gt; 15%</td>
                        <td style="padding: 10px 0;">Brak możliwości kompensacji ciśnienia na rotametrach</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Błąd projektowy (Nie do zbilansowania)</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('physics-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div>' +
                '<p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var loop1 = document.getElementById('loop1');
    var loop2 = document.getElementById('loop2');
    var val1 = document.getElementById('val-loop1');
    var val2 = document.getElementById('val-loop2');
    var bar1 = document.getElementById('bar-loop1');
    var bar2 = document.getElementById('bar-loop2');
    var text1 = document.getElementById('text-loop1');
    var text2 = document.getElementById('text-loop2');
    var warning = document.getElementById('sim-warning');

    function calculateFlow() {
        var l1 = parseFloat(loop1.value);
        var l2 = parseFloat(loop2.value);
        
        val1.innerText = l1;
        val2.innerText = l2;

        // Odwrotna proporcjonalność: większa długość = mniejszy przepływ
        // Zakładamy stałe ciśnienie pompy, przepływ Q ~ 1/L
        var q1 = 1 / l1;
        var q2 = 1 / l2;
        var totalQ = q1 + q2;

        var perc1 = (q1 / totalQ) * 100;
        var perc2 = (q2 / totalQ) * 100;

        bar1.style.width = perc1 + '%';
        bar2.style.width = perc2 + '%';

        // Kolorowanie pętli w zależności od udziału w przepływie
        updateBarColor(bar1, text1, perc1);
        updateBarColor(bar2, text2, perc2);

        // Obliczanie różnicy w długości pętli
        var maxL = Math.max(l1, l2);
        var diff = Math.abs(l1 - l2);
        var diffPerc = (diff / maxL) * 100;

        if (diffPerc > 15 || l1 > 100 || l2 > 100) {
            warning.style.display = 'block';
            if (l1 > 100 || l2 > 100) {
                warning.innerHTML = '⚠️ <strong>Jedna z pętli przekracza 100 m!</strong> Opór jest tak duży, że dławienie zaworów nie pomoże. Pętla nie dogrzeje pomieszczenia.';
            } else {
                warning.innerHTML = '⚠️ <strong>Różnica długości wynosi ok. ' + Math.round(diffPerc) + '%!</strong> Woda wybiera najmniejszy opór. Układu nie da się zbilansować na rotametrach.';
            }
        } else {
            warning.style.display = 'none';
        }
    }

    function updateBarColor(bar, textEl, perc) {
        if (perc > 60) {
            bar.style.backgroundColor = '#dc2626'; // Red
            textEl.innerText = 'Gorąca (Główny obieg)';
        } else if (perc >= 40 && perc <= 60) {
            bar.style.backgroundColor = '#16a34a'; // Green
            textEl.innerText = 'Zbilansowana';
        } else {
            bar.style.backgroundColor = '#3b82f6'; // Blue
            textEl.innerText = 'Zimna (Brak przepływu)';
        }
    }

    loop1.addEventListener('input', calculateFlow);
    loop2.addEventListener('input', calculateFlow);

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💦';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 25px;
}

.gauge-display {
    font-size: 42px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 10px;
    line-height: 1;
}

.gauge-label {
    font-size: 14px;
    color: #64748b;
    font-weight: 700;
    margin-bottom: 15px;
}

input[type=range] {
    width: 100%; max-width: 400px; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 20px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.sim-btn {
    padding: 12px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    border: none;
    transition: 0.3s;
}

.btn-concrete { background: #94a3b8; color: white; box-shadow: 0 4px 10px rgba(148, 163, 184, 0.3); }
.btn-concrete:hover { background: #64748b; }
.btn-strike { background: #fbbf24; color: #78350f; box-shadow: 0 4px 10px rgba(251, 191, 36, 0.3); }
.btn-strike:hover { background: #f59e0b; }

#sim-result {
    margin-top: 25px;
    padding: 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    display: none;
    line-height: 1.5;
}

.result-danger { background: #fef2f2; color: var(--danger); border: 2px solid #fecaca; }
.result-success { background: #f0fdf4; color: var(--success); border: 2px solid #bbf7d0; }
.result-warning { background: #fffbeb; color: #b45309; border: 2px solid #fde68a; }

/* SEKCJE TEKSTOWE */
.golden-standard {
    background: #f0fdf4;
    border-left: 6px solid var(--success);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.golden-standard h4 { margin: 0 0 15px 0; color: #166534; font-size: 18px; font-weight: 800;}
.golden-standard ul { margin: 0; padding-left: 20px; color: #15803d; line-height: 1.7; }
.golden-standard li { margin-bottom: 10px; }
.golden-standard strong { color: #14532d; }

.life-example {
    background: #fff7ed;
    border: 1px solid #ffedd5;
    padding: 25px;
    border-radius: 16px;
    margin-top: 30px;
}

.life-example h4 { margin: 0 0 10px 0; color: var(--warning); font-size: 16px; font-weight: 800;}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-actions { flex-direction: column; width: 100%; }
    .sim-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Standardy próby szczelności instalacji ogrzewania podłogowego",
    "description": "Wymagania techniczne i fizyczne konsekwencje nieprawidłowo przeprowadzonej próby ciśnieniowej przed zalaniem wylewką.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wymagane ciśnienie próbne",
        "value": "0.6",
        "unitCode": "BAR",
        "description": "Minimum 6 barów w celu zapobiegania mikrorozszczelnieniom złączek pod masą betonu"
      },
      {
        "@type": "PropertyValue",
        "name": "Minimalny czas trwania testu",
        "value": "24",
        "unitText": "godziny"
      },
      {
        "@type": "PropertyValue",
        "name": "Masa jastrychu grzewczego na rurach",
        "value": "200-250",
        "unitText": "kg/m2",
        "description": "Siła wywierana na rury PEX wymagająca sztywności uzyskanej ciśnieniem > 5 bar"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator naprężeń: Sprawdź zachowanie rury",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "description": "Interaktywny symulator demonstrujący wpływ ciśnienia próbnego na zachowanie rur ogrzewania podłogowego podczas prac betoniarskich, takich jak wibrowanie wylewki oraz uderzenia mechaniczne.",
    "featureList": [
      "Wizualizacja wpływu wibratora do betonu na szczelność",
      "Symulacja spadku ciśnienia na manometrze przy uszkodzeniu mechanicznym",
      "Określanie bezpiecznych (>= 6 bar) i niebezpiecznych poziomów ciśnienia"
    ]
  }
]
</script>

<div class="premium-error-box" id="pressure-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #1</div>
        <h3>Brak lub źle przeprowadzona próba szczelności</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli przeciek ukryty w tonach betonu.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego standardowe "sprawdzenie na 2 bary" to za mało?</strong><br>
            To absolutnie najpoważniejszy błąd przy samodzielnym wykonaniu podłogówki. W domowych warunkach najczęściej robi się tak: podłącza się wąż ogrodowy do rozdzielacza, puszcza wodę z sieci (ok. 3-4 bary), widzi się, że z drugiego końca leci woda, zakręca zawór i uznaje instalację za szczelną.
        </p>
        <p class="error-text">
            <strong>Konsekwencja techniczna:</strong><br>
            Podczas zalewania wylewki na rury działa masa betonu (około 200-250 kg/m² przy grubości 6-8 cm). Ponadto ekipy betoniarskie używają wibratorów wgłębnych lub listew wibracyjnych. Drgania o wysokiej częstotliwości potrafią poluzować nawet prawidłowo zaciśnięte złączki zaciskowe. Jeśli w rurze panowało niskie ciśnienie statyczne, a złączka była "na styk", pod wpływem wibracji i ciężaru betonu dojdzie do mikrorozszczelnienia. Woda zacznie migrować w beton, a Ty zobaczysz to dopiero po 3 miesiącach, gdy na suficie piętra niżej pojawi się mokra plama.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator naprężeń: Sprawdź zachowanie rury</span>
            
            <div class="sim-controls">
                <div class="gauge-display"><span id="pressure-val">2.0</span> BAR</div>
                <span class="gauge-label">Ustaw ciśnienie w układzie (0 - 8 bar)</span>
                <input type="range" id="pressure-slider" min="0" max="8" step="0.5" value="2.0">
            </div>

            <div class="sim-actions">
                <button id="btn-pour" class="sim-btn btn-concrete">1. Wylej beton i włącz wibrator</button>
                <button id="btn-strike" class="sim-btn btn-strike">2. Symuluj uderzenie łopatą</button>
            </div>

            <div id="sim-result"></div>
        </div>

        <div class="golden-standard">
            <h4>Złoty standard próby szczelności (jak to zrobić dobrze):</h4>
            <ul>
                <li><strong>Ciśnienie próbne:</strong> Minimum 0,6 MPa (6 barów). Woda w instalacji CO rzadko przekracza 2 bary, ale próba ma symulować ekstremalne naprężenia mechaniczne.</li>
                <li><strong>Czas trwania:</strong> Minimum 24 godziny.</li>
                <li><strong>W trakcie wylewania betonu:</strong> Rury muszą być pod ciśnieniem! To kluczowa zasada pomijana przez 90% samouków.</li>
            </ul>
        </div>

        <p class="error-text">
            Dzięki utrzymaniu ciśnienia rura jest sztywna (naprężona). Jeśli ekipa od wylewek nadepnie na nią kaloszem lub uderzy łopatą, manometr na rozdzielaczu natychmiast spadnie. Wtedy możesz przerwać wylewanie, odkopać uszkodzone miejsce i naprawić złączką. Szczegółową instrukcję przeprowadzania tego kluczowego testu znajdziesz w naszym dedykowanym artykule: <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">próba szczelności ogrzewania podłogowego – jak zrobić to prawidłowo?</a>.
        </p>

        <div class="life-example">
            <h4>👷‍♂️ Przykład z życia:</h4>
            <p style="margin:0; font-size:14px; color:#78350f; line-height:1.6;">
                Pan Adam z Wrocławia oszczędził na kompresorze. Zrobił próbę na 2 bary z wodociągu. Po wylaniu 10 cm betonu okazało się, że w jednej pętli nie ma przepływu. Po 3 latach płytki w przedpokoju zaczęły "pływać" – okazało się, że przy rozdzielaczu ekipa wylała beton bezpośrednio na złączkę, wyginając ją i powodując pęknięcie zmęczeniowe mosiądzu. <strong>Koszt naprawy: skucie 4 m² posadzki, wymiana złączki, nowa wylewka i nowe płytki (łącznie ok. 3500 zł).</strong>
            </p>
        </div>
    </div>
    
    <noscript>
        <div style="padding: 20px 40px 30px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki ciśnienia w rurach ogrzewania podłogowego podczas prac betoniarskich</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Wartość ciśnienia próbnego</th>
                        <th style="padding: 10px 0; color: #475569;">Zachowanie rury pod wpływem wibratora do betonu</th>
                        <th style="padding: 10px 0; color: #475569;">Reakcja na uszkodzenie mechaniczne (np. łopatą)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">&lt; 5 bar (Zbyt niskie)</td>
                        <td style="padding: 10px 0;">Poluzowanie złączek, wyciek pod wylewką</td>
                        <td style="padding: 10px 0; color: #dc2626;">Brak widocznego spadku na manometrze</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">&ge; 6 bar (Zalecane)</td>
                        <td style="padding: 10px 0;">Rura sztywna, złączki zablokowane</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Natychmiastowy spadek ciśnienia = szybka naprawa</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pressure-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var slider = document.getElementById('pressure-slider');
    var valDisplay = document.getElementById('pressure-val');
    var btnPour = document.getElementById('btn-pour');
    var btnStrike = document.getElementById('btn-strike');
    var resultBox = document.getElementById('sim-result');

    slider.addEventListener('input', function() {
        valDisplay.innerText = parseFloat(slider.value).toFixed(1);
        resultBox.style.display = 'none'; // reset wyników przy zmianie
    });

    btnPour.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 
        
        if (pressure < 5.0) {
            resultBox.classList.add('result-danger');
            resultBox.innerHTML = '❌ <strong>KATASTROFA!</strong> Ciśnienie jest zbyt niskie. Rura jest wiotka. Wibrator poluzował złączki, a ciężar betonu wywołał mikrorozszczelnienie. Woda ucieka w wylewkę!';
        } else {
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '✅ <strong>BEZPIECZNIE!</strong> Rura pod ciśnieniem ' + pressure.toFixed(1) + ' bar jest sztywna jak kamień. Złączki są napięte i zablokowane. Wibracje betonu nie robią na niej żadnego wrażenia.';
        }
    });

    btnStrike.addEventListener('click', function() {
        var pressure = parseFloat(slider.value);
        resultBox.style.display = 'block';
        resultBox.className = ''; 

        if (pressure < 3.0) {
            resultBox.classList.add('result-warning');
            resultBox.innerHTML = '⚠️ <strong>BRAK REAKCJI MANOMETRU!</strong> Rura została uszkodzona łopatą, ale ciśnienie było tak niskie, że wskaźnik ledwo drgnął. Ekipa nie zauważyła problemu i zalała dziurawą rurę betonem.';
        } else {
            // Animacja spadku ciśnienia
            slider.value = 0;
            valDisplay.innerText = "0.0";
            resultBox.classList.add('result-success');
            resultBox.innerHTML = '🚨 <strong>ALARM! WZORCOWA REAKCJA!</strong> Uszkodzenie łopatą natychmiast wyrzuciło wodę z naprężonej rury. Manometr spadł do ZERA w sekundę. Zatrzymujesz wylewanie i naprawiasz uszkodzenie!';
        }
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💥';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

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

.sim-control-group {
    background: #ffffff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.sim-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.sim-val {
    color: var(--accent);
    font-weight: 900;
}

input[type=range] {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer;
}

.sim-result-box {
    text-align: center;
    margin-top: 30px;
    padding: 25px;
    background: #ffffff;
    border-radius: 12px;
    border: 2px dashed #cbd5e1;
}

.sim-result-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--danger);
    line-height: 1;
    margin-bottom: 10px;
    display: block;
}

#sim-warning {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    display: none;
}

/* LISTA DYLATACJI */
.rules-list {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.rules-list h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rules-list ul { margin: 0; padding-left: 20px; color: #1e40af; line-height: 1.7; }
.rules-list li { margin-bottom: 12px; }
.rules-list li strong { color: #1e3a8a; }

/* ZAMIAN TABELI NA KARTY */
.param-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 30px;
}

.param-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.param-icon { font-size: 28px; margin-bottom: 10px; display: block; }
.param-title { font-size: 13px; font-weight: 800; color: var(--primary); text-transform: uppercase; margin-bottom: 10px; }
.param-value { font-size: 14px; font-weight: 700; color: var(--accent); margin-bottom: 10px; display: block;}
.param-danger { font-size: 12px; color: var(--danger); font-weight: 600; background: #fef2f2; padding: 6px; border-radius: 8px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .sim-grid { grid-template-columns: 1fr; gap: 15px; }
    .param-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Parametry rozszerzalności termicznej jastrychu i zasady dylatacji",
  "description": "Dane techniczne dotyczące pracy betonu w instalacjach ogrzewania podłogowego oraz normatywne wymagania dla szczelin dylatacyjnych.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Współczynnik rozszerzalności termicznej betonu",
      "value": "0.012",
      "unitText": "mm/(m·K)"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna powierzchnia pola bez dylatacji",
      "value": "40",
      "unitText": "m2"
    },
    {
      "@type": "PropertyValue",
      "name": "Maksymalna długość boku pola bez dylatacji",
      "value": "8",
      "unitCode": "MTR"
    },
    {
      "@type": "PropertyValue",
      "name": "Minimalna długość osłony peszel na dylatacji",
      "value": "30",
      "unitCode": "CMT"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-error-box" id="expansion-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #2</div>
        <h3>Zignorowanie dylatacji i pracy betonu</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli dlaczego piękna podłoga pęka z hukiem.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Dlaczego podłoga pęka mimo pięknie ułożonych płytek?</strong><br>
            Beton (zarówno cementowy, jak i anhydrytowy) pod wpływem zmian temperatury pracuje objętościowo. Współczynnik rozszerzalności termicznej betonu wynosi około <strong>0,012 mm/(m·K)</strong>. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator rozszerzalności wylewki</span>
            <div class="sim-grid">
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Długość pomieszczenia (L)</span><span class="sim-val"><span id="val-length">10</span> m</span></div>
                    <input type="range" id="slider-length" min="2" max="20" step="1" value="10">
                </div>
                <div class="sim-control-group">
                    <div class="sim-label-row"><span>Różnica temperatur (ΔT)</span><span class="sim-val"><span id="val-temp">20</span> °C</span></div>
                    <input type="range" id="slider-temp" min="10" max="40" step="1" value="20">
                    <div style="font-size:11px; color:#94a3b8; margin-top:5px;">Różnica: stan zimny vs zasilanie grzewcze</div>
                </div>
            </div>

            <div class="sim-result-box">
                <span style="font-size:13px; font-weight:800; color:#64748b; text-transform:uppercase;">Wylewka wydłuży się o:</span>
                <span class="sim-result-value"><span id="result-expansion">2.4</span> mm</span>
                <p style="margin:0; font-size:14px; color:#334155; max-width: 600px; margin: 0 auto;">
                    Te milimetry to ogromna siła. Beton nie ściśnie się sam z siebie. Jeśli napotka opór (ścianę) bez dylatacji, energia rozładuje się w najsłabszym punkcie – powodując pęknięcie na środku salonu i przecinając płytki gresowe jak żyletka.
                </p>
                <div id="sim-warning">⚠️ Długość boku przekracza 8 metrów! Wymagane jest zastosowanie dylatacji pośredniej (przecięcie wylewki), w przeciwnym razie posadzka pęknie samoistnie.</div>
            </div>
        </div>

        <div style="position: absolute; left: -9999px; height: 1px; width: 1px; overflow: hidden;" aria-hidden="true">
            <table>
                <caption>Specyfikacja techniczna dylatacji i pracy betonu</caption>
                <thead>
                    <tr>
                        <th>Parametr fizyczny</th>
                        <th>Wartość normatywna</th>
                        <th>Skutek zignorowania</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>Współczynnik rozszerzalności</td>
                        <td>0,012 mm/(m·K)</td>
                        <td>Praca objętościowa jastrychu (wydłużanie)</td>
                    </tr>
                    <tr>
                        <td>Maksymalna długość boku</td>
                        <td>8 metrów bieżących</td>
                        <td>Pęknięcia skurczowe wylewki</td>
                    </tr>
                    <tr>
                        <td>Maksymalna powierzchnia pola</td>
                        <td>40 m²</td>
                        <td>Pękanie płytek gresowych</td>
                    </tr>
                    <tr>
                        <td>Osłona rur (Peszel) na dylatacji</td>
                        <td>Min. 30 cm</td>
                        <td>Przecięcie rury przez pracujący beton</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <div class="rules-list">
            <h4>Gdzie bezwzględnie stosować dylatacje?</h4>
            <ul>
                <li><strong>Progi drzwiowe</strong> – każdy otwór drzwiowy musi mieć szczelinę w wylewce.</li>
                <li><strong>Pomieszczenia w kształcie litery L</strong> – narożniki wewnętrzne to miejsca największej koncentracji naprężeń.</li>
                <li><strong>Duże pola grzejne (> 40 m²)</strong> – w przestronnym salonie należy podzielić podłogę na mniejsze sekcje (zazwyczaj co 8 metrów bieżących).</li>
                <li><strong>Przejście rur przez dylatację (Pułapka!)</strong> – rura PEX przechodząca przez szczelinę dylatacyjną musi być osłonięta peszlem (rurą karbowaną) na długości min. 30 cm od osi szczeliny. Gołą rurę pracujący beton przetnie jak nożyce.</li>
            </ul>
        </div>

        <p class="error-text">
            Kompendium wiedzy na ten temat znajdziesz w artykule: <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" style="color:var(--accent); font-weight:700; text-decoration:none;">izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a>.
        </p>

        <h4 style="text-align:center; font-size: 18px; margin-top: 40px; margin-bottom: 0;">Parametry Techniczne i Konsekwencje</h4>
        <div class="param-grid">
            <div class="param-card">
                <span class="param-icon">📏</span>
                <div class="param-title">Max powierzchnia pola</div>
                <span class="param-value">40 m² (lub 8 m boku)</span>
                <div class="param-danger">Brak: Pęknięcia skurczowe w wylewce</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🎗️</span>
                <div class="param-title">Taśma brzegowa</div>
                <span class="param-value">Min. 8 mm grubości</span>
                <div class="param-danger">Brak: Napór na ściany (pękające tynki)</div>
            </div>
            <div class="param-card">
                <span class="param-icon">🛡️</span>
                <div class="param-title">Peszel na dylatacji</div>
                <span class="param-value">Odcinek min. 30 cm</span>
                <div class="param-danger">Brak: Przecięcie rury grzewczej</div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('expansion-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA
    var sliderLength = document.getElementById('slider-length');
    var sliderTemp = document.getElementById('slider-temp');
    var valLength = document.getElementById('val-length');
    var valTemp = document.getElementById('val-temp');
    var resultExpansion = document.getElementById('result-expansion');
    var warning = document.getElementById('sim-warning');

    var alpha = 0.012; // Współczynnik dla betonu

    function updateExpansion() {
        var length = parseFloat(sliderLength.value);
        var tempDiff = parseFloat(sliderTemp.value);

        valLength.innerText = length;
        valTemp.innerText = tempDiff;

        // Wyliczenie ze wzoru: ΔL = α × L × ΔT
        var deltaL = alpha * length * tempDiff;
        resultExpansion.innerText = deltaL.toFixed(1);

        // Ostrzeżenie o dylatacji pośredniej
        if (length > 8) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

    sliderLength.addEventListener('input', updateExpansion);
    sliderTemp.addEventListener('input', updateExpansion);

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    
    /* Zmienne do symulatora zebry */
    --pipe-color: #ef4444;
    --cold-color: #3b82f6;
    --warm-color: #fca5a5;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🦓';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR ZEBRA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-zebra {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.zebra-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.zebra-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].zebra-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].zebra-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

.zebra-visualizer {
    width: 100%;
    height: 120px;
    border-radius: 12px;
    border: 2px solid #cbd5e1;
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
    transition: background 0.4s ease;
}

.zebra-overlay-text {
    position: absolute;
    top: 10px;
    left: 15px;
    background: rgba(255,255,255,0.9);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    color: var(--primary);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* KARTY WYNIKÓW (ZAMIAST TABELI) */
.zebra-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.zebra-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 15px; font-weight: 800; color: var(--primary); }
.stat-cop-high { color: var(--success); }
.stat-cop-low { color: var(--danger); }

/* SEKCJA REKOMENDACJI */
.recommendation-box {
    background: #eff6ff;
    border-left: 6px solid var(--accent);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.recommendation-box h4 { margin: 0 0 15px 0; color: #1e3a8a; font-size: 18px; font-weight: 800;}
.rec-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.rec-item {
    display: flex;
    justify-content: space-between;
    background: #ffffff;
    padding: 12px 15px;
    border-radius: 8px;
    border: 1px solid #bfdbfe;
    align-items: center;
}
.rec-item span { font-size: 14px; font-weight: 600; color: #334155; }
.rec-item strong { font-size: 15px; color: var(--accent); font-weight: 900; background: #dbeafe; padding: 4px 10px; border-radius: 6px; }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .zebra-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .rec-item { flex-direction: column; text-align: center; gap: 8px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ rozstawu rur na moc i sprawność ogrzewania podłogowego",
    "description": "Zależność między odległością rur grzewczych PEX a emitowaną mocą, komfortem cieplnym i sprawnością pompy ciepła (COP).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 10 cm",
        "value": "85",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 15 cm",
        "value": "65",
        "unitText": "W/m2"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc grzewcza przy rozstawie 25 cm",
        "value": "35",
        "unitText": "W/m2",
        "description": "Zauważalny efekt zebry termicznej (różnica temp. > 5K)"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Efektu Zebry Termicznej",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny symulator wizualizujący rozkład temperatur na powierzchni podłogi w zależności od rozstawu rur PEX oraz wpływ tych parametrów na współczynnik COP pompy ciepła.",
    "featureList": [
      "Wizualizacja kamery termowizyjnej dla różnych rozstawów",
      "Kalkulacja spadku mocy grzewczej",
      "Analiza komfortu 'odczucia stopy'"
    ]
  }
]
</script>

<div class="premium-error-box" id="zebra-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #3</div>
        <h3>Nierównomierny rozstaw rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Oszczędność 100 metrów rury, która kosztuje komfort przez 30 lat.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            To błąd wynikający z chęci zaoszczędzenia na materiale przy układaniu ogrzewania samodzielnie. Inwestor myśli: <em>"Skoro standard to 15 cm, to ja dam co 25 cm, przecież i tak będzie ciepło"</em>. Fizyka jest tu bezlitosna.
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Symulator Efektu Zebry Termicznej</span>
            
            <div class="sim-controls-zebra">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Wybrany rozstaw rur:</span>
                <div class="zebra-val-display"><span id="z-spacing">15</span> cm</div>
                <div class="zebra-slider-wrap">
                    <input type="range" class="zebra-slider" id="zebra-slider" min="10" max="30" step="5" value="15">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>10 cm</span><span>15 cm</span><span>20 cm</span><span>25 cm</span><span>30 cm</span>
                    </div>
                </div>
            </div>

            <div class="zebra-visualizer" id="z-visualizer">
                <div class="zebra-overlay-text">Kamera termowizyjna (widok z góry)</div>
            </div>

            <div class="zebra-stats-grid">
                <div class="zebra-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Moc Grzewcza</span>
                    <span class="stat-value" id="z-power">~65 W/m²</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">👣</span>
                    <span class="stat-label">Odczucie stopy</span>
                    <span class="stat-value" id="z-feel">Ciepła, komfortowa</span>
                </div>
                <div class="zebra-stat-card">
                    <span class="stat-icon">⚙️</span>
                    <span class="stat-label">Sprawność (COP)</span>
                    <span class="stat-value stat-cop-high" id="z-cop">Optymalna</span>
                </div>
            </div>
            
            <div id="z-warning" style="margin-top: 15px; padding: 12px; border-radius: 8px; font-size: 13px; font-weight: 700; text-align: center; background: #fef2f2; color: var(--danger); display: none;">
                ⚠️ <strong>Uwaga!</strong> Aby ogrzać pokój przy tak rzadkim rozstawie, musisz drastycznie podnieść temperaturę zasilania kotła. Rachunki za prąd/gaz znacząco wzrosną!
            </div>
        </div>

        <p class="error-text">
            <strong>Przykład techniczny:</strong><br>
            Załóżmy, że rura PEX 16x2,0 mm ułożona jest w jastrychu o grubości 6,5 cm nad rurą. Przy rozstawie <strong>co 15 cm</strong>, temperatura powierzchni podłogi będzie niemal jednolita (różnica między punktem nad rurą a między rurami wynosi ok. 1,5-2°C – nieodczuwalna dla stopy).
            <br><br>
            Przy rozstawie <strong>co 25-30 cm</strong>, różnica temperatur na powierzchni płytek wzrasta do 5-7°C. To jest właśnie <strong>"zebra termiczna"</strong>. Człowiek wyraźnie czuje stopą naprzemienne pasy ciepła i chłodu. Im rzadszy rozstaw, tym bardziej stromo spada krzywa mocy (nawet o 45%!).
        </p>

        <div class="recommendation-box">
            <h4>Zalecane rozstawy rur:</h4>
            <div class="rec-grid">
                <div class="rec-item">
                    <span>Strefa mieszkalna (środek pokoju)</span>
                    <strong>15 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Strefa brzegowa (okna, ściany zew.)</span>
                    <strong>10 cm</strong>
                </div>
                <div class="rec-item">
                    <span>Łazienka (ciepła posadzka)</span>
                    <strong>10 cm</strong>
                </div>
            </div>
        </div>

        <p class="error-text">
            Wybór odpowiedniego rozstawu to decyzja, która wpłynie na rachunki za ogrzewanie przez kolejne dekady. Szczegółową analizę tego zagadnienia przedstawiamy w tekście: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color:var(--accent); font-weight:700; text-decoration:none;">rozstaw rur ogrzewania podłogowego przy pompie ciepła – co 10 czy 15 cm?</a>
        </p>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zależność mocy i komfortu od rozstawu rur grzewczych</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowana moc (przy zasilaniu 35°C)</th>
                        <th style="padding: 10px 0; color: #475569;">Komfort i odczucie stopy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~85 W/m²</td>
                        <td style="padding: 10px 0;">Równomierne ciepło (Idealne pod pompę ciepła)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~65 W/m²</td>
                        <td style="padding: 10px 0;">Komfortowe, optymalne rozwiązanie</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~35 W/m²</td>
                        <td style="padding: 10px 0;">Zebra termiczna (wyczuwalne zimne pasy podłogi)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">30 cm</td>
                        <td style="padding: 10px 0;">~25 W/m²</td>
                        <td style="padding: 10px 0;">Brak komfortu, drastyczny spadek sprawności</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('zebra-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA ZEBRA
    var slider = document.getElementById('zebra-slider');
    var spacingVal = document.getElementById('z-spacing');
    var visualizer = document.getElementById('z-visualizer');
    var power = document.getElementById('z-power');
    var feel = document.getElementById('z-feel');
    var cop = document.getElementById('z-cop');
    var warning = document.getElementById('z-warning');

    var dataMap = {
        '10': { pwr: '~85 W/m²', feel: 'Gorąca, równomierna', copTxt: 'Wysoka (niska temp.)', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 30px, #fca5a5 40px, #ef4444 50px)' },
        '15': { pwr: '~65 W/m²', feel: 'Ciepła, komfortowa', copTxt: 'Optymalna', copClass: 'stat-cop-high', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 20px, #fecaca 45px, #ef4444 70px)' },
        '20': { pwr: '~50 W/m²', feel: 'Letnia, wyczuwalne przerwy', copTxt: 'Obniżona', copClass: 'stat-cop-low', warn: false, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 15px, #bfdbfe 55px, #ef4444 95px)' },
        '25': { pwr: '~35 W/m²', feel: 'Wyraźna "zebra termiczna"', copTxt: 'Niska (wyższa temp.)', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 10px, #60a5fa 65px, #ef4444 120px)' },
        '30': { pwr: '~25 W/m²', feel: 'Agresywna zebra (Zimna)', copTxt: 'Bardzo niska!', copClass: 'stat-cop-low', warn: true, grad: 'repeating-linear-gradient(90deg, #ef4444, #ef4444 8px, #2563eb 80px, #ef4444 150px)' }
    };

    function updateZebra() {
        var val = slider.value;
        var data = dataMap[val];

        spacingVal.innerText = val;
        power.innerText = data.pwr;
        feel.innerText = data.feel;
        
        cop.innerText = data.copTxt;
        cop.className = 'stat-value ' + data.copClass;

        visualizer.style.background = data.grad;

        if (data.warn) {
            warning.style.display = 'block';
        } else {
            warning.style.display = 'none';
        }
    }

    slider.addEventListener('input', updateZebra);
    updateZebra(); // init
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '💸';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR STRAT CIEPŁA */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-insulation {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
}

.insulation-val-display {
    font-size: 32px;
    font-weight: 900;
    color: var(--accent);
    margin-bottom: 5px;
}

.insulation-slider-wrap {
    width: 100%;
    max-width: 500px;
    margin-top: 15px;
}

input[type=range].insulation-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].insulation-slider::-webkit-slider-thumb {
    appearance: none; width: 28px; height: 28px; background: var(--accent); border-radius: 50%; border: 4px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.2); cursor: pointer;
}

/* KARTY WYNIKÓW */
.insulation-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.insulation-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    position: relative;
    overflow: hidden;
}

.stat-icon { font-size: 24px; margin-bottom: 8px; display: block; }
.stat-label { font-size: 11px; color: #64748b; text-transform: uppercase; font-weight: 800; margin-bottom: 8px; display: block; }
.stat-value { font-size: 20px; font-weight: 900; color: var(--primary); }
.stat-loss-high { color: var(--danger); }
.stat-loss-low { color: var(--success); }

#ins-warning {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #fef2f2;
    color: var(--danger);
    border: 1px solid #fecaca;
    display: none;
}

#ins-success {
    margin-top: 20px;
    padding: 15px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    background: #f0fdf4;
    color: var(--success);
    border: 1px solid #bbf7d0;
    display: none;
}

/* SEKCJA TAŚMY BRZEGOWEJ */
.edge-tape-box {
    background: #fff7ed;
    border-left: 6px solid var(--warning);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 30px 0;
}

.edge-tape-box h4 { margin: 0 0 10px 0; color: #9a3412; font-size: 18px; font-weight: 800;}
.edge-tape-box p { margin: 0; color: #78350f; font-size: 15px; line-height: 1.6; }

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon {
    font-size: 24px;
}
.article-link-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--accent);
}

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .insulation-stats-grid { grid-template-columns: 1fr; gap: 10px; }
    .sim-controls-insulation { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność grubości izolacji podłogi od strat ciepła do gruntu",
    "description": "Kalkulator strat finansowych i energetycznych wynikających z zastosowania niewystarczającej grubości styropianu EPS pod ogrzewaniem podłogowym na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Współczynnik przenikania ciepła (U max dla podłogi)",
        "value": "0.18",
        "unitText": "W/(m2K)",
        "description": "Wymaganie zgodnie z WT 2021"
      },
      {
        "@type": "PropertyValue",
        "name": "Wymagana grubość styropianu (WT 2021)",
        "value": "12-15",
        "unitCode": "CMT"
      },
      {
        "@type": "PropertyValue",
        "name": "Ucieczka ciepła przy izolacji 5cm",
        "value": "25-30",
        "unitText": "%"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Strat Finansowych Izolacji Podłogi",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Narzędzie symulujące roczne i wieloletnie straty finansowe wynikające z grubości zastosowanej izolacji termicznej pod ogrzewaniem podłogowym na gruncie.",
    "featureList": [
      "Obliczanie procentowej ucieczki ciepła w grunt",
      "Estymacja kosztów w perspektywie 30 lat",
      "Weryfikacja zgodności z normą WT 2021"
    ]
  }
]
</script>

<div class="premium-error-box" id="insulation-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #4</div>
        <h3>Niewłaściwa izolacja termiczna i brzegowa</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli grzanie fundamentów sąsiada.</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Fizyka ucieczki ciepła w dół</strong><br>
            Samodzielny montaż ogrzewania podłogowego często skupia się na tym, co widać (rury), a nie na tym, co jest pod spodem (styropian). Tymczasem ciepło, zgodnie z II zasadą termodynamiki, płynie w kierunku niższej temperatury. 
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator Strat Finansowych (Dla domu 100 m²)</span>
            
            <div class="sim-controls-insulation">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;">Grubość styropianu na gruncie:</span>
                <div class="insulation-val-display"><span id="i-thickness">5</span> cm</div>
                <div class="insulation-slider-wrap">
                    <input type="range" class="insulation-slider" id="ins-slider" min="2" max="25" step="1" value="5">
                    <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                        <span>2 cm</span><span>WT2021</span><span>25 cm</span>
                    </div>
                </div>
                <span style="font-size:11px; color:#64748b; margin-top:10px;">Założenia: Zapotrzebowanie 10000 kWh/rok, Cena energii: 0,30 zł/kWh</span>
            </div>

            <div class="insulation-stats-grid">
                <div class="insulation-stat-card">
                    <span class="stat-icon">📉</span>
                    <span class="stat-label">Ciepło uciekające w ziemię</span>
                    <span class="stat-value stat-loss-high" id="i-percent">25%</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">💸</span>
                    <span class="stat-label">Roczna strata finansowa</span>
                    <span class="stat-value stat-loss-high" id="i-cost-year">750 zł</span>
                </div>
                <div class="insulation-stat-card">
                    <span class="stat-icon">🔥</span>
                    <span class="stat-label">Strata w ciągu 30 lat</span>
                    <span class="stat-value stat-loss-high" id="i-cost-30">22 500 zł</span>
                </div>
            </div>
            
            <div id="ins-warning">
                ⚠️ <strong>Fatalna izolacja!</strong> Nie spełniasz norm budowlanych WT 2021. Znaczna część wyprodukowanego ciepła trafia do ziemi, a Ty wyrzucasz pieniądze w błoto!
            </div>
            <div id="ins-success">
                ✅ <strong>Zgodność z normą WT 2021.</strong> Przy warstwie 15 cm różnica w koszcie zakupu styropianu zwraca się zaledwie w kilka lat dzięki zaoszczędzonej energii.
            </div>
        </div>

        <p class="error-text">
            Przykład z symulatora wyraźnie pokazuje, że przy 5 cm izolacji wyrzucasz przez podłogę tysiące złotych. Różnica w cenie materiału między 5 cm a 15 cm styropianu EPS 100 to zazwyczaj około 1500 zł na 100 m². Zwraca się to błyskawicznie.
        </p>
        <p class="error-text">
            <strong>Wymagania techniczne WT 2021</strong> – wartość współczynnika przenikania ciepła $U_{max}$ dla podłogi na gruncie wynosi 0,18 $W/(m^2K)$. Aby to osiągnąć, potrzebujesz <strong>minimum 12-15 cm styropianu</strong> (lub styroduru XPS o lepszym współczynniku $\lambda$). Na stropie między piętrami wewnątrz ogrzewanej bryły budynku wystarczy 3-5 cm (głównie jako izolacja akustyczna i wyrównanie dla instalacji).
        </p>

        <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/" class="article-link-box">
            <span class="article-link-icon">📖</span>
            <span class="article-link-text">Jakie są najlepsze sposoby izolacji pod ogrzewanie podłogowe? Zobacz pełny poradnik →</span>
        </a>

        <div class="edge-tape-box">
            <h4>Taśma brzegowa – nie tylko dla dylatacji!</h4>
            <p>
                Zapomnienie o taśmie brzegowej przy ścianach to nie tylko problem pękania betonu (Błąd #2). To również <strong>gigantyczny mostek termiczny</strong>. Jeśli wylewka dotyka zimnej ściany fundamentowej, ciepło z Twojej podłogi ucieka wprost w górę ściany i na zewnątrz budynku. Taśma brzegowa z pianki polietylenowej pełni krytyczną funkcję izolatora termicznego na całym obwodzie pomieszczenia.
            </p>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Skutki błędów w izolacji termicznej podłogi na gruncie</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Grubość styropianu (EPS 100)</th>
                        <th style="padding: 10px 0; color: #475569;">Status i ucieczka ciepła w grunt</th>
                        <th style="padding: 10px 0; color: #475569;">Przewidywana strata po 30 latach (dom 100 m2)</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">5 cm</td>
                        <td style="padding: 10px 0;">Krytyczny błąd (strata ok. 25-30%)</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">~ 22 500 PLN</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">Poniżej aktualnych norm WT</td>
                        <td style="padding: 10px 0;">Znaczna ucieczka ciepła</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">12-15 cm</td>
                        <td style="padding: 10px 0;">Normatywna (zgodna z WT 2021)</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne koszty eksploatacji</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('insulation-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA STRAT CIEPŁA
    var slider = document.getElementById('ins-slider');
    var valThick = document.getElementById('i-thickness');
    var valPercent = document.getElementById('i-percent');
    var valCostYear = document.getElementById('i-cost-year');
    var valCost30 = document.getElementById('i-cost-30');
    var warning = document.getElementById('ins-warning');
    var success = document.getElementById('ins-success');

    // Stałe z tekstu
    var baseEnergyKwh = 10000;
    var pricePerKwh = 0.30;

    function updateInsulation() {
        var eps = parseFloat(slider.value);
        valThick.innerText = eps;

        // Uproszczony model spadku strat zgodny z tekstem użytkownika (5cm = 25%)
        // Wzór hiperboliczny: loss = 125 / eps_thickness
        var lossPercent = 125 / eps;
        
        // Zabezpieczenie przed nierealnymi ekstremami na wykresie
        if (lossPercent > 62.5) lossPercent = 62.5; 

        var lostKwh = baseEnergyKwh * (lossPercent / 100);
        var costYear = lostKwh * pricePerKwh;
        var cost30y = costYear * 30;

        valPercent.innerText = Math.round(lossPercent) + '%';
        
        // Formatowanie waluty z separatorem spacji
        valCostYear.innerText = Math.round(costYear).toLocaleString('pl-PL') + ' zł';
        valCost30.innerText = Math.round(cost30y).toLocaleString('pl-PL') + ' zł';

        // Stylowanie wyników
        var valueElements = [valPercent, valCostYear, valCost30];
        if (eps < 12) {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-low');
                el.classList.add('stat-loss-high');
            });
            warning.style.display = 'block';
            success.style.display = 'none';
        } else {
            valueElements.forEach(function(el) {
                el.classList.remove('stat-loss-high');
                el.classList.add('stat-loss-low');
            });
            warning.style.display = 'none';
            success.style.display = 'block';
        }
    }

    slider.addEventListener('input', updateInsulation);
    updateInsulation(); // Inicjalizacja
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fef2f2;
    border-bottom: 1px solid #fecaca;
    padding: 35px 40px;
    position: relative;
    overflow: hidden;
}

.error-header::after {
    content: '🛑';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90px;
    opacity: 0.1;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fee2e2;
    color: var(--danger);
    padding: 6px 14px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.error-header h3 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--danger);
}

.error-content {
    padding: 40px;
}

.error-text {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.error-text strong {
    color: var(--primary);
}

/* INTERAKTYWNY SYMULATOR OPORÓW */
.simulator-wrap {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    margin: 35px 0;
}

.sim-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--primary);
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: block;
    text-align: center;
}

.sim-controls-loop {
    background: #fff;
    padding: 20px 30px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    margin-bottom: 25px;
}

.loop-val-display {
    font-size: 36px;
    font-weight: 900;
    color: var(--accent);
    text-align: center;
    margin: 10px 0;
}

input[type=range].loop-slider {
    width: 100%; height: 8px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-bottom: 10px;
}
input[type=range].loop-slider::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.loop-stats-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 20px;
}

.loop-stat-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

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

.pump-load-container {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    margin-top: 15px;
}

.pump-load-bar {
    height: 100%;
    width: 20%;
    background: var(--success);
    transition: 0.3s ease;
}

.sim-msg {
    margin-top: 15px;
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

.msg-success { background: #f0fdf4; color: var(--success); border: 1px solid #bbf7d0; }
.msg-warning { background: #fffbeb; color: var(--warning); border: 1px solid #fde68a; }
.msg-danger { background: #fef2f2; color: var(--danger); border: 1px solid #fecaca; }

/* ALERT ZAŁAMANIA RURY */
.kink-alert-box {
    background: #fef2f2;
    border-left: 6px solid var(--danger);
    padding: 25px;
    border-radius: 0 16px 16px 0;
    margin: 35px 0;
    display: flex;
    gap: 20px;
    align-items: center;
}

.kink-icon {
    font-size: 40px;
    flex-shrink: 0;
}

.kink-content h4 { margin: 0 0 8px 0; color: #991b1b; font-size: 18px; font-weight: 800;}
.kink-content p { margin: 0; color: #7f1d1d; font-size: 15px; line-height: 1.6; }
.kink-content strong { color: #7f1d1d; background: #fee2e2; padding: 2px 6px; border-radius: 4px;}

/* LINK DO ARTYKUŁU */
.article-link-box {
    background: #eff6ff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    gap: 15px;
    text-decoration: none;
    transition: 0.3s;
    margin-top: 25px;
}
.article-link-box:hover {
    background: #dbeafe;
    transform: translateY(-2px);
}
.article-link-icon { font-size: 24px; }
.article-link-text { font-size: 14px; font-weight: 700; color: var(--accent); }

@media (max-width: 768px) {
    .error-header { padding: 25px 20px; }
    .error-content { padding: 25px 20px; }
    .loop-stats-grid { grid-template-columns: 1fr; }
    .kink-alert-box { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator oporów hydraulicznych i limitów długości pętli ogrzewania podłogowego",
    "description": "Limity projektowe i hydrauliczne dla długości pętli rur PEX 16mm w instalacjach ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (PEX 16x2.0)",
        "value": "100",
        "unitCode": "MTR",
        "description": "Twarda granica długości w celu uniknięcia przeciążenia pompy obiegowej"
      },
      {
        "@type": "PropertyValue",
        "name": "Optymalna długość pętli",
        "value": "80-90",
        "unitCode": "MTR"
      },
      {
        "@type": "PropertyValue",
        "name": "Szacunkowy opór liniowy rury 16mm (przy przepływie 1.5 l/min)",
        "value": "1.2",
        "unitText": "mbar/m"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator oporów hydraulicznych pętli PEX",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywne narzędzie pozwalające obliczyć opory liniowe i całkowite pętli ogrzewania podłogowego oraz zweryfikować obciążenie pompy obiegowej.",
    "featureList": [
      "Obliczanie oporu jednostkowego rury",
      "Kalkulacja całkowitego oporu z uwzględnieniem armatury",
      "Wizualizacja obciążenia granicznego pompy"
    ]
  }
]
</script>

<div class="premium-error-box" id="loop-app-lock">
    <div class="error-header">
        <div class="error-badge">Błąd #5</div>
        <h3>Zbyt długie pętle i załamania rur</h3>
        <p style="margin:0; font-size:15px; color:#991b1b; font-weight:600;">Czyli moment, w którym pompa obiegowa mówi "dość".</p>
    </div>

    <div class="error-content">
        <p class="error-text">
            <strong>Hydraulika dla opornych: Dlaczego 120 metrów rury to katastrofa?</strong><br>
            Woda płynąca w rurze PEX 16x2,0 mm napotyka <strong>opory liniowe i miejscowe</strong>. Każdy metr rury, każde kolanko i każda spinka to przeszkoda dla przepływu. Jeśli pętla jest za długa, opór hydrauliczny przewyższa wysokość podnoszenia pompy obiegowej (zazwyczaj jest to 4-6 metrów słupa wody dla całego układu).
        </p>

        <div class="simulator-wrap">
            <span class="sim-title">Kalkulator oporów hydraulicznych (Uproszczony)</span>
            <div style="font-size:11px; text-align:center; color:#64748b; margin-bottom:15px;">Dla rury PEX 16x2,0 przy przepływie ~1,5 l/min</div>
            
            <div class="sim-controls-loop">
                <span style="font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase; text-align:center; display:block;">Długość pojedynczej pętli:</span>
                <div class="loop-val-display"><span id="l-length">120</span> m</div>
                <input type="range" class="loop-slider" id="loop-slider" min="30" max="150" step="1" value="120">
                <div style="display:flex; justify-content:space-between; font-size:11px; font-weight:700; color:#94a3b8;">
                    <span>30 m</span><span>90 m (Max)</span><span>150 m</span>
                </div>
            </div>

            <div class="loop-stats-grid">
                <div class="loop-stat-card">
                    <span class="stat-label">Opór jednostkowy rury (Liniowy)</span>
                    <span class="stat-value" id="l-linear">144.0 mbar</span>
                </div>
                <div class="loop-stat-card">
                    <span class="stat-label">Opór całkowity (+ zawory/kolana ~40%)</span>
                    <span class="stat-value" id="l-total">1.47 m H₂O</span>
                </div>
            </div>

            <div style="font-size:11px; font-weight:700; color:#64748b; text-transform:uppercase;">Obciążenie graniczne dla pętli 16mm:</div>
            <div class="pump-load-container">
                <div class="pump-load-bar" id="l-bar"></div>
            </div>
            
            <div id="l-msg" class="sim-msg msg-danger">
                ❌ Katastrofa! Opór przekracza możliwości standardowej pompy dla jednego obwodu.
            </div>
        </div>

        <p class="error-text">
            Do oporu samej rury dochodzą opory na rozdzielaczu, zaworach i kolanach (z reguły to 30-50% więcej). 
            Jeśli różnica długości między pętlami jest duża, musisz zdławić krótsze pętle zaworami, aby zmusić wodę do płynięcia w te dłuższe. To generuje hałas (szum wody w rotametrach) i niepotrzebne obciążenie pompy.
        </p>

        <p class="error-text">
            <strong>Maksymalna długość pętli (rura 16 mm):</strong> Nie przekraczaj 100 metrów! Idealnie trzymać się wartości 80-90 m, aby mieć margines na nierówności i strefy brzegowe.
        </p>

        <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="article-link-box">
            <span class="article-link-icon">📏</span>
            <span class="article-link-text">Dlaczego 100 metrów to twarda granica? Przeczytaj pełną analizę długości obwodów grzewczych →</span>
        </a>

        <div class="kink-alert-box">
            <div class="kink-icon">⚠️</div>
            <div class="kink-content">
                <h4>Błąd montażu: Załamanie (złamanie) rury</h4>
                <p>
                    Rury PERT i PEX są elastyczne, ale mają swoją granicę. Jeśli przy układaniu rury zginasz ją pod kątem ostrym (bez użycia sprężyny zewnętrznej lub wewnętrznej do gięcia), na zewnętrznym łuku tworzy się <strong>białe przełamanie</strong>. 
                    <br><br>
                    To znak, że struktura polimeru oraz wkładka aluminiowa (w PEX) zostały naruszone. W tym miejscu rura traci wytrzymałość mechaniczną i pod wpływem ciągłych skoków ciśnienia oraz temperatury <strong>pęknie w ciągu 5-10 lat</strong>. Jeśli zobaczysz takie miejsce na budowie – bezwzględnie wytnij je i połącz rurę <strong>systemową złączką zaprasowywaną</strong> (złączki zaciskowe/prasowane można bezpiecznie zatapiać w wylewce, w przeciwieństwie do starych mitów).
                </p>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 40px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Limity długości pętli grzewczych i opory hydrauliczne</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Długość pętli (Rura 16x2.0)</th>
                        <th style="padding: 10px 0; color: #475569;">Szacowany opór całkowity</th>
                        <th style="padding: 10px 0; color: #475569;">Status i obciążenie pompy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Do 90 m</td>
                        <td style="padding: 10px 0;">&lt; 1.1 m H₂O</td>
                        <td style="padding: 10px 0; color: #16a34a; font-weight: bold;">Optymalne (Bezpieczne)</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">90 m - 100 m</td>
                        <td style="padding: 10px 0;">~ 1.2 m H₂O</td>
                        <td style="padding: 10px 0; color: #ea580c; font-weight: bold;">Graniczne (Dopuszczalne)</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Powyżej 100 m (np. 120 m)</td>
                        <td style="padding: 10px 0;">&gt; 1.45 m H₂O</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight: bold;">Krytyczne (Przeciążenie pompy)</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('loop-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA SYMULATORA OPORÓW
    var slider = document.getElementById('loop-slider');
    var valLength = document.getElementById('l-length');
    var valLinear = document.getElementById('l-linear');
    var valTotal = document.getElementById('l-total');
    var bar = document.getElementById('l-bar');
    var msg = document.getElementById('l-msg');

    function updateLoop() {
        var L = parseFloat(slider.value);
        valLength.innerText = L;

        // Wartości z tekstu użytkownika:
        // Opór jedn. = 1.2 mbar/m
        // Opór całkowity (dla 120m) = 144 mbar = 1.47 m H2O
        // Dodatki miejscowe = +40% (uśrednione 30-50%)

        var linearMbar = L * 1.2;
        var totalMbar = linearMbar * 1.4; // dodajemy opory miejscowe i rozdzielacza
        
        // Przelicznik mbar na metry słupa wody (100 mbar to ok. 1.02 m H2O)
        var totalH2O = totalMbar * 0.0102;

        valLinear.innerText = linearMbar.toFixed(1) + ' mbar';
        valTotal.innerText = totalH2O.toFixed(2) + ' m H₂O';

        // Obliczanie paska (skala do 150m)
        var percent = (L / 150) * 100;
        bar.style.width = percent + '%';

        if (L <= 90) {
            bar.style.backgroundColor = 'var(--success)';
            msg.innerText = "✅ Optymalna długość pętli. Woda przepłynie bez obciążania pompy.";
            msg.className = "sim-msg msg-success";
        } else if (L <= 100) {
            bar.style.backgroundColor = 'var(--warning)';
            msg.innerText = "⚠️ Długość graniczna! Zbliżasz się do maksymalnych akceptowalnych oporów dla rury 16mm.";
            msg.className = "sim-msg msg-warning";
        } else {
            bar.style.backgroundColor = 'var(--danger)';
            msg.innerText = "❌ Katastrofa hydrauliczna! Opór drastycznie przewyższa normę. Pętla nie dogrzeje pomieszczenia.";
            msg.className = "sim-msg msg-danger";
        }
    }

    slider.addEventListener('input', updateLoop);
    updateLoop(); // Inicjalizacja
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

/* Dodano lekki margines górny dla całego kontenera w związku z H2 */
.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

/* Nowy styl dla H2 */
.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📐';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container {
        flex-direction: column;
        text-align: center;
        padding: 25px;
    }
    .expert-tip-photo-wrap {
        margin-bottom: 10px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "CEO & Główny Projektant",
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe zalecenia inżynierskie przed wylewką betonu",
    "description": "Zestawienie procedur weryfikacyjnych dla inwestora przed przyjazdem betoniarki, mających na celu zapewnienie zgodności montażu z projektem hydraulicznym.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Dokumentacja fotograficzna",
        "description": "Rzetelna inwentaryzacja powykonawcza przed ukryciem rur."
      },
      {
        "@type": "PropertyValue",
        "name": "Weryfikacja układu pętli",
        "description": "Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym."
      },
      {
        "@type": "PropertyValue",
        "name": "Zgodność z obliczeniami",
        "description": "Gwarancja osiągnięcia zakładanej mocy grzewczej oraz optymalizacji kosztów eksploatacji."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">🛡️</span>Robert Kucharski: Moja rekomendacja dla inwestorów</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Twoja polisa bezpieczeństwa</span>
            <p class="expert-tip-text">
                "Projekt instalacji to dla wykonawcy świętość, a dla Ciebie podstawa rzetelnej inwentaryzacji powykonawczej. Zanim wylejesz beton, zrób dokładne zdjęcia i zweryfikuj, czy każda pętla leży dokładnie tak, jak przewidział projektant. Tylko pełna zgodność z obliczeniami hydraulicznymi gwarantuje, że Twoje ogrzewanie osiągnie zakładaną moc i niskie koszty eksploatacji."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO & Główny Projektant Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <h3 style="font-size: 16px; color: #0f172a; margin-bottom: 15px;">Zalecenia inżynierskie przed wylewką betonu</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Działanie inwestora</th>
                        <th style="padding: 10px 0; color: #475569;">Cel i rekomendacja inżynierska</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Dokumentacja fotograficzna</td>
                        <td style="padding: 10px 0;">Rzetelna inwentaryzacja powykonawcza przed ukryciem rur.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Weryfikacja układu pętli</td>
                        <td style="padding: 10px 0;">Sprawdzenie zgodności fizycznego montażu z projektem hydraulicznym.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Zgodność z obliczeniami</td>
                        <td style="padding: 10px 0;">Gwarancja osiągnięcia zakładanej mocy grzewczej i niskich kosztów.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; font-family: sans-serif; border-radius: 20px; width: 100%;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="margin-top:0; font-size: 20px; font-weight: bold; margin-bottom: 10px;">Wskazówka ekspercka chroniona prawem autorskim</div>
                    <p style="font-size: 14px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

.premium-params {
    max-width: 1150px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.params-title {
    text-align: center;
    margin-bottom: 40px;
}

.params-title h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: var(--primary);
}

.params-title p {
    color: #64748b;
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
}

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

.param-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid #f1f5f9;
    padding: 25px;
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.param-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.12);
    border-color: #bfdbfe;
}

.card-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 2px dashed #e2e8f0;
}

.icon-box {
    width: 42px;
    height: 42px;
    background: #eff6ff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}

.header-text h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
}

.header-text span {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.result-box {
    background: var(--bg-light);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    margin-bottom: 15px;
    border-top: 3px solid var(--accent);
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.r-thick {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.r-value {
    display: inline-block;
    background: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--accent);
    margin-top: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.justification {
    font-size: 12px;
    line-height: 1.5;
    color: #475569;
    margin: 0;
    background: #f8fafc;
    padding: 12px;
    border-radius: 10px;
    border-left: 3px solid #cbd5e1;
}

.justification strong {
    color: var(--danger);
}

@media (max-width: 950px) {
    .param-grid { grid-template-columns: repeat(2, 1fr); }
}

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Ściąga parametrów technicznych do montażu ogrzewania podłogowego",
  "description": "Zestawienie najważniejszych wartości technicznych i normatywnych wymaganych podczas budowy instalacji HVAC (podłogówki).",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    { "@type": "PropertyValue", "name": "Grubość styropianu na gruncie", "value": "15-20", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Folia PE pod styropian (grubość)", "value": "0.2", "unitText": "mm" },
    { "@type": "PropertyValue", "name": "Wysokość taśmy brzegowej ponad wylewkę", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (środek pomieszczenia)", "value": "15", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Rozstaw rur (strefa brzegowa)", "value": "10", "unitCode": "CMT" },
    { "@type": "PropertyValue", "name": "Maksymalna długość pętli PEX 16x2", "value": "90", "unitCode": "MTR" },
    { "@type": "PropertyValue", "name": "Ciśnienie próby szczelności", "value": "6", "unitCode": "BAR" },
    { "@type": "PropertyValue", "name": "Czas dojrzewania jastrychu cementowego", "value": "28", "unitText": "dni" },
    { "@type": "PropertyValue", "name": "Wygrzewanie wstępne (Start)", "value": "20", "unitText": "°C" }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-params" id="params-app">
    <div class="params-title">
        <h2>Tabela parametrów technicznych</h2>
        <p>Ściąga dla samodzielnego montażu – najważniejsze wartości w pigułce.</p>
    </div>

    <div class="param-grid">
        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🧱</div>
                <div class="header-text">
                    <span>Podstawa</span>
                    <h4>Grubość styropianu na gruncie</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 - 20 cm</span>
                <span class="r-value">EPS 100 lub EPS 200</span>
            </div>
            <p class="justification"><strong>Wymóg WT2021:</strong> Zapobiega ucieczce ciepła do gruntu.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🛡️</div>
                <div class="header-text">
                    <span>Izolacja</span>
                    <h4>Folia PE pod styropian</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Min. 0,2 mm</span>
                <span class="r-value">Zakład 15 cm</span>
            </div>
            <p class="justification"><strong>Paroizolacja!</strong> Chroni styropian przed wilgocią z chudziaka.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🎗️</div>
                <div class="header-text">
                    <span>Dylatacja</span>
                    <h4>Taśma brzegowa</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Wysokość min. 15 cm</span>
                <span class="r-value">Powyżej poziomu wylewki</span>
            </div>
            <p class="justification"><strong>Uwaga:</strong> Odciąć nadmiar dopiero po ułożeniu docelowych paneli/płytek!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🦶</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa komfortu)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">15 cm</span>
                <span class="r-value">Środek pomieszczenia</span>
            </div>
            <p class="justification"><strong>Optimum dla pompy ciepła.</strong> Gwarantuje brak "zebry termicznej".</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🪟</div>
                <div class="header-text">
                    <span>Hydraulika</span>
                    <h4>Rozstaw rur (strefa brzegowa)</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">10 cm</span>
                <span class="r-value">Gęstsze ułożenie</span>
            </div>
            <p class="justification"><strong>Zastosowanie:</strong> Przy dużych oknach i drzwiach balkonowych, gdzie straty są największe.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🔄</div>
                <div class="header-text">
                    <span>Ograniczenia</span>
                    <h4>Maksymalna długość pętli</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">90 m</span>
                <span class="r-value">Absolutne max: 100 m</span>
            </div>
            <p class="justification">Dla rury PEX 16x2. <strong>Zasada:</strong> Różnica długości pętli na jednym rozdzielaczu max 10%.</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🗜️</div>
                <div class="header-text">
                    <span>Bezpieczeństwo</span>
                    <h4>Ciśnienie próby szczelności</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">6 barów</span>
                <span class="r-value">0,6 MPa</span>
            </div>
            <p class="justification"><strong>Kluczowe:</strong> Utrzymywać rury pod takim ciśnieniem podczas betonowania!</p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">⏳</div>
                <div class="header-text">
                    <span>Wylewka</span>
                    <h4>Czas dojrzewania jastrychu</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">28 dni</span>
                <span class="r-value">Dla jastrychu cementowego</span>
            </div>
            <p class="justification">Przed pierwszym uruchomieniem pompy. <strong>Bezwzględnie bez grzania!</strong></p>
        </div>

        <div class="param-card">
            <div class="card-header">
                <div class="icon-box">🌡️</div>
                <div class="header-text">
                    <span>Eksploatacja</span>
                    <h4>Wygrzewanie wstępne</h4>
                </div>
            </div>
            <div class="result-box">
                <span class="r-thick">Start od 20°C</span>
                <span class="r-value">Codziennie +5°C</span>
            </div>
            <p class="justification">Stopniowe podnoszenie temperatury <strong>zapobiega szokowi termicznemu</strong> i pękaniu betonu.</p>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 20px; margin-top: 40px; font-family: sans-serif;">
            <h3 style="margin-top: 0;">Parametry techniczne: Ogrzewanie podłogowe</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px;">Obszar instalacji</th>
                        <th style="padding: 10px;">Parametr techniczny</th>
                        <th style="padding: 10px;">Zalecana wartość</th>
                        <th style="padding: 10px;">Uzasadnienie inżynieryjne</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Podstawa (grunt)</td>
                        <td style="padding: 10px; font-weight: bold;">Grubość styropianu</td>
                        <td style="padding: 10px;">15 - 20 cm (EPS 100/200)</td>
                        <td style="padding: 10px;">Zgodność z WT2021, izolacja od gruntu.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Izolacja</td>
                        <td style="padding: 10px; font-weight: bold;">Folia PE</td>
                        <td style="padding: 10px;">Min. 0.2 mm (15 cm zakład)</td>
                        <td style="padding: 10px;">Paroizolacja, ochrona przed wilgocią.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Dylatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Taśma brzegowa</td>
                        <td style="padding: 10px;">Min. 15 cm ponad wylewkę</td>
                        <td style="padding: 10px;">Odcinać dopiero po ułożeniu posadzki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (środek)</td>
                        <td style="padding: 10px;">15 cm</td>
                        <td style="padding: 10px;">Optymalne dla pomp ciepła, brak zebry.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Hydraulika</td>
                        <td style="padding: 10px; font-weight: bold;">Rozstaw rur (brzeg)</td>
                        <td style="padding: 10px;">10 cm</td>
                        <td style="padding: 10px;">Kompensacja dużych strat przy oknach.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Ograniczenia</td>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość pętli</td>
                        <td style="padding: 10px;">90 m (Max 100 m)</td>
                        <td style="padding: 10px;">Dla rury 16x2. Max różnica dł. to 10%.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Bezpieczeństwo</td>
                        <td style="padding: 10px; font-weight: bold;">Próba szczelności</td>
                        <td style="padding: 10px;">6 barów (0.6 MPa)</td>
                        <td style="padding: 10px;">Ciśnienie musi być stałe podczas betonowania.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px;">Wylewka</td>
                        <td style="padding: 10px; font-weight: bold;">Czas dojrzewania</td>
                        <td style="padding: 10px;">28 dni</td>
                        <td style="padding: 10px;">Dla cementu. Brak grzania w tym czasie!</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px;">Eksploatacja</td>
                        <td style="padding: 10px; font-weight: bold;">Wygrzewanie wstępne</td>
                        <td style="padding: 10px;">Start od 20°C (+5°C / doba)</td>
                        <td style="padding: 10px;">Zapobiega szokowi termicznemu betonu.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock)
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appElement = document.getElementById('params-app');
        if (appElement) {
            appElement.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 20px;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ta tabela techniczna jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i została wklejona na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

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

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg {
    margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: left;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fbbf24; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kalkulator ilości rury do ogrzewania podłogowego",
    "description": "Narzędzie inżynierskie pozwalające oszacować wymaganą długość rury grzewczej i liczbę pętli na podstawie powierzchni, długości ścian zewnętrznych i rozstawu rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę główną",
        "value": "Powierzchnia / Rozstaw rur w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na strefę brzegową",
        "value": "2 * Długość ścian zewnętrznych w metrach"
      },
      {
        "@type": "PropertyValue",
        "name": "Wzór na całkowitą długość",
        "value": "Strefa główna + Strefa brzegowa"
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna bezpieczna długość pętli (Dzielnik obwodów)",
        "value": "90",
        "unitCode": "MTR"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator ilości rury PEX (Ogrzewanie Podłogowe)",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Profesjonalny kalkulator do obliczania zapotrzebowania na rurę grzewczą z uwzględnieniem zagęszczenia w strefach brzegowych oraz limitów hydraulicznych pętli.",
    "featureList": [
      "Obliczanie całkowitej długości rury",
      "Podział na strefę główną i brzegową",
      "Sugestia wymaganej liczby pętli na rozdzielaczu"
    ]
  }
]
</script>

<div class="calc-intro">
    <h2>Prosty kalkulator ilości rury dla majsterkowicza</h2>
    <p>Oszacuj, ile metrów rury potrzebujesz do swojego pomieszczenia i sprawdź, czy woda da radę ją przepchnąć! Narzędzie oparte o wytyczne inżynierów z <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wynik wyraźnie wskaże Ci, czy podłogę musisz podzielić na kilka pętli grzewczych na rozdzielaczu.</p>
</div>

<div class="screed-calc" id="pipe-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            
            <span class="section-title">1. Wymiary pomieszczenia</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pokoju</label><span class="val-badge"><span id="v-area">30</span> m²</span></div>
                <input type="range" id="area" min="5" max="80" step="1" value="30">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Łączna dł. ścian zewnętrznych</label><span class="val-badge"><span id="v-walls">10</span> m</span></div>
                <input type="range" id="walls" min="0" max="30" step="1" value="10">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Ściany, przez które ucieka ciepło (tu zagęszczamy rurę).</div>
            </div>

            <span class="section-title">2. Planowany rozstaw rur</span>
            <div class="type-selector" style="margin-bottom:0">
                <div class="type-btn" id="btn-roz-10">10 cm<span style="font-size:10px; font-weight:400">Gęsty (Łazienki / Pompa Ciepła)</span></div>
                <div class="type-btn active" id="btn-roz-15">15 cm<span style="font-size:10px; font-weight:400">Standard / Optymalny</span></div>
                <div class="type-btn" id="btn-roz-20">20 cm<span style="font-size:10px; font-weight:400">Rzadszy</span></div>
                <div class="type-btn" id="btn-roz-25">25 cm<span style="font-size:10px; font-weight:400">Tylko jako tło cieplne</span></div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana całkowita długość rury</span>
                <span class="score-num" id="resTotal">--</span>
                <span class="score-label">metrów</span>
                <div id="risk-msg">⚠️ Uwaga!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Rura w części głównej:</span><strong id="resMain">--</strong></div>
                <div class="tech-item"><span>Rura w strefie brzegowej (okna):</span><strong id="resEdge">--</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Wymagana liczba pętli (obwodów):</span><strong id="resLoops">--</strong></div>
                </div>
            </div>
            
            <div style="margin-top:20px; font-size:11px; color:#94a3b8; font-weight:700">PROPORCJA ZUŻYCIA RURY:</div>
            <div style="height:12px; display:flex; border-radius:6px; overflow:hidden; margin-top:10px; background:#e2e8f0">
                <div id="bar-main" style="background:var(--accent); width:80%; transition: 0.3s;"></div>
                <div id="bar-edge" style="background:#94a3b8; width:20%; transition: 0.3s;"></div>
            </div>
            <div style="display: flex; justify-content: space-between; font-size: 10px; color: #64748b; margin-top: 5px;">
                <span>Powierzchnia główna</span>
                <span>Zagęszczenie pod ścianami</span>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Chcesz obliczyć cały dom?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Ten uproszczony wzór świetnie sprawdza się do szybkiej estymacji jednego pokoju. Jeśli chcesz zaprojektować rozdzielacz dla całego domu, skorzystaj z naszego zaawansowanego narzędzia.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="cta-btn">
                KOMPLEKSOWY KALKULATOR →
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn" style="background:#1e293b">
                ZAMÓW PROJEKT INŻYNIERSKI
            </a>
        </div>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a;">Metodyka obliczeń zapotrzebowania na rurę</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Rozstaw rur</th>
                        <th style="padding: 10px 0; color: #475569;">Zużycie na 1 m²</th>
                        <th style="padding: 10px 0; color: #475569;">Komentarz</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">10 cm</td>
                        <td style="padding: 10px 0;">~10.0 m</td>
                        <td style="padding: 10px 0;">Łazienki i pompy ciepła.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">15 cm</td>
                        <td style="padding: 10px 0;">~6.6 m</td>
                        <td style="padding: 10px 0;">Standard rynkowy.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">25 cm</td>
                        <td style="padding: 10px 0;">~4.0 m</td>
                        <td style="padding: 10px 0;">Wyłącznie jako tło cieplne.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; color: #475569; line-height: 1.6;">
                <strong>Wzór:</strong> Całkowita długość = (Powierzchnia / Rozstaw) + (2 * Długość ścian zewnętrznych).<br>
                Zgodnie z prawami fizyki, pojedyncza pętla z rury 16x2.0 nie powinna przekraczać 100 metrów ze względu na opory hydrauliczne.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pipe-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px; color: #dc2626;">Narzędzie chronione</div>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>' +
                '</div>';
        }
        return; 
    }

    var spacingMeters = 0.15; // Domyślny rozstaw to 15 cm
    var SAFE_LOOP_LIMIT = 90; // Oczekiwany dzielnik długości pętli
    var MAX_LOOP_LIMIT = 100; // Bezwzględny limit pętli
    
    function updateCalc() {
        var areaEl = document.getElementById('area');
        var wallsEl = document.getElementById('walls');
        
        if(!areaEl || !wallsEl) return;

        var area = parseFloat(areaEl.value);
        var walls = parseFloat(wallsEl.value);
        
        // Aktualizacja widoków wartości na suwakach
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-walls').innerText = walls;

        // MATEMATYKA ZGODNA ZE WZOREM: (Powierzchnia / Rozstaw) + (2 * Ściany)
        var mainLength = area / spacingMeters;
        var edgeLength = 2 * walls;
        var totalLength = mainLength + edgeLength;
        
        // Obliczanie ilości pętli (zaokrąglanie w górę, docelowa pętla to 90m)
        var requiredLoops = Math.ceil(totalLength / SAFE_LOOP_LIMIT);
        
        // Aktualizacja wartości w widoku
        document.getElementById('resTotal').innerText = Math.round(totalLength);
        document.getElementById('resMain').innerText = Math.round(mainLength) + ' m';
        document.getElementById('resEdge').innerText = Math.round(edgeLength) + ' m';
        document.getElementById('resLoops').innerText = requiredLoops + (requiredLoops === 1 ? ' pętla' : (requiredLoops > 4 ? ' pętli' : ' pętle'));

        // Logika ostrzeżeń i kolorów
        var mBox = document.getElementById('mainBox');
        var rMsg = document.getElementById('risk-msg');
        var warnings = [];
        var boxColor = 'var(--success)';

        if (totalLength > MAX_LOOP_LIMIT) { 
            warnings.push('❌ <strong>Stanowczo za dużo!</strong> Długość przekracza bezpieczny limit (100 m). Zgodnie z fizyką przepływu, pompa nie podoła oporom hydraulicznym.<br><br>Pomieszczenie musi zostać podzielone na co najmniej <strong>' + requiredLoops + ' osobne pętle</strong> na rozdzielaczu!'); 
            boxColor = 'var(--danger)'; 
        } else if (totalLength > SAFE_LOOP_LIMIT) { 
            warnings.push('⚠️ <strong>Zwróć uwagę:</strong> Zbliżasz się do granicy wydajności pompy obiegowej (90-100m). Rozważ podzielenie na 2 pętle.'); 
            boxColor = 'var(--warning)'; 
        }

        if (warnings.length > 0) {
            rMsg.innerHTML = warnings.join('<br><br>');
            rMsg.style.display = 'block';
        } else {
            rMsg.style.display = 'none';
        }
        mBox.style.borderColor = boxColor;

        // Pasek postępu (proporcje)
        var barTotal = totalLength > 0 ? totalLength : 1; // zapobieganie dzieleniu przez zero
        document.getElementById('bar-main').style.width = ((mainLength / barTotal) * 100) + '%';
        document.getElementById('bar-edge').style.width = ((edgeLength / barTotal) * 100) + '%';
    }

    // Obsługa przycisków rozstawu
    var spacingOptions = {
        'btn-roz-10': 0.10,
        'btn-roz-15': 0.15,
        'btn-roz-20': 0.20,
        'btn-roz-25': 0.25
    };

    var btnKeys = Object.keys(spacingOptions);
    for (var i = 0; i < btnKeys.length; i++) {
        (function(btnId) {
            var btn = document.getElementById(btnId);
            if(btn) {
                btn.addEventListener('click', function(e) {
                    spacingMeters = spacingOptions[btnId];
                    // Reset klas active
                    for(var j = 0; j < btnKeys.length; j++) {
                        var el = document.getElementById(btnKeys[j]);
                        if(el) { el.classList.remove('active'); }
                    }
                    e.currentTarget.classList.add('active');
                    updateCalc();
                });
            }
        })(btnKeys[i]);
    }

    // Obsługa suwaków
    var areaInput = document.getElementById('area');
    var wallsInput = document.getElementById('walls');
    
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(wallsInput) wallsInput.addEventListener('input', updateCalc);

    // Inicjalizacja
    updateCalc();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-myth-box {
    max-width: 1050px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.myth-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.myth-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

.myth-header p {
    margin: 0 auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.myth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px;
    background: #ffffff;
}

/* FLIP CARD STYLES */
.flip-card {
    background-color: transparent;
    width: 100%;
    min-height: 350px;
    perspective: 1000px;
    cursor: pointer;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
}

.flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
}

.flip-card-front {
    background-color: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}

.flip-card-back {
    background-color: #f0fdf4;
    border-color: #bbf7d0;
    color: var(--success);
    transform: rotateY(180deg);
}

.card-icon {
    font-size: 42px;
    margin-bottom: 15px;
    line-height: 1;
}

.card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    opacity: 0.8;
}

.card-text {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.flip-card-back .card-title {
    color: var(--success);
}

.flip-card-back .card-text {
    font-size: 14px;
    font-weight: 500;
    color: #166534;
    line-height: 1.6;
}

.flip-hint {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.8);
    padding: 6px 16px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.myth-summary {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
}

.myth-summary h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.myth-summary p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
}

@media (max-width: 900px) {
    .myth-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .flip-card { min-height: 280px; }
    .myth-summary { margin: 0 20px 25px 20px; padding: 25px 20px; }
    .myth-header { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Fakty i mity o samodzielnym montażu ogrzewania podłogowego",
  "description": "Zestawienie najczęstszych błędnych przekonań inwestorów dotyczących testów szczelności, rozstawu rur i limitów hydraulicznych w systemach podłogowych.",
  "license": "https://projekt-ogrzewania.pl/",
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-myth-box" id="diy-myth-app">
    <div class="myth-header">
        <h3>Fakty i Mity Samodzielnego Montażu</h3>
        <p>Wpisując w sieć "jak samemu zrobić podłogówkę", łatwo trafić na porady, które po wylaniu betonu zamienią się w koszmar. <strong>Kliknij kartę, aby obalić najgroźniejsze mity.</strong></p>
    </div>

    <div class="myth-grid">
        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">💧</div>
                    <div class="card-title">MIT #1</div>
                    <p class="card-text">"Szybkie sprawdzenie z węża ogrodowego na 2 bary wystarczy, żeby upewnić się, że nie ma przecieków."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">🏗️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To punkt bez powrotu!</strong> Próba musi wynosić min. 6 barów przez 24 godziny. Co więcej, rury bezwzględnie <strong>muszą być pod ciśnieniem podczas wylewania betonu</strong>. Inaczej wibracje i masa wylewki mogą rozszczelnić zluzowane złączki, a awarię zauważysz po roku.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🦓</div>
                    <div class="card-title">MIT #2</div>
                    <p class="card-text">"Standard to 15 cm, ale jak rozłożę rury co 25 cm, to i tak będzie ciepło, a oszczędzę na materiale."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">📉</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Stworzysz "zebrę termiczna".</strong> Fizyka jest bezlitosna – poczujesz stopą naprzemienne pasy chłodu i ciepła (różnica 5-7°C). Co gorsza, aby dogrzać dom, będziesz musiał podnieść temperaturę na kotle, drastycznie obniżając sprawność układu (COP).</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🔄</div>
                    <div class="card-title">MIT #3</div>
                    <p class="card-text">"Zrobię jedną długą pętlę na cały salon (np. 140 metrów), to będzie mniej rur i szybciej pójdzie."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">⚠️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Zabijesz pompę obiegową.</strong> Absolutny limit dla rury PEX 16mm to 90-100 metrów. Przy zbyt długiej pętli opór hydrauliczny przewyższy możliwości tłoczenia pompy. W efekcie woda nie popłynie w ogóle, a połowa salonu pozostanie zimna.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="myth-summary">
        <h4>Podsumowanie: Beton nie wybacza</h4>
        <p>Montaż ogrzewania podłogowego to praca inżynierska z zakresu mechaniki płynów, a nie tylko zabawa w układanie wężyków na styropianie. Brak odpowiednich dylatacji, złe opory hydrauliczne i zaoszczędzenie kilku złotych na projekcie niemal zawsze kończy się remontem i skuwaniem płytek przy użyciu młota udarowego. <strong>Projekt i obliczenia to fundament sukcesu.</strong></p>
    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a;">Najczęstsze mity przy montażu ogrzewania podłogowego</h2>
            <ul style="font-size: 14px; color: #334155; line-height: 1.6;">
                <li><strong>MIT 1: Szybkie sprawdzenie szczelności na 2 bary wystarczy.</strong><br>
                FAKT: Próba musi wynosić min. 6 barów przez 24h. Rury muszą być pod ciśnieniem podczas wylewania betonu, aby uniknąć mikrorozszczelnień na złączkach.</li>
                <li><strong>MIT 2: Rozstaw rur co 25 cm pozwala na oszczędności bez utraty komfortu.</strong><br>
                FAKT: Powstaje "zebra termiczna" (odczuwalne zimne pasy). Wymusza to podniesienie temperatury wody, co drastycznie obniża sprawność pompy ciepła (COP).</li>
                <li><strong>MIT 3: Można robić pętle o długości 140 metrów.</strong><br>
                FAKT: Granica dla rury 16mm to 100m. Powyżej tej długości opór hydrauliczny blokuje przepływ wody, a pompa obiegowa ulega przeciążeniu.</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
// ZABEZPIECZENIE DOMENOWE (Domain Lock - Czysty JS)
document.addEventListener('DOMContentLoaded', function() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('diy-myth-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To zestawienie mitów budowlanych jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało wklejone na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --accent-light: #eff6ff;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
    --text-muted: #475569;
}

.premium-faq-box {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.faq-header {
    padding: 40px 40px 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
    position: relative;
}

.faq-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--accent);
}

.faq-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent-light);
    color: var(--accent);
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.faq-header h3 {
    margin: 0 0 15px 0;
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
}

.faq-header p {
    margin: 0;
    font-size: 15px;
    color: var(--text-muted);
    line-height: 1.6;
}

.faq-content {
    padding: 20px 40px 40px 40px;
}

/* INTERAKTYWNY AKORDEON Z MIKRO-INTERAKCJAMI */
.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
    border-left: 4px solid transparent;
    padding-left: 15px;
    margin-bottom: 10px;
    border-radius: 8px;
}

.faq-item:hover {
    background: #f8fafc;
    border-left-color: #cbd5e1;
}

.faq-item.active {
    background: #ffffff;
    border-left-color: var(--accent);
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    padding-bottom: 10px;
    border-bottom: 1px solid transparent;
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 20px 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-family: inherit;
    transition: color 0.2s ease;
}

.faq-question:hover {
    color: var(--accent);
}

.faq-q-icon {
    font-size: 22px;
    flex-shrink: 0;
    filter: grayscale(0.2);
    transition: 0.3s;
}

.faq-item.active .faq-q-icon {
    filter: grayscale(0);
    transform: scale(1.1);
}

.faq-q-text {
    flex-grow: 1;
    padding-right: 20px;
}

.faq-toggle-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    font-size: 18px;
    font-weight: 300;
    transition: transform 0.4s ease, background 0.3s ease, color 0.3s ease;
    border: 1px solid #e2e8f0;
}

.faq-item.active .faq-toggle-icon {
    transform: rotate(45deg);
    background: var(--accent);
    color: #ffffff;
    border-color: var(--accent);
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
}

.faq-item.active .faq-question {
    color: var(--accent);
}

/* Animacja otwierania CSS Grid Trick */
.faq-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.active .faq-answer-wrapper {
    grid-template-rows: 1fr;
}

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

.faq-answer-text {
    padding: 0 0 15px 37px; /* Wcięcie wyrównujące tekst z nagłówkiem */
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-muted);
}

.faq-answer-text strong {
    color: var(--primary);
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 20px 25px 20px; }
    .faq-content { padding: 10px 20px 30px 20px; }
    .faq-question { font-size: 15px; padding: 15px 0; }
    .faq-toggle-icon { width: 28px; height: 28px; font-size: 16px; }
    .faq-answer-text { padding-left: 0; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "license": "https://projekt-ogrzewania.pl/",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Jakie ciśnienie powinna mieć próba szczelności podłogówki i jak długo trwać?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Złoty standard to minimum 6 barów (0,6 MPa) utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie pozostać pod ciśnieniem podczas wylewania jastrychu, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć ewentualne uszkodzenie łopatą.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Gdzie koniecznie trzeba zastosować dylatacje w wylewce?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dylatacje są bezwzględnie wymagane w progach drzwiowych, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy osłonić peszlem na odcinku min. 30 cm.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaki jest optymal rozstaw rur ogrzewania podłogowego dla pompy ciepła?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dla pomp ciepła zaleca się rozstaw 15 cm w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do 10 cm w łazienkach i tzw. strefach brzegowych (przy dużych oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie odczuwalnej dla stóp 'zebry termicznej' i obniża sprawność (COP) układu.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Jaka grubość styropianu na gruncie jest wymagana pod podłogówkę?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Aby spełnić normy Warunków Technicznych (WT 2021), wymagane jest minimum 12-15 cm styropianu EPS 100 lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    },
    {
      "@type": "Question",
      "name": "Ile wynosi maksymalna długość pętli z rury PEX 16 mm?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Absolutne maksimum dla rury 16x2.0 mm to 100 metrów, jednak w profesjonalnych projektach zaleca się nie przekraczać 80-90 metrów. Zbyt długa pętla stawia opór hydrauliczny przekraczający możliwości standardowej pompy obiegowej, co skutkuje brakiem przepływu i niedogrzaniem pomieszczenia.",
        "author": {
          "@type": "Person",
          "name": "Robert Kucharski"
        }
      }
    }
  ]
}
</script>

<div class="premium-faq-box" id="faq-app-lock">
    <div class="faq-header">
        <div class="faq-badge">Baza Wiedzy</div>
        <h3>O to najczęściej pytają inwestorzy</h3>
        <p>Krótkie i konkretne odpowiedzi na najważniejsze pytania dotyczące prawidłowego wykonania instalacji ogrzewania podłogowego.</p>
    </div>

    <div class="faq-content">
        
        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💦</span>
                <span class="faq-q-text">1. Jakie ciśnienie powinna mieć próba szczelności i jak długo trwać?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Złoty standard to <strong>minimum 6 barów (0,6 MPa)</strong> utrzymane przez 24 godziny. Co najważniejsze, rury muszą bezwzględnie <strong>pozostać pod ciśnieniem podczas wylewania jastrychu</strong>, aby uchronić je przed zgnieceniem przez masę betonu oraz wibratory, a także aby natychmiast wykryć na manometrze ewentualne uszkodzenie mechaniczne (np. łopatą).
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">💥</span>
                <span class="faq-q-text">2. Gdzie koniecznie trzeba zastosować dylatacje w wylewce?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dylatacje są bezwzględnie wymagane w <strong>progach drzwiowych</strong>, w narożnikach pomieszczeń w kształcie litery L oraz przy podziale dużych pól grzejnych (powyżej 40 m² lub gdy długość jednego boku przekracza 8 metrów). Każdą rurę przechodzącą przez szczelinę dylatacyjną należy <strong>osłonić peszlem</strong> na odcinku min. 30 cm, aby pracujący beton jej nie przeciął.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🦓</span>
                <span class="faq-q-text">3. Jaki jest optymalny rozstaw rur podłogówki dla pompy ciepła?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Dla pomp ciepła zaleca się <strong>rozstaw 15 cm</strong> w głównych strefach mieszkalnych (salony, sypialnie) oraz zagęszczenie do <strong>10 cm</strong> w łazienkach i tzw. strefach brzegowych (przy oknach i drzwiach tarasowych). Zbyt rzadki rozstaw (20-30 cm) powoduje powstawanie "zebry termicznej" i wymusza podniesienie temperatury zasilania, co drastycznie obniża sprawność układu.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🧱</span>
                <span class="faq-q-text">4. Jaka grubość styropianu na gruncie jest wymagana pod rury?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Aby spełnić aktualne normy (WT 2021), wymagane jest <strong>minimum 12-15 cm styropianu EPS 100</strong> lub twardszego. Zastosowanie zbyt cienkiej izolacji (np. 5 cm) skutkuje ucieczką nawet 25-30% wyprodukowanego ciepła bezpośrednio w ziemię, co generuje ogromne straty finansowe przez cały okres życia budynku.
                    </p>
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span class="faq-q-icon">🔄</span>
                <span class="faq-q-text">5. Ile wynosi maksymalna bezpieczna długość pętli z rury 16 mm?</span>
                <div class="faq-toggle-icon">+</div>
            </button>
            <div class="faq-answer-wrapper">
                <div class="faq-answer-inner">
                    <p class="faq-answer-text">
                        Absolutne maksimum dla rury 16x2.0 mm to <strong>100 metrów</strong>, jednak w profesjonalnych projektach inżynierskich zaleca się nie przekraczać <strong>80-90 metrów</strong>. Zbyt długa pętla stwarza opór hydrauliczny przekraczający możliwości tłoczenia standardowej pompy obiegowej, co ostatecznie skutkuje brakiem przepływu.
                    </p>
                </div>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 20px;">Najczęściej zadawane pytania (Baza Wiedzy)</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px; color: #475569;">Pytanie</th>
                        <th style="padding: 10px; color: #475569;">Odpowiedź eksperta</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jakie ciśnienie próby szczelności?</td>
                        <td style="padding: 10px;">Minimum 6 barów przez 24h. Zostawić ciśnienie na czas wylewki.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Gdzie stosować dylatacje?</td>
                        <td style="padding: 10px;">Progi, narożniki, pola > 40 m2. Przejścia osłonić peszlem (30 cm).</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Jaki rozstaw dla pompy ciepła?</td>
                        <td style="padding: 10px;">Środek: 15 cm. Przy oknach: 10 cm. Zapobiega to zebrom termicznym.</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px; font-weight: bold;">Grubość izolacji EPS na gruncie?</td>
                        <td style="padding: 10px;">Min. 12-15 cm EPS 100 zgodnie z WT 2021. Zapobiega stratom ciepła.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px; font-weight: bold;">Maksymalna długość rury w pętli?</td>
                        <td style="padding: 10px;">Zalecane 80-90m, bezwzględne max 100m. Zapobiega przeciążeniu pompy.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('faq-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div></div>';
        }
        return; 
    }

    // LOGIKA AKORDEONU
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const questionBtn = item.querySelector('.faq-question');
        
        questionBtn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamyka pozostałe
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
            });

            // Otwiera/Zamyka kliknięty
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --sum-bg-gradient: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
    --sum-text: #f8fafc;
    --sum-accent: #3b82f6;
    --sum-danger: #ef4444;
    --sum-warning: #f59e0b;
    --sum-success: #10b981;
}

.premium-summary-box {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--sum-bg-gradient);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.4);
    border: 1px solid #334155;
    overflow: hidden;
    color: var(--sum-text);
    position: relative;
}

/* Subtelny szum / poświata w tle */
.premium-summary-box::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(59,130,246,0.05) 0%, transparent 60%);
    z-index: 0;
    pointer-events: none;
}

.summary-content {
    position: relative;
    z-index: 1;
    padding: 50px;
}

.summary-header {
    text-align: center;
    margin-bottom: 35px;
}

.summary-icon {
    font-size: 56px;
    line-height: 1;
    margin-bottom: 20px;
    display: inline-block;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.3));
}

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

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #cbd5e1;
    text-align: center;
    max-width: 800px;
    margin: 0 auto 30px auto;
}

.summary-text strong {
    color: #ffffff;
    font-weight: 700;
}

/* WIZUALNA WAGA RYZYKA */
.risk-scale-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 40px 0;
}

.risk-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    transition: transform 0.3s ease;
}

.risk-card:hover {
    transform: translateY(-5px);
    background: rgba(255, 255, 255, 0.05);
}

.risk-card.bad-choice {
    border-bottom: 4px solid var(--sum-danger);
}

.risk-card.good-choice {
    border-bottom: 4px solid var(--sum-success);
}

.risk-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 800;
    margin-bottom: 15px;
    display: block;
}

.bad-choice .risk-label { color: #fca5a5; }
.good-choice .risk-label { color: #6ee7b7; }

.risk-value {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 10px;
    display: block;
}

.risk-desc {
    font-size: 14px;
    color: #94a3b8;
    line-height: 1.5;
    margin: 0;
}

/* CTA BUTTONS */
.summary-actions {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
    flex-wrap: wrap;
}

.sum-btn {
    padding: 16px 32px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.sum-btn-primary {
    background: var(--sum-accent);
    color: #ffffff !important;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.5);
    border: 1px solid #60a5fa;
}

.sum-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(59, 130, 246, 0.6);
    background: #2563eb;
}

.sum-btn-secondary {
    background: transparent;
    color: #ffffff !important;
    border: 2px solid #475569;
}

.sum-btn-secondary:hover {
    border-color: #cbd5e1;
    background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 768px) {
    .summary-content { padding: 40px 25px; }
    .risk-scale-grid { grid-template-columns: 1fr; gap: 15px; }
    .summary-actions { flex-direction: column; width: 100%; gap: 15px; }
    .sum-btn { justify-content: center; width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Podsumowanie: Beton nie wybacza - błędy przy montażu ogrzewania podłogowego",
    "abstract": "Samodzielny montaż ogrzewania podłogowego to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to kluczowa inwestycja zapewniająca bezpieczeństwo na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Analiza ryzyka samodzielnego montażu podłogówki",
    "description": "Zestawienie porównawcze oszczędności na projekcie versus koszty naprawy błędów montażowych po wylaniu betonu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-summary-box" id="summary-app-lock">
    <div class="summary-content">
        
        <div class="summary-header">
            <span class="summary-icon">🏁</span>
            <h2>Podsumowanie: Beton nie wybacza</h2>
        </div>

        <p class="summary-text">
            Decydując się na samodzielne wykonanie instalacji ogrzewania podłogowego, stajesz przed <strong>zadaniem inżynierskim</strong>, a nie tylko pracą fizyczną. Pięć wymienionych błędów – od braku ciśnienia podczas wylewki, przez ignorowanie dylatacji, po zbyt długie pętle – to problemy, które w przeciwieństwie do krzywo przyklejonej tapety, <strong>zostaną z Tobą na zawsze pod warstwą płytek i wylewki.</strong>
        </p>

        <div class="risk-scale-grid">
            <div class="risk-card bad-choice">
                <span class="risk-label">Fałszywa Oszczędność</span>
                <span class="risk-value">1 000 zł</span>
                <p class="risk-desc">Tyle rzekomo zaoszczędzisz rezygnując z projektu lub zagęszczenia rur. Może to jednak skutkować koniecznością <strong>skucia całej podłogi za 10 000 zł</strong>.</p>
            </div>
            <div class="risk-card good-choice">
                <span class="risk-label">Prawdziwa Inwestycja</span>
                <span class="risk-value">30 Lat</span>
                <p class="risk-desc">Projekt i precyzyjne wyliczenia to jedyna inwestycja w tej układance, która nie wymaga wylewki, a daje <strong>zwrot w postaci cichej i taniej pracy instalacji przez dekady.</strong></p>
            </div>
        </div>

        <p class="summary-text">
            Traktuj ten artykuł jako kompendium wiedzy i <strong>listę kontrolną, którą musisz odhaczyć przed przyjazdem betoniarki</strong>. A jeśli poczujesz, że wyliczenia hydrauliczne lub cieplne Cię przerastają – skonsultuj się z profesjonalistą.
        </p>

        <div class="summary-actions">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="sum-btn sum-btn-primary">
                📐 SKONSULTUJ SIĘ Z PROJEKTANTEM
            </a>
            <a href="https://projekt-ogrzewania.pl/blog/" class="sum-btn sum-btn-secondary">
                📖 CZYTAJ NASZ BLOG
            </a>
        </div>

    </div>

    <noscript>
        <div style="padding: 30px; background: #0f172a; border-top: 1px solid #334155; font-family: sans-serif; color: #cbd5e1;">
            <h3 style="color: #ffffff; margin-top: 0;">Analiza ryzyka samodzielnego montażu podłogówki</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; margin-bottom: 20px;">
                <thead>
                    <tr style="border-bottom: 2px solid #334155;">
                        <th style="padding: 10px 0; color: #94a3b8;">Podejście do inwestycji</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Szacowany koszt początkowy</th>
                        <th style="padding: 10px 0; color: #94a3b8;">Konsekwencje</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #1e293b;">
                        <td style="padding: 10px 0; font-weight: bold;">Oszczędność na projekcie</td>
                        <td style="padding: 10px 0; color: #ef4444;">-1000 PLN (pozornie)</td>
                        <td style="padding: 10px 0;">Ryzyko skucia posadzki i wysokich rachunków.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Profesjonalny projekt</td>
                        <td style="padding: 10px 0; color: #10b981;">Koszt rynkowy</td>
                        <td style="padding: 10px 0;">Gwarancja cichej i taniej pracy przez min. 30 lat.</td>
                    </tr>
                </tbody>
            </table>
            <p style="font-size: 13px; line-height: 1.6;">
                Samodzielny montaż to zadanie inżynierskie. Błędy hydrauliczne i konstrukcyjne stają się nieodwracalne po wylaniu betonu. Projekt instalacji to jedyna pewna polisa bezpieczeństwa.
            </p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('summary-app-lock');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona</div><p>Ten moduł jest własnością Projekt-Ogrzewania.pl</p></div>';
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów, których nie naprawisz po wylewce.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 10:15:36 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projekty grzewcze]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Projekty instalacyjne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[hydraulika grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3923</guid>

					<description><![CDATA[<p>Czy można bezpiecznie wykonać podłogówkę bez projektu, kierując się jedynie doświadczeniem instalatora? W praktyce okazuje się, że projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach to nie teoretyczny dylemat, lecz realne ryzyko wysokich kosztów i problemów z komfortem cieplnym. Artykuł pokazuje konkretne konsekwencje złych decyzji: od przewymiarowanych materiałów, przez nierównomierne grzanie, aż po drastycznie wyższe rachunki w przypadku pomp ciepła. Jeśli budujesz dom i chcesz uniknąć kosztownych pomyłek, te informacje mogą oszczędzić Ci dziesiątki tysięcy złotych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Decyzja o wyborze ogrzewania podłogowego zapada zwykle na etapie stanu surowego lub tuż przed wylewaniem wylewki. Wtedy pojawia się kuszące pytanie:&nbsp;<em>czy naprawdę potrzebuję projektu?</em>&nbsp;Wiele osób, kierując się presją czasu lub chęcią oszczędności, decyduje się na układanie rur „z głowy” – według własnego uznania lub intuicji instalatora. Efektem jest często sytuacja, w której&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to nie tylko chwytliwy tytuł artykułu, ale realne pytanie o Twoje rachunki przez najbliższe 20–30 lat.</p>



<p class="wp-block-paragraph">W tym artykule rozpakuję tę różnicę na konkretnych przykładach, pokazując, że to, co na początku wygląda jak „oszczędność”, w praktyce okazuje się jednym z najdroższych kompromisów w budowie domu.</p>



<h2 class="wp-block-heading">Pułapka „Gęściej znaczy lepiej” – najdroższy mit instalacji podłogowej.</h2>



<p class="wp-block-paragraph">Najczęstszym błędem przy projektowaniu bez obliczeń jest <strong>przewymiarowanie</strong>. Instalatorzy, chcąc mieć „święty spokój” i uniknąć reklamacji typu „zimna podłoga”, często zagęszczają <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> – układają je co 10 cm we wszystkich pomieszczeniach. Zakładają, że nadmiar ciepła nie zaszkodzi.</p>



<p class="wp-block-paragraph">Nic bardziej mylnego.</p>



<h3 class="wp-block-heading">Dlaczego gęstszy rozstaw nie znaczy lepszy?</h3>



<p class="wp-block-paragraph">Rozstaw rur to nie tylko kwestia ilości ciepła, ale przede wszystkim dopasowania do rzeczywistego zapotrzebowania pomieszczenia. W projekcie „z głowy” kupujesz&nbsp;<strong>o 30–50% więcej rury</strong>, niż faktycznie potrzebujesz. Płacisz za materiał, więcej obejm, większą liczbę obwodów na rozdzielaczu i robociznę, która jest po prostu zbędna.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom 150 m². Instalator układa rury co 10 cm wszędzie, zamiast optymalnie: co 10 cm w łazience, co 15 cm w salonie i co 20 cm w sypialni. Różnica w zużyciu rury to nawet&nbsp;<strong>300–400 metrów</strong>. Przy cenie 5 zł/m to&nbsp;<strong>1 500–2 000 zł</strong>&nbsp;wyrzucone w błoto już na etapie zakupów. Do tego dochodzą dodatkowe obejmy, płyty zbrojeniowe, a często też większa liczba obwodów, co wymaga droższego rozdzielacza.</p>



<h3 class="wp-block-heading">Skutki przewymiarowania wykraczają poza koszty materiałów.</h3>



<h4 class="wp-block-heading">Gęstszy rozstaw to nie tylko wyższe koszty inwestycyjne. To także problemy eksploatacyjne:</h4>



<ul class="wp-block-list">
<li><strong>Przegrzewanie pomieszczeń</strong>&nbsp;– przy jednakowo gęstym rozstawie w pomieszczeniach o małym zapotrzebowaniu (np. wewnętrzna sypialnia) podłoga oddaje za dużo ciepła.</li>



<li><strong>Praca skokowa źródła ciepła</strong>&nbsp;– kocioł lub pompa ciepła włączają się i wyłączają krótkimi cyklami, tracąc na efektywności.</li>



<li><strong>Wyższa temperatura zasilania</strong>&nbsp;– aby zrekompensować brak równowagi między pomieszczeniami, często podnosi się temperaturę całego systemu, co bije po kieszeni.</li>
</ul>



<p class="wp-block-paragraph">W projekcie z obliczeniami projektant wylicza <strong><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" type="link" id="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">OZC (Obliczeniowe Zapotrzebowanie na Ciepło</a>)</strong> dla każdego pomieszczenia osobno. Na tej podstawie dobiera rozstaw: w sypialni rury mogą być co 20 cm, w salonie co 15 cm, a w łazience co 10 cm. Każde pomieszczenie dostaje tyle mocy, ile faktycznie potrzebuje – ani grama więcej.</p>



<p class="wp-block-paragraph"><strong>Strata przy podejściu „gęściej znaczy lepiej” to nawet kilka tysięcy złotych wyrzucone w błoto już na etapie zakupów, a potem dodatkowe tysiące w rachunkach przez lata.</strong></p>



<h2 class="wp-block-heading">Hydraulika – dlaczego jeden pokój jest zimny, a drugi przegrzany?</h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe to nie tylko rurki ułożone w podłodze. To&nbsp;<strong>system naczyń połączonych</strong>&nbsp;– instalacja hydrauliczna o określonych oporach przepływu. Bez obliczeń te opory pozostają nieznane, a konsekwencje odczuwasz codziennie.</p>



<h3 class="wp-block-heading">Problem zbyt długich pętli.</h3>



<p class="wp-block-paragraph">W instalacjach „z głowy” często zdarza się, że pętle mają skrajnie różne długości. Jedna pętla (np. w łazience) ma 50 m, a druga (w dużym salonie) – 130 m.</p>



<p class="wp-block-paragraph"><strong>Dlaczego to problem?</strong> Dłuższa pętla stawia znacznie większy opór hydrauliczny. <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa</a>, która jest sercem systemu, ma ograniczoną wydajność. Gdy przekroczysz długość krytyczną (dla rury 16×2 mm to zazwyczaj <strong>100–120 m</strong>), pompa nie jest w stanie przepchnąć przez nią odpowiedniej ilości wody.</p>



<p class="wp-block-paragraph"><em>Efekt w praktyce:</em>&nbsp;Salon (krótka pętla) grzeje, a w sypialni na końcu korytarza (długa pętla) jest lodowato. Instalator kręci przepływomierzami, ale to walka z fizyką – przy zbyt dużych różnicach długości nie da się tego wyrównać bez zmiany projektu.</p>



<h3 class="wp-block-heading">Rozwiązanie projektowe – równoważenie hydrauliczne.</h3>



<p class="wp-block-paragraph">Profesjonalny projekt precyzyjnie określa <strong>długość każdej pętli</strong> tak, aby różnice między nimi nie przekraczały 10–15%. Dzięki temu wszystkie obwody mają zbliżone opory przepływu. Dodatkowo projekt zawiera <strong>nastawy na rozdzielaczu</strong> – wstępne ustawienia <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">przepływomierzy</a>, które wyrównują nawet niewielkie różnice.</p>



<p class="wp-block-paragraph"><em>Rezultat:</em>&nbsp;Ciepło rozchodzi się równomiernie po całym domu. Nie ma „zimnych plam”, nie ma przegrzewania. Pompa obiegowa pracuje na optymalnych obrotach (często 1 bieg zamiast 3), co przekłada się na niższe zużycie prądu i dłuższą żywotność urządzenia.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a współpraca z pompą ciepła – klucz do niskich rachunków.</h2>



<p class="wp-block-paragraph">Jeśli planujesz <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompę ciepła</a> (powietrzną lub gruntową), <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt ogrzewania podłogowego</a> przestaje być opcją  staje się krytycznym wymogiem</strong>. Pompy ciepła osiągają najwyższą efektywność (współczynnik COP) przy jak najniższej temperaturze zasilania, optymalnie w zakresie <strong>30–35°C</strong>.</p>



<h3 class="wp-block-heading">Błąd „na oko” a temperatura zasilania.</h3>



<p class="wp-block-paragraph">Gdy instalacja podłogowa jest wykonana bez projektu, często zdarza się, że:</p>



<ul class="wp-block-list">
<li>rozstaw rur jest zbyt rzadki w pomieszczeniach o dużych stratach ciepła,</li>



<li>pętle są niezrównoważone hydraulicznie.</li>
</ul>



<p class="wp-block-paragraph">Aby to skompensować i dogrzać zimne pomieszczenia, instalator (lub automatyk) podnosi&nbsp;<strong>temperaturę zasilania</strong>&nbsp;– zamiast 35°C ustawia 45°C, a czasem nawet 50°C.</p>



<p class="wp-block-paragraph"><strong>Konsekwencja:</strong>&nbsp;Pompa ciepła traci swoją największą zaletę – niskie koszty eksploatacji.</p>



<h3 class="wp-block-heading">Wyliczenie – każdy stopień ma swoją cenę.</h3>



<p class="wp-block-paragraph">Dla pompy ciepła powietrznej&nbsp;<strong>każdy stopień Celsjusza podwyższenia temperatury zasilania to spadek COP o około 2–3%</strong>. Podniesienie z 35°C na 45°C oznacza więc spadek efektywności o&nbsp;<strong>20–30%</strong>.</p>



<p class="wp-block-paragraph"><em>Przykład:</em>&nbsp;Dom ogrzewany pompą ciepła, roczny koszt energii elektrycznej na ogrzewanie wynosi&nbsp;<strong>4 500 zł</strong>&nbsp;przy optymalnej pracy (35°C). Po podniesieniu temperatury zasilania do 45°C, koszt wzrasta o ok.&nbsp;<strong>1 000–1 300 zł rocznie</strong>.</p>



<p class="wp-block-paragraph">W perspektywie 15 lat (średni okres między wymianami źródła ciepła) to&nbsp;<strong>15 000–20 000 zł dodatkowych kosztów</strong>&nbsp;– tylko z powodu źle zaprojektowanej podłogówki. A przecież pompa ciepła ma służyć 20–25 lat.</p>



<h3 class="wp-block-heading">Gwarancja producenta a projekt.</h3>



<p class="wp-block-paragraph">Coraz więcej producentów <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">pomp ciepła</a> (np. Daikin, Panasonic, Mitsubishi Electric, Viessmann, Nibe, Bosch, Vaillant, LG, Samsung, Stiebel Eltron, Hitachi, Toshiba, Fujitsu, Alpha Innotec, De Dietrich, Gree, Midea, Thermia, Haier, Galmet.) <strong>wymaga przedstawienia projektu ogrzewania podłogowego wraz z obliczeniami OZC</strong> do udzielenia gwarancji. To nie jest kaprys  producenci wiedzą, że źle zaprojektowany system dolnego źródła (podłogówka) jest główną przyczyną awarii, krótkich cykli pracy i spadku efektywności. Brak projektu może więc oznaczać <strong>utratę gwarancji na urządzenie warte 20–30 tys. zł</strong>.</p>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.compare-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.compare-header p {
    margin: 0 auto;
    max-width: 700px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 25%;
}

.compare-table th.col-noguide {
    color: var(--primary);
    width: 37%;
}

.compare-table th.col-project {
    color: var(--accent);
    width: 38%;
    border-bottom-color: var(--accent);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.compare-table tr:hover td {
    background: #f8fafc;
}

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-project {
    border-color: #bfdbfe;
    background: #eff6ff;
}

.card-project h4 {
    color: var(--accent);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Projekt „z głowy” / „na oko”:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Projekt z obliczeniami:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--accent);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app">
    <div class="compare-header">
        <h2>Porównanie – co zyskujesz, a co ryzykujesz?</h2>
        <p>Poniższa tabela zestawia najważniejsze różnice między instalacją „z głowy” a systemem zaprojektowanym przez specjalistę. Dane dotyczą typowego domu jednorodzinnego o powierzchni 150 m². <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Zestawienie przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Cecha</th>
                    <th class="col-noguide">Projekt „z głowy” / „na oko”</th>
                    <th class="col-project">Projekt z obliczeniami</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">📦</span> Ilość materiału</td>
                    <td>Zazwyczaj zawyżona o 30–50% – instalator dodaje „na zapas”</td>
                    <td><strong>Optymalna</strong> – dokładnie tyle, ile wynika z OZC i rozstawu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Komfort termiczny</td>
                    <td>Ryzyko „zimnych plam” w dłuższych pętlach lub przegrzewania przy zbyt gęstym rozstawie</td>
                    <td><strong>Równomierna temperatura</strong> w każdym pomieszczeniu, brak lokalnych dyskomfortów</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Praca pompy obiegowej</td>
                    <td>Często na 3 biegu (60–80 W), aby przeforsować długie pętle</td>
                    <td><span class="val-pill accent">1 bieg (20–30 W)</span>, cicha praca, mniejsze zużycie prądu</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Koszt eksploatacji (kocioł)</td>
                    <td>Wyższy o 10–15% przez zbyt wysoką temperaturę zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – system pracuje w optymalnym zakresie 35–40°C</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Koszt eksploatacji (pompa ciepła)</td>
                    <td>Wyższy o 20–30% przez spadek COP przy podniesionej temperaturze zasilania</td>
                    <td><span class="val-pill accent">Minimalny</span> – pompa pracuje z najwyższą możliwą efektywnością</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">📄</span> Dokumentacja powykonawcza</td>
                    <td>Brak – nie wiesz, gdzie biegną rury, co utrudnia wiercenie i ewentualne naprawy</td>
                    <td><strong>Pełna mapa rur</strong>, zestawienie długości pętli, nastawy rozdzielacza</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛡️</span> Gwarancja na pompę ciepła</td>
                    <td>Często niemożliwa – producenci wymagają projektu</td>
                    <td><span class="val-pill accent">Tak</span> – projekt spełnia wymogi formalne</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🎯</span> Gwarancja sukcesu</td>
                    <td>„Jakoś to będzie” – ryzyko błędów wykrytych dopiero po wylaniu wylewki</td>
                    <td><strong>Gwarancja inżynierska</strong> – wszystko jest przewidziane i policzone</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card">
            <h4>Montaż &#8222;na oko&#8221;</h4>
            <p>Brak pewności co do poprawności działania instalacji. Płacisz więcej za przewymiarowany materiał na etapie budowy i ponosisz stale wyższe koszty eksploatacyjne (prąd, spadek COP). Ryzykujesz dyskomfort cieplny i problemy z gwarancją u producentów pomp ciepła.</p>
        </div>
        
        <div class="summary-card card-project">
            <h4>System z obliczeniami OZC</h4>
            <p>Gwarancja optymalnego działania ogrzewania. Oszczędzasz na precyzyjnie wyliczonych materiałach oraz cieszysz się minimalnymi rachunkami za ogrzewanie. Otrzymujesz pełną dokumentację, która ułatwia wykończenie domu i jest podstawą do utrzymania gwarancji producenta.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.compare-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.compare-header p {
    margin: 0 auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.table-wrapper {
    padding: 0 40px;
    margin-top: 20px;
}

.compare-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.compare-table th {
    padding: 20px 15px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid var(--border-color);
}

.compare-table th.col-param {
    text-align: left;
    color: #64748b;
    width: 40%;
}

.compare-table th.col-annual {
    color: var(--primary);
    width: 30%;
}

.compare-table th.col-total {
    color: var(--danger);
    width: 30%;
    border-bottom-color: var(--danger);
}

.compare-table td {
    padding: 16px 15px;
    text-align: center;
    font-size: 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
    vertical-align: middle;
    line-height: 1.5;
}

.compare-table td.param-name {
    text-align: left;
    font-weight: 700;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.compare-table td.param-name span.icon {
    font-size: 18px;
    background: #f8fafc;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.compare-table tr:hover td {
    background: #f8fafc;
}

.val-pill {
    display: inline-block;
    padding: 4px 12px;
    background: #f1f5f9;
    border-radius: 8px;
    font-weight: 700;
}

.val-pill.accent {
    background: #eff6ff;
    color: var(--accent);
}

.val-pill.danger {
    background: #fee2e2;
    color: var(--danger);
}

.val-pill.success {
    background: #dcfce7;
    color: var(--success);
}

.compare-footer {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.summary-card {
    padding: 25px;
    border-radius: 16px;
    border: 2px solid var(--border-color);
}

.summary-card h4 {
    margin: 0 0 15px 0;
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.card-danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.card-danger h4 {
    color: var(--danger);
}

.card-success {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.card-success h4 {
    color: var(--success);
}

/* ROZWIĄZANIE DLA MOBILE - UKŁAD KARTOWY */
@media (max-width: 768px) {
    .compare-header { padding: 25px 20px; }
    .table-wrapper { padding: 0 15px; }
    .compare-footer { grid-template-columns: 1fr; padding: 20px 15px; gap: 20px; }
    
    .compare-table, .compare-table tbody, .compare-table tr, .compare-table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }
    
    .compare-table thead {
        display: none;
    }
    
    .compare-table tr {
        margin-bottom: 20px;
        border: 1px solid var(--border-color);
        border-radius: 16px;
        overflow: hidden;
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    }
    
    .compare-table td {
        text-align: left;
        padding: 15px 20px;
        border-bottom: 1px solid #f1f5f9;
    }
    
    .compare-table td:last-child {
        border-bottom: none;
    }
    
    .compare-table td.param-name {
        background: var(--bg-light);
        font-size: 16px;
        border-bottom: 2px solid var(--border-color);
    }
    
    .compare-table td:nth-child(2)::before {
        content: "Koszt jednorazowy / roczny:";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: #64748b;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table td:nth-child(3)::before {
        content: "Skumulowany koszt (15 lat):";
        display: block;
        font-weight: 700;
        margin-bottom: 6px;
        color: var(--danger);
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .compare-table tr:hover td {
        background: inherit;
    }
    
    .compare-table td.param-name:hover {
        background: var(--bg-light);
    }
}
</style>

<div class="premium-compare" id="compare-app-costs">
    <div class="compare-header">
        <h2>Ile realnie możesz stracić? Wyliczenia w perspektywie czasu</h2>
        <p>Błędy w instalacji podłogowej należą do najtrudniejszych i najdroższych do naprawienia. Gdy jastrych (wylewka) zastygnie, każda zmiana wiąże się z kuciem podłóg, wynoszeniem gruzu i układaniem wszystkiego od nowa. To koszt, który w przypadku domu 150 m² potrafi sięgnąć <strong>15 000–25 000 zł</strong>. Policzmy jednak straty w perspektywie 15 lat, nawet jeśli nie dojdzie do fizycznej przebudowy. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Wyliczenia przygotowane przez ekspertów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="table-wrapper">
        <table class="compare-table">
            <thead>
                <tr>
                    <th class="col-param">Rodzaj straty</th>
                    <th class="col-annual">Koszt jednorazowy / roczny</th>
                    <th class="col-total">Skumulowany koszt (15 lat)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="param-name"><span class="icon">🛒</span> Nadmiar materiału (rura, obejmy, rozdzielacz)</td>
                    <td>2 000 – 3 500 zł</td>
                    <td><span class="val-pill danger">2 000 – 3 500 zł</span> (jednorazowo)</td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚡</span> Wyższe rachunki dla pompy ciepła (spadek COP)</td>
                    <td>1 000 – 1 500 zł/rok</td>
                    <td><span class="val-pill danger">15 000 – 22 500 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🔥</span> Wyższe rachunki dla kotła (niższa sprawność)</td>
                    <td>800 – 1 200 zł/rok</td>
                    <td><span class="val-pill danger">12 000 – 18 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">⚙️</span> Dodatkowy pobór mocy pompy obiegowej</td>
                    <td>100 – 150 zł/rok</td>
                    <td><span class="val-pill danger">1 500 – 2 250 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🌡️</span> Brak podziału na strefy – przegrzewanie</td>
                    <td>500 – 1 000 zł/rok</td>
                    <td><span class="val-pill danger">7 500 – 15 000 zł</span></td>
                </tr>
                <tr>
                    <td class="param-name"><span class="icon">🛠️</span> Potencjalny remont wylewki (wykrycie błędu)</td>
                    <td>15 000 – 25 000 zł</td>
                    <td><span class="val-pill danger">15 000 – 25 000 zł</span> (jednorazowo)</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="compare-footer">
        <div class="summary-card card-danger">
            <h4>📉 Koszt zaniechania</h4>
            <p>Łączny potencjalny koszt błędów (bez remontu) dla pompy ciepła to <strong>ok. 26 000 – 43 000 zł</strong> w perspektywie 15 lat. Jeśli wada wymusi kucie i wymianę instalacji (z remontem), koszty rosną do drastycznych <strong>40 000 – 65 000 zł</strong>.</p>
        </div>
        
        <div class="summary-card card-success">
            <h4>💡 Inwestycja w pewność</h4>
            <p>Koszt profesjonalnego projektu ogrzewania podłogowego z obliczeniami OZC to zaledwie <strong>1 500 – 2 500 zł</strong>. Projekt ten nie zwraca się w latach – <strong style="color: var(--success);">zwraca się w momencie zakupu materiałów</strong>, zapobiegając ich przewymiarowaniu.</p>
        </div>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x3e4a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x63\x6f\x6d\x70\x61\x72\x65\x2d\x61\x70\x70\x2d\x63\x6f\x73\x74\x73','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x3e4a[12]](_0x3e4a[11],function(){var _0x1a2b=window[_0x3e4a[1]][_0x3e4a[0]];var _0x5c6d=[_0x3e4a[2],_0x3e4a[3],_0x3e4a[4],_0x3e4a[5],_0x3e4a[6]];if(!_0x5c6d[_0x3e4a[7]](_0x1a2b)){document[_0x3e4a[10]](_0x3e4a[8])[_0x3e4a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro { max-width: 1150px; margin: 40px auto 10px auto; text-align: center; padding: 0 20px; }
.calc-intro h2 { font-size: 28px; font-weight: 900; color: var(--primary); margin-bottom: 15px; }
.calc-intro p { font-size: 16px; color: #475569; line-height: 1.6; max-width: 800px; margin: 0 auto; }

/* KONTENER GŁÓWNY */
.screed-calc { max-width: 1150px; margin: 30px auto; font-family: 'Inter', -apple-system, sans-serif; background: #ffffff; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1); overflow: hidden; color: var(--primary); }
.calc-grid { display: grid; grid-template-columns: 1.2fr 1fr; }

/* LEWA STRONA - KONFIGURACJA */
.config-side { padding: 40px; background: #ffffff; }
.section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; color: #94a3b8; letter-spacing: 1.2px; margin-bottom: 20px; display: block; }

.type-selector { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 30px; }
.type-btn { padding: 14px 8px; border: 2px solid #cbd5e1; border-radius: 12px; cursor: pointer; text-align: center; font-weight: 700; font-size: 12px; color: #475569; background: #fff; transition: all 0.2s; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.type-btn span { margin-top: 4px; }
.type-btn.active { border-color: var(--accent); background: #eff6ff; color: var(--accent); box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1); }

.input-wrap { margin-bottom: 25px; }
.input-label-row { display: flex; justify-content: space-between; margin-bottom: 8px; align-items: center; }
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge { background: #f1f5f9; padding: 4px 12px; border-radius: 8px; font-weight: 800; color: var(--accent); font-size: 14px; }

input[type=range] { width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px; }
input[type=range]::-webkit-slider-thumb { appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer; }

/* PRAWA STRONA - WYNIKI */
.result-side { padding: 40px; background: var(--bg-light); border-left: 1px solid #f1f5f9; display: flex; flex-direction: column; justify-content: center; }
.main-score-box { background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--danger); transition: 0.3s; }
.score-num { font-size: 42px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; color: var(--danger); }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg { margin-top: 15px; padding: 12px; border-radius: 10px; font-size: 13px; font-weight: 600; display: block; background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; line-height: 1.4; text-align: center; }

.tech-grid { background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 16px; }
.tech-item { display: flex; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid #1e293b; align-items: center; }
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; line-height: 1.4; padding-right: 15px; }
.tech-item strong { font-size: 16px; text-align: right; white-space: nowrap; }

/* STOPKA */
.footer-cta { margin: 0 40px 40px 40px; padding: 30px; background: #eff6ff; border-radius: 20px; border-left: 6px solid var(--accent); display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.cta-text-side { max-width: 550px; }
.cta-buttons-stack { display: flex; flex-direction: column; gap: 12px; min-width: 280px; }
.cta-btn { display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer; }
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

/* WERSJA TABLET / MAŁY LAPTOP */
@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}

/* POPRAWKI DLA WĄSKICH SMARTFONÓW (poniżej 600px) */
@media (max-width: 600px) {
    .config-side, .result-side { 
        padding: 25px 20px; 
    }
    .type-selector { 
        grid-template-columns: 1fr; 
        gap: 10px;
    }
    .score-num { 
        font-size: 36px; 
    }
    .tech-item { 
        flex-direction: column; 
        align-items: flex-start; 
        gap: 6px; 
    }
    .tech-item strong { 
        font-size: 18px; 
        text-align: left; 
    }
    .calc-intro h2 {
        font-size: 24px; 
    }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator Ukrytych Kosztów Podłogówki</h2>
    <p>Sprawdź, czy Twoja podłoga będzie efektywnie oddawać ciepło! Autorskie narzędzie stworzone przez inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz, w jaką pułapkę wpada Twój instalator robiący ogrzewanie &#8222;na oko&#8221;, a algorytm wyliczy straty.</p>
</div>

<div class="screed-calc" id="screed-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Błąd instalatora (&#8222;na oko&#8221;)</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-dense">WSZĘDZIE GĘSTO<span style="font-size:10px; font-weight:400">Strata materiału + Taktowanie</span></div>
                <div class="type-btn" id="btn-sparse">WSZĘDZIE RZADKO<span style="font-size:10px; font-weight:400">Drastyczny spadek COP</span></div>
            </div>

            <span class="section-title">2. Główne źródło ciepła</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-heatpump">POMPA CIEPŁA<span style="font-size:10px; font-weight:400">Wrażliwa na błędy (COP)</span></div>
                <div class="type-btn" id="btn-gas">KOCIOŁ GAZOWY<span style="font-size:10px; font-weight:400">Kocioł kondensacyjny</span></div>
            </div>

            <span class="section-title">3. Parametry domu</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia ogrzewana</label><span class="val-badge"><span id="v-area">150</span> m²</span></div>
                <input type="range" id="area" min="50" max="300" step="5" value="150">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Cena rury (za 1 metr)</label><span class="val-badge"><span id="v-price">5.00</span> zł</span></div>
                <input type="range" id="price" min="2.0" max="10.0" step="0.5" value="5.0">
            </div>

            <div class="input-wrap" style="margin-bottom: 0;">
                <div class="input-label-row"><label>Czas eksploatacji</label><span class="val-badge"><span id="v-years">15</span> lat</span></div>
                <input type="range" id="years" min="5" max="30" step="1" value="15">
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Szacowana strata finansowa (<span id="label-years-main">15</span> lat)</span>
                <span class="score-num"><span id="resTotalLoss">&#8212;</span> zł</span>
                <div id="risk-msg">To koszty, których unikniesz inwestując w projekt!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span id="label-pipe-error">Zbędny materiał:</span><strong id="resExtraPipe">&#8212;</strong></div>
                <div class="tech-item"><span id="label-mini-mat">Straty na zakupie materiałów:</span><strong id="resMaterialLoss" style="color:#fbbf24">&#8212;</strong></div>
                <div class="tech-item"><span id="label-op-error">Wzrost kosztów (rocznie):</span><strong id="resAnnualLoss">&#8212;</strong></div>
                <div class="tech-item"><span>Straty w rachunkach przez <span id="label-years-mini">15</span> lat:</span><strong id="resOpLoss" style="color:#f87171">&#8212;</strong></div>
            </div>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Projekt się po prostu opłaca</h3>
            <p style="margin:0; font-size:14px; color:#475569" id="footer-desc">Niezależnie od tego, czy instalator &#8222;przedobrzy&#8221; z ilością rury, czy spróbuje &#8222;przyoszczędzić&#8221; – finalnie to Ty płacisz za to w rachunkach przez lata. Zleć nam obliczenia i śpij spokojnie.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
!function(){document.addEventListener("DOMContentLoaded",function(){var e=window.location.hostname,t=["\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c","\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74","\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31",""];if(-1===t.indexOf(e)){var n=document.getElementById("screed-calc-app");return n&&(n.innerHTML=decodeURIComponent("%3Cdiv%20style%3D%22padding%3A%2060px%2020px%3B%20text-align%3A%20center%3B%20background%3A%20%23fee2e2%3B%20color%3A%20%23dc2626%3B%20border-radius%3A%2024px%3B%20font-family%3A%20sans-serif%3B%22%3E%3Cspan%20style%3D%22font-size%3A%2048px%3B%20display%3A%20block%3B%20margin-bottom%3A%2015px%3B%22%3E%F0%9F%94%92%3C%2Fspan%3E%3Ch3%20style%3D%22margin-top%3A0%3B%20font-size%3A%2024px%3B%20color%3A%20%23dc2626%3B%22%3ENarz%C4%99dzie%20chronione%3C%2Fh3%3E%3Cp%20style%3D%22font-size%3A%2016px%3B%20margin-bottom%3A%2025px%3B%22%3ETen%20kalkulator%20jest%20w%C5%82asno%C5%9Bci%C4%85%20serwisu%20%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22color%3A%20%23dc2626%3B%20font-weight%3A%20bold%3B%20text-decoration%3A%20underline%3B%22%3EProjekt-Ogrzewania.pl%3C%2Fa%3E%3C%2Fp%3E%3Ca%20href%3D%22https%3A%2F%2Fprojekt-ogrzewania.pl%2F%22%20style%3D%22display%3A%20inline-block%3B%20padding%3A%2014px%2028px%3B%20background%3A%20%23dc2626%3B%20color%3A%20%23ffffff%3B%20text-decoration%3A%20none%3B%20border-radius%3A%2012px%3B%20font-weight%3A%20800%3B%22%3EPRZEJD%C5%B9%20DO%20ORYGINA%C5%81U%3C%2Fa%3E%3C%2Fdiv%3E")),void 0}var a="heatpump",o="dense";function i(e){return e.toLocaleString("pl-PL")+" z\u0142"}function c(){var e=parseFloat(document.getElementById("area").value),t=parseFloat(document.getElementById("price").value),n=parseInt(document.getElementById("years").value);document.getElementById("v-area").innerText=e,document.getElementById("v-price").innerText=t.toFixed(2),document.getElementById("v-years").innerText=n,document.getElementById("label-years-main").innerText=n,document.getElementById("label-years-mini").innerText=n;var c=0,r=0,d=0,l=30*e,s=40*e;"dense"===o?(document.getElementById("label-pipe-error").innerText="Zb\u0119dny materia\u0142 (rura u\u0142o\u017cona zbyt g\u0119sto):",document.getElementById("label-mini-mat").innerText="Straty na zakupie materia\u0142\u00f3w:",c=2.5*e,r=c*t+1.5*e+(e>100?400:200),"heatpump"===a?(document.getElementById("label-op-error").innerText="Spadek efektywno\u015bci (taktowanie pompy/obieg):",d=.12*l+.8*e):(document.getElementById("label-op-error").innerText="Wy\u017csze zu\u017cycie pr\u0105du (pompa obiegowa 3. bieg):",d=.8*e),document.getElementById("risk-msg").innerText="Wyrzuci\u0142e\u015b pieni\u0105dze na materia\u0142, a system dzia\u0142a ma\u0142o stabilnie!"):(document.getElementById("label-pipe-error").innerText="Brakuj\u0105cy materia\u0142 (ryzyko niedogrzania):",document.getElementById("label-mini-mat").innerText="Zaoszcz\u0119dzono na materiale:",c=0,r=0,"heatpump"===a?(document.getElementById("label-op-error").innerText="Wzrost rachunk\u00f3w (wymagane 40-45\xb0C na zasilaniu):",d=.25*l):(document.getElementById("label-op-error").innerText="Spadek kondensacji (wymagane wy\u017csze temp.):",d=.12*s),document.getElementById("risk-msg").innerText="Zaoszcz\u0119dzi\u0142e\u015b na rurkach, stracisz krocie na rachunkach!");var u=d*n,m=r+u;document.getElementById("resExtraPipe").innerText=("dense"===o?"+":"0 ")+c.toFixed(0)+" m",document.getElementById("resAnnualLoss").innerText=i(Math.round(d))+" / rok","sparse"===o?(document.getElementById("resMaterialLoss").innerText="0 z\u0142",document.getElementById("resMaterialLoss").style.color="#94a3b8"):(document.getElementById("resMaterialLoss").innerText=i(Math.round(r)),document.getElementById("resMaterialLoss").style.color="#fbbf24"),document.getElementById("resOpLoss").innerText=i(Math.round(u)),document.getElementById("resTotalLoss").innerText=Math.round(m).toLocaleString("pl-PL")}var r=document.getElementById("btn-dense"),d=document.getElementById("btn-sparse"),l=document.getElementById("btn-heatpump"),s=document.getElementById("btn-gas");r&&d&&(r.addEventListener("click",function(){o="dense",d.classList.remove("active"),r.classList.add("active"),c()}),d.addEventListener("click",function(){o="sparse",r.classList.remove("active"),d.classList.add("active"),c()})),l&&s&&(l.addEventListener("click",function(){a="heatpump",s.classList.remove("active"),l.classList.add("active"),c()}),s.addEventListener("click",function(){a="gas",l.classList.remove("active"),s.classList.add("active"),c()})),["area","price","years"].forEach(function(e){var t=document.getElementById(e);t&&t.addEventListener("input",c)}),c()})}();
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-questions {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.qa-header {
    text-align: center;
    margin-bottom: 40px;
}

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.qa-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.answers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions" id="qa-app-installer">
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz."
        }
      }, {
        "@type": "Question",
        "name": "Jaka będzie maksymalna długość jednej pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna."
        }
      }, {
        "@type": "Question",
        "name": "Jak zamierza Pan wykonać dylatacje?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)."
        }
      }, {
        "@type": "Question",
        "name": "W jaki sposób zrównoważy Pan instalację hydraulicznie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo."
        }
      }, {
        "@type": "Question",
        "name": "Czy przeprowadzimy próbę szczelności na mokro czy na sucho?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła."
        }
      }]
    }
    </script>
    <div class="qa-header">
        <h2>🏗️ 5 pytań, które powinien zadać inwestor.</h2>
        <p>Aby uniknąć pułapek opisanych wcześniej, musisz zweryfikować, z kim masz do czynienia. Oto lista pytań, które pomogą ocenić, czy instalator podchodzi do tematu profesjonalnie. <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Pytania rekrutacyjne przygotowane przez inżynierów Projekt-Ogrzewania.pl</a>.</p>
    </div>

    <div class="qa-list">
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> „Na jakiej podstawie dobierze Pan rozstaw rur i długość pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Panie, u każdego daję co 10 cm i jest git, nikt nie narzekał”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Potrzebuję projektu z obliczonym OZC (zapotrzebowaniem na ciepło) dla każdego pomieszczenia. Inaczej rozłożymy rury w łazience, a inaczej w sypialni, żeby nie przegrzewać wnętrz”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> „Jaka będzie maksymalna długość jednej pętli?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Ile wyjdzie, tyle wyjdzie, najwyżej mocniejszą pompę się wstawi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Staram się nie przekraczać 100–120 metrów dla rury 16 mm. Zbyt długie pętle generują duże opory i podłoga na końcu może być zimna”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> „Jak zamierza Pan wykonać dylatacje?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Wylewka sama zapracuje, nie ma co dzielić podłogi”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Dylatacje muszą być w progach, przy dużych powierzchniach (powyżej 30-40 m²) i tam, gdzie pomieszczenia mają kształt litery L. Rury przechodzące przez dylatacje muszę puścić w otulinie (peszlu)”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> „W jaki sposób zrównoważy Pan instalację hydraulicznie?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Samo się wyrówna po odpaleniu pompy, najwyżej się pokręci na rozdzielaczu”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Zrobię nastawy wstępne na rotametrach w rozdzielaczu, zgodnie z projektem. Każda pętla ma inny opór, więc muszę wyregulować przepływy, żeby wszędzie grzało tak samo”.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> „Czy przeprowadzimy próbę szczelności na mokro czy na sucho?”</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Zła odpowiedź</div>
                    <p class="answer-text">„Puszczę wodę, jak skończę, i zobaczymy czy kapie”.</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Dobra odpowiedź</div>
                    <p class="answer-text">„Próba musi odbyć się przed zalaniem jastrychu, najlepiej sprężonym powietrzem lub wodą pod ciśnieniem (np. 6 bar). Podczas zalewania rury muszą być pod ciśnieniem, żeby widzieć, czy ekipa od wylewek czegoś nie uszkodziła”.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🚩</span>
            <h3>Czerwone flagi (Uciekaj, jeśli to usłyszysz!)</h3>
        </div>
        <ul class="flags-list">
            <li>„OZC? A po co to komu? Ja na oko widzę, że tu trzeba gęsto kłaść.”</li>
            <li>„Projektant tylko bierze kasę, a ja to w rękach miałem setki razy.”</li>
            <li>„Pompę ciepła ustawimy na 45 stopni i na pewno będzie ciepło.” (Uwaga: to zabójstwo dla Twojego portfela!)</li>
        </ul>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x5c8f=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x71\x61\x2d\x61\x70\x70\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x65\x72','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x5c8f[12]](_0x5c8f[11],function(){var _0x2b3c=window[_0x5c8f[1]][_0x5c8f[0]];var _0x4d1e=[_0x5c8f[2],_0x5c8f[3],_0x5c8f[4],_0x5c8f[5],_0x5c8f[6]];if(!_0x4d1e[_0x5c8f[7]](_0x2b3c)){document[_0x5c8f[10]](_0x5c8f[8])[_0x5c8f[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<h2 class="wp-block-heading">Podsumowanie – projekt to nie koszt, to inwestycja.</h2>



<p class="wp-block-paragraph">Budowa domu to jeden z największych wydatków w życiu. Na etapie wykończenia, gdy kasa się kończy, a termin goni, łatwo ulec pokusie uproszczeń. Jednak&nbsp;<strong>ogrzewanie podłogowe to instalacja, która będzie z Tobą na co najmniej 30 lat</strong>. Błędy popełnione na etapie układania rur będą generować straty każdego miesiąca, przez każdą zimę, przez cały ten okres.</p>



<p class="wp-block-paragraph"><strong>Projekt ogrzewania podłogowego z obliczeniami to nie koszt – to inwestycja, która zwraca się zazwyczaj już w momencie zakupu materiałów u hurtownika</strong>&nbsp;(dzięki optymalizacji ilości rury) i w&nbsp;<strong>pierwszym sezonie grzewczym</strong>&nbsp;(dzięki niższym rachunkom). To także jedyny sposób, aby:</p>



<ul class="wp-block-list">
<li>uniknąć kosztownego kucia wylewki,</li>



<li>zapewnić równomierny komfort cieplny w całym domu,</li>



<li>umożliwić sprawne sterowanie strefowe,</li>



<li>spełnić wymogi gwarancyjne producentów pomp ciepła.</li>
</ul>



<p class="wp-block-paragraph">Odpowiedź na pytanie postawione w tytule jest więc jednoznaczna:&nbsp;<strong>projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach</strong>&nbsp;to różnica rzędu&nbsp;<strong>kilkudziesięciu tysięcy złotych</strong>&nbsp;w perspektywie 15–20 lat, nie wspominając o codziennym komforcie, który przy systemie intuicyjnie ułożonym jest zwykle daleki od ideału.</p>



<p class="wp-block-paragraph">Nie daj się przekonać, że „wystarczy na oko”. Ogrzewanie podłogowe to system inżynieryjny – wymaga obliczeń, wiedzy i precyzji. Profesjonalny projekt to jedyny sposób, aby spać spokojnie, nie martwiąc się o zimne stopy ani o rachunki, które wymykają się spod kontroli.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">Projekt ogrzewania podłogowego „z głowy” vs. projekt z obliczeniami – ile możesz stracić na błędach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Grubość wylewki betonowej na ogrzewanie podłogowe.</title>
		<link>https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 14 Mar 2026 14:21:33 +0000</pubDate>
				<category><![CDATA[Błędy wykonawcze]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Posadzki i wylewki]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[opór cieplny]]></category>
		<category><![CDATA[plastyfikator do betonu]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[posadzki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3831</guid>

					<description><![CDATA[<p>Decyzja o montażu „podłogówki” to zaledwie początek wyzwań, z jakimi musisz się zmierzyć podczas budowy lub remontu domu. Jednym z kluczowych parametrów, który bezpośrednio wpłynie na sprawność instalacji, wysokość rachunków za energię oraz trwałość samej posadzki, jest odpowiednia grubość wylewki betonowej na ogrzewanie podłogowe. Zbyt cienka warstwa to ogromne ryzyko pęknięć i nierównomiernego rozkładu temperatur (tzw. efekt „zebry”). Z kolei zbyt masywny jastrych drastycznie zwiększy bezwładność cieplną systemu, sprawiając, że dom będzie nagrzewał się wolno, a koszty eksploatacji niepotrzebnie wzrosną. W tym artykule rozkładamy na czynniki pierwsze fizykę przenikania ciepła, tłumaczymy obowiązujące normy i podpowiadamy, jak uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</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-panel: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #f59e0b; /* Pomarańczowy dla mocnego akcentu */
    --rk-intro-gray: #475569;
    --rk-intro-gray-light: #f1f5f9;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 16px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* Hero Header */
.rk-intro-header {
    background: var(--rk-intro-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-intro-icon-main {
    width: 60px;
    height: 60px;
    background: rgba(2, 132, 199, 0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #38bdf8;
    flex-shrink: 0;
}

.rk-intro-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    color: #ffffff;
    letter-spacing: -0.5px;
    line-height: 1.3;
}

/* Interactive Tabs */
.rk-intro-tabs {
    display: flex;
    background: var(--rk-intro-gray-light);
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-intro-tab-icon {
    display: flex;
    align-items: center;
}

/* Content Area */
.rk-intro-content {
    background: #ffffff;
    position: relative;
}

.rk-intro-panel {
    display: none;
    padding: 40px 45px;
}

.rk-intro-panel.is-visible {
    display: block;
}

/* Quick Answer Box */
.rk-qa-box {
    background: var(--rk-intro-blue-light);
    border-left: 6px solid var(--rk-intro-blue);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 25px;
}

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

.rk-qa-text {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    line-height: 1.4;
    margin: 0;
}

/* Typography & Lists */
.rk-intro-text {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-intro-gray);
    margin: 0 0 15px 0;
}

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

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

.rk-roadmap-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px;
    background: var(--rk-intro-gray-light);
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
}

.rk-roadmap-icon {
    color: var(--rk-intro-accent);
    margin-top: 2px;
}

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

@media (max-width: 768px) {
    .rk-intro-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-intro-tabs {
        flex-direction: column;
    }
    .rk-intro-tab-btn {
        padding: 15px;
        border-bottom: none;
        border-left: 3px solid transparent;
        justify-content: flex-start;
    }
    .rk-intro-tab-btn.is-active {
        border-bottom-color: transparent;
        border-left-color: var(--rk-intro-blue);
    }
    .rk-intro-panel {
        padding: 30px 20px;
    }
    .rk-roadmap-grid {
        grid-template-columns: 1fr;
    }
    .rk-qa-text {
        font-size: 18px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Grubość wylewki betonowej na ogrzewanie podłogowe – Kompendium Wiedzy",
    "description": "Zrozum kluczowy parametr decydujący o wydajności podłogówki. Szybka odpowiedź o normatywnej grubości wylewki, oporach cieplnych i narzędziach interaktywnych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wstep",
    "name": "Normatywne wytyczne grubości wylewek betonowych na podłogówkę",
    "description": "Zestawienie optymalnych i bezpiecznych wartości grubości jastrychu nad rurami grzewczymi według PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka na podłogówkę 16mm",
      "otulina betonowa rury grzewczej",
      "minimalna grubość jastrychu ogrzewanie",
      "opór cieplny wylewki kalkulator"
    ],
    "measurementTechnique": "Weryfikacja parametrów termoizolacyjnych i wytrzymałości mechanicznej na podstawie norm PN-EN 1264 oraz PN-EN 13813.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna grubość całkowita: 6–8 cm",
        "Czysta otulina nad rurką 16 mm: od 3,0 do 4,5 cm",
        "Zgodność z normą PN-EN 1264 dla bezwładności cieplnej"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wstep",
    "name": "Nawigator Opracowania Inżynierskiego",
    "description": "Interaktywny moduł wprowadzający umożliwiający błyskawiczne przejście do kluczowej wiedzy oraz informujący o zaawansowanych symulatorach dostępnych w artykule.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrapper">
    <div class="rk-intro-header">
        <div class="rk-intro-icon-main">
            <svg width="32" height="32" 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>
        <h2>Grubość wylewki betonowej na ogrzewanie podłogowe</h2>
    </div>

    <div class="rk-intro-content">
        
        <div class="rk-intro-tabs">
            <button class="rk-intro-tab-btn is-active" id="rkIntroBtn1" onclick="rkSwitchIntro(1)">
                <div class="rk-intro-tab-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                </div>
                Szybka Odpowiedź
            </button>
            <button class="rk-intro-tab-btn" id="rkIntroBtn2" onclick="rkSwitchIntro(2)">
                <div class="rk-intro-tab-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                Normy i Fizyka
            </button>
            <button class="rk-intro-tab-btn" id="rkIntroBtn3" onclick="rkSwitchIntro(3)">
                <div class="rk-intro-tab-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                Narzędzia w Artykule
            </button>
        </div>

        <div class="rk-intro-panel is-visible" id="rkIntroPanel1">
            <div class="rk-qa-box">
                <div class="rk-qa-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Wartość optymalna
                </div>
                <p class="rk-qa-text">Optymalna, całkowita grubość wylewki cementowej w systemie mokrym wynosi <strong>6–8 cm</strong>. Przy rurze 16 mm gwarantuje to <strong>od 3,0 do 4,5 cm czystej otuliny</strong> betonowej nad instalacją.</p>
            </div>
            <p class="rk-intro-text">
                Grubość wylewki betonowej na ogrzewanie podłogowe to kluczowy parametr konstrukcyjny i termodynamiczny. Określa on odległość od styropianu do lica surowego jastrychu, decydując bezpośrednio o tym, jak szybko ciepło trafi do pomieszczenia i czy posadzka wytrzyma codzienne obciążenia bez pęknięć.
            </p>
        </div>

        <div class="rk-intro-panel" id="rkIntroPanel2">
            <p class="rk-intro-text">
                Wymiar rzędu 6-8 cm to nie wymysł wykonawców, lecz ścisły kompromis inżynierski. Taka grubość <strong>gwarantuje pełną zgodność z normą europejską PN-EN 1264</strong>, która reguluje dopuszczalny opór cieplny systemów płaszczyznowych.
            </p>
            <p class="rk-intro-text">
                Wybranie optymalnej masy betonu eliminuje ryzyko pękania warstwy wykończeniowej pod wpływem naprężeń termicznych, a jednocześnie minimalizuje <strong>bezwładność cieplną układu</strong>. Zbyt gruby jastrych obciąży pompę ciepła, a zbyt cienki – nie przekaże energii równomiernie (tzw. zebra termiczna).
            </p>
        </div>

        <div class="rk-intro-panel" id="rkIntroPanel3">
            <p class="rk-intro-text"><strong>W dalszej części tego kompendium udostępniam autorskie symulatory online.</strong> Dowiesz się z nich dokładnie, na czym polega fizyka wylewki betonowej. Czekają na Ciebie interaktywne moduły:</p>
            
            <div class="rk-roadmap-grid">
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <p class="rk-roadmap-desc">Kalkulator oporu cieplnego i wagi masy jastrychu.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <p class="rk-roadmap-desc">Symulator czasu nagrzewania w zależności od rur.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <p class="rk-roadmap-desc">Komparator właściwości anhydrytu i cementu.</p>
                </div>
                <div class="rk-roadmap-item">
                    <div class="rk-roadmap-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    </div>
                    <p class="rk-roadmap-desc">Kalkulator ryzyka pęknięć dla cienkich wylewek.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkSwitchIntro(tabId) {
        // Zabezpieczony selektor, by uniknac konfliktu (bez &&)
        var btns = document.querySelectorAll('.rk-intro-tab-btn');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        var panels = document.querySelectorAll('.rk-intro-panel');
        for (var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        var actBtn = document.getElementById('rkIntroBtn' + tabId);
        var actPnl = document.getElementById('rkIntroPanel' + tabId);
        
        if (actBtn) {
            actBtn.classList.add('is-active');
        }
        if (actPnl) {
            actPnl.classList.add('is-visible');
        }
    }
</script>



<style>
:root {
    --rk-min-dark: #0f172a;
    --rk-min-panel: #1e293b;
    --rk-min-blue: #0284c7;
    --rk-min-green: #10b981;
    --rk-min-green-light: #dcfce7;
    --rk-min-red: #ef4444;
    --rk-min-red-light: #fef2f2;
    --rk-min-orange: #f97316;
    --rk-min-orange-light: #ffedd5;
    --rk-min-gray: #64748b;
    --rk-min-bg: #ffffff;
    --rk-min-border: #e2e8f0;
}

.rk-min-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-min-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-min-border);
    overflow: hidden;
}

/* Header */
.rk-min-header {
    background: linear-gradient(135deg, var(--rk-min-dark) 0%, var(--rk-min-panel) 100%);
    padding: 35px 45px;
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-min-header::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-min-red);
    filter: blur(80px);
    opacity: 0.2;
}

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

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

/* App Interface */
.rk-min-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-min-border);
}

/* Controls */
.rk-min-controls {
    padding: 35px 45px;
    background: #ffffff;
    border-right: 1px solid var(--rk-min-border);
}

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

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

.rk-min-badge {
    background: var(--rk-min-blue);
    color: #ffffff;
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 800;
    transition: background-color 0.3s;
}

.rk-min-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: var(--rk-min-border);
    border-radius: 4px;
    outline: none;
    margin: 15px 0 25px 0;
}

.rk-min-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-min-blue);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    transition: transform 0.1s, background-color 0.3s;
    border: 3px solid #ffffff;
}

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

.rk-min-stats {
    background: var(--rk-min-gray);
    color: #ffffff;
    padding: 15px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
}

.rk-min-stats-val {
    font-size: 18px;
    font-weight: 900;
    color: #cbd5e1;
}

/* Results Display */
.rk-min-display {
    padding: 35px 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

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

.rk-min-icon {
    width: 46px;
    height: 46px;
    min-width: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    transition: all 0.3s;
}

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

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

.rk-min-card-status {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-min-dark);
}

/* Educational Content */
.rk-min-content {
    padding: 35px 45px;
}

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

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

.rk-min-list {
    margin: 0 0 20px 0;
    padding-left: 20px;
    color: #475569;
    font-size: 15px;
    line-height: 1.6;
}

.rk-min-list li {
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-min-alert {
    background: var(--rk-min-red-light);
    border-left: 4px solid var(--rk-min-red);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 20px;
}

.rk-min-alert strong {
    color: var(--rk-min-red);
}

@media (max-width: 768px) {
    .rk-min-app { grid-template-columns: 1fr; }
    .rk-min-controls { border-right: none; border-bottom: 1px solid var(--rk-min-border); }
    .rk-min-header, .rk-min-controls, .rk-min-display, .rk-min-content { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-min-grubosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jaka jest minimalna grubość wylewki betonowej na ogrzewanie podłogowe?",
    "description": "Zrozum zagrożenia wynikające ze zbyt cienkiej wylewki. Symulator ryzyka uszkodzeń strukturalnych i zjawiska zebry termicznej według normy PN-EN 13813.",
    "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-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-min-grubosc",
    "name": "Parametry krytyczne minimalnej grubości wylewki",
    "description": "Zestawienie technologicznych minimów grubości jastrychu (otulina) oraz fizycznych i termicznych konsekwencji ich nieprzestrzegania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "minimalna grubość wylewki podłogowej",
      "zebra termiczna ogrzewanie podłogowe",
      "pękająca wylewka betonowa",
      "klawiszowanie płyt jastrychu",
      "otulina rury grzewczej 3 cm"
    ],
    "measurementTechnique": "Weryfikacja grubości na podstawie normy PN-EN 13813 (klasa wytrzymałości F4) oraz dystrybucji ciepła w płaszczyźnie poziomej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna całkowita grubość: 6,0 cm",
        "Minimalna otulina nad rurą 16 mm: 3,0 cm",
        "Ryzyka: pęknięcia powierzchniowe, zebra termiczna, klawiszowanie"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-min-grubosc",
    "name": "Symulator Ryzyka Cienkiej Wylewki",
    "description": "Narzędzie interaktywne ilustrujące utratę nośności i stabilności termicznej podłogi wraz ze zmniejszaniem się warstwy otuliny betonowej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-min-wrapper">
    <div class="rk-min-header">
        <h2>Dlaczego 6 cm to technologiczne minimum?</h2>
        <p>Zbyt cienki beton to katastrofa budowlana z opóźnionym zapłonem. Przesuń suwak i sprawdź, jak z każdym uciętym milimetrem beton traci wytrzymałość strukturalną i zdolność do równomiernego grzania.</p>
    </div>

    <div class="rk-min-app">
        <div class="rk-min-controls">
            <div class="rk-min-label-row">
                <div class="rk-min-label">Całkowita grubość jastrychu</div>
                <div class="rk-min-badge" id="rkMinValTotal">7.0 cm</div>
            </div>
            
            <input type="range" class="rk-min-slider" id="rkMinInpTotal" min="4.0" max="8.0" step="0.5" value="7.0" oninput="rkRunMinCalc()">
            
            <div style="display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; color: var(--rk-min-gray); margin-bottom: 20px;">
                <span>4.0 cm (Błąd)</span>
                <span>8.0 cm (Zapas)</span>
            </div>

            <div class="rk-min-stats">
                <span>Rzeczywista otulina nad rurą:</span>
                <span class="rk-min-stats-val" id="rkMinValCover">4.0 cm</span>
            </div>
        </div>

        <div class="rk-min-display">
            
            <div class="rk-min-card" id="rkCardStruct">
                <div class="rk-min-icon" id="rkIconStruct">
                    <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 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <div class="rk-min-card-content">
                    <div class="rk-min-card-title">Wytrzymałość Konstrukcyjna</div>
                    <div class="rk-min-card-status" id="rkStatStruct">Posadzka stabilna</div>
                </div>
            </div>

            <div class="rk-min-card" id="rkCardTherm">
                <div class="rk-min-icon" id="rkIconTherm">
                    <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 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-min-card-content">
                    <div class="rk-min-card-title">Rozkład Temperatur</div>
                    <div class="rk-min-card-status" id="rkStatTherm">Równomierne grzanie</div>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-min-content">
        <h3>Jaka jest minimalna grubość wylewki?</h3>
        <p>Minimalna całkowita grubość wylewki betonowej na ogrzewanie podłogowe wynosi <strong>6,0 cm</strong>, co przy zastosowaniu rury o średnicy 16 mm daje dokładnie <strong>3,0 cm czystej otuliny betonowej</strong> nad górną krawędzią rury grzewczej. Wymóg ten jest zgodny z normą PN-EN 13813 dla jastrychów cementowych o minimalnej klasie CT-C20-F4.</p>
        
        <p>Poniżej tej granicy wytrzymałość konstrukcyjna podłogi pływającej zostaje drastycznie naruszona. Beton o grubości mniejszej niż 30 mm nad rurą nie posiada odpowiedniej strefy do rozkładu naprężeń punktowych. Wytrzymałość na zginanie na poziomie 4 MPa (klasa F4) jest niewystarczająca, gdy siła uderzeniowa działa na tak cienki rdzeń. Przekroczenie stanów granicznych nośności skutkuje natychmiastowo:</p>
        
        <ul class="rk-min-list">
            <li>Głębokimi spękaniami powierzchniowymi wzdłuż tras rur,</li>
            <li>Odspajaniem się i pękaniem płytek ceramicznych,</li>
            <li>Powstaniem niebezpiecznego efektu klawiszowania płyt na stykach dylatacyjnych.</li>
        </ul>

        <div class="rk-min-alert">
            <strong>Zjawisko „zebry termicznej”</strong><br>
            Zbyt cienka wylewka generuje dodatkowy, bolesny w skutkach problem. Ciepło nie zdąży rozejść się bocznie w cienkiej masie betonu, zanim dotrze do powierzchni. W efekcie inwestor odczuwa na stopach naprzemienne pasy gorąca i zimna, co całkowicie rujnuje komfort i uniemożliwia prawidłową pracę samoregulacji.
        </div>
    </div>
</div>

<script>
    function rkRunMinCalc() {
        var inpTotal = document.getElementById('rkMinInpTotal');
        if(!inpTotal) return;

        var totalCm = parseFloat(inpTotal.value);
        var badgeTotal = document.getElementById('rkMinValTotal');
        
        // Zależność między grubością całkowitą a otuliną
        // (total - 3.0 bazowo)
        var coverCm = totalCm - 3.0;

        badgeTotal.innerText = totalCm.toFixed(1) + " cm";
        document.getElementById('rkMinValCover').innerText = coverCm.toFixed(1) + " cm";

        // Referencje do kart i ikon
        var cStruct = document.getElementById('rkCardStruct');
        var cTherm = document.getElementById('rkCardTherm');
        var iStruct = document.getElementById('rkIconStruct');
        var iTherm = document.getElementById('rkIconTherm');
        var sStruct = document.getElementById('rkStatStruct');
        var sTherm = document.getElementById('rkStatTherm');

        // Logika bez uzycia operatora "&&"
        if (totalCm >= 6.0) {
            // Stan bezpieczny (Normatywny)
            badgeTotal.style.backgroundColor = "var(--rk-min-blue)";
            
            cStruct.style.borderColor = "var(--rk-min-green)";
            cStruct.style.backgroundColor = "#ffffff";
            iStruct.style.backgroundColor = "var(--rk-min-green-light)";
            iStruct.style.color = "var(--rk-min-green)";
            sStruct.innerText = "Posadzka stabilna";
            sStruct.style.color = "var(--rk-min-green)";

            cTherm.style.borderColor = "var(--rk-min-blue)";
            cTherm.style.backgroundColor = "#ffffff";
            iTherm.style.backgroundColor = "var(--rk-min-blue-light)";
            iTherm.style.color = "var(--rk-min-blue)";
            sTherm.innerText = "Równomierne grzanie";
            sTherm.style.color = "var(--rk-min-blue)";
            
        } else {
            if (totalCm > 5.0) {
                // Stan ostrzegawczy
                badgeTotal.style.backgroundColor = "var(--rk-min-orange)";
                
                cStruct.style.borderColor = "var(--rk-min-orange)";
                cStruct.style.backgroundColor = "var(--rk-min-orange-light)";
                iStruct.style.backgroundColor = "#ffffff";
                iStruct.style.color = "var(--rk-min-orange)";
                sStruct.innerText = "Ryzyko mikropęknięć";
                sStruct.style.color = "var(--rk-min-orange)";

                cTherm.style.borderColor = "var(--rk-min-orange)";
                cTherm.style.backgroundColor = "var(--rk-min-orange-light)";
                iTherm.style.backgroundColor = "#ffffff";
                iTherm.style.color = "var(--rk-min-orange)";
                sTherm.innerText = "Zauważalna zebra termiczna";
                sTherm.style.color = "var(--rk-min-orange)";

            } else {
                // Stan krytyczny (Poniżej 5.0 cm całkowitej)
                badgeTotal.style.backgroundColor = "var(--rk-min-red)";
                
                cStruct.style.borderColor = "var(--rk-min-red)";
                cStruct.style.backgroundColor = "var(--rk-min-red-light)";
                iStruct.style.backgroundColor = "#ffffff";
                iStruct.style.color = "var(--rk-min-red)";
                sStruct.innerText = "KRYTYCZNE PĘKNIĘCIA";
                sStruct.style.color = "var(--rk-min-red)";

                cTherm.style.borderColor = "var(--rk-min-red)";
                cTherm.style.backgroundColor = "var(--rk-min-red-light)";
                iTherm.style.backgroundColor = "#ffffff";
                iTherm.style.color = "var(--rk-min-red)";
                sTherm.innerText = "EKSTREMALNA ZEBRA!";
                sTherm.style.color = "var(--rk-min-red)";
            }
        }
    }

    function rkInitMinApp() {
        rkRunMinCalc();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', rkInitMinApp);
    } else {
        rkInitMinApp();
    }
</script>



<style>
:root {
    --rk-max-dark: #0f172a;
    --rk-max-panel: #1e293b;
    --rk-max-blue: #0284c7;
    --rk-max-blue-light: #e0f2fe;
    --rk-max-red: #dc2626;
    --rk-max-red-light: #fef2f2;
    --rk-max-orange: #ea580c;
    --rk-max-orange-light: #ffedd5;
    --rk-max-green: #16a34a;
    --rk-max-gray: #64748b;
    --rk-max-bg: #ffffff;
    --rk-max-border: #e2e8f0;
}

.rk-max-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-max-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(220, 38, 38, 0.1);
    border: 1px solid var(--rk-max-border);
    overflow: hidden;
}

/* Header */
.rk-max-header {
    background: linear-gradient(135deg, var(--rk-max-dark) 0%, var(--rk-max-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
}

.rk-max-header::before {
    content: '';
    position: absolute;
    top: -50px;
    left: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-max-red);
    filter: blur(90px);
    opacity: 0.15;
}

.rk-max-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
}

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

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

/* Controls - Slider Area */
.rk-max-controls {
    padding: 35px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-max-border);
}

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

.rk-max-label-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-max-dark);
}

.rk-max-val-badge {
    background: var(--rk-max-blue);
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    transition: background-color 0.3s;
}

/* Custom Range Slider */
.rk-max-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 10px;
    background: var(--rk-max-border);
    border-radius: 5px;
    outline: none;
    margin: 10px 0 20px 0;
}

.rk-max-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-max-blue);
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s, background-color 0.3s;
    border: 3px solid #ffffff;
}

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

/* Results Grid */
.rk-max-results {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--rk-max-border);
}

.rk-max-card {
    background: #ffffff;
    padding: 30px 20px;
    text-align: center;
    transition: background-color 0.3s;
}

.rk-max-icon {
    width: 40px;
    height: 40px;
    margin: 0 auto 15px auto;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-max-blue-light);
    color: var(--rk-max-blue);
    transition: all 0.3s;
}

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

.rk-max-card-val {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-max-dark);
    line-height: 1.1;
    margin-bottom: 5px;
    transition: color 0.3s;
}

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

/* Explanation Content */
.rk-max-content {
    padding: 40px 50px;
}

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

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

.rk-max-warning-box {
    background: var(--rk-max-red-light);
    border-left: 4px solid var(--rk-max-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-max-warning-box h4 {
    color: var(--rk-max-red);
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-max-warning-box ul {
    margin: 0;
    padding-left: 20px;
    color: #7f1d1d;
    font-size: 15px;
    line-height: 1.6;
}

.rk-max-warning-box li {
    margin-bottom: 8px;
}
.rk-max-warning-box li:last-child {
    margin-bottom: 0;
}

@media (max-width: 768px) {
    .rk-max-header, .rk-max-controls, .rk-max-content { padding: 30px 20px; }
    .rk-max-results { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .rk-max-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-maxgrubosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jaka jest maksymalna grubość jastrychu cementowego przy podłogówce?",
    "description": "Analiza skutków wylania zbyt grubej warstwy betonu. Dowiedz się, dlaczego 10 cm wylewki drastycznie obniża COP pompy ciepła i wydłuża czas nagrzewania.",
    "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-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-maxgrubosc",
    "name": "Wpływ przewymiarowania grubości jastrychu na parametry instalacji",
    "description": "Zbiór danych wykazujący korelację między nadmierną grubością wylewki a spadkiem wydajności pompy ciepła (COP) oraz wzrostem oporu cieplnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna grubość wylewki",
      "spadek COP pompy ciepła",
      "zbyt gruba wylewka na podłogówkę",
      "opór cieplny grubego betonu",
      "czas nagrzewania grubej wylewki"
    ],
    "measurementTechnique": "Analiza oporów termicznych R oraz spadku sprawności pompy ciepła (COP) w funkcji wymuszonego wzrostu temperatury zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Opór cieplny dla 10 cm betonu: R = 0,083 m²K/W",
        "Wydłużenie czasu nagrzewania: do 6-9 godzin",
        "Wzrost wymaganej temperatury zasilania: o 3–5°C",
        "Spadek efektywności (COP): 2,5% na każdy 1°C podbicia zasilania"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-maxgrubosc",
    "name": "Symulator Przewymiarowania Wylewki",
    "description": "Interaktywne narzędzie inżynierskie ukazujące na żywo degradację parametrów instalacji (opór, COP, masa) przy nienormatywnym pogrubianiu jastrychu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-max-wrapper">
    <div class="rk-max-header">
        <h2>Skutki przewymiarowania grubości wylewki</h2>
        <p>Więcej betonu nie oznacza lepiej. Maksymalna technicznie uzasadniona całkowita grubość wylewki cementowej to 8,0 cm. Przesuń suwak i zobacz, jak wylanie "zapasowej" warstwy zabija wydajność Twojej instalacji oraz portfela.</p>
    </div>

    <div class="rk-max-app">
        <div class="rk-max-controls">
            <div class="rk-max-label-row">
                <div class="rk-max-label-title">Projektowana grubość betonu:</div>
                <div class="rk-max-val-badge" id="rkMaxLblThick">7.0 cm</div>
            </div>
            <input type="range" class="rk-max-slider" id="rkMaxInpThick" min="6.5" max="12.0" step="0.5" value="7.0" oninput="rkRunMaxCalc()">
            <div style="display: flex; justify-content: space-between; font-size: 12px; font-weight: 700; color: var(--rk-max-gray); padding: 0 5px;">
                <span>6.5 cm (Norma)</span>
                <span>12.0 cm (Krytyczny Błąd)</span>
            </div>
        </div>

        <div class="rk-max-results">
            
            <div class="rk-max-card" id="rkCardR">
                <div class="rk-max-icon" id="rkIconR">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                </div>
                <div class="rk-max-card-title">Opór (R) samej płyty</div>
                <div class="rk-max-card-val" id="rkValR">0.058</div>
                <div class="rk-max-card-unit">m²K/W</div>
            </div>

            <div class="rk-max-card" id="rkCardTime">
                <div class="rk-max-icon" id="rkIconTime">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-max-card-title">Czas nagrzewania</div>
                <div class="rk-max-card-val" id="rkValTime">4.0</div>
                <div class="rk-max-card-unit">godzin</div>
            </div>

            <div class="rk-max-card" id="rkCardTemp">
                <div class="rk-max-icon" id="rkIconTemp">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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-max-card-title">Korekta zasilania</div>
                <div class="rk-max-card-val" id="rkValTemp">+0.0</div>
                <div class="rk-max-card-unit">°C</div>
            </div>

            <div class="rk-max-card" id="rkCardCOP">
                <div class="rk-max-icon" id="rkIconCOP">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
                </div>
                <div class="rk-max-card-title">Spadek COP Pompy</div>
                <div class="rk-max-card-val" id="rkValCOP">0.0</div>
                <div class="rk-max-card-unit">% (strata)</div>
            </div>

        </div>
    </div>

    <div class="rk-max-content">
        <h3>Jaka jest maksymalna grubość jastrychu?</h3>
        <p>Maksymalna uzasadniona technicznie całkowita grubość wylewki betonowej na ogrzewanie podłogowe wynosi <strong>8,0 cm</strong> (co daje 4,5–5,0 cm otuliny nad rurą), przekraczając wytyczne normy PN-EN 1264-2, która definiuje optymalne parametry oporu cieplnego warstwy akumulacyjnej. Każdy dodatkowy centymetr betonu powyżej tej granicy podnosi masę metra kwadratowego posadzki o 22–24 kg, generując niepotrzebne obciążenie stropu.</p>
        
        <p>Wykonanie wylewki o grubości 10 cm lub 12 cm zamiast projektowych 7 cm to potężny błąd technologiczny, który uderza bezpośrednio w koszty eksploatacji pompy ciepła. Zwiększenie grubości jastrychu z 6,5 cm do 10 cm podnosi opór cieplny samej wylewki z poziomu ok. 0,054 m²K/W do aż 0,083 m²K/W (przy założeniu przewodności betonu na poziomie 1,2 W/(m·K)).</p>

        <div class="rk-max-warning-box">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Konsekwencje technologiczne zbyt grubej warstwy:
            </h4>
            <ul>
                <li><strong>Drastyczne wydłużenie czasu nagrzewania:</strong> Układ potrzebuje od 6 do 9 godzin, aby zareagować na zmianę nastawy, co czyni automatykę pogodową całkowicie bezużyteczną.</li>
                <li><strong>Wymóg podniesienia temperatury zasilania:</strong> Aby przebić się przez grubą warstwę i utrzymać normatywne 26°C na podłodze, należy podnieść temperaturę wody grzewczej o 3–5°C.</li>
                <li><strong>Spadek COP pompy ciepła:</strong> Każdy wzrost temperatury zasilania o 1°C obniża współczynnik efektywności COP o około 2,5%, co bezpośrednio podnosi rachunki za prąd.</li>
            </ul>
        </div>
    </div>
</div>

<script>
    function rkRunMaxCalc() {
        var thickInp = document.getElementById('rkMaxInpThick');
        if(!thickInp) return;

        var thick = parseFloat(thickInp.value);
        var badge = document.getElementById('rkMaxLblThick');
        badge.innerText = thick.toFixed(1) + " cm";

        // Fizyka (baza)
        var lambda = 1.2; 
        var resistance = (thick / 100) / lambda;
        
        // Czas nagrzewania (estymacja: 7cm = ~4h, wykladniczo rosnie)
        var baseTime = 4.0;
        var timeVal = baseTime;
        if (thick > 7.0) {
            timeVal = baseTime + Math.pow((thick - 7.0), 1.3) * 1.5;
        } else {
            timeVal = baseTime - ((7.0 - thick) * 0.5);
        }

        // Konsekwencje dla pompy (Start kary od 7.5cm)
        var tempIncrease = 0.0;
        var copDrop = 0.0;
        
        if (thick > 7.5) {
            // ok 1 stopien wiecej na kazdy 1 cm powyzej 7.5
            tempIncrease = (thick - 7.5) * 1.1; 
            copDrop = tempIncrease * 2.5; 
        }

        // Aktualizacja DOM
        document.getElementById('rkValR').innerText = resistance.toFixed(3);
        document.getElementById('rkValTime').innerText = timeVal.toFixed(1);
        document.getElementById('rkValTemp').innerText = "+" + tempIncrease.toFixed(1);
        document.getElementById('rkValCOP').innerText = "-" + copDrop.toFixed(1);

        // Zmiana stylów w oparciu o stany krytyczne (brak operatora &&)
        var stColor = "var(--rk-max-blue)";
        var stBg = "var(--rk-max-blue-light)";
        
        if (thick <= 8.0) {
            stColor = "var(--rk-max-green)";
            stBg = "#dcfce7";
            badge.style.backgroundColor = "var(--rk-max-green)";
        } else {
            if (thick <= 9.5) {
                stColor = "var(--rk-max-orange)";
                stBg = "var(--rk-max-orange-light)";
                badge.style.backgroundColor = "var(--rk-max-orange)";
            } else {
                stColor = "var(--rk-max-red)";
                stBg = "var(--rk-max-red-light)";
                badge.style.backgroundColor = "var(--rk-max-red)";
            }
        }

        // Aplikowanie stylów do ikon i wartości
        var cards = ['rkCardR', 'rkCardTime', 'rkCardTemp', 'rkCardCOP'];
        var icons = ['rkIconR', 'rkIconTime', 'rkIconTemp', 'rkIconCOP'];
        var vals = ['rkValR', 'rkValTime', 'rkValTemp', 'rkValCOP'];

        for(var i=0; i < cards.length; i++) {
            document.getElementById(icons[i]).style.backgroundColor = stBg;
            document.getElementById(icons[i]).style.color = stColor;
            
            // Kolorujemy tylko krytyczne wartości na czerwono by zwrocic uwage
            if (thick > 8.0) {
                document.getElementById(vals[i]).style.color = stColor;
            } else {
                document.getElementById(vals[i]).style.color = "var(--rk-max-dark)";
            }
        }
    }

    function rkInitMaxApp() {
        rkRunMaxCalc();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', rkInitMaxApp);
    } else {
        rkInitMaxApp();
    }
</script>



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

.rk-fin-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-fin-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-fin-border);
    overflow: hidden;
}

/* Header */
.rk-fin-header {
    background: linear-gradient(135deg, var(--rk-fin-dark) 0%, var(--rk-fin-panel) 100%);
    padding: 35px 45px;
    color: #ffffff;
    text-align: center;
}

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

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

/* Interactive App */
.rk-fin-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-fin-border);
}

/* Controls */
.rk-fin-controls {
    padding: 35px 45px;
    background: #ffffff;
    border-right: 1px solid var(--rk-fin-border);
}

.rk-fin-group {
    margin-bottom: 25px;
}
.rk-fin-group:last-child {
    margin-bottom: 0;
}

.rk-fin-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-fin-dark);
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-fin-badge {
    background: var(--rk-fin-blue-light);
    color: var(--rk-fin-blue);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 800;
}

/* Buttons */
.rk-fin-btn-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}

.rk-fin-btn {
    padding: 12px 5px;
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.rk-fin-btn span {
    font-size: 11px;
    opacity: 0.7;
    font-weight: 600;
}

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

.rk-fin-btn.is-active {
    background: var(--rk-fin-blue);
    border-color: var(--rk-fin-blue);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.3);
}

/* Slider */
.rk-fin-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: var(--rk-fin-border);
    border-radius: 4px;
    outline: none;
    margin-top: 10px;
}

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

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

/* Display */
.rk-fin-display {
    padding: 35px 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-fin-gauge-box {
    background: #ffffff;
    border: 2px solid var(--rk-fin-border);
    border-radius: 16px;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    transition: border-color 0.3s;
}

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

.rk-fin-total-val {
    font-size: 48px;
    font-weight: 900;
    color: var(--rk-fin-dark);
    line-height: 1;
    margin-bottom: 5px;
    font-variant-numeric: tabular-nums;
}

.rk-fin-unit {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-fin-gray);
    margin-bottom: 25px;
}

/* Progress Bar */
.rk-fin-bar-container {
    width: 100%;
    height: 16px;
    background: #e2e8f0;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    margin-bottom: 15px;
}

.rk-fin-bar-fill {
    height: 100%;
    width: 0%;
    background: var(--rk-fin-green);
    border-radius: 8px;
    transition: width 0.4s ease, background-color 0.4s ease;
}

.rk-fin-bar-limit {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 75%; /* 0.15 limit out of 0.20 max */
    width: 2px;
    background: var(--rk-fin-red);
    z-index: 2;
}

.rk-fin-limit-label {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-fin-red);
    text-align: right;
    padding-right: 25%; /* align with 75% limit */
}

.rk-fin-status {
    margin-top: 15px;
    font-size: 14px;
    font-weight: 800;
    padding: 8px 15px;
    border-radius: 8px;
    display: inline-block;
}

/* Content */
.rk-fin-content {
    padding: 35px 45px;
}

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

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

.rk-math-box {
    background: var(--rk-fin-blue-light);
    border-left: 4px solid var(--rk-fin-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-family: monospace;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-fin-dark);
    margin: 20px 0;
}

@media (max-width: 768px) {
    .rk-fin-app { grid-template-columns: 1fr; }
    .rk-fin-controls { border-right: none; border-bottom: 1px solid var(--rk-fin-border); }
    .rk-fin-header, .rk-fin-controls, .rk-fin-display, .rk-fin-content { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-wykonczenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak rodzaj wykończenia posadzki modyfikuje grubość wylewki betonowej?",
    "description": "Analiza wpływu oporu cieplnego materiałów wykończeniowych (płytki, panele, drewno) na wymaganą grubość jastrychu w systemach płaszczyznowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wykonczenie",
    "name": "Zestawienie oporów cieplnych dla materiałów wykończeniowych posadzek",
    "description": "Baza danych określająca wartości współczynnika R dla popularnych okładzin (płytki gresowe, panele z podkładem PUM, deski warstwowe).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny paneli podłogowych",
      "ogrzewanie podłogowe a panele laminowane",
      "wylewka betonowa pod płytki",
      "grubość wylewki pod deskę drewnianą",
      "norma PN-EN 1264 opór posadzki"
    ],
    "measurementTechnique": "Algorytm sumujący opory cieplne poszczególnych warstw (Rw + Ro) w celu weryfikacji zgodności z normatywnym limitem 0,15 m²K/W.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: R ≈ 0,01 m²K/W",
        "Panele laminowane z podkładem PUM: R ≈ 0,07 m²K/W",
        "Deska warstwowa/lita: R ≥ 0,10 m²K/W",
        "Limit całkowity (wylewka + okładzina): max 0,15 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wykonczenie",
    "name": "Bilansator Oporu Cieplnego Posadzki",
    "description": "Interaktywny kalkulator weryfikujący poprawność doboru grubości jastrychu w relacji do wybranej okładziny podłogowej, bazujący na prawie Fouriera.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-fin-wrapper">
    <div class="rk-fin-header">
        <h2>Jak rodzaj wykończenia modyfikuje grubość wylewki?</h2>
        <p>Wybór materiału na podłogę to nie tylko kwestia estetyki, ale przede wszystkim fizyki. Sprawdź, czy Twoja warstwa betonu w połączeniu z wymarzonym wykończeniem nie przekroczy krytycznej granicy oporu cieplnego.</p>
    </div>

    <div class="rk-fin-app">
        <div class="rk-fin-controls">
            
            <div class="rk-fin-group">
                <div class="rk-fin-label">
                    <span>Okładzina (Wykończenie)</span>
                </div>
                <div class="rk-fin-btn-grid">
                    <button class="rk-fin-btn" id="rkFinBtn1" onclick="rkFinUpdateR(0.01, this)">
                        Płytki / Gres
                        <span>R ≈ 0,01</span>
                    </button>
                    <button class="rk-fin-btn is-active" id="rkFinBtn2" onclick="rkFinUpdateR(0.07, this)">
                        Panele + PUM
                        <span>R ≈ 0,07</span>
                    </button>
                    <button class="rk-fin-btn" id="rkFinBtn3" onclick="rkFinUpdateR(0.12, this)">
                        Gruba Deska
                        <span>R ≥ 0,12</span>
                    </button>
                </div>
            </div>

            <div class="rk-fin-group">
                <div class="rk-fin-label">
                    <span>Grubość wylewki betonowej</span>
                    <span class="rk-fin-badge" id="rkFinThickLbl">7.0 cm</span>
                </div>
                <input type="range" class="rk-fin-slider" id="rkFinThickInp" min="4.5" max="9.0" step="0.5" value="7.0" oninput="rkFinCalculate()">
            </div>

        </div>

        <div class="rk-fin-display">
            <div class="rk-fin-gauge-box" id="rkFinGaugeBox">
                <div class="rk-fin-gauge-title">Łączny opór cieplny (R całkowity)</div>
                <div class="rk-fin-total-val" id="rkFinTotalVal">0.128</div>
                <div class="rk-fin-unit">m²K/W</div>
                
                <div class="rk-fin-bar-container">
                    <div class="rk-fin-bar-limit"></div>
                    <div class="rk-fin-bar-fill" id="rkFinBarFill"></div>
                </div>
                <div class="rk-fin-limit-label">Norma max: 0,15</div>

                <div class="rk-fin-status" id="rkFinStatus">W normie (Wydajny system)</div>
            </div>
        </div>
    </div>

    <div class="rk-fin-content">
        <h3>Fizyka nie wybacza błędów</h3>
        <p>Wybór materiału wykończeniowego narzuca precyzyjną korektę grubości wylewki. Dla materiałów o wysokim oporze termicznym, jak panele laminowane z podkładem czy deski warstwowe (R ≥ 0,10 m²K/W), grubość jastrychu cementowego należy odchudzić do poziomu 5,5–6,5 cm. Z kolei pod doskonale przewodzące płytki ceramiczne (R ≈ 0,01 m²K/W) można bezpiecznie zastosować grubszy rdzeń (7,0–8,0 cm), co pozwala stworzyć stabilny akumulator ciepła dla taryf G12w.</p>
        
        <p>Całkowity opór cieplny nad rurą grzewczą to prosta suma inżynierska. Zgodnie z normą PN-EN 1264, nie może ona przekraczać wartości 0,15 m²K/W.</p>
        
        <div class="rk-math-box">
            R_całkowity = R_wylewka + R_okładzina
        </div>

        <p>Jeśli planujesz montaż paneli laminowanych (10 mm) na podkładzie poliuretanowo-mineralnym, ich łączny opór wynosi zazwyczaj Ro = 0,07 m²K/W. Jeśli wylejesz do tego standardowy beton o grubości 8 cm (Rw = 0,066 m²K/W), całkowity opór wyniesie 0,136 m²K/W. System zadziała, ale zbliża się do niebezpiecznej granicy efektywności. Dla grubszej deski normy zostaną złamane, wymuszając drastyczne podniesienie temperatury zasilania na pompie ciepła.</p>
    </div>
</div>

<script>
    // Unikalne zmienne (prefix rkFin)
    var rkFinCurrentR = 0.07; // Domyślnie panele

    function rkFinUpdateR(rValue, btnObj) {
        rkFinCurrentR = rValue;
        
        var btns = document.querySelectorAll('#rkFinBtn1, #rkFinBtn2, #rkFinBtn3');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkFinCalculate();
    }

    function rkFinCalculate() {
        var thickInp = document.getElementById('rkFinThickInp');
        if(!thickInp) return;

        var thickCm = parseFloat(thickInp.value);
        document.getElementById('rkFinThickLbl').innerText = thickCm.toFixed(1) + " cm";

        // Obliczenie oporu wylewki (Rw)
        // d / lambda. Zakładamy standardowy beton przewodność ok 1.2
        var thickMeters = thickCm / 100;
        var rWylewki = thickMeters / 1.2; 
        
        // Obliczenie oporu całkowitego
        var rTotal = rWylewki + rkFinCurrentR;
        
        document.getElementById('rkFinTotalVal').innerText = rTotal.toFixed(3);

        // Aktualizacja paska (skala do 0.20 m2K/W)
        var maxScale = 0.20;
        var fillPercent = (rTotal / maxScale) * 100;
        if(fillPercent > 100) { fillPercent = 100; }
        
        var barFill = document.getElementById('rkFinBarFill');
        barFill.style.width = fillPercent + "%";

        // Statusy (bez &&)
        var statusEl = document.getElementById('rkFinStatus');
        var gaugeBox = document.getElementById('rkFinGaugeBox');

        if (rTotal <= 0.10) {
            barFill.style.backgroundColor = "var(--rk-fin-green)";
            gaugeBox.style.borderColor = "var(--rk-fin-green)";
            statusEl.innerText = "System wysoce efektywny";
            statusEl.style.color = "var(--rk-fin-green)";
            statusEl.style.backgroundColor = "#ecfdf5";
        } else {
            if (rTotal <= 0.15) {
                barFill.style.backgroundColor = "var(--rk-fin-blue)";
                gaugeBox.style.borderColor = "var(--rk-fin-blue)";
                statusEl.innerText = "W normie (Wydajny system)";
                statusEl.style.color = "var(--rk-fin-blue)";
                statusEl.style.backgroundColor = "var(--rk-fin-blue-light)";
            } else {
                barFill.style.backgroundColor = "var(--rk-fin-red)";
                gaugeBox.style.borderColor = "var(--rk-fin-red)";
                statusEl.innerText = "BŁĄD! Przekroczenie normy (0.15)";
                statusEl.style.color = "var(--rk-fin-red)";
                statusEl.style.backgroundColor = "var(--rk-fin-red-light)";
            }
        }
    }

    // Bezpieczne inicjowanie omijające async/defer cache
    function rkInitFinApp() {
        rkFinCalculate();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', rkInitFinApp);
    } else {
        rkInitFinApp();
    }
</script>



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

.rk-comp-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-comp-border);
    overflow: hidden;
}

/* Header Section */
.rk-comp-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-comp-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
}

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

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

.rk-comp-header a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tab Selector */
.rk-comp-selector {
    display: flex;
    padding: 20px 50px;
    background: var(--rk-comp-gray-light);
    border-bottom: 1px solid var(--rk-comp-border);
    gap: 15px;
    justify-content: center;
}

.rk-mat-btn {
    flex: 1;
    max-width: 250px;
    padding: 18px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-comp-border);
    border-radius: 14px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-comp-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rk-mat-btn:hover {
    border-color: var(--rk-comp-blue);
    background: var(--rk-comp-blue-light);
}

.rk-mat-btn.is-active {
    border-color: var(--rk-comp-blue);
    background: var(--rk-comp-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-mat-btn-sub {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Results Grid */
.rk-comp-grid {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    background: #ffffff;
}

.rk-data-card {
    background: #ffffff;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-data-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 20px -8px rgba(0,0,0,0.08);
    border-color: #cbd5e1;
}

.rk-data-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    background: var(--rk-comp-blue-light);
    color: var(--rk-comp-blue);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-data-content {
    flex: 1;
}

.rk-data-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-comp-gray);
    text-transform: uppercase;
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-data-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin-bottom: 5px;
    line-height: 1.3;
}

.rk-data-sub {
    font-size: 14px;
    color: var(--rk-comp-gray);
    line-height: 1.5;
}

/* Full Width Card */
.rk-card-full {
    grid-column: 1 / -1;
    background: var(--rk-comp-gray-light);
}

@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-selector, .rk-comp-grid { padding: 30px 20px; }
    .rk-comp-selector { flex-direction: column; gap: 10px; }
    .rk-mat-btn { max-width: 100%; width: 100%; flex-direction: row; justify-content: center; padding: 15px; }
    .rk-mat-btn-sub { display: none; } /* Hide subtitle on mobile to save space */
    .rk-comp-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-card-full { grid-column: 1; }
    .rk-data-value { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-komparator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Parametry techniczne wylewek – jastrych cementowy vs wylewka anhydrytowa",
    "description": "Zestawienie kluczowych parametrów fizycznych i konstrukcyjnych wylewek: przewodność cieplna, wytrzymałość, grubość i czasy schnięcia według PN-EN 13813.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-komparator",
    "name": "Zestawienie parametrów fizycznych jastrychów grzewczych",
    "description": "Baza danych właściwości termodynamicznych i mechanicznych wylewek (cement vs anhydryt) wykorzystywana do projektowania instalacji płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka anhydrytowa parametry",
      "jastrych cementowy przewodność cieplna",
      "wylewka cementowa z plastyfikatorem",
      "gęstość betonu na ogrzewanie podłogowe",
      "czas schnięcia wylewki anhydrytowej"
    ],
    "measurementTechnique": "Porównanie właściwości na podstawie europejskiej normy badawczej PN-EN 13813 (Materiały podkładów podłogowych).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przewodność (Lambda): Beton 1.2 W/(m·K) vs Anhydryt 1.8 W/(m·K)",
        "Grubość minimalna otuliny: od 2.0 cm do 3.5 cm",
        "Masa jednostkowa: od 90 kg/m² do 154 kg/m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-komparator",
    "name": "Interaktywny Komparator Wylewek Grzewczych",
    "description": "Moduł aplikacyjny wyświetlający dynamicznie zmieniające się parametry fizykochemiczne w zależności od wybranego rodzaju podkładu podłogowego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-wrapper">
    <div class="rk-comp-header">
        <h2>Parametry techniczne wylewek</h2>
        <p>Decyzja o wyborze wylewki definiuje pracę całej instalacji. Porównaj kluczowe właściwości fizyczne i konstrukcyjne dla systemów pracujących w oparciu o normę <strong>PN-EN 13813</strong>. Pamiętaj, że wpływa to bezpośrednio na to, <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
    </div>

    <div class="rk-comp-selector">
        <button class="rk-mat-btn" id="btnMat1" onclick="rkUpdateComp(1)">
            <span>Zwykły Beton</span>
            <span class="rk-mat-btn-sub">Standardowy Jastrych</span>
        </button>
        <button class="rk-mat-btn is-active" id="btnMat2" onclick="rkUpdateComp(2)">
            <span>Beton + Chemia</span>
            <span class="rk-mat-btn-sub">Z Plastyfikatorem</span>
        </button>
        <button class="rk-mat-btn" id="btnMat3" onclick="rkUpdateComp(3)">
            <span>Anhydryt</span>
            <span class="rk-mat-btn-sub">Masa Samopoziomująca</span>
        </button>
    </div>

    <div class="rk-comp-grid">
        
        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Przewodność Cieplna (λ)</div>
                <div class="rk-data-value" id="valLambda">1,45 W/(m·K)</div>
                <div class="rk-data-sub" id="descLambda">Bardzo dobre oddawanie energii z rur.</div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Grubość optymalna</div>
                <div class="rk-data-value" id="valThick">6,0 – 7,0 cm</div>
                <div class="rk-data-sub" id="descThick">Minimalna otulina nad rurą: <strong>3,0 cm</strong></div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Wytrzymałość (Ścisk/Zginanie)</div>
                <div class="rk-data-value" id="valStrength">C25 / F5</div>
                <div class="rk-data-sub" id="descStrength">Podwyższona klasa dzięki uplastycznieniu.</div>
            </div>
        </div>

        <div class="rk-data-card">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Masa posadzki (na 1 m²)</div>
                <div class="rk-data-value" id="valMass">138 kg</div>
                <div class="rk-data-sub" id="descMass">Gęstość: 2200 - 2300 kg/m³</div>
            </div>
        </div>

        <div class="rk-data-card rk-card-full">
            <div class="rk-data-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
            </div>
            <div class="rk-data-content">
                <div class="rk-data-label">Technologia i Wiązanie</div>
                <div class="rk-data-value" id="valTech">Dylatacje do 40 m² | Schnięcie 28 dni</div>
                <div class="rk-data-sub" id="descTech">Wymaga regularnych nacięć pośrednich. Podwyższona odporność na wilgoć w systemie mokrym.</div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkUpdateComp(matId) {
        // Zmiana klas przycisków (bezpieczne odświeżanie bez &&)
        var btn1 = document.getElementById('btnMat1');
        var btn2 = document.getElementById('btnMat2');
        var btn3 = document.getElementById('btnMat3');
        
        btn1.classList.remove('is-active');
        btn2.classList.remove('is-active');
        btn3.classList.remove('is-active');

        var vLambda = document.getElementById('valLambda');
        var dLambda = document.getElementById('descLambda');
        var vThick = document.getElementById('valThick');
        var dThick = document.getElementById('descThick');
        var vStr = document.getElementById('valStrength');
        var dStr = document.getElementById('descStrength');
        var vMass = document.getElementById('valMass');
        var dMass = document.getElementById('descMass');
        var vTech = document.getElementById('valTech');
        var dTech = document.getElementById('descTech');

        if (matId === 1) {
            btn1.classList.add('is-active');
            
            vLambda.innerText = "1,20 W/(m·K)";
            dLambda.innerText = "Niska przewodność. Działa jako izolator.";
            
            vThick.innerText = "7,0 – 8,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>3,5 cm</strong>";
            
            vStr.innerText = "C20 / F4";
            dStr.innerText = "Podstawowa klasa wytrzymałości na ściskanie.";
            
            vMass.innerText = "154 kg";
            dMass.innerText = "Gęstość: 2100 - 2200 kg/m³ (przy 7 cm)";
            
            vTech.innerText = "Dylatacje do 36 m² | Schnięcie 28 dni";
            dTech.innerText = "Maksymalne pole bez nacięć to 6x6 m. Tradycyjny proces wiązania cementu.";
        }
        
        if (matId === 2) {
            btn2.classList.add('is-active');
            
            vLambda.innerText = "1,45 W/(m·K)";
            dLambda.innerText = "Bardzo dobre oddawanie energii z rur.";
            
            vThick.innerText = "6,0 – 7,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>3,0 cm</strong>";
            
            vStr.innerText = "C25 / F5";
            dStr.innerText = "Podwyższona klasa dzięki uplastycznieniu.";
            
            vMass.innerText = "138 kg";
            dMass.innerText = "Gęstość: 2200 - 2300 kg/m³ (przy 6 cm)";
            
            vTech.innerText = "Dylatacje do 40 m² | Schnięcie 28 dni";
            dTech.innerHTML = "Wymaga regularnych nacięć pośrednich. Podwyższona odporność na wilgoć w systemie mokrym.";
        }

        if (matId === 3) {
            btn3.classList.add('is-active');
            
            vLambda.innerText = "1,80 W/(m·K)";
            dLambda.innerText = "Doskonała przewodność termiczna układu.";
            
            vThick.innerText = "4,0 – 5,0 cm";
            dThick.innerHTML = "Minimalna otulina nad rurą: <strong>2,0 cm</strong>";
            
            vStr.innerText = "C30 / F6";
            dStr.innerText = "Wysoka odporność na obciążenia zginające.";
            
            vMass.innerText = "90 kg";
            dMass.innerText = "Gęstość: 2000 - 2100 kg/m³ (przy 4.5 cm)";
            
            vTech.innerText = "Pola do 300 m² | Schnięcie 7 - 14 dni";
            dTech.innerHTML = "Możliwość wylewania ogromnych powierzchni bez dylatacji pośrednich. Nie zalecane do stref mokrych.";
        }
    }
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #64748b;
    --rk-calc-light: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-accent: #f59e0b;
}

.rk-calc-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
    border: 1px solid rgba(14, 165, 233, 0.2);
    overflow: hidden;
}

/* Header */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, var(--rk-calc-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
}

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

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

/* Interactive Dashboard App */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: var(--rk-calc-light);
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-calc-border);
}

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

.rk-calc-group:last-child {
    margin-bottom: 0;
}

.rk-calc-label {
    display: flex;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 15px;
}

.rk-calc-val-badge {
    background: var(--rk-calc-blue);
    color: #ffffff;
    padding: 2px 10px;
    border-radius: 6px;
    font-size: 14px;
}

/* Sliders */
.rk-calc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    background: #cbd5e1;
    border-radius: 4px;
    outline: none;
    margin-bottom: 10px;
}

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

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

/* Toggle Buttons */
.rk-calc-btn-row {
    display: flex;
    gap: 10px;
}

.rk-calc-btn {
    flex: 1;
    padding: 12px 10px;
    background: #ffffff;
    border: 2px solid var(--rk-calc-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-calc-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

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

.rk-calc-btn.is-active {
    background: var(--rk-calc-blue);
    border-color: var(--rk-calc-blue);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.3);
}

/* Results Display */
.rk-calc-results {
    background: #ffffff;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.rk-result-box {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed var(--rk-calc-border);
}

.rk-result-box:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-calc-gray);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-result-value {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    line-height: 1.1;
}

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

.rk-status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    margin-top: 10px;
}

.status-ok { background: var(--rk-calc-green); color: #ffffff; }
.status-bad { background: var(--rk-calc-red); color: #ffffff; }

/* Explanatory Content */
.rk-calc-content {
    padding: 40px 50px;
}

.rk-calc-content h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
    padding-left: 15px;
    border-left: 4px solid var(--rk-calc-blue);
}

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

.rk-math-block {
    background: var(--rk-calc-light);
    border: 1px solid var(--rk-calc-border);
    padding: 20px;
    border-radius: 12px;
    font-family: monospace;
    font-size: 16px;
    color: var(--rk-calc-dark);
    margin-bottom: 25px;
    text-align: center;
    font-weight: 700;
}

.rk-calc-content a {
    color: var(--rk-calc-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-calc-content a:hover {
    border-bottom-color: var(--rk-calc-blue);
}

/* Tags */
.rk-calc-tags {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

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

/* CTA */
.rk-calc-cta {
    padding: 45px 50px;
    background: var(--rk-calc-dark);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-calc-cta::before {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    background: var(--rk-calc-blue);
    filter: blur(100px);
    opacity: 0.3;
    top: -50px;
    left: 50%;
    transform: translateX(-50%);
}

.rk-calc-cta h4 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
}

.rk-calc-cta p {
    font-size: 16px;
    color: #94a3b8;
    max-width: 650px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
    position: relative;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-calc-accent);
    color: var(--rk-calc-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 45px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(245, 158, 11, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-btn-cta:hover {
    transform: translateY(-5px);
    background: #fbbf24;
    box-shadow: 0 15px 35px rgba(245, 158, 11, 0.5);
}

@media (max-width: 768px) {
    .rk-calc-app { grid-template-columns: 1fr; }
    .rk-calc-header, .rk-calc-controls, .rk-calc-results, .rk-calc-content, .rk-calc-tags, .rk-calc-cta { padding: 30px 20px; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-border); }
    .rk-calc-btn-row { flex-direction: column; }
    .rk-calc-btn { width: 100%; }
    .rk-result-value { font-size: 30px; }
    .rk-btn-cta { 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/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak obliczyć opór cieplny i masę wylewki? Algorytm kalkulatora krok po kroku",
    "description": "Interaktywny algorytm oparty na prawie Fouriera. Oblicz na żywo opór cieplny jastrychu, wpływ paneli i całkowitą masę betonu na stropie.",
    "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-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-algorytm",
    "name": "Wzory i Parametry Termodynamiczne Posadzek Grzewczych",
    "description": "Zestawienie współczynników Lambda, gęstości betonu oraz dopuszczalnych oporów cieplnych okładzin podłogowych według norm budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak obliczyć opór cieplny wylewki",
      "łączny opór cieplny ogrzewania podłogowego",
      "kalkulator wagi wylewki betonowej",
      "norma PN-EN 1264 opór cieplny",
      "przewodność cieplna betonu z plastyfikatorem"
    ],
    "measurementTechnique": "Obliczenia oparte na prawie przewodzenia ciepła Fouriera (R = d / lambda) oraz badaniu nośności stropów (M = V * rho).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gęstość objętościowa betonu: 2250 kg/m³",
        "Dopuszczalny całkowity opór posadzki: max 0,15 m²K/W",
        "Opór cieplny paneli z podkładem: ~0,06 m²K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-algorytm",
    "name": "Kalkulator Oporu Cieplnego i Masy Jastrychu (Live)",
    "description": "Narzędzie inżynierskie online służące do szybkiej weryfikacji warunków brzegowych instalacji płaszczyznowej (opór R oraz masa M).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-wrapper">
    <div class="rk-calc-header">
        <h2>Jak obliczyć opór cieplny i masę wylewki?</h2>
        <p>Prawo Fouriera nie przyjmuje wymówek. Zanim wylejesz posadzkę, przetestuj w naszym symulatorze, jak każdy centymetr betonu i rodzaj wykończenia wpływają na wydajność Twojego ogrzewania oraz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" style="color:var(--rk-calc-blue);">parametry całej instalacji</a>.</p>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            
            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Grubość wylewki (d)</span>
                    <span class="rk-calc-val-badge" id="lblThick">6.5 cm</span>
                </div>
                <input type="range" class="rk-calc-slider" id="inpThick" min="4" max="10" step="0.5" value="6.5" oninput="rkRunCalc()">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label">
                    <span>Powierzchnia salonu (A)</span>
                    <span class="rk-calc-val-badge" id="lblArea">50 m²</span>
                </div>
                <input type="range" class="rk-calc-slider" id="inpArea" min="10" max="150" step="5" value="50" oninput="rkRunCalc()">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label"><span>Rodzaj Mieszanki (λ)</span></div>
                <div class="rk-calc-btn-row">
                    <button class="rk-calc-btn" id="btnMat1" onclick="rkSetMat(1.2, this)">Beton Zwykły</button>
                    <button class="rk-calc-btn is-active" id="btnMat2" onclick="rkSetMat(1.45, this)">Z plastyfikatorem</button>
                    <button class="rk-calc-btn" id="btnMat3" onclick="rkSetMat(1.8, this)">Anhydryt</button>
                </div>
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label"><span>Wykończenie Podłogi (R_okł)</span></div>
                <div class="rk-calc-btn-row">
                    <button class="rk-calc-btn" id="btnFin1" onclick="rkSetFin(0.01, this)">Płytki</button>
                    <button class="rk-calc-btn is-active" id="btnFin2" onclick="rkSetFin(0.06, this)">Panele</button>
                    <button class="rk-calc-btn" id="btnFin3" onclick="rkSetFin(0.12, this)">Gruba Deska</button>
                </div>
            </div>
            
        </div>

        <div class="rk-calc-results">
            
            <div class="rk-result-box">
                <div class="rk-result-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    Łączny Opór Cieplny
                </div>
                <div class="rk-result-value" id="resTotalR">0.105</div>
                <div class="rk-result-unit">m²K/W</div>
                <div class="rk-status-indicator status-ok" id="resStatus">
                    <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="20 6 9 17 4 12"></polyline></svg>
                    Zgodne z PN-EN 1264
                </div>
            </div>

            <div class="rk-result-box">
                <div class="rk-result-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
                    Całkowita Masa Jastrychu
                </div>
                <div class="rk-result-value" id="resMass">7.31</div>
                <div class="rk-result-unit">Ton uwięzionych w betonie</div>
            </div>

        </div>
    </div>

    <div class="rk-calc-content">
        <h3>Krok 1: Obliczenie oporu cieplnego samej wylewki (Rw)</h3>
        <p>Dzielimy grubość warstwy (w metrach) przez współczynnik przewodzenia ciepła wybranej mieszanki. Jest to podstawowy inżynierski parametr decydujący o <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">efektywności podłogówki</a>.</p>
        <div class="rk-math-block">
            Rw = d / lambda
        </div>

        <h3>Krok 2: Weryfikacja normy dla wykończenia (Rcałk)</h3>
        <p>Dodajemy opór wylewki do oporu wybranej okładziny. <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Wpływ wykończenia posadzki</a> jest drastyczny – gruba deska potrafi zablokować emisję ciepła. Według normy PN-EN 1264 wynik łączny nie może przekraczać 0,15 m²K/W.</p>
        <div class="rk-math-block">
            Rcałkowity = Rw + Rokładzina ≤ 0.15 m²K/W
        </div>

        <h3>Krok 3: Obliczenie dociążenia stropu (M)</h3>
        <p>Mnożymy powierzchnię przez grubość i średnią gęstość betonu grzewczego (ok. 2250 kg/m³). To pozwala ocenić ogromną bezwładność termiczną układu, którą musi pokonać kocioł lub pompa ciepła.</p>
    </div>

    <div class="rk-calc-tags">
        <span class="rk-mat-tag"># jak obliczyć opór cieplny wylewki</span>
        <span class="rk-mat-tag"># łączny opór cieplny ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># kalkulator wagi wylewki betonowej</span>
        <span class="rk-mat-tag"># norma PN-EN 1264 opór cieplny</span>
        <span class="rk-mat-tag"># przewodność cieplna betonu z plastyfikatorem</span>
        <span class="rk-mat-tag"># opór cieplny paneli podłogowych</span>
        <span class="rk-mat-tag"># dociążenie stropu wylewką</span>
    </div>

    <div class="rk-calc-cta">
        <h4>Nie ryzykuj, że Twoja podłoga nie odda ciepła</h4>
        <p>Zabawa suwakami to teoria. W praktyce krzyżują się rury, zyski słoneczne i przepływy hydrauliczne. Jeśli chcesz mieć absolutną gwarancję, że rachunki będą niskie, a salon ciepły, powierz to specjalistom ze stajni Projekt-Ogrzewania.pl.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT HYDRAULICZNY
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
    // Zmienne globalne stanu
    var currentLambda = 1.45;
    var currentFinR = 0.06;
    var density = 2250; // kg/m3

    function rkSetMat(lambdaVal, btnObj) {
        currentLambda = lambdaVal;
        
        // Aktualizacja UI przycisków (bezpieczna pętla)
        var btns = document.querySelectorAll('#btnMat1, #btnMat2, #btnMat3');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunCalc();
    }

    function rkSetFin(finVal, btnObj) {
        currentFinR = finVal;
        
        // Aktualizacja UI przycisków
        var btns = document.querySelectorAll('#btnFin1, #btnFin2, #btnFin3');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunCalc();
    }

    function rkRunCalc() {
        var thickCm = parseFloat(document.getElementById('inpThick').value);
        var areaM = parseFloat(document.getElementById('inpArea').value);
        
        // Update Labels
        document.getElementById('lblThick').innerText = thickCm.toFixed(1) + " cm";
        document.getElementById('lblArea').innerText = areaM + " m²";

        // Matematyka
        var thickM = thickCm / 100;
        var rWylewki = thickM / currentLambda;
        var rTotal = rWylewki + currentFinR;
        var massKg = areaM * thickM * density;
        var massTon = massKg / 1000;

        // Aktualizacja wyników w DOM
        document.getElementById('resTotalR').innerText = rTotal.toFixed(3);
        document.getElementById('resMass').innerText = massTon.toFixed(2);

        // Status Normy bez użycia &#038;&#038;
        var statusEl = document.getElementById('resStatus');
        if (rTotal <= 0.15) {
            statusEl.className = 'rk-status-indicator status-ok';
            statusEl.innerHTML = '<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="20 6 9 17 4 12"></polyline></svg> Zgodne z PN-EN 1264';
        } else {
            statusEl.className = 'rk-status-indicator status-bad';
            statusEl.innerHTML = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> Przekroczenie normy!';
        }
    }

    // Inicjalne uruchomienie
    document.addEventListener("DOMContentLoaded", function() {
        rkRunCalc();
    });
</script>



<style>
:root {
    --rk-chem-dark: #0f172a;
    --rk-chem-blue: #0284c7;
    --rk-chem-blue-light: #e0f2fe;
    --rk-chem-green: #10b981;
    --rk-chem-green-light: #dcfce7;
    --rk-chem-red: #ef4444;
    --rk-chem-red-light: #fee2e2;
    --rk-chem-gray: #64748b;
    --rk-chem-border: #cbd5e1;
    --rk-chem-bg: #ffffff;
    --rk-chem-accent: #f59e0b;
}

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

/* Header */
.rk-chem-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-chem-dark) 100%);
    color: #ffffff;
    text-align: center;
}

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

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

/* Interactive Dashboard */
.rk-chem-dashboard {
    background: #f8fafc;
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-chem-border);
}

.rk-chem-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 30px;
}

.rk-chem-toggle-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    background: #ffffff;
    border: 2px solid var(--rk-chem-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

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

.rk-chem-toggle-btn.is-active {
    border-color: var(--rk-chem-green);
    background: var(--rk-chem-green-light);
}

.rk-chem-toggle-info h4 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-chem-dark);
}

.rk-chem-toggle-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-chem-gray);
}

/* Toggle Switch UI */
.rk-switch {
    width: 50px;
    height: 28px;
    background: #cbd5e1;
    border-radius: 14px;
    position: relative;
    transition: background 0.3s;
}

.rk-chem-toggle-btn.is-active .rk-switch { background: var(--rk-chem-green); }

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

.rk-chem-toggle-btn.is-active .rk-switch-knob { transform: translateX(22px); }

/* Visualization Screen */
.rk-chem-screen {
    background: #ffffff;
    border: 1px solid var(--rk-chem-border);
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    box-shadow: inset 0 2px 10px rgba(0,0,0,0.02);
}

.rk-screen-metrics {
    display: flex;
    justify-content: space-around;
    margin-bottom: 20px;
}

.rk-metric-box {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rk-metric-label { font-size: 12px; font-weight: 700; color: var(--rk-chem-gray); text-transform: uppercase; }
.rk-metric-value { font-size: 24px; font-weight: 900; color: var(--rk-chem-dark); transition: color 0.3s; }

.rk-visual-slab {
    height: 60px;
    background: #cbd5e1;
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    transition: all 0.5s ease;
    border: 3px solid transparent;
}

.rk-slab-crack {
    position: absolute;
    top: 0; bottom: 0; left: 50%;
    width: 4px;
    background: var(--rk-chem-red);
    transform: translateX(-50%) rotate(15deg);
    opacity: 1;
    transition: opacity 0.3s;
}

.rk-slab-bubbles {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(#94a3b8 15%, transparent 16%), radial-gradient(#94a3b8 15%, transparent 16%);
    background-size: 15px 15px;
    background-position: 0 0, 7.5px 7.5px;
    opacity: 1;
    transition: opacity 0.5s;
}

/* Content Breakdown */
.rk-chem-content {
    padding: 40px 50px;
}

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

.rk-chem-content p, .rk-chem-content li {
    font-size: 16px;
    color: var(--rk-chem-gray);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-chem-content ul {
    margin: 0 0 25px 0;
    padding-left: 20px;
}

.rk-chem-content a {
    color: var(--rk-chem-blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tags */
.rk-chem-tags {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

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

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

.rk-chem-cta::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg, var(--rk-chem-blue), var(--rk-chem-accent));
}

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

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

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-chem-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.rk-btn-cta:hover {
    transform: translateY(-5px);
    background: var(--rk-chem-blue);
    color: #ffffff;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.4);
}

@media (max-width: 768px) {
    .rk-chem-header, .rk-chem-dashboard, .rk-chem-content, .rk-chem-tags, .rk-chem-cta { padding: 30px 20px; }
    .rk-chem-controls { grid-template-columns: 1fr; gap: 15px; }
    .rk-screen-metrics { flex-direction: column; gap: 15px; }
    .rk-metric-box { border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; }
    .rk-btn-cta { 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/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-chemia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Dlaczego dylatacje i plastyfikator determinują finalną grubość betonu?",
    "description": "Zrozum mechanikę wylewki. Poznaj fizyczne konsekwencje braku taśm brzegowych i plastyfikatora, które prowadzą do spękań i wysokich oporów cieplnych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-chemia",
    "name": "Parametry fizykochemiczne jastrychu grzewczego",
    "description": "Zestawienie wpływu chemii budowlanej i przerw dylatacyjnych na nośność, rozszerzalność liniową i przewodność cieplną wylewek betonowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dylatacje obwodowe w ogrzewaniu podłogowym",
      "plastyfikator do ogrzewania podłogowego",
      "opór cieplny wylewki betonowej",
      "pęknięcia wylewki na podłogówce",
      "taśma brzegowa do wylewek"
    ],
    "measurementTechnique": "Analiza współczynnika przewodzenia ciepła (lambda) oraz rozszerzalności termicznej betonu na podstawie norm technologicznych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Współczynnik rozszerzalności liniowej betonu: 0,01 mm/(m·K)",
        "Lambda betonu bez plastyfikatora: 1,2 W/(m·K)",
        "Wymiary krytyczne pół dylatacyjnych: powyżej 36 m²"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-chemia",
    "name": "Symulator Wpływu Chemii i Dylatacji na Wylewkę",
    "description": "Interaktywne narzędzie pozwalające symulować zachowanie posadzki w zależności od zastosowanego plastyfikatora i taśm brzegowych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-chem-wrapper">
    <div class="rk-chem-header">
        <h2>Dlaczego dylatacje i plastyfikator determinują finalną grubość betonu?</h2>
        <p>Beton podłogowy to nie statyczny fundament, lecz intensywnie pracująca warstwa termodynamiczna. Zobacz, jak brak podstawowej wiedzy o fizyce materiałów prowadzi do nieodwracalnych uszkodzeń jastrychu.</p>
    </div>

    <div class="rk-chem-dashboard">
        <div class="rk-chem-controls">
            <div class="rk-chem-toggle-btn" id="btnPlasticizer" onclick="rkToggleChem('plasticizer')">
                <div class="rk-chem-toggle-info">
                    <h4>Dodatek Plastyfikatora</h4>
                    <p>Zagęszcza strukturę, wypiera powietrze.</p>
                </div>
                <div class="rk-switch"><div class="rk-switch-knob"></div></div>
            </div>

            <div class="rk-chem-toggle-btn" id="btnJoints" onclick="rkToggleChem('joints')">
                <div class="rk-chem-toggle-info">
                    <h4>Taśmy i Dylatacje</h4>
                    <p>Izolacja brzegowa i nacięcia płyty.</p>
                </div>
                <div class="rk-switch"><div class="rk-switch-knob"></div></div>
            </div>
        </div>

        <div class="rk-chem-screen">
            <div class="rk-screen-metrics">
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Min. Grubość</span>
                    <span class="rk-metric-value" id="valThick">7.0 cm</span>
                </div>
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Przewodność (λ)</span>
                    <span class="rk-metric-value" id="valLambda">1.20 W/(m·K)</span>
                </div>
                <div class="rk-metric-box">
                    <span class="rk-metric-label">Status Konstrukcji</span>
                    <span class="rk-metric-value" id="valStatus" style="color: var(--rk-chem-red);">Ryzyko Pęknięć</span>
                </div>
            </div>
            
            <div class="rk-visual-slab" id="visualSlab">
                <div class="rk-slab-bubbles" id="animBubbles"></div>
                <div class="rk-slab-crack" id="animCrack"></div>
            </div>
        </div>
    </div>

    <div class="rk-chem-content">
        <h3>Dylatacje – bezwzględny wymóg technologiczny</h3>
        <p>Brak wykonania szczelin dylatacyjnych przy grubości <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki cementowej</a> 7 cm powoduje niekontrolowane pęknięcia płyty grzewczej już przy pierwszym uruchomieniu ogrzewania (wygrzewaniu jastrychu). Beton rozszerza się liniowo pod wpływem temperatury o około 0,01 mm/(m·K). Płyta grzewcza musi być całkowicie odcięta od konstrukcji budynku. Wymaga to:</p>
        <ul>
            <li><strong>Dylatacji obwodowych:</strong> Wykonanych z taśmy piankowej o grubości minimum 8 mm, ułożonych wzdłuż wszystkich ścian, słupów i futryn. Gwarantuje to <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">prawidłową izolację brzegową</a>.</li>
            <li><strong>Dylatacji pośrednich:</strong> Niezbędnych, gdy powierzchnia jednego pola przekracza 36 m², długość boku jest większa niż 6 m, lub stosunek boków wynosi więcej niż 1:2.</li>
        </ul>

        <h3>Plastyfikator – eliminacja hamulca termicznego</h3>
        <p>Wylewka betonowa bez plastyfikatora zawiera tysiące mikroskopijnych pęcherzyków powietrza. Powietrze to doskonały izolator (λ = 0,025 W/(m·K)). Taki porowaty jastrych podnosi <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">łączny opór cieplny posadzki</a> i działa jak hamulec termiczny.</p>
        <p>Dodanie dedykowanej chemii (plastyfikatora) eliminuje puste przestrzenie, szczelnie oblewa rury grzewcze i podnosi współczynnik przewodzenia ciepła z 1,2 do 1,45 W/(m·K). Zastosowanie profesjonalnego plastyfikatora pozwala inżynierowi bezpiecznie zmniejszyć całkowitą grubość wylewki do 6,0 cm bez utraty jej nośności, dzięki drastycznemu upłynnieniu mieszanki.</p>
    </div>
</div>

<script>
    var isPlasticizerOn = false;
    var isJointsOn = false;

    function rkToggleChem(type) {
        if (type === 'plasticizer') {
            var btnPlast = document.getElementById('btnPlasticizer');
            if (isPlasticizerOn === false) {
                btnPlast.classList.add('is-active');
                isPlasticizerOn = true;
            } else {
                btnPlast.classList.remove('is-active');
                isPlasticizerOn = false;
            }
        }

        if (type === 'joints') {
            var btnJoints = document.getElementById('btnJoints');
            if (isJointsOn === false) {
                btnJoints.classList.add('is-active');
                isJointsOn = true;
            } else {
                btnJoints.classList.remove('is-active');
                isJointsOn = false;
            }
        }

        rkProcessPhysics();
    }

    function rkProcessPhysics() {
        var vThick = document.getElementById('valThick');
        var vLambda = document.getElementById('valLambda');
        var vStatus = document.getElementById('valStatus');
        
        var vSlab = document.getElementById('visualSlab');
        var vBubbles = document.getElementById('animBubbles');
        var vCrack = document.getElementById('animCrack');

        // Bezpieczna logika bez &&
        if (isPlasticizerOn === false) {
            if (isJointsOn === false) {
                // Stan początkowy: Brak chemii, brak dylatacji
                vThick.innerText = "7.0 cm";
                vLambda.innerText = "1.20 W/(m·K)";
                vStatus.innerText = "Ryzyko Pęknięć";
                vStatus.style.color = "var(--rk-chem-red)";
                
                vSlab.style.background = "#cbd5e1";
                vBubbles.style.opacity = "1";
                vCrack.style.opacity = "1";
            } else {
                // Tylko dylatacje
                vThick.innerText = "7.0 cm";
                vLambda.innerText = "1.20 W/(m·K)";
                vStatus.innerText = "Słabe Przewodzenie";
                vStatus.style.color = "var(--rk-chem-accent)";
                
                vSlab.style.background = "#cbd5e1";
                vBubbles.style.opacity = "1";
                vCrack.style.opacity = "0";
            }
        } else {
            if (isJointsOn === false) {
                // Tylko chemia, bez dylatacji
                vThick.innerText = "6.0 cm";
                vLambda.innerText = "1.45 W/(m·K)";
                vStatus.innerText = "Naprężenia Płyty!";
                vStatus.style.color = "var(--rk-chem-red)";
                
                vSlab.style.background = "#94a3b8"; // Ciemniejszy, gładszy beton
                vBubbles.style.opacity = "0";
                vCrack.style.opacity = "1"; // Ciężkie pęknięcia przez brak miejsca na rozszerzanie
            } else {
                // Pełna optymalizacja: chemia + dylatacje
                vThick.innerText = "6.0 cm";
                vLambda.innerText = "1.45 W/(m·K)";
                vStatus.innerText = "Wzorcowa Wylewka";
                vStatus.style.color = "var(--rk-chem-green)";
                
                vSlab.style.background = "#94a3b8";
                vSlab.style.border = "3px solid var(--rk-chem-green)";
                vBubbles.style.opacity = "0";
                vCrack.style.opacity = "0";
            }
        }

        // Reset ramki, jeśli nie jest to stan idealny
        if (isPlasticizerOn === false) {
            vSlab.style.border = "3px solid transparent";
        } else {
            if (isJointsOn === false) {
                vSlab.style.border = "3px solid transparent";
            }
        }
    }
</script>



<style>
:root {
    --rk-heat-dark: #0f172a;
    --rk-heat-panel: #1e293b;
    --rk-heat-blue: #0284c7;
    --rk-heat-blue-light: #e0f2fe;
    --rk-heat-orange: #f97316;
    --rk-heat-orange-light: #ffedd5;
    --rk-heat-red: #ef4444;
    --rk-heat-green: #10b981;
    --rk-heat-gray: #64748b;
    --rk-heat-bg: #ffffff;
    --rk-heat-border: #e2e8f0;
}

.rk-heat-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-heat-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(249, 115, 22, 0.15);
    border: 1px solid var(--rk-heat-border);
    overflow: hidden;
}

/* Header Section */
.rk-heat-header {
    background: linear-gradient(135deg, var(--rk-heat-dark) 0%, var(--rk-heat-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-heat-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 200px;
    height: 200px;
    background: var(--rk-heat-orange);
    filter: blur(80px);
    opacity: 0.2;
}

.rk-heat-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.rk-heat-header p {
    color: #cbd5e1;
    font-size: 16px;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

/* App Interface */
.rk-heat-app {
    display: grid;
    grid-template-columns: 1fr 380px;
    background: #f8fafc;
}

/* Controls */
.rk-heat-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-heat-border);
    background: #ffffff;
}

.rk-heat-group {
    margin-bottom: 30px;
}
.rk-heat-group:last-child {
    margin-bottom: 0;
}

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

.rk-heat-badge {
    background: var(--rk-heat-orange-light);
    color: var(--rk-heat-orange);
    padding: 4px 12px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
}

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

.rk-heat-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-heat-orange);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(249, 115, 22, 0.4);
    transition: transform 0.1s;
}

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

/* Buttons */
.rk-heat-btn-grid {
    display: grid;
    gap: 10px;
}

.rk-grid-2 { grid-template-columns: 1fr 1fr; }
.rk-grid-4 { grid-template-columns: repeat(4, 1fr); }

.rk-hbtn {
    padding: 14px 10px;
    background: #ffffff;
    border: 2px solid var(--rk-heat-border);
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-heat-gray);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-hbtn:hover {
    border-color: var(--rk-heat-orange);
    color: var(--rk-heat-orange);
}

.rk-hbtn.is-active {
    background: var(--rk-heat-orange);
    border-color: var(--rk-heat-orange);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.3);
}

/* Display / Results */
.rk-heat-display {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #ffffff;
}

.rk-heat-result-card {
    text-align: center;
    padding: 30px;
    border-radius: 20px;
    background: var(--rk-heat-blue-light);
    border: 2px solid #bae6fd;
    transition: all 0.3s ease;
}

.rk-heat-result-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-heat-blue);
    margin-bottom: 15px;
    letter-spacing: 0.5px;
}

.rk-heat-time {
    font-size: 54px;
    font-weight: 900;
    color: var(--rk-heat-dark);
    line-height: 1;
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
}

.rk-heat-unit {
    font-size: 18px;
    color: var(--rk-heat-gray);
    font-weight: 700;
}

.rk-heat-status {
    margin-top: 20px;
    display: inline-block;
    padding: 8px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
}

/* Status Colors */
.status-fast { background: var(--rk-heat-green); color: #ffffff; }
.status-optimal { background: var(--rk-heat-blue); color: #ffffff; }
.status-slow { background: var(--rk-heat-orange); color: #ffffff; }
.status-critical { background: var(--rk-heat-red); color: #ffffff; }

/* Explanation Section */
.rk-heat-info {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-heat-border);
}

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

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

.rk-heat-info a {
    color: var(--rk-heat-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-heat-blue);
}

.rk-heat-info a:hover {
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .rk-heat-app { grid-template-columns: 1fr; }
    .rk-heat-controls { border-right: none; border-bottom: 1px solid var(--rk-heat-border); }
    .rk-heat-header, .rk-heat-controls, .rk-heat-display, .rk-heat-info { padding: 30px 20px; }
    .rk-grid-4 { grid-template-columns: 1fr 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-nagrzewanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Czas nagrzewania wylewki podłogowej a rozstaw rur",
    "description": "Zrozum zjawisko bezwładności cieplnej. Interaktywny symulator pozwalający obliczyć czas nagrzewania w zależności od materiału, grubości i rozstawu rur grzewczych.",
    "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-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-nagrzewanie",
    "name": "Korelacja bezwładności cieplnej podłogówki z parametrami jastrychu",
    "description": "Baza danych określająca czas reakcji (nagrzewania) systemu podłogowego w oparciu o zmienne: gęstość ułożenia pętli, rodzaj zaprawy i grubość otuliny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas nagrzewania wylewki betonowej",
      "wpływ rozstawu rur na czas nagrzewania",
      "wylewka anhydrytowa a czas reakcji",
      "bezwładność cieplna podłogówki",
      "grubość jastrychu a nagrzewanie"
    ],
    "measurementTechnique": "Empiryczne algorytmy inżynierskie uwzględniające przenikanie ciepła przez masy akumulacyjne przy stałej temperaturze zasilania z pompy ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wpływ rozstawu rur (5-20 cm) na dynamikę grzania",
        "Krzywa nagrzewania dla betonu vs wylewki anhydrytowej",
        "Identyfikacja stanów krytycznych (np. 9 cm jastrychu przy rozstawie co 20 cm)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-nagrzewanie",
    "name": "Symulator Czasu Nagrzewania Posadzki",
    "description": "Interaktywny widget obliczeniowy dla inwestorów, pozwalający prognozować dynamikę instalacji grzewczej i unikać błędów projektowych wydłużających czas reakcji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-heat-wrapper">
    <div class="rk-heat-header">
        <h2>Czas nagrzewania wylewki podłogowej</h2>
        <p>Bezwładność cieplna to klucz do komfortu. Zbyt szybka reakcja oznacza wychładzanie, zbyt wolna – brak kontroli nad temperaturą i duszne noce. Sprawdź, jak parametry Twojej posadzki wpłyną na czas reakcji systemu (do 26°C).</p>
    </div>

    <div class="rk-heat-app">
        <div class="rk-heat-controls">
            
            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Grubość jastrychu</span>
                    <span class="rk-heat-badge" id="rkHeatLblThick">6.5 cm</span>
                </div>
                <input type="range" class="rk-heat-slider" id="rkHeatInpThick" min="4" max="10" step="0.5" value="6.5" oninput="rkRunHeatCalc()">
            </div>

            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Rodzaj wylewki</span>
                </div>
                <div class="rk-heat-btn-grid rk-grid-2">
                    <button class="rk-hbtn is-active" id="rkHeatBtnMat1" onclick="rkSetHeatMat('beton', this)">Betonowa</button>
                    <button class="rk-hbtn" id="rkHeatBtnMat2" onclick="rkSetHeatMat('anhydryt', this)">Anhydrytowa</button>
                </div>
            </div>

            <div class="rk-heat-group">
                <div class="rk-heat-label">
                    <span>Rozstaw rur (gęstość)</span>
                </div>
                <div class="rk-heat-btn-grid rk-grid-4">
                    <button class="rk-hbtn" id="rkHeatBtnSpc1" onclick="rkSetHeatSpc(5, this)">5 cm</button>
                    <button class="rk-hbtn" id="rkHeatBtnSpc2" onclick="rkSetHeatSpc(10, this)">10 cm</button>
                    <button class="rk-hbtn is-active" id="rkHeatBtnSpc3" onclick="rkSetHeatSpc(15, this)">15 cm</button>
                    <button class="rk-hbtn" id="rkHeatBtnSpc4" onclick="rkSetHeatSpc(20, this)">20 cm</button>
                </div>
            </div>

        </div>

        <div class="rk-heat-display">
            <div class="rk-heat-result-card" id="rkHeatResCard">
                <div class="rk-heat-result-title">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="vertical-align: middle; margin-right: 5px;"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Szacowany Czas Reakcji
                </div>
                <div class="rk-heat-time" id="rkHeatResTime">4.0</div>
                <div class="rk-heat-unit">godziny</div>
                <div class="rk-heat-status status-optimal" id="rkHeatResStatus">Stabilny komfort</div>
            </div>
        </div>
    </div>

    <div class="rk-heat-info">
        <h3>Skąd biorą się te różnice?</h3>
        <p>Instalacja z wylewką to nic innego jak ogromny akumulator cieplny. To, jak szybko odda on energię do pomieszczenia, zależy od gęstości siatki grzewczej i masy, przez którą ta energia musi się przebić.</p>
        <p>Gdy projektant ustala <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur przy pompie ciepła</a>, musi zbilansować opory hydrauliczne z bezwładnością. Rury co 5 cm w łazienkach pozwalają błyskawicznie wygrzać płytki, podczas gdy rozstaw co 15 cm w salonie zapewnia powolne, przyjemne i długotrwałe oddawanie ciepła. Zastosowanie cienkiego anhydrytu skraca ten czas nawet o 30%, co czyni go idealnym do nowoczesnych systemów sterowania strefowego, ale jednocześnie pozbawia dom darmowego magazynu energii w posadzce.</p>
        <p>Decyzja o grubości i zagęszczeniu rur nigdy nie powinna być dziełem przypadku. Wymaga oparcia o rzetelne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia obciążenia cieplnego (OZC)</a>.</p>
    </div>
</div>

<script>
    // Zmienne stanu (z prefiksem, aby unikać globalnych kolizji)
    var rkHeatCurrentMat = 'beton';
    var rkHeatCurrentSpacing = 15;

    function rkSetHeatMat(matType, btnObj) {
        rkHeatCurrentMat = matType;
        
        var btns = document.querySelectorAll('#rkHeatBtnMat1, #rkHeatBtnMat2');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunHeatCalc();
    }

    function rkSetHeatSpc(spcVal, btnObj) {
        rkHeatCurrentSpacing = spcVal;
        
        var btns = document.querySelectorAll('#rkHeatBtnSpc1, #rkHeatBtnSpc2, #rkHeatBtnSpc3, #rkHeatBtnSpc4');
        for(var i=0; i<btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        btnObj.classList.add('is-active');
        
        rkRunHeatCalc();
    }

    function rkRunHeatCalc() {
        var thickInput = document.getElementById('rkHeatInpThick');
        if(!thickInput) return; // Zabezpieczenie przed błędem, gdyby elementu nie było

        var thickCm = parseFloat(thickInput.value);
        document.getElementById('rkHeatLblThick').innerText = thickCm.toFixed(1) + " cm";

        // Obliczenia heurystyczne inżynierskie
        var baseTime = 4.0; 
        var thickDiff = thickCm - 7.0;
        var thickMult = 1.0;
        
        if (thickDiff > 0) {
            thickMult = 1.0 + (thickDiff * 0.35);
        } else {
            thickMult = 1.0 + (thickDiff * 0.25);
        }

        var spcMult = 1.0;
        if (rkHeatCurrentSpacing === 5) { spcMult = 0.5; }
        if (rkHeatCurrentSpacing === 10) { spcMult = 0.75; }
        if (rkHeatCurrentSpacing === 15) { spcMult = 1.0; }
        if (rkHeatCurrentSpacing === 20) { spcMult = 1.4; }

        var matMult = 1.0; 
        if (rkHeatCurrentMat === 'anhydryt') {
            matMult = 0.65; 
        }

        var finalTime = baseTime * thickMult * spcMult * matMult;
        
        if (finalTime < 0.5) {
            finalTime = 0.5;
        }
        
        document.getElementById('rkHeatResTime').innerText = finalTime.toFixed(1);

        var resStatus = document.getElementById('rkHeatResStatus');
        var resCard = document.getElementById('rkHeatResCard');

        if (finalTime <= 2.0) {
            resStatus.innerText = "Błyskawiczna reakcja";
            resStatus.className = "rk-heat-status status-fast";
            resCard.style.borderColor = "var(--rk-heat-green)";
            resCard.style.background = "#ecfdf5"; 
        } else {
            if (finalTime <= 5.0) {
                resStatus.innerText = "Stabilny komfort";
                resStatus.className = "rk-heat-status status-optimal";
                resCard.style.borderColor = "#bae6fd";
                resCard.style.background = "var(--rk-heat-blue-light)";
            } else {
                if (finalTime <= 8.0) {
                    resStatus.innerText = "Duża bezwładność";
                    resStatus.className = "rk-heat-status status-slow";
                    resCard.style.borderColor = "#fdba74";
                    resCard.style.background = "var(--rk-heat-orange-light)";
                } else {
                    resStatus.innerText = "System ospały (Krytycznie!)";
                    resStatus.className = "rk-heat-status status-critical";
                    resCard.style.borderColor = "var(--rk-heat-red)";
                    resCard.style.background = "#fef2f2"; 
                }
            }
        }
    }

    // Bezpieczne ładowanie - omijanie opóźnień z wtyczek cache/defer (np. WP Rocket)
    function rkInitHeatApp() {
        rkRunHeatCalc();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', rkInitHeatApp);
    } else {
        // Jeśli DOM jest już załadowany (bo wtyczka cache opóźniła wykonanie JS)
        rkInitHeatApp();
    }
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-green: #10b981;
    --rk-proj-red: #ef4444;
    --rk-proj-gray: #64748b;
    --rk-proj-border: #cbd5e1;
    --rk-proj-bg: #ffffff;
    --rk-proj-accent: #f59e0b;
}

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

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

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

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

.rk-proj-subtitle a {
    color: #38bdf8;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interfejs Symulatora */
.rk-proj-simulator {
    padding: 40px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-proj-controls {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
    background: #ffffff;
    padding: 10px;
    border-radius: 20px;
    border: 1px solid var(--rk-proj-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
}

.rk-proj-btn {
    flex: 1;
    padding: 15px 20px;
    border: 2px solid transparent;
    background: #f1f5f9;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-proj-gray);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
}

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

.rk-proj-btn.is-active {
    background: var(--rk-proj-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.4);
}

/* Siatka Wyników (Cards) */
.rk-proj-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.rk-proj-card {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    transition: transform 0.3s ease, border-color 0.3s;
}

.rk-proj-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-proj-blue);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
}

.rk-proj-card-icon {
    width: 44px;
    height: 44px;
    background: var(--rk-proj-blue-light);
    color: var(--rk-proj-blue);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

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

.rk-proj-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-blue);
    margin: 0 0 10px 0;
    min-height: 28px;
}

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

.rk-proj-card p a {
    color: var(--rk-proj-blue);
    font-weight: 600;
    text-decoration: none;
}

/* Tagi SEO */
.rk-proj-tags {
    padding: 30px 50px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    background: #ffffff;
}

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

/* Mocne CTA */
.rk-proj-cta {
    padding: 40px 50px;
    background: #ffffff;
    text-align: center;
}

.rk-proj-cta-box {
    background: radial-gradient(circle at center, #0369a1 0%, var(--rk-proj-dark) 100%);
    border-radius: 20px;
    padding: 40px 30px;
    color: #ffffff;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.3);
    position: relative;
    overflow: hidden;
}

.rk-proj-cta-box h4 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-accent);
    color: var(--rk-proj-dark);
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 14px;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 10px 25px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-massive:hover {
    transform: translateY(-5px) scale(1.02);
    background: #fbbf24;
    box-shadow: 0 20px 35px -5px rgba(245, 158, 11, 0.6);
}

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-simulator, .rk-proj-tags, .rk-proj-cta { padding: 30px 20px; }
    .rk-proj-controls { flex-direction: column; border-radius: 16px; background: transparent; border: none; box-shadow: none; padding: 0;}
    .rk-proj-btn { width: 100%; margin-bottom: 10px; }
    .rk-proj-grid { grid-template-columns: 1fr; }
    .rk-btn-massive { 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/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Jak grubość wylewki wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Analiza inżynieryjna: Zobacz, jak dobór grubości jastrychu determinuje wyniki obliczeń OZC, parametry pompy obiegowej i gęstość izolacji EPS.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-projekt",
    "name": "Parametry projektowe OZC i hydrauliki ogrzewania podłogowego",
    "description": "Zestawienie zmiennych projektowych ukazujących korelację między masą wylewki a obciążeniem cieplnym budynku, hydrauliką i wymaganiami nośnymi styropianu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z obliczeniami OZC",
      "dobór pompy obiegowej do podłogówki",
      "jaki styropian pod ogrzewanie podłogowe",
      "maksymalna długość pętli ogrzewania podłogowego",
      "współpraca rekuperacji z podłogówką"
    ],
    "measurementTechnique": "Algorytmy obliczeniowe oparte na normie PN-EN 12831 (OZC) oraz PN-EN 1264 (systemy płaszczyznowe).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zależność rozstawu rur od oporu cieplnego betonu",
        "Kryteria oporów hydraulicznych pompy obiegowej (kPa)",
        "Wymagana wytrzymałość izolacji (EPS 100 vs XPS)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-projekt",
    "name": "Symulator Wpływu Wylewki na Projekt HVAC",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące efekt domina: jak zmiana warstwy jastrychu wymusza przeliczenie hydrauliki, pętli i parametrów termoizolacji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container">
    <div class="rk-proj-header">
        <h2>Jak wylewka wywraca projekt do góry nogami?</h2>
        <p class="rk-proj-subtitle">
            Grubość betonu w profesjonalnym oprogramowaniu (np. Audytor OZC) to zmienna krytyczna. Zobacz, jak modyfikacja warstwy posadzki definiuje <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obciążenie cieplne budynku (OZC)</a> i zmusza inżyniera do zmiany całego układu hydraulicznego.
        </p>
    </div>

    <div class="rk-proj-simulator">
        <div class="rk-proj-controls">
            <button class="rk-proj-btn" onclick="rkUpdateSim(5)" id="rkBtn5">Cienka (5.5 cm)</button>
            <button class="rk-proj-btn is-active" onclick="rkUpdateSim(7)" id="rkBtn7">Normatywna (7.0 cm)</button>
            <button class="rk-proj-btn" onclick="rkUpdateSim(9)" id="rkBtn9">Przegrubiona (9.0 cm)</button>
        </div>

        <div class="rk-proj-grid">
            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z"></path><path d="M12 16v-8"></path><path d="M8 12h8"></path></svg>
                </div>
                <h3>Obwody i pętle grzewcze</h3>
                <div class="rk-proj-val" id="rkValLoops">Rozstaw co 15 cm</div>
                <p id="rkDescLoops">Optymalna praca układu. Bezpieczna <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długość pętli do 100 m</a>. Ciepło równomiernie przenika przez warstwę akumulacyjną.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
                </div>
                <h3>Hydraulika i Pompa</h3>
                <div class="rk-proj-val" id="rkValPump">Standard (do 20 kPa)</div>
                <p id="rkDescPump"><a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Dobór pompy obiegowej</a> jest prosty. Straty ciśnienia na rozdzielaczu są w normie, urządzenie pracuje energooszczędnie na niskim biegu.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h3>Izolacja i Obciążenie</h3>
                <div class="rk-proj-val" id="rkValEps">Styropian EPS 100</div>
                <p id="rkDescEps">Waga betonu wynosi ok. 150 kg/m². Aby uniknąć osiadania płyty, inżynier projektuje twardy <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropian EPS 100</a>.</p>
            </div>

            <div class="rk-proj-card">
                <div class="rk-proj-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h3>Współpraca z Rekuperacją</h3>
                <div class="rk-proj-val" id="rkValRec">Stabilna cyrkulacja</div>
                <p id="rkDescRec"><a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">Rekuperacja współpracuje z podłogówką</a>. Czas nagrzewania jest zoptymalizowany, co zapobiega przegrzewaniu wentylowanych stref.</p>
            </div>
        </div>
    </div>

    <div class="rk-proj-tags">
        <span class="rk-mat-tag"># projekt ogrzewania podłogowego z obliczeniami OZC</span>
        <span class="rk-mat-tag"># dobór pompy obiegowej do podłogówki</span>
        <span class="rk-mat-tag"># maksymalna długość pętli ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># jaki styropian pod ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># opory hydrauliczne rozdzielacza</span>
        <span class="rk-mat-tag"># współpraca rekuperacji z podłogówką</span>
        <span class="rk-mat-tag"># rozstaw rur ogrzewania podłogowego projekt</span>
        <span class="rk-mat-tag"># audytor ozc instalacje płaszczyznowe</span>
    </div>

    <div class="rk-proj-cta">
        <div class="rk-proj-cta-box">
            <h4>Nie zgaduj na budowie. Zleć inżynierskie obliczenia.</h4>
            <p>Błędy wykonawcze mszczą się przez dekady ukryte pod kafelkami. Profesjonalny projekt instalacji wyliczy każdą pętlę, dobierze pompę co do watta i wyeliminuje strefy niedogrzane. Otrzymasz dokumentację, za którą ręczę swoim nazwiskiem.</p>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
                ZAMÓW KOMPLEKSOWY PROJEKT
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5l7 7-7 7"></path></svg>
            </a>
        </div>
    </div>
</div>

<script>
    function rkUpdateSim(thickness) {
        // Reset button styles
        document.getElementById('rkBtn5').classList.remove('is-active');
        document.getElementById('rkBtn7').classList.remove('is-active');
        document.getElementById('rkBtn9').classList.remove('is-active');

        // References to DOM
        var valLoops = document.getElementById('rkValLoops');
        var descLoops = document.getElementById('rkDescLoops');
        var valPump = document.getElementById('rkValPump');
        var descPump = document.getElementById('rkDescPump');
        var valEps = document.getElementById('rkValEps');
        var descEps = document.getElementById('rkDescEps');
        var valRec = document.getElementById('rkValRec');
        var descRec = document.getElementById('rkDescRec');

        // Logic without && operator for absolute safety
        if (thickness === 5) {
            document.getElementById('rkBtn5').classList.add('is-active');
            
            valLoops.innerText = "Rozstaw 15-20 cm";
            descLoops.innerHTML = "Mały opór cieplny ułatwia oddawanie energii. Długość pętli bezpiecznie skrócona do 80 m, zmniejszając zużycie rury PEX.";
            
            valPump.innerText = "Niskie opory (<15 kPa)";
            descPump.innerHTML = "Układ stawia minimalny opór. Możliwość zastosowania słabszej, wysoce <a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>energooszczędnej pompy obiegowej</a>.";
            
            valEps.innerText = "Styropian EPS 80/100";
            descEps.innerHTML = "Znacznie niższa masa betonu (ok. 110 kg/m²). Mniejsze obciążenie stropu i mniejsze ryzyko ugięć izolacji.";
            
            valRec.innerText = "Szybka reakcja";
            descRec.innerHTML = "Układ reaguje błyskawicznie. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja</a> bez problemu bilansuje świeże powietrze z zyskami słońca.";
        }

        if (thickness === 7) {
            document.getElementById('rkBtn7').classList.add('is-active');
            
            valLoops.innerText = "Rozstaw co 15 cm";
            descLoops.innerHTML = "Optymalna praca układu. Bezpieczna <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>długość pętli do 100 m</a>. Ciepło równomiernie przenika przez warstwę akumulacyjną.";
            
            valPump.innerText = "Standard (do 20 kPa)";
            descPump.innerHTML = "<a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>Dobór pompy obiegowej</a> jest prosty. Straty ciśnienia na rozdzielaczu są w normie, urządzenie pracuje wydajnie.";
            
            valEps.innerText = "Styropian EPS 100";
            descEps.innerHTML = "Waga betonu wynosi ok. 150 kg/m². Aby uniknąć osiadania płyty, inżynier projektuje twardy <a href='https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/'>styropian EPS 100</a>.";
            
            valRec.innerText = "Stabilna cyrkulacja";
            descRec.innerHTML = "<a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja współpracuje z podłogówką</a>. Czas nagrzewania jest zoptymalizowany, co zapobiega przegrzewaniu stref.";
        }

        if (thickness === 9) {
            document.getElementById('rkBtn9').classList.add('is-active');
            
            valLoops.innerText = "Gęsty rozstaw (10 cm)";
            descLoops.innerHTML = "Gruby beton stawia potężny opór cieplny. Rury muszą być ułożone bardzo gęsto. Ryzyko przekroczenia <a href='https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/'>120 m na pętli</a>.";
            
            valPump.innerText = "Przeciążenie (>30 kPa)";
            descPump.innerHTML = "Wiele długich pętli drastycznie winduje opory. Wymagana jest przewymiarowana <a href='https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/'>pompa o dużej wysokości podnoszenia</a>.";
            
            valEps.innerText = "Twardy XPS / EPS 150";
            descEps.innerHTML = "Krytyczne obciążenie konstrukcji (ponad 200 kg/m²). Standardowy <a href='https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/'>styropian</a> ulegnie zgnieceniu, niszcząc dylatacje.";
            
            valRec.innerText = "Ospały system";
            descRec.innerHTML = "Zanim ciepło przebije się przez 9 cm, słońce zdąży nagrzać salon. <a href='https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/'>Rekuperacja</a> nie poradzi sobie z przegrzewaniem.";
        }
    }
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-panel: #1e293b;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-accent: #059669; /* Emerald for success/solution */
    --rk-case-accent-light: #dcfce7;
    --rk-case-warn: #eab308;
    --rk-case-warn-light: #fef9c3;
    --rk-case-gray: #64748b;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
}

.rk-case-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(5, 150, 105, 0.1);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

/* Header */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, var(--rk-case-panel) 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-case-header::after {
    content: '';
    position: absolute;
    right: -20px;
    bottom: -40px;
    width: 150px;
    height: 150px;
    background: var(--rk-case-blue);
    filter: blur(70px);
    opacity: 0.3;
}

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

.rk-case-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative;
    z-index: 1;
}

.rk-case-header p {
    color: #94a3b8;
    font-size: 16px;
    line-height: 1.6;
    max-width: 700px;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Interactive App area */
.rk-case-app {
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-timeline {
    display: flex;
    padding: 30px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-case-border);
    gap: 15px;
}

.rk-case-step-btn {
    flex: 1;
    padding: 20px 15px;
    background: var(--rk-case-bg);
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
}

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

.rk-case-step-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    transition: color 0.3s;
}

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

.rk-case-step-btn.is-active {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-blue-light);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

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

.rk-case-step-btn.is-active .rk-case-step-title {
    color: var(--rk-case-blue);
}

/* Display Panels */
.rk-case-panel {
    display: none;
    padding: 40px 50px;
    animation: rkFadeIn 0.4s ease forwards;
}

.rk-case-panel.is-visible {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 40px;
    align-items: center;
}

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

.rk-case-text-col h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0 0 15px 0;
}

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

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

/* Data Cards in Panels */
.rk-case-data-box {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-case-data-row {
    display: flex;
    justify-content: space-between;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px dashed var(--rk-case-border);
}

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

.rk-data-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-case-gray);
    text-transform: uppercase;
}

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

.rk-data-val.status-warn { color: var(--rk-case-warn); }
.rk-data-val.status-ok { color: var(--rk-case-accent); }

@media (max-width: 768px) {
    .rk-case-header, .rk-case-timeline, .rk-case-panel { padding: 30px 20px; }
    .rk-case-timeline { flex-direction: column; gap: 10px; }
    .rk-case-step-btn { flex-direction: row; padding: 15px; text-align: left; }
    .rk-case-panel.is-visible { grid-template-columns: 1fr; gap: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Case Study: Dobór wylewki dla domu 150 m² w Krakowie",
    "description": "Analiza przypadku inwestora z Krakowa. Zobacz, jak audyt OZC uchronił go przed wylaniem zbyt grubej warstwy betonu i spadkiem efektywności pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-casestudy",
    "name": "Dane projektowe i dobór wylewki - Kraków 2026",
    "description": "Zestawienie parametrów wyjściowych inwestora oraz skorygowanych wartości po wykonaniu profesjonalnego projektu ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego Kraków",
      "błędy przy wylewce podłogowej",
      "optymalizacja wylewki pod pompę ciepła",
      "audyt OZC przed wylewkami",
      "jaka wylewka na podłogówkę case study"
    ],
    "measurementTechnique": "Weryfikacja założeń wykonawcy budowlanego z rzeczywistym zapotrzebowaniem cieplnym budynku i wymaganiami źródła ciepła na podstawie Audytu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan początkowy: Brak projektu, 8 cm zwykłego betonu, panele.",
        "Wykryte ryzyko: Czas reakcji ponad 6 godzin, spadek COP pompy.",
        "Rozwiązanie wdrożone: Projekt OZC, 6 cm betonu z plastyfikatorem, korekta rozstawu rur pod oknami."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-casestudy",
    "name": "Interaktywny Audyt: Projekt Ogrzewania",
    "description": "Aplikacja symulująca proces decyzyjny inżyniera HVAC, pozwalająca użytkownikowi prześledzić etapy od błędnych założeń inwestora do poprawnego projektu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-wrapper">
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study: Kraków</div>
        <h2>Dobór wylewki dla domu z pompą ciepła</h2>
        <p>Inwestor z Krakowa (nowy dom 150 m²) zgłosił się do nas w przeddzień wejścia ekipy posadzkarskiej. Brakowało mu oficjalnego projektu podłogówki, a wykonawca zasugerował rozwiązanie, które zrujnowałoby koszty ogrzewania. Prześledź proces naszej optymalizacji.</p>
    </div>

    <div class="rk-case-app">
        
        <div class="rk-case-timeline">
            <button class="rk-case-step-btn is-active" id="rkCaseBtn1" onclick="rkSetCaseStep(1)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-case-step-title">Problem Inwestora</div>
            </button>

            <button class="rk-case-step-btn" id="rkCaseBtn2" onclick="rkSetCaseStep(2)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><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-case-step-title">Audyt & Obliczenia</div>
            </button>

            <button class="rk-case-step-btn" id="rkCaseBtn3" onclick="rkSetCaseStep(3)">
                <div class="rk-case-step-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-case-step-title">Wdrożone Rozwiązanie</div>
            </button>
        </div>

        <div class="rk-case-panel is-visible" id="rkCasePanel1">
            <div class="rk-case-text-col">
                <h3>Założenia "na oko" wykonawcy</h3>
                <p>Ekipa budowlana doradziła inwestorowi zalanie rur grubą warstwą <strong>8 cm standardowego betonu z gruszki</strong>, "aby posadzka była solidna i nie pękała". Inwestor planował ułożyć na tym panele podłogowe.</p>
                <p>Źródłem ciepła miała być niskotemperaturowa pompa ciepła powietrze-woda. Brakowało rysunków technicznych i wyliczeń oporów.</p>
            </div>
            <div class="rk-case-data-box">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Planowana Grubość</span>
                    <span class="rk-data-val status-warn">8.0 cm</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Wykończenie</span>
                    <span class="rk-data-val">Panele laminowane</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Rodzaj masy</span>
                    <span class="rk-data-val status-warn">Zwykły beton</span>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="rkCasePanel2">
            <div class="rk-case-text-col">
                <h3>Symulacja awarii termicznej</h3>
                <p>Jako inżynierzy natychmiast przeliczyliśmy ten wariant. Połączyliśmy 8 cm porowatego betonu z izolacyjnością planowanych paneli.</p>
                <p>Wynik? Łączny opór cieplny przebijał normę. Pompa ciepła musiałaby tłoczyć wodę o temperaturze wyższej o 4°C, by dom się dogrzał, co drastycznie obniżyłoby współczynnik COP. Dodatkowo bezwładność tak grubej płyty uniemożliwiłaby inteligentne sterowanie strefowe.</p>
            </div>
            <div class="rk-case-data-box" style="border-color: var(--rk-case-warn); background: var(--rk-case-warn-light);">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Prognoza: Czas Reakcji</span>
                    <span class="rk-data-val status-warn">Ponad 6 godzin</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Prognoza: Łączny Opór</span>
                    <span class="rk-data-val status-warn">> 0,16 m²K/W</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Ryzyko</span>
                    <span class="rk-data-val status-warn">Spadek COP i rachunki w górę</span>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="rkCasePanel3">
            <div class="rk-case-text-col">
                <h3>Projekt i optymalizacja chemiczna</h3>
                <p>Wykonaliśmy błyskawiczny audyt OZC dla budynku w Krakowie. Zmieniliśmy koncepcję posadzki, wprowadzając dedykowany <strong>plastyfikator usuwający pęcherzyki powietrza</strong> z mieszanki.</p>
                <p>To pozwoliło bezpiecznie zredukować grubość betonu do 6,0 cm (zachowując nośność). Ciepło z pompy przenika teraz do pomieszczeń błyskawicznie, mimo ułożenia paneli.</p>
            </div>
            <div class="rk-case-data-box" style="border-color: var(--rk-case-accent); background: var(--rk-case-accent-light);">
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Nowa Grubość</span>
                    <span class="rk-data-val status-ok">6.0 cm</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Chemia</span>
                    <span class="rk-data-val status-ok">Plastyfikator grzewczy</span>
                </div>
                <div class="rk-case-data-row">
                    <span class="rk-data-label">Czas Reakcji</span>
                    <span class="rk-data-val status-ok">Skrócony do ~3.5 h</span>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkSetCaseStep(stepNum) {
        // Reset buttons (bezpiecznie bez użycia operatora &&)
        var btns = document.querySelectorAll('.rk-case-step-btn');
        for(var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        var activeBtn = document.getElementById('rkCaseBtn' + stepNum);
        if (activeBtn) {
            activeBtn.classList.add('is-active');
        }

        // Hide all panels
        var panels = document.querySelectorAll('.rk-case-panel');
        for(var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        // Show selected panel
        var activePanel = document.getElementById('rkCasePanel' + stepNum);
        if (activePanel) {
            activePanel.classList.add('is-visible');
        }
    }
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-blue: #0284c7;
    --rk-exp-bg: #ffffff;
    --rk-exp-border: #e2e8f0;
    --rk-exp-gray: #475569;
    --rk-exp-light: #f8fafc;
    --rk-exp-accent: #f59e0b;
}

.rk-exp-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-exp-bg);
    border-radius: 16px;
    box-shadow: 0 15px 35px -5px rgba(15, 23, 42, 0.1);
    border: 2px solid var(--rk-exp-border);
    overflow: hidden;
}

/* Header */
.rk-exp-header {
    background: var(--rk-exp-dark);
    padding: 30px 40px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-exp-blue);
}

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

/* Main Layout */
.rk-exp-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: var(--rk-exp-bg);
}

/* Sidebar - Author Info */
.rk-exp-sidebar {
    padding: 30px;
    background: var(--rk-exp-light);
    border-right: 1px solid var(--rk-exp-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-exp-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

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

.rk-exp-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-exp-blue);
    text-transform: uppercase;
    margin: 0 0 20px 0;
    letter-spacing: 0.5px;
}

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

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

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

/* Interactive Content Area */
.rk-exp-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
}

.rk-exp-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    border-bottom: 2px solid var(--rk-exp-border);
    padding-bottom: 15px;
}

.rk-exp-tab-btn {
    padding: 10px 20px;
    background: #ffffff;
    border: 2px solid var(--rk-exp-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-exp-gray);
    cursor: pointer;
}

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

.rk-exp-quote-box {
    position: relative;
    padding: 30px;
    background: #f1f5f9;
    border-radius: 12px;
    border-left: 6px solid var(--rk-exp-accent);
}

.rk-exp-quote-mark {
    position: absolute;
    top: 15px;
    left: 20px;
    font-size: 60px;
    font-family: Georgia, serif;
    color: #cbd5e1;
    line-height: 1;
}

.rk-exp-text-content {
    position: relative;
    z-index: 1;
    font-size: 18px;
    line-height: 1.6;
    color: var(--rk-exp-dark);
    font-weight: 600;
    margin: 0;
}

/* Tab Panels */
.rk-exp-panel {
    display: none;
}

.rk-exp-panel.is-visible {
    display: block;
}

@media (max-width: 768px) {
    .rk-exp-layout {
        grid-template-columns: 1fr;
    }
    .rk-exp-sidebar {
        border-right: none;
        border-bottom: 1px solid var(--rk-exp-border);
        flex-direction: row;
        text-align: left;
        align-items: center;
        gap: 20px;
        padding: 20px;
    }
    .rk-exp-photo {
        width: 80px;
        height: 80px;
        margin-bottom: 0;
    }
    .rk-exp-socials {
        margin-top: 10px;
    }
    .rk-exp-tabs {
        flex-direction: column;
    }
    .rk-exp-header, .rk-exp-content {
        padding: 25px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o grubości wylewki",
    "description": "Podsumowanie inżynierskie i najważniejsze zasady wykonawcze dla jastrychów grzewczych. Autorski audyt eksperta 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/",
      "jobTitle": "CEO, Główny Projektant HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-ekspert",
    "name": "Złote zasady i błędy wykonawcze wylewek grzewczych",
    "description": "Baza danych dobrych praktyk instalacyjnych weryfikowana na podstawie ponad 1000 zrealizowanych audytów i projektów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert ogrzewanie podłogowe",
      "Robert Kucharski opinie wylewki",
      "najczęstsze błędy wylewka betonowa",
      "złota zasada ogrzewania podłogowego",
      "projektant instalacji HVAC"
    ],
    "measurementTechnique": "Wiedza oparta na wieloletnim doświadczeniu projektowym, audytach OZC oraz analizie uszkodzeń systemów w domach jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak projektu zawsze podnosi koszty eksploatacji.",
        "Optymalna grubość to kompromis między wytrzymałością a dynamiką grzania.",
        "Błąd otuliny jest nienaprawialny po zalaniu betonu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-ekspert",
    "name": "Moduł Wniosków Eksperckich HVAC",
    "description": "Interaktywny panel prezentujący bezpośrednie rekomendacje inżynierskie, pozwalający użytkownikowi na szybką nawigację między konkluzjami, błędami a zasadami wykonawczymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-wrapper">
    <div class="rk-exp-header">
        <h2>Zdaniem eksperta: Robert Kucharski o grubości wylewki</h2>
    </div>

    <div class="rk-exp-layout">
        <div class="rk-exp-sidebar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski Ekspert HVAC" class="rk-exp-photo">
            <div>
                <h3 class="rk-exp-name">Robert Kucharski</h3>
                <div class="rk-exp-title">CEO / HVAC</div>
                <div class="rk-exp-socials">
                    <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="Facebook Projekt Ogrzewania">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                    </a>
                    <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="LinkedIn Robert Kucharski">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                    </a>
                </div>
            </div>
        </div>

        <div class="rk-exp-content">
            <div class="rk-exp-tabs">
                <button class="rk-exp-tab-btn is-active" id="rkTabBtn1" onclick="rkSwitchTab(1)">Główny Wniosek</button>
                <button class="rk-exp-tab-btn" id="rkTabBtn2" onclick="rkSwitchTab(2)">Największy Błąd</button>
                <button class="rk-exp-tab-btn" id="rkTabBtn3" onclick="rkSwitchTab(3)">Złota Zasada</button>
            </div>

            <div class="rk-exp-quote-box">
                <div class="rk-exp-quote-mark">"</div>
                
                <div id="rkTab1" class="rk-exp-panel is-visible">
                    <p class="rk-exp-text-content">
                        Grubość wylewki to nie jest parametr, który można ustalić "na oko" w dniu wchodzenia ekipy budowlanej. Każdy centymetr betonu powyżej normy izoluje ciepło i obciąża pompę, a każdy milimetr poniżej granicy bezpieczeństwa grozi pęknięciem posadzki. Precyzja w tym aspekcie decyduje o kosztach ogrzewania przez kolejne dekady.
                    </p>
                </div>

                <div id="rkTab2" class="rk-exp-panel">
                    <p class="rk-exp-text-content" style="color: var(--rk-exp-dark);">
                        Najkosztowniejszym błędem inwestorów jest dobieranie wykończenia podłogi (np. grubej deski dębowej) już po wylaniu 8-centymetrowego betonu. Połączenie masywnego jastrychu i izolującej deski tworzy potężną blokadę termiczną, której nie przebije nawet najbardziej przewymiarowana pompa ciepła w środku zimy.
                    </p>
                </div>

                <div id="rkTab3" class="rk-exp-panel">
                    <p class="rk-exp-text-content" style="color: var(--rk-exp-dark);">
                        Jeżeli decydujesz się na grube panele lub drewno, nakazuję inżynierskie zejście z grubości wylewki do bezpiecznego minimum (6 cm) przy użyciu najwyższej jakości plastyfikatorów. Pamiętaj: system to naczynia połączone. Zanim zamówisz materiały, zleć wykonanie profesjonalnych obliczeń OZC.
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
    function rkSwitchTab(tabId) {
        // Reset button styles (bez uzycia &&)
        var btns = document.querySelectorAll('.rk-exp-tab-btn');
        for (var i = 0; i < btns.length; i++) {
            btns[i].classList.remove('is-active');
        }
        
        // Hide all panels
        var panels = document.querySelectorAll('.rk-exp-panel');
        for (var j = 0; j < panels.length; j++) {
            panels[j].classList.remove('is-visible');
        }
        
        // Activate selected
        var activeBtn = document.getElementById('rkTabBtn' + tabId);
        var activePanel = document.getElementById('rkTab' + tabId);
        
        if (activeBtn) {
            activeBtn.classList.add('is-active');
        }
        
        if (activePanel) {
            activePanel.classList.add('is-visible');
        }
    }
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-hover: #0369a1;
    --rk-faq-light-blue: #f0f9ff;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-bg: #ffffff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.1);
}

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: transparent;
}

.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    border-radius: 20px 20px 0 0;
    padding: 35px 45px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-faq-header-icon {
    width: 48px;
    height: 48px;
    background: rgba(56, 189, 248, 0.15);
    border: 1px solid rgba(56, 189, 248, 0.3);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -0.5px;
    color: #f8fafc;
}

.rk-faq-wrapper {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-top: none;
    border-radius: 0 0 20px 20px;
    padding: 20px 45px 45px 45px;
    box-shadow: var(--rk-faq-shadow);
}

.rk-faq-item {
    border-bottom: 1px solid var(--rk-faq-border);
    transition: all 0.3s ease;
}

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

.rk-faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    transition: color 0.3s;
}

.rk-faq-question:hover {
    color: var(--rk-faq-blue);
}

.rk-faq-question h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    padding-right: 20px;
}

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

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

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

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

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

.rk-faq-answer-inner a:hover {
    color: var(--rk-faq-blue-hover);
    border-bottom-style: solid;
}

/* Responsywność dla mobile (stackowanie, odpowiednie paddingi) */
@media (max-width: 768px) {
    .rk-faq-header {
        padding: 25px 20px;
        border-radius: 16px 16px 0 0;
    }
    .rk-faq-header h2 {
        font-size: 22px;
    }
    .rk-faq-wrapper {
        padding: 10px 20px 25px 20px;
        border-radius: 0 0 16px 16px;
    }
    .rk-faq-question {
        padding: 20px 0;
    }
    .rk-faq-question h3 {
        font-size: 16px;
    }
    .rk-faq-answer-inner {
        font-size: 14px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o grubość wylewki",
    "description": "Zbiór najważniejszych inżynierskich odpowiedzi dotyczących prawidłowej grubości, zbrojenia i wylewek pod pompy ciepła na instalacjach podłogowych.",
    "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-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jaka jest optymalna grubość wylewki betonowej na ogrzewanie podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalna całkowita grubość wylewki cementowej wynosi od 6,0 do 8,0 cm, co przy standardowej instalacji gwarantuje warstwę czystej otuliny betonowej nad rurą w przedziale 3,0–4,5 cm. Taki wymiar zapewnia idealny kompromis pomiędzy wytrzymałością mechaniczną posadzki a niską bezwładnością cieplną układu."
        }
      },
      {
        "@type": "Question",
        "name": "Czym grozi wylanie zbyt cienkiej warstwy betonu nad rurami grzewczymi?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wylanie warstwy poniżej 3,0 cm nad rurą skutkuje liniowymi pęknięciami jastrychu, odspajaniem płytek oraz drastycznym obniżeniem nośności posadzki na obciążenia punktowe. Dodatkowo wywołuje to zjawisko zebry termicznej, czyli nierównomiernego rozkładu temperatur na powierzchni podłogi."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pod pompy ciepła wylewka betonowa powinna być cieńsza?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przy zasilaniu niskotemperaturowym z pompy ciepła (35°C) dąży się do minimalizacji oporu cieplnego, dlatego zaleca się wylewki o grubości 6,0–6,5 cm z obowiązkowym dodatkiem plastyfikatora. Pozwala to na maksymalne skrócenie czasu reakcji układu i podniesienie parametru COP pompy."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest różnica w grubości między wylewką betonową a anhydrytową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tradycyjna wylewka betonowa wymaga grubości całkowitej 6–8 cm (minimum 3 cm nad rurą), natomiast płynny jastrych anhydrytowy może mieć grubość zaledwie 3,5–5,0 cm (w tym jedynie 2 cm otuliny nad rurą). Różnica wynika z wyższej wytrzymałości na zginanie oraz lepszej przewodności cieplnej anhydrytu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można pominąć siatkę zbrojącą przy grubości wylewki wynoszącej 7 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, przy całkowitej grubości 7,0 cm i zastosowaniu mikrozbrojenia z włókien polipropylenowych oraz plastyfikatora, klasyczna siatka stalowa nie jest konieczna w pomieszczeniach mieszkalnych. Siatka pozostaje jednak bezwzględnie wymagana w garażach oraz w miejscach, gdzie grubość otuliny nad rurą spada poniżej 3,0 cm."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-faq",
    "name": "Baza Wiedzy: Rozwiązywanie Problemów z Wylewkami Grzewczymi",
    "description": "Zestawienie najczęstszych pytań i eksperckich odpowiedzi dotyczących parametrów jastrychu, zbrojenia i doboru instalacji pod pompy ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna grubość wylewki betonowej na ogrzewanie podłogowe",
      "skutki zbyt cienkiej wylewki",
      "wylewka pod pompę ciepła",
      "różnica między wylewką betonową a anhydrytową",
      "zbrojenie wylewki 7 cm"
    ],
    "measurementTechnique": "Analiza zapytań inwestorów i walidacja rozwiązań z normą PN-EN 1264 oraz instrukcjami producentów chemii budowlanej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecenia dotyczące otuliny minimalnej",
        "Zasady rezygnacji ze zbrojenia stalowego",
        "Kompensacja oporów dla pomp ciepła"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-faq",
    "name": "Interaktywny Asystent Wiedzy o Wylewkach",
    "description": "Moduł akordeonowy udostępniający błyskawiczne odpowiedzi na kluczowe problemy techniczne związane z realizacją podkładów podłogowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="26" height="26" 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>
        </div>
        <h2>FAQ – Najczęściej zadawane pytania</h2>
    </div>

    <div class="rk-faq-wrapper">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Jaka jest optymalna grubość wylewki betonowej na ogrzewanie podłogowe?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Optymalna całkowita grubość <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki cementowej</a> wynosi od 6,0 do 8,0 cm, co przy standardowej instalacji gwarantuje warstwę czystej otuliny betonowej nad rurą w przedziale 3,0–4,5 cm. Taki wymiar zapewnia idealny kompromis pomiędzy wytrzymałością mechaniczną posadzki a niską <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładnością cieplną</a> układu.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czym grozi wylanie zbyt cienkiej warstwy betonu nad rurami grzewczymi?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Wylanie warstwy poniżej 3,0 cm nad rurą skutkuje liniowymi pęknięciami jastrychu, odspajaniem płytek oraz drastycznym obniżeniem nośności posadzki na obciążenia punktowe. Dodatkowo wywołuje to zjawisko "zebry termicznej", czyli nierównomiernego rozkładu temperatur na powierzchni podłogi.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czy pod pompy ciepła wylewka betonowa powinna być cieńsza?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, przy zasilaniu niskotemperaturowym z <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> (35°C) dąży się do minimalizacji oporu cieplnego, dlatego zaleca się wylewki o grubości 6,0–6,5 cm z obowiązkowym dodatkiem plastyfikatora. Pozwala to na maksymalne skrócenie czasu reakcji układu i podniesienie parametru COP pompy. Dzięki temu upewnisz się <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-energooszczedne/">czy ogrzewanie podłogowe jest energooszczędne</a> na najwyższym poziomie.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Jaka jest różnica w grubości między wylewką betonową a anhydrytową?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tradycyjna wylewka betonowa wymaga grubości całkowitej 6–8 cm (minimum 3 cm nad rurą), natomiast płynny jastrych anhydrytowy może mieć grubość zaledwie 3,5–5,0 cm (w tym jedynie 2 cm otuliny nad rurą). Różnica wynika z wyższej wytrzymałości na zginanie oraz lepszej przewodności cieplnej anhydrytu.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" onclick="rkToggleAccordion(this)" aria-expanded="false">
                <h3>Czy można pominąć siatkę zbrojącą przy grubości wylewki wynoszącej 7 cm?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, przy całkowitej grubości 7,0 cm i zastosowaniu mikrozbrojenia z włókien polipropylenowych oraz plastyfikatora, klasyczna siatka stalowa nie jest konieczna w pomieszczeniach mieszkalnych. Siatka pozostaje jednak bezwzględnie wymagana w garażach oraz w miejscach, gdzie grubość otuliny nad rurą spada poniżej 3,0 cm.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
    function rkToggleAccordion(button) {
        var item = button.parentElement;
        var answer = item.querySelector('.rk-faq-answer');
        var isCurrentlyOpen = item.classList.contains('is-open');
        
        // Zwijanie wszystkich pozostałych paneli (opcjonalnie dla czystszego UX)
        var allItems = document.querySelectorAll('.rk-faq-item');
        for (var i = 0; i < allItems.length; i++) {
            allItems[i].classList.remove('is-open');
            allItems[i].querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
            allItems[i].querySelector('.rk-faq-answer').style.maxHeight = null;
        }

        // Jeżeli kliknięty element nie był otwarty, otwórz go (bezpieczne rozwiązanie bez operatora &#038;&#038;)
        if (isCurrentlyOpen === false) {
            item.classList.add('is-open');
            button.setAttribute('aria-expanded', 'true');
            answer.style.maxHeight = answer.scrollHeight + "px";
        }
    }
</script>



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

.rk-summary-block {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(2, 132, 199, 0.12);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

/* Header Section */
.rk-summary-header {
    padding: 40px 50px;
    background: radial-gradient(circle at top right, #1e293b 0%, var(--rk-sum-dark) 100%);
    color: #fff;
    text-align: center;
}

.rk-summary-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.15);
    color: var(--rk-sum-accent);
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-summary-title {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #f8fafc;
}

/* Interactive Health Meter */
.rk-health-dashboard {
    background: #f8fafc;
    padding: 30px 50px;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-health-bar-container {
    height: 24px;
    background: #e2e8f0;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 15px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-health-bar-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--rk-sum-red) 0%, var(--rk-sum-gold) 50%, var(--rk-sum-green) 100%);
    transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-health-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 700;
    color: var(--rk-sum-dark);
}

.rk-health-score {
    font-size: 24px;
    color: var(--rk-sum-blue);
}

/* Interactive Toggles Grid */
.rk-interactive-rules {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
}

.rk-rule-card {
    background: #ffffff;
    border: 2px solid var(--rk-sum-border);
    border-radius: 16px;
    padding: 25px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-rule-card:hover {
    border-color: var(--rk-sum-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.1);
}

.rk-rule-card.is-active {
    border-color: var(--rk-sum-green);
    background: var(--rk-sum-green-light);
}

.rk-rule-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.rk-rule-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0;
}

.rk-toggle-switch {
    width: 48px;
    height: 24px;
    background: #cbd5e1;
    border-radius: 12px;
    position: relative;
    transition: background 0.3s;
}

.rk-rule-card.is-active .rk-toggle-switch {
    background: var(--rk-sum-green);
}

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

.rk-rule-card.is-active .rk-toggle-knob {
    transform: translateX(24px);
}

.rk-rule-desc {
    font-size: 14px;
    color: var(--rk-sum-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-rule-card.is-active .rk-rule-desc {
    color: #065f46;
}

/* Tags Section */
.rk-tags-section {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

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

.rk-mat-tag:hover {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    border-color: #bae6fd;
}

/* Creative CTA */
.rk-cta-zone {
    padding: 45px 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-cta-zone::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(2,132,199,0.1) 0%, transparent 60%);
    pointer-events: none;
}

.rk-cta-title {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-cta-text {
    font-size: 16px;
    color: #94a3b8;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.7;
    position: relative;
    z-index: 1;
}

.rk-btn-neon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #ffffff;
    color: var(--rk-sum-dark);
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 0 20px rgba(255,255,255,0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 1;
}

.rk-btn-neon:hover {
    transform: translateY(-5px);
    background: var(--rk-sum-blue);
    color: #ffffff;
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

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

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

/* Responsive adjustments */
@media (max-width: 768px) {
    .rk-summary-header, .rk-health-dashboard, .rk-interactive-rules, .rk-tags-section, .rk-cta-zone {
        padding: 30px 20px;
    }
    .rk-interactive-rules {
        grid-template-columns: 1fr; /* Stack vertically on mobile */
    }
    .rk-summary-title {
        font-size: 24px;
    }
    .rk-btn-neon {
        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/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Podsumowanie – Inżynierskie zasady doboru grubości wylewki",
    "description": "Zestawienie optymalnych parametrów grubości jastrychu betonowego dla systemów płaszczyznowych. Interaktywny wskaźnik poprawności montażu wylewki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-wylewka",
    "name": "Wytyczne Techniczne: Parametry Wylewki na Ogrzewanie Podłogowe",
    "description": "Zbiór kluczowych wartości liczbowych niezbędnych do prawidłowego wylania jastrychu na systemie ogrzewania podłogowego. Zawiera grubości minimalne i zalecane.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna grubość wylewki betonowej",
      "minimalna grubość jastrychu na ogrzewanie podłogowe",
      "ile centymetrów wylewki na podłogówkę",
      "plastyfikator do wylewek z ogrzewaniem podłogowym",
      "czas nagrzewania wylewki betonowej"
    ],
    "measurementTechnique": "Określenie parametrów na podstawie normy PN-EN 1264 oraz PN-EN 13813 uwzględniających opór cieplny i nośność.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Minimalna otulina betonowa nad rurką: 3,0 cm",
        "Zalecana całkowita grubość wylewki: 6-8 cm",
        "Wymóg stosowania plastyfikatorów i dylatacji"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-wylewka",
    "name": "Interaktywny Wskaźnik Poprawności Montażu Wylewki",
    "description": "Narzędzie pozwalające inwestorowi zweryfikować kluczowe parametry jastrychu (grubość, otulina, chemia budowlana) i ocenić potencjalne ryzyko awarii posadzki.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-block" id="wylewka-summary-app">
    <div class="rk-summary-header">
        <div class="rk-summary-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"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Inżynierskie Podsumowanie
        </div>
        <h2 class="rk-summary-title">Zanim wylejesz beton – 4 filary bezpiecznej podłogi</h2>
        <p style="color: #cbd5e1; font-size: 16px; max-width: 700px; margin: 0 auto; line-height: 1.6;">
            Beton nie wybacza błędów. Zbyt cienki pęknie, zbyt gruby wydrenuje Twój portfel i zaburzy pracę pompy ciepła. Uruchom poniższy symulator poprawności i upewnij się, że nie pominąłeś żadnego z kroków wynikających z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color: var(--rk-sum-accent); text-decoration: underline;">inżynierskich standardów</a>.
        </p>
    </div>

    <div class="rk-health-dashboard">
        <div class="rk-health-bar-container">
            <div class="rk-health-bar-fill" id="rkHealthBar"></div>
        </div>
        <div class="rk-health-status">
            <span>Gotowość do zalewania posadzki:</span>
            <span class="rk-health-score" id="rkHealthScore">0%</span>
        </div>
        <p id="rkHealthMessage" style="font-size: 14px; color: var(--rk-sum-red); margin: 10px 0 0 0; font-weight: 600;">
            Krytyczne braki technologiczne. Instalacja zagrożona usterką!
        </p>
    </div>

    <div class="rk-interactive-rules">
        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Otulina min. 3 cm</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Nad najwyższym punktem rury grzewczej zachowano absolutne minimum 30 mm czystego betonu chroniącego przed naciskiem punktowym i tzw. efektem klawiszowania.</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Całkowita grubość 6-8 cm</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Grubość jastrychu dostosowana do oporu cieplnego posadzki. Optymalizuje czas nagrzewania i likwiduje problem "zebry termicznej" oraz przeciążenia stropu.</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Plastyfikator do betonu</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Zastosowano chemię eliminującą bąbelki powietrza. Beton idealnie oblał rury, zwiększając przewodność cieplną λ z 1,2 do nawet 1,45 W/(m·K).</p>
        </div>

        <div class="rk-rule-card" onclick="toggleRule(this)" data-val="25">
            <div class="rk-rule-header">
                <h3 class="rk-rule-title">Kompletne dylatacje</h3>
                <div class="rk-toggle-switch"><div class="rk-toggle-knob"></div></div>
            </div>
            <p class="rk-rule-desc">Wykonano taśmy brzegowe oraz nacięcia pośrednie dla pól powyżej 36 m². Płyta grzewcza może swobodnie "pracować" pod wpływem temperatury.</p>
        </div>
    </div>

    <div class="rk-tags-section">
        <span class="rk-mat-tag"># optymalna grubość wylewki betonowej</span>
        <span class="rk-mat-tag"># minimalna grubość jastrychu na ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># ile centymetrów wylewki na podłogówkę</span>
        <span class="rk-mat-tag"># wylewka anhydrytowa a cementowa różnice</span>
        <span class="rk-mat-tag"># plastyfikator do wylewek z ogrzewaniem podłogowym</span>
        <span class="rk-mat-tag"># pękanie wylewki na ogrzewaniu podłogowym</span>
        <span class="rk-mat-tag"># profesjonalny projekt instalacji ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># czas nagrzewania wylewki betonowej</span>
    </div>

    <div class="rk-cta-zone">
        <h3 class="rk-cta-title">Budowa Bez Ściemy. Ogrzewanie bez kompromisów.</h3>
        <p class="rk-cta-text">
            Chcesz mieć pewność, że parametry Twojej wylewki są perfekcyjnie dopasowane do mocy pompy ciepła i rozstawu rur? Wszystko zaczyna się na papierze. Nie zgaduj na budowie – powierz <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" style="color: var(--rk-sum-accent);">wykonanie OZC i układu hydraulicznego</a> profesjonalistom.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-neon">
            ZDOBĄDŹ WIEDZĘ EKSPERCKĄ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
    let rkCurrentScore = 0;

    function toggleRule(element) {
        const value = parseInt(element.getAttribute('data-val'));
        
        if (element.classList.contains('is-active')) {
            element.classList.remove('is-active');
            rkCurrentScore = rkCurrentScore - value;
        } else {
            element.classList.add('is-active');
            rkCurrentScore = rkCurrentScore + value;
        }

        updateDashboard();
    }

    function updateDashboard() {
        const barFill = document.getElementById('rkHealthBar');
        const scoreText = document.getElementById('rkHealthScore');
        const msgText = document.getElementById('rkHealthMessage');

        barFill.style.width = rkCurrentScore + '%';
        scoreText.innerText = rkCurrentScore + '%';

        if (rkCurrentScore === 0) {
            msgText.innerText = 'Krytyczne braki technologiczne. Instalacja zagrożona usterką!';
            msgText.style.color = 'var(--rk-sum-red)';
            scoreText.style.color = 'var(--rk-sum-red)';
        } else if (rkCurrentScore > 0) {
            if (rkCurrentScore < 100) {
                msgText.innerText = 'Część wymogów spełniona, ale system nadal narażony na pęknięcia i straty ciepła.';
                msgText.style.color = 'var(--rk-sum-gold)';
                scoreText.style.color = 'var(--rk-sum-gold)';
            } else {
                if (rkCurrentScore === 100) {
                    msgText.innerText = 'Wzorowy standard inżynierski! Twoja posadzka jest gotowa do bezpiecznego wylania betonu.';
                    msgText.style.color = 'var(--rk-sum-green)';
                    scoreText.style.color = 'var(--rk-sum-green)';
                }
            }
        }
    }
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-accent: #f59e0b;
    --rk-dl-gray: #475569;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
}

.rk-dl-wrapper {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 16px;
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
}

/* Header */
.rk-dl-header {
    background: var(--rk-dl-dark);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-dl-header-text h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

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

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

/* Preview Column */
.rk-dl-preview-col {
    padding: 40px;
    background: var(--rk-dl-blue-light);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumbnail-box {
    width: 100%;
    background: #ffffff;
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.2);
    border: 1px solid var(--rk-dl-border);
    position: relative;
    cursor: pointer;
}

.rk-dl-thumbnail-box::after {
    content: '🔍 POWIĘKSZ';
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--rk-dl-dark);
    color: #ffffff;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumbnail-box:hover::after {
    opacity: 1;
}

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

.rk-dl-preview-desc {
    margin-top: 20px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-dl-blue);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Actions Column */
.rk-dl-actions-col {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-info {
    margin-bottom: 35px;
}

.rk-dl-info h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-info p {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 25px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 800;
    transition: all 0.2s;
}

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

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

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

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

.rk-dl-btn-icon {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-dl-meta {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.8;
}

/* Footer / Copyright */
.rk-dl-footer {
    padding: 20px 45px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    color: var(--rk-dl-gray);
    line-height: 1.5;
    text-align: center;
}

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

/* Fullscreen Modal */
.rk-dl-modal {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 9999;
    padding: 40px;
    justify-content: center;
    align-items: center;
}

.rk-dl-modal.is-open {
    display: flex;
}

.rk-dl-modal-content {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 40px;
    cursor: pointer;
    line-height: 1;
}

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/"
    },
    "headline": "Pobierz Infografikę: Kompendium parametrów wylewki",
    "description": "Zestawienie normatywnych parametrów grubości i oporów cieplnych posadzek w formie graficznej, przygotowane specjalnie dla inwestorów i wykonawców.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-27",
    "dateModified": "2026-06-27"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#dataset-infografika",
    "name": "Infografika techniczna: Ogrzewanie podłogowe a wylewka",
    "description": "Plik PDF i WebP o wysokiej rozdzielczości zawierający zbiór kluczowych błędów montażowych, wytycznych normowych i zależności oporu cieplnego okładzin.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "ściągawka wylewka betonowa PDF",
      "błędy inwestorów posadzki grzewczej",
      "normy projektowe podłogówka",
      "grubość wylewki tabela wykończeń"
    ],
    "measurementTechnique": "Przedstawienie skomplikowanych wyliczeń OZC oraz wymogów prawnych PN-EN w formie wektorowego schematu graficznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zalecane grubości posadzek a rodzaj paneli / płytek.",
        "Krzywe spadku COP przy przewymiarowaniu warstwy betonowej.",
        "Rekomendacje dotyczące otuliny w zależności od średnicy rury."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/#webapp-infografika",
    "name": "Moduł Dystrybucji Wiedzy Inżynierskiej",
    "description": "Interfejs do pobierania autorskich materiałów edukacyjnych (PDF, WebP), umożliwiający zapis plików bezpośrednio na urządzeniu użytkownika w celach projektowych.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-wrapper">
    <div class="rk-dl-header">
        <div class="rk-dl-header-text">
            <h2>Materiały do pobrania</h2>
            <p>Zachowaj tę wiedzę dla siebie lub przekaż ją swojemu wykonawcy.</p>
        </div>
        <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color: #38bdf8;"><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>
    </div>

    <div class="rk-dl-layout">
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumbnail-box" onclick="rkOpenModal()">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" alt="Infografika - Grubość wylewki betonowej na ogrzewanie podłogowe" class="rk-dl-thumbnail">
            </div>
            <div class="rk-dl-preview-desc">Kliknij, aby podglądnąć</div>
        </div>

        <div class="rk-dl-actions-col">
            <div class="rk-dl-info">
                <h3>Infografika: Ściągawka Inwestora</h3>
                <p>Przygotowałem skrót najważniejszych norm, zaleceń i pułapek technologicznych w wygodnej formie graficznej. Zapisz plik na telefonie przed wizytą na budowie.</p>
            </div>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.pdf" download class="rk-dl-btn rk-dl-btn-primary" target="_blank">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><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>
                        <span>Pobierz jako dokument PDF</span>
                    </div>
                    <span class="rk-dl-meta">Wysoka jakość</span>
                </a>

                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" download class="rk-dl-btn rk-dl-btn-secondary" target="_blank">
                    <div class="rk-dl-btn-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
                        <span>Pobierz jako Obraz (WebP)</span>
                    </div>
                    <span class="rk-dl-meta">Lekki plik</span>
                </a>
            </div>
        </div>
    </div>

    <div class="rk-dl-footer">
        &copy; 2026 <strong>Projekt-Ogrzewania.pl</strong> | Autor: Robert Kucharski.<br>Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez modyfikacji pliku.
    </div>
</div>

<div class="rk-dl-modal" id="rkImageModal" onclick="rkCloseModal(event)">
    <button class="rk-dl-modal-close" onclick="rkCloseModal(event)">&times;</button>
    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe.webp" alt="Podgląd Infografiki" class="rk-dl-modal-content" id="rkModalImg">
</div>

<script>
    function rkOpenModal() {
        var modal = document.getElementById('rkImageModal');
        if (modal) {
            modal.classList.add('is-open');
        }
    }

    function rkCloseModal(event) {
        var modal = document.getElementById('rkImageModal');
        var modalImg = document.getElementById('rkModalImg');
        
        // Zamykaj tylko jeśli kliknięto tło (modal) lub przycisk zamknięcia, a nie sam obrazek (bez &&)
        if (event.target === modal) {
            modal.classList.remove('is-open');
        } else {
            if (event.target.classList.contains('rk-dl-modal-close')) {
                modal.classList.remove('is-open');
            }
        }
    }
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">Grubość wylewki betonowej na ogrzewanie podłogowe.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne?</title>
		<link>https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 23 Oct 2025 08:56:54 +0000</pubDate>
				<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Ogrzewanie wodne]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[elektryczne ogrzewanie podłogowe]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[montaż ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[porównanie]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<category><![CDATA[wodne ogrzewanie podłogowe]]></category>
		<category><![CDATA[wybór ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2822</guid>

					<description><![CDATA[<p>Planujesz budowę domu lub gruntowny remont i marzysz o przyjemnym cieple bijącym od podłogi? Decyzja, jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne, jest kluczowa dla przyszłego komfortu i kosztów utrzymania. Oba systemy zapewniają równomierną temperaturę i wysoki standard użytkowania, ale radykalnie różnią się zasadą działania, ceną i przeznaczeniem. W naszym kompleksowym artykule rozkładamy na czynniki pierwsze obie technologie. Znajdziesz szczegółowe porównanie kosztów inwestycyjnych i eksploatacyjnych, analizę trudności montażu oraz konkretne wskazówki, które pomogą Ci dobrać idealny system do Twojego projektu, budżetu i potrzeb. Dowiesz się, czy inwestycja w "hydronikę" się opłaca i kiedy zdecydowanie lepiej sprawdzi się prostsze rozwiązanie elektryczne.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/">Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-gray: #64748b;
    --rk-intro-gray-light: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
    --rk-intro-accent: #d97706;
}

.rk-intro-wrap {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    box-shadow: 0 10px 30px -10px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-intro-border);
    border-left: 6px solid var(--rk-intro-blue);
    overflow: hidden;
}

/* Sekcja Hooka i Nagłówka */
.rk-hook-section {
    padding: 40px 50px 30px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.rk-hook-section h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
    line-height: 1.25;
    letter-spacing: -0.5px;
}

.rk-hook-section p {
    font-size: 16px;
    color: var(--rk-intro-gray);
    line-height: 1.7;
    margin: 0;
}

.rk-hook-section strong {
    color: var(--rk-intro-dark);
    font-weight: 800;
}

/* Szybka Odpowiedź (Direct Answer Box) */
.rk-quick-answer {
    margin: 0 50px 30px;
    padding: 25px 30px;
    background: var(--rk-intro-blue-light);
    border: 1px solid rgba(2, 132, 199, 0.2);
    border-radius: 12px;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-qa-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-intro-blue);
    color: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

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

.rk-qa-content p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-intro-dark);
}

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

/* Narzędzia (Teaser) */
.rk-tools-teaser {
    padding: 30px 50px 40px;
    border-top: 1px solid var(--rk-intro-border);
    background: #ffffff;
}

.rk-tools-teaser h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-tools-grid {
    display: flex;
    background: var(--rk-intro-gray-light);
    border-radius: 12px;
    padding: 6px;
    gap: 6px;
}

.rk-tool-tab {
    flex: 1;
    padding: 16px 15px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-gray);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-tool-tab.is-active {
    background: #ffffff;
    color: var(--rk-intro-blue);
    border-color: var(--rk-intro-border);
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

/* Treść Narzędzi */
.rk-tool-info {
    display: none;
    margin-top: 20px;
    padding: 20px;
    background: #ffffff;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    border-left: 4px solid var(--rk-intro-blue);
}

.rk-tool-info.is-visible {
    display: block;
}

.rk-tool-info p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-intro-gray);
}

.rk-tool-info strong {
    color: var(--rk-intro-dark);
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-intro-wrap { margin: 20px auto; border-radius: 16px; border-left-width: 4px; }
    .rk-hook-section { padding: 30px 20px 20px; }
    .rk-hook-section h2 { font-size: 24px; }
    .rk-quick-answer { margin: 0 20px 25px; padding: 20px; flex-direction: column; gap: 15px; }
    .rk-qa-icon { width: 40px; height: 40px; }
    .rk-tools-teaser { padding: 25px 20px 30px; }
    .rk-tools-grid { flex-direction: column; }
    .rk-tool-tab { justify-content: flex-start; padding: 14px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-wstep-glowny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne?",
    "description": "Błyskawiczna odpowiedź dla inwestorów na temat wyboru systemu grzewczego. Kompendium wiedzy inżynieryjnej, kalkulatory przepływów i symulatory kosztów dla normy WT 2021.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-wstep",
    "name": "Wytyczne Doboru Ogrzewania Podłogowego Wodne vs Elektryczne",
    "description": "Zestawienie twardych rekomendacji doboru źródła i dystrybucji ciepła na podstawie gabarytów i norm termoizolacyjnych budynków (WT 2021).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jakie ogrzewanie podłogowe wybrać wodne czy elektryczne",
      "ogrzewanie wodne w nowym domu",
      "elektryczne ogrzewanie podłogowe czy się opłaca",
      "kalkulator kosztów ogrzewania prądem",
      "wybór pompy ciepła a instalacja"
    ],
    "measurementTechnique": "Określenie progu opłacalności systemów poprzez analizę wskaźnika EU (poniżej 15 kWh/m2 dla prądu, do 40 kWh/m2 dla systemów wodnych).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Nowe domy > 80m2 (WT 2021): Bezwzględna rekomendacja systemu wodnego z pompą ciepła w celu minimalizacji OPEX.",
        "Domy pasywne < 15 kWh/m2*rok lub łazienki: Rekomendacja mat elektrycznych z racji znikomego zapotrzebowania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-kompendium-narzedzi",
    "name": "Przewodnik Inżynieryjny po Ogrzewaniu Podłogowym",
    "description": "Zintegrowane środowisko edukacyjno-obliczeniowe oferujące inwestorom bezpośredni dostęp do symulatorów przepływu, kalkulatorów zwrotu z inwestycji (ROI) oraz audytów energetycznych w czasie rzeczywistym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-wrap" id="wstep-ogrzewanie">
    
    <div class="rk-hook-section">
        <h2>Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne?</h2>
        <p>Budowa lub modernizacja domu to tysiące decyzji, ale błąd w wyborze systemu grzewczego to <strong>finansowa pętla na szyi przez kolejne 30 lat</strong>. Inwestorzy nieustannie pytają, które rozwiązanie jest lepsze. Prawda jest taka, że odpowiedź na to pytanie nie kryje się w folderach reklamowych instalatorów, lecz w twardej matematyce, fizyce budowli i dokładnym <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeniu OZC</a>.</p>
    </div>

    <div class="rk-quick-answer">
        <div class="rk-qa-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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
        </div>
        <div class="rk-qa-content">
            <h3>Szybka Odpowiedź Inżyniera</h3>
            <p>Do nowego domu w standardzie WT 2021 (powyżej 80 m²) <strong>zawsze wybieraj wodne ogrzewanie podłogowe z pompą ciepła</strong> – to gwarancja najniższych rachunków. Ogrzewanie elektryczne (maty, kable) opłaca się wyłącznie w małych mieszkaniach po remoncie, pojedynczych łazienkach lub w skrajnie energooszczędnych domach pasywnych (zapotrzebowanie poniżej 15 kWh/m²).</p>
        </div>
    </div>

    <div class="rk-tools-teaser">
        <h4>
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
            Co znajdziesz w tym inżynieryjnym poradniku?
        </h4>
        
        <div class="rk-tools-grid">
            <button class="rk-tool-tab is-active" id="btnTool1">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Kalkulator Parametrów
            </button>
            <button class="rk-tool-tab" id="btnTool2">
                <svg width="18" height="18" 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>
                Kalkulator ROI (Zwrotu)
            </button>
            <button class="rk-tool-tab" id="btnTool3">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
                Katalog Błędów
            </button>
        </div>

        <div class="rk-tool-info is-visible" id="infoTool1">
            <p>Nie "lejemy wody". W dalszej części artykułu udostępniam Ci <strong>interaktywny kalkulator oparty na normie PN-EN 1264</strong>. Samodzielnie obliczysz niezbędny strumień przepływu wody i sprawdzisz bezpieczną moc emisyjną dla swojej posadzki.</p>
        </div>
        
        <div class="rk-tool-info" id="infoTool2">
            <p>Skończmy ze zgadywaniem. Za pomocą <strong>symulatora stopy zwrotu (ROI)</strong> samodzielnie ustawisz metraż domu i cenę prądu, aby na żywo zobaczyć, po ilu latach zwróci Ci się inwestycja w drogą pompę ciepła w stosunku do mat elektrycznych.</p>
        </div>

        <div class="rk-tool-info" id="infoTool3">
            <p>Zobacz na własne oczy <strong>Interaktywny Detektor Błędów</strong>. Pokażę Ci inżynieryjne studium przypadku z fali mrozów, abyś nie powielił kosztownych pomyłek instalatorów, za które inwestorzy płacą tysiące złotych miesięcznie.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var b1 = document.getElementById('btnTool1');
    var b2 = document.getElementById('btnTool2');
    var b3 = document.getElementById('btnTool3');
    
    var i1 = document.getElementById('infoTool1');
    var i2 = document.getElementById('infoTool2');
    var i3 = document.getElementById('infoTool3');

    function resetTools() {
        if (b1 !== null) { b1.classList.remove('is-active'); }
        if (b2 !== null) { b2.classList.remove('is-active'); }
        if (b3 !== null) { b3.classList.remove('is-active'); }
        
        if (i1 !== null) { i1.classList.remove('is-visible'); }
        if (i2 !== null) { i2.classList.remove('is-visible'); }
        if (i3 !== null) { i3.classList.remove('is-visible'); }
    }

    if (b1 !== null) {
        b1.addEventListener('click', function() {
            resetTools();
            b1.classList.add('is-active');
            if (i1 !== null) { i1.classList.add('is-visible'); }
        });
    }

    if (b2 !== null) {
        b2.addEventListener('click', function() {
            resetTools();
            b2.classList.add('is-active');
            if (i2 !== null) { i2.classList.add('is-visible'); }
        });
    }

    if (b3 !== null) {
        b3.addEventListener('click', function() {
            resetTools();
            b3.classList.add('is-active');
            if (i3 !== null) { i3.classList.add('is-visible'); }
        });
    }
});
</script>



<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0ea5e9;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-red: #ef4444;
    --rk-intro-red-light: #fef2f2;
    --rk-intro-gold: #f59e0b;
    --rk-intro-gray: #64748b;
    --rk-intro-border: #e2e8f0;
    --rk-intro-bg: #ffffff;
}

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

/* Sekcja Opisowa (Górna) */
.rk-intro-text-section {
    padding: 45px 50px 35px;
    background: #ffffff;
}

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

.rk-intro-text-section p {
    font-size: 16px;
    color: var(--rk-intro-gray);
    line-height: 1.75;
    margin: 0 0 20px 0;
}

.rk-intro-text-section p:last-child {
    margin-bottom: 0;
}

.rk-intro-text-section strong {
    color: var(--rk-intro-dark);
    font-weight: 700;
}

/* Interaktywny Moduł Konsekwencji */
.rk-intro-interactive {
    background: #f8fafc;
    border-top: 1px solid var(--rk-intro-border);
    padding: 40px 50px;
}

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

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

.rk-cons-btn {
    flex: 1;
    padding: 18px 20px;
    border-radius: 12px;
    border: 2px solid var(--rk-intro-border);
    background: #ffffff;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-intro-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-cons-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-cons-btn.active-elec {
    border-color: var(--rk-intro-red);
    background: var(--rk-intro-red-light);
    color: #991b1b;
    box-shadow: 0 8px 15px -5px rgba(239, 68, 68, 0.2);
}

.rk-cons-btn.active-water {
    border-color: var(--rk-intro-gold);
    background: #fffbeb;
    color: #92400e;
    box-shadow: 0 8px 15px -5px rgba(245, 158, 11, 0.2);
}

.rk-cons-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Panele z wynikami */
.rk-cons-panel {
    display: none;
    background: #ffffff;
    border-radius: 16px;
    padding: 35px;
    border: 1px solid var(--rk-intro-border);
    animation: fadeIn 0.4s ease;
}

.rk-cons-panel.is-active {
    display: block;
}

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

.rk-cons-grid {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 25px;
    align-items: start;
}

.rk-cons-badge {
    width: 80px;
    height: 80px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}

.panel-elec .rk-cons-badge { background: linear-gradient(135deg, var(--rk-intro-red) 0%, #b91c1c 100%); }
.panel-water .rk-cons-badge { background: linear-gradient(135deg, var(--rk-intro-gold) 0%, #b45309 100%); }

.rk-cons-content h4 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

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

.rk-cons-data-row {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #f8fafc;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-dark);
    border: 1px solid var(--rk-intro-border);
}

.panel-elec .rk-cons-data-row span { color: var(--rk-intro-red); }
.panel-water .rk-cons-data-row span { color: var(--rk-intro-gold); }

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-intro-container { margin: 20px auto; border-radius: 16px; }
    .rk-intro-text-section, .rk-intro-interactive { padding: 30px 20px; }
    .rk-intro-text-section h2 { font-size: 24px; }
    .rk-consequence-nav { flex-direction: column; gap: 10px; }
    .rk-cons-grid { grid-template-columns: 1fr; text-align: center; justify-items: center; }
    .rk-cons-badge { width: 64px; height: 64px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne do domu jednorodzinnego?",
    "description": "Zależność wyboru systemu grzewczego od wskaźnika energii użytkowej (EU). Konsekwencje montażu elektryki w starym domu oraz błędy rozstawu rur 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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-konsekwencje",
    "name": "Baza Danych: Konsekwencje Błędnego Doboru Ogrzewania",
    "description": "Identyfikacja krytycznych błędów projektowych na etapie wyboru źródła i dystrybucji ciepła, w tym spadek sprawności (COP) i drastyczny wzrost kosztów energii.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "efekt zebry podłogówka",
      "spadek COP pompy ciepła",
      "rachunki za ogrzewanie elektryczne",
      "standard WT 2021 ogrzewanie",
      "darmowe ogrzewanie z fotowoltaiki"
    ],
    "measurementTechnique": "Symulacja korelacji między zapotrzebowaniem EU a doborem dystrybucji, ze szczególnym uwzględnieniem strat hydraulicznych (temperatura zasilania) i finansowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "EU > 100 kWh/m2*rok + ogrzewanie elektryczne = Rachunki rzędu 8 000 - 12 000 PLN rocznie.",
        "Zły rozstaw rur wodnych = Podniesienie temperatury zasilania do 45 st C, co obniża COP pompy o ok. 25%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-symulator-konsekwencji",
    "name": "Symulator Konsekwencji Błędnego Wyboru Systemu Grzewczego",
    "description": "Narzędzie interaktywne ilustrujące wpływ błędnych decyzji instalacyjnych na koszty eksploatacyjne i fizykę działania instalacji płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-module">
    <div class="rk-intro-text-section">
        <h2>Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne do domu jednorodzinnego?</h2>
        <p>Wybór między wodnym a elektrycznym ogrzewaniem podłogowym zależy od zapotrzebowania budynku na energię użytkową (EU) oraz planowanego budżetu inwestycyjnego. Dla nowych domów o standardzie WT 2021 (<strong>EU ≤ 40 kWh/m²*rok</strong>) optymalnym wyborem długoterminowym jest wodne ogrzewanie podłogowe zasilane niskotemperaturowym źródłem ciepła. Ogrzewanie elektryczne (maty, kable, folie) sprawdza się w budynkach o małym metrażu, domkach letniskowych lub jako system strefowy (np. tylko w łazience), gdzie niski koszt inwestycji rekompensuje wyższe koszty eksploatacji.</p>
        
        <p>Inwestorzy często ulegają emocjom i magii marketingu, wybierając systemy grzewcze na podstawie obietnic o "darmowym ogrzewaniu z fotowoltaiki". Ból pojawia się w pierwszym sezonie grzewczym, gdy okazuje się, że niedowymiarowana instalacja elektryczna generuje gigantyczne rachunki, a brak profesjonalnego projektu hydraulicznego w systemie wodnym skutkuje niedogrzanymi strefami i tzw. efektem „zebry” (naprzemienne pasy ciepłej i zimnej podłogi).</p>

        <p>Wodne ogrzewanie podłogowe działa jako system centralny, gdzie woda (czynnik grzewczy) krąży w rurach PEX/PERT zatopionych w jastrychu, zasilana z pompy ciepła lub kotła gazowego. Ogrzewanie elektryczne działa strefowo i bezpośrednio zamienia energię elektryczną w ciepło za pomocą przewodów oporowych lub powłok węglowych pod wpływem przepływu prądu.</p>
    </div>

    <div class="rk-intro-interactive">
        <h3>Poznaj realne konsekwencje błędnego wyboru systemu</h3>
        
        <div class="rk-consequence-nav">
            <button class="rk-cons-btn active-elec" id="btnConsElec">
                <span class="rk-cons-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>
                </span>
                Elektryka w nieocieplonym domu
            </button>
            <button class="rk-cons-btn" id="btnConsWater">
                <span class="rk-cons-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>
                </span>
                Zły rozstaw rur pompy ciepła
            </button>
        </div>

        <div class="rk-cons-panel panel-elec is-active" id="panelConsElec">
            <div class="rk-cons-grid">
                <div class="rk-cons-badge">
                    <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
                </div>
                <div class="rk-cons-content">
                    <h4>Brak izolacji zrujnuje Twój portfel</h4>
                    <p>Instalacja ogrzewania elektrycznego w nieocieplonym lub starym domu (zapotrzebowanie <strong>EA > 100 kWh/m²*rok</strong>) bez wsparcia potężnej i przewymiarowanej instalacji fotowoltaicznej to pułapka finansowa. Koszty eksploatacji rosną lawinowo w miesiącach zimowych, gdy sprawność mat wynosi zawsze 1:1 w stosunku do pobranego prądu.</p>
                    <div class="rk-cons-data-row">
                        Skutek: Rachunki rzędu <span>8 000 – 12 000 PLN</span> rocznie dla metrażu 120 m².
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-cons-panel panel-water" id="panelConsWater">
            <div class="rk-cons-grid">
                <div class="rk-cons-badge">
                    <svg width="40" height="40" 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>
                </div>
                <div class="rk-cons-content">
                    <h4>Spadek wydajności źródła ciepła</h4>
                    <p>Zły dobór rozstawu rur w systemie wodnym (np. zastosowanie rzadkiego rozstawu 20 cm zamiast gęstego 10 cm w wyziębiającej się łazience) wymusza podniesienie temperatury zasilania na pompie ciepła z optymalnych 35°C do wymagających 45°C, aby utrzymać zadaną temperaturę w pomieszczeniu.</p>
                    <div class="rk-cons-data-row">
                        Skutek: Obniżenie współczynnika COP pompy o <span>około 25%</span> i drastyczny wzrost zużycia prądu.
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnElec = document.getElementById('btnConsElec');
    var btnWater = document.getElementById('btnConsWater');
    var panelElec = document.getElementById('panelConsElec');
    var panelWater = document.getElementById('panelConsWater');

    function switchConsPanel(type) {
        if (type === 'elec') {
            if (btnWater !== null) { btnWater.classList.remove('active-water'); }
            if (btnElec !== null) { btnElec.classList.add('active-elec'); }
            
            if (panelWater !== null) { panelWater.classList.remove('is-active'); }
            if (panelElec !== null) { panelElec.classList.add('is-active'); }
        } else if (type === 'water') {
            if (btnElec !== null) { btnElec.classList.remove('active-elec'); }
            if (btnWater !== null) { btnWater.classList.add('active-water'); }
            
            if (panelElec !== null) { panelElec.classList.remove('is-active'); }
            if (panelWater !== null) { panelWater.classList.add('is-active'); }
        }
    }

    if (btnElec !== null) {
        btnElec.addEventListener('click', function() {
            switchConsPanel('elec');
        });
    }

    if (btnWater !== null) {
        btnWater.addEventListener('click', function() {
            switchConsPanel('water');
        });
    }
});
</script>



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

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

/* Nagłówek Sekcji */
.rk-cost-header {
    padding: 40px 50px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-cost-border);
}

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

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

.rk-cost-header a {
    color: var(--rk-cost-blue);
    font-weight: 600;
    text-decoration: none;
}

/* Panel Cenowy (Highlight) */
.rk-price-highlight {
    display: flex;
    gap: 20px;
    margin-top: 25px;
}

.rk-price-box {
    flex: 1;
    padding: 20px;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid transparent;
}

.rk-price-water {
    background: var(--rk-cost-blue-light);
    border-color: rgba(2, 132, 199, 0.2);
}

.rk-price-elec {
    background: var(--rk-cost-gold-light);
    border-color: rgba(217, 119, 6, 0.2);
}

.rk-price-label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.rk-price-water .rk-price-label { color: var(--rk-cost-blue); }
.rk-price-elec .rk-price-label { color: var(--rk-cost-gold); }

.rk-price-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-cost-dark);
}

.rk-price-value span {
    font-size: 15px;
    font-weight: 600;
    color: var(--rk-cost-gray);
}

/* Interaktywny Komparator Danych */
.rk-cost-comparator {
    padding: 0;
}

.rk-comp-toolbar {
    display: none; /* Widoczne tylko na mobile */
    padding: 15px 20px;
    background: #f1f5f9;
    border-bottom: 1px solid var(--rk-cost-border);
}

.rk-comp-toggle {
    display: flex;
    background: #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.rk-comp-btn {
    flex: 1;
    padding: 12px;
    border: none;
    background: transparent;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cost-gray);
    cursor: pointer;
    transition: all 0.3s;
}

.rk-comp-btn.active-w {
    background: var(--rk-cost-bg);
    color: var(--rk-cost-blue);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

.rk-comp-btn.active-e {
    background: var(--rk-cost-bg);
    color: var(--rk-cost-gold);
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
}

/* Tabela jako Grid - ZMODYFIKOWANE PROPORCJE */
.rk-comp-grid {
    display: flex;
    flex-direction: column;
}

.rk-comp-row {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    border-bottom: 1px solid var(--rk-cost-border);
    transition: background 0.2s;
    align-items: stretch;
}

.rk-comp-row:hover {
    background: #f8fafc;
}

.rk-comp-row:last-child {
    border-bottom: none;
}

.rk-comp-header-row {
    background: var(--rk-cost-dark);
    color: #ffffff;
    font-weight: 800;
    font-size: 15px;
}

.rk-comp-header-row:hover {
    background: var(--rk-cost-dark);
}

/* Komórki i zapobieganie łamaniu wierszy */
.rk-comp-cell {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    flex-wrap: wrap; /* Pozwala na płynne opadanie tekstu zamiast zgniatania */
    gap: 8px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--rk-cost-dark);
}

.rk-comp-cell.feature-name {
    font-weight: 700;
    color: var(--rk-cost-gray);
    flex-wrap: nowrap; /* Tytuł cechy trzymamy stabilnie */
}

.rk-cell-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-cost-gray);
    flex-shrink: 0; /* Zapobiega spłaszczaniu ikon */
}

.rk-comp-cell.water-data {
    border-left: 1px solid var(--rk-cost-border);
    font-weight: 500;
}

.rk-comp-cell.elec-data {
    border-left: 1px solid var(--rk-cost-border);
    font-weight: 500;
}

/* Wyróżnienia pozytywne/negatywne - ZABEZPIECZENIE PRZED ŁAMANIEM */
.rk-badge-pro, .rk-badge-con {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 800;
    white-space: nowrap; /* Kluczowe: zapobiega pionowemu tekstowi! */
}

.rk-badge-pro { color: var(--rk-cost-green); }
.rk-badge-con { color: var(--rk-cost-red); }

.rk-badge-pro svg, .rk-badge-con svg {
    flex-shrink: 0;
}

.rk-comp-cell strong {
    font-weight: 800;
    color: var(--rk-cost-dark);
    white-space: nowrap;
}

/* Dolne podsumowanie */
.rk-cost-footer {
    padding: 35px 50px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-cost-border);
}

.rk-cost-footer p {
    font-size: 15px;
    color: var(--rk-cost-gray);
    line-height: 1.7;
    margin: 0;
}

.rk-cost-footer strong {
    color: var(--rk-cost-dark);
}

.rk-cost-footer a {
    color: var(--rk-cost-dark);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mobile RWD */
@media (max-width: 850px) {
    .rk-cost-container { margin: 20px auto; border-radius: 16px; }
    .rk-cost-header, .rk-cost-footer { padding: 25px 20px; }
    .rk-price-highlight { flex-direction: column; gap: 15px; }
    
    .rk-comp-toolbar { display: block; }
    
    .rk-comp-header-row { display: none; }
    
    .rk-comp-row {
        grid-template-columns: 1fr;
        padding: 15px 20px;
        align-items: start;
    }
    
    .rk-comp-cell { padding: 0; border: none !important; }
    
    .rk-comp-cell.feature-name {
        margin-bottom: 12px;
        font-size: 14px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .rk-comp-cell.water-data, .rk-comp-cell.elec-data {
        font-size: 16px;
        padding-left: 36px;
    }

    .mobile-view-elec .water-data { display: none !important; }
    .mobile-view-water .elec-data { display: none !important; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-koszty-montazu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Ile kosztuje montaż ogrzewania wodnego w porównaniu do elektrycznego?",
    "description": "Zestawienie kosztów instalacji (CAPEX) oraz parametrów technicznych systemów ogrzewania podłogowego. Woda vs Prąd.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-koszty",
    "name": "Zestawienie Kosztów i Parametrów Ogrzewania Podłogowego 2026",
    "description": "Baza danych zawierająca średnie koszty robocizny i materiałów dla instalacji płaszczyznowych oraz ich specyfikacje techniczne.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena montażu ogrzewania podłogowego za m2",
      "koszt pompy ciepła cennik 2026",
      "grubość wylewki na podłogówkę",
      "żywotność rur pex instalacja wodna",
      "cena projektu instalacji sanitarnej",
      "bezwładność cieplna wylewki anhydrytowej"
    ],
    "measurementTechnique": "Analiza porównawcza nakładów inwestycyjnych (CAPEX) rynkowych i parametrów fizykochemicznych systemów dystrybucji ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wodne ogrzewanie: 180-260 PLN/m2 + źródło ciepła 25k-45k PLN. Żywotność ponad 50 lat.",
        "Elektryczne ogrzewanie: 110-160 PLN/m2 (komplet z termostatami). Żywotność 20-30 lat."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-komparator",
    "name": "Interaktywny Komparator Systemów Grzewczych",
    "description": "Narzędzie pozwalające na dynamiczne zestawienie cech fizycznych i kosztowych systemów wodnych i elektrycznych na różnych urządzeniach końcowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cost-container" id="rk-cost-comparator">
    <div class="rk-cost-header">
        <h2>Ile kosztuje montaż ogrzewania wodnego w porównaniu do elektrycznego?</h2>
        <p>Aby rzetelnie porównać oba systemy pod kątem finansowym, musimy zestawić parametry techniczne i rozbić koszty na czynniki pierwsze. Należy pamiętać, że system wodny wymaga budowy kotłowni (nowoczesna <a href="https://projekt-ogrzewania.pl/pompa-ciepla-do-ogrzewania-podlogowego/">pompa ciepła</a> to wydatek rzędu 25 000 – 45 000 PLN), co drastycznie podnosi próg wejścia (CAPEX). Przy tak potężnych kwotach inwestycyjnych, optymalizacja nakładów poprzez profesjonalny projekt i dokumentację technologiczną (średnia cena produktu to 550 PLN) staje się fundamentem oszczędności.</p>
        
        <div class="rk-price-highlight">
            <div class="rk-price-box rk-price-water">
                <div class="rk-price-label">Ogrzewanie Wodne (Bez źródła)</div>
                <div class="rk-price-value">180 - 260 PLN <span>/ m²</span></div>
            </div>
            <div class="rk-price-box rk-price-elec">
                <div class="rk-price-label">Ogrzewanie Elektryczne (Komplet)</div>
                <div class="rk-price-value">110 - 160 PLN <span>/ m²</span></div>
            </div>
        </div>
    </div>

    <div class="rk-cost-comparator mobile-view-water" id="compContainer">
        <div class="rk-comp-toolbar">
            <div class="rk-comp-toggle">
                <button class="rk-comp-btn active-w" id="btnShowWater">System Wodny</button>
                <button class="rk-comp-btn" id="btnShowElec">System Elektryczny</button>
            </div>
        </div>

        <div class="rk-comp-grid">
            <div class="rk-comp-row rk-comp-header-row">
                <div class="rk-comp-cell">Parametr porównawczy</div>
                <div class="rk-comp-cell" style="color: #7dd3fc;">Wodne ogrzewanie podłogowe</div>
                <div class="rk-comp-cell" style="color: #fcd34d;">Elektryczne ogrzewanie podłogowe</div>
            </div>

            <div class="rk-comp-row">
                <div class="rk-comp-cell feature-name">
                    <div class="rk-cell-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="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg></div>
                    Wysokość zabudowy (grubość)
                </div>
                <div class="rk-comp-cell water-data">
                    <span class="rk-badge-con">70 - 90 mm</span> (standardowy jastrych)
                </div>
                <div class="rk-comp-cell elec-data">
                    <span class="rk-badge-pro">3 - 15 mm</span> (pod płytki lub panele)
                </div>
            </div>

            <div class="rk-comp-row">
                <div class="rk-comp-cell feature-name">
                    <div class="rk-cell-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><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                    Bezwładność cieplna układu
                </div>
                <div class="rk-comp-cell water-data">
                    Wysoka (3 - 5 godzin nagrzewania)
                </div>
                <div class="rk-comp-cell elec-data">
                    Niska (30 - 60 minut w układzie bezpośrednim)
                </div>
            </div>

            <div class="rk-comp-row">
                <div class="rk-comp-cell feature-name">
                    <div class="rk-cell-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"><polygon points="14 2 18 6 7 17 3 17 3 13 14 2"></polygon><line x1="3" y1="22" x2="21" y2="22"></line></svg></div>
                    Współpraca z chłodzeniem
                </div>
                <div class="rk-comp-cell water-data">
                    <span class="rk-badge-pro"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg> Tak</span> (aktywne/pasywne chłodzenie pompą)
                </div>
                <div class="rk-comp-cell elec-data">
                    <span class="rk-badge-con"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> Nie</span> (wyłącznie obieg grzewczy)
                </div>
            </div>

            <div class="rk-comp-row">
                <div class="rk-comp-cell feature-name">
                    <div class="rk-cell-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"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg></div>
                    Wymóg dodatkowych urządzeń
                </div>
                <div class="rk-comp-cell water-data">
                    Rozdzielacze, grupa pompowa, źródło ciepła
                </div>
                <div class="rk-comp-cell elec-data">
                    Tylko cyfrowe termostaty pokojowe
                </div>
            </div>

            <div class="rk-comp-row">
                <div class="rk-comp-cell feature-name">
                    <div class="rk-cell-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 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg></div>
                    Żywotność techniczna
                </div>
                <div class="rk-comp-cell water-data">
                    <div>Rury PEX/PERT: <strong>&gt; 50 lat</strong><br>Pompa ciepła: 15 - 20 lat</div>
                </div>
                <div class="rk-comp-cell elec-data">
                    <div>Kable/maty: <strong>20 - 30 lat</strong><br>Termostaty: 5 - 10 lat</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-cost-footer">
        <p>Wodne ogrzewanie podłogowe to <strong>wysoki koszt startowy, ale pełna elastyczność</strong> – za 15 lat możesz wymienić wysłużony kocioł gazowy na pompę ciepła, a sama instalacja w wylewce pozostaje nietknięta. Z kolei elektryczna podłogówka blokuje Cię na jednym, najdroższym nośniku energii (prąd), ale pozwala zaoszczędzić kilkadziesiąt tysięcy złotych na etapie stanu surowego, ponieważ nie budujesz komina, przyłącza gazowego ani skomplikowanego <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego/">osprzętu hydraulicznego</a>.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnWater = document.getElementById('btnShowWater');
    var btnElec = document.getElementById('btnShowElec');
    var container = document.getElementById('compContainer');

    if (btnWater !== null) {
        if (btnElec !== null) {
            if (container !== null) {
                
                btnWater.addEventListener('click', function() {
                    btnElec.classList.remove('active-e');
                    btnWater.classList.add('active-w');
                    
                    container.classList.remove('mobile-view-elec');
                    container.classList.add('mobile-view-water');
                });

                btnElec.addEventListener('click', function() {
                    btnWater.classList.remove('active-w');
                    btnElec.classList.add('active-e');
                    
                    container.classList.remove('mobile-view-water');
                    container.classList.add('mobile-view-elec');
                });
            }
        }
    }
});
</script>



<style>
:root {
    --rk-roi-dark: #0f172a;
    --rk-roi-blue: #0284c7;
    --rk-roi-blue-light: #f0f9ff;
    --rk-roi-electric: #d97706;
    --rk-roi-electric-light: #fef3c7;
    --rk-roi-gray: #64748b;
    --rk-roi-border: #e2e8f0;
    --rk-roi-bg: #ffffff;
    --rk-roi-green: #10b981;
    --rk-roi-red: #ef4444;
}

.rk-roi-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-roi-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-roi-blue);
    overflow: hidden;
}

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

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

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

/* Struktura Kalkulatora */
.rk-roi-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

/* Lewa Kolumna - Suwaki */
.rk-roi-controls {
    padding: 40px 50px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-roi-border);
}

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

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

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

.rk-roi-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-roi-blue);
    background: var(--rk-roi-blue-light);
    padding: 4px 12px;
    border-radius: 8px;
    border: 1px solid rgba(2, 132, 199, 0.1);
}

.rk-roi-desc {
    font-size: 12px;
    color: var(--rk-roi-gray);
    margin-top: 8px;
    line-height: 1.4;
}

/* Stylowanie Suwaków */
.rk-slider-roi {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-roi-border);
    outline: none;
    transition: background 0.3s;
}

.rk-slider-roi::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-roi-blue);
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(2, 132, 199, 0.4);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

.rk-slider-roi::-webkit-slider-thumb:hover { transform: scale(1.15); }
.rk-slider-roi::-moz-range-thumb {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-roi-blue);
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(2, 132, 199, 0.4);
    border: 3px solid #ffffff;
}

/* Prawa Kolumna - Wyniki */
.rk-roi-results {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-roi-res-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-roi-dark);
    margin: 0 0 25px 0;
    padding-bottom: 15px;
    border-bottom: 2px dashed var(--rk-roi-border);
}

.rk-res-block {
    margin-bottom: 25px;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-roi-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-res-block.water-block { background: var(--rk-roi-blue-light); border-color: rgba(2, 132, 199, 0.2); }
.rk-res-block.elec-block { background: var(--rk-roi-electric-light); border-color: rgba(217, 119, 6, 0.2); }

.rk-res-info h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-roi-dark);
}

.rk-res-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-roi-gray);
}

.rk-res-numbers {
    text-align: right;
}

.rk-res-numbers .capex {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-roi-gray);
    margin-bottom: 4px;
}

.rk-res-numbers .opex {
    font-size: 22px;
    font-weight: 900;
}

.water-block .opex { color: var(--rk-roi-blue); }
.elec-block .opex { color: var(--rk-roi-electric); }

/* Główny Wynik ROI */
.rk-roi-final {
    margin-top: 35px;
    padding: 30px;
    background: linear-gradient(135deg, var(--rk-roi-green) 0%, #059669 100%);
    border-radius: 16px;
    color: #ffffff;
    text-align: center;
    box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.4);
    transform: scale(1.02);
}

.rk-roi-final h3 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #d1fae5;
}

.rk-roi-final .roi-value {
    font-size: 48px;
    font-weight: 900;
    margin: 0 0 5px 0;
    line-height: 1;
}

.rk-roi-final .roi-value span {
    font-size: 20px;
    font-weight: 700;
}

.rk-roi-final p {
    margin: 15px 0 0 0;
    font-size: 14px;
    line-height: 1.5;
    color: #ecfdf5;
}

/* Wnioski końcowe */
.rk-roi-conclusion {
    padding: 30px 50px;
    background: #f8fafc;
    border-top: 1px solid var(--rk-roi-border);
    font-size: 15px;
    color: var(--rk-roi-gray);
    line-height: 1.7;
}

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

/* Tagi LSI (Niewidoczne dla użytkownika - czyste SEO JSON/Ukryte dane) */
.rk-roi-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.rk-roi-tag {
    background: #e2e8f0;
    color: var(--rk-roi-gray);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
}

/* Mobile RWD */
@media (max-width: 850px) {
    .rk-roi-container { margin: 20px auto; border-radius: 16px; }
    .rk-roi-app { grid-template-columns: 1fr; }
    .rk-roi-header, .rk-roi-controls, .rk-roi-results, .rk-roi-conclusion { padding: 30px 20px; }
    .rk-roi-controls { border-right: none; border-bottom: 1px solid var(--rk-roi-border); }
    .rk-res-block { flex-direction: column; text-align: center; gap: 15px; }
    .rk-res-numbers { text-align: center; }
    .rk-roi-final .roi-value { font-size: 38px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-kalkulator-roi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Kalkulator zwrotu z inwestycji (ROI): Ogrzewanie wodne vs elektryczne",
    "description": "Interaktywne zestawienie kosztów instalacji (CAPEX) oraz rocznych rachunków (OPEX). Sprawdź, po ilu latach zwróci się montaż pompy ciepła w stosunku do mat elektrycznych.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-koszty-utrzymania",
    "name": "Baza Danych: Koszty Eksploatacji i Stopa Zwrotu (ROI) Systemów Grzewczych",
    "description": "Zestawienie analityczne wykorzystywane do obliczania punktu opłacalności pomiędzy drogą instalacją hydrauliczną z pompą ciepła a tanimi systemami oporowymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator opłacalności ogrzewania",
      "zwrot z inwestycji w pompę ciepła",
      "koszty roczne podłogówki elektrycznej",
      "zapotrzebowanie energetyczne budynku EU",
      "cena prądu a ogrzewanie podłogowe",
      "CAPEX vs OPEX instalacji"
    ],
    "measurementTechnique": "Algorytm różnicowy dzielący nadwyżkę kosztów instalacji (Delta CAPEX) przez roczne oszczędności na energii (Delta OPEX), bazujący na współczynniku SCOP=3.5 dla pomp ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Koszt instalacji wodnej: Średnio 220 PLN/m2 + źródło ciepła (np. 35 000 PLN).",
        "Koszt instalacji elektrycznej: Średnio 135 PLN/m2.",
        "Roczne zużycie: Powierzchnia x EU (np. 40 kWh/m2/rok dla WT2021) x Cena 1 kWh."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-symulator-roi",
    "name": "Symulator Stopy Zwrotu (ROI) Ogrzewania",
    "description": "Aplikacja inżynieryjna umożliwiająca inwestorom symulację kosztów użytkowania i instalacji w zależności od powierzchni domu, standardu izolacji oraz kosztów źródła ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-roi-container" id="rk-roi-calculator">
    <div class="rk-roi-header">
        <h2>Kalkulator Zwrotu z Inwestycji (ROI)</h2>
        <p>Decyzja o wyborze systemu to czysta matematyka. Oblicz, po ilu latach wyższy koszt montażu pompy ciepła i rur (CAPEX) zwróci się dzięki dramatycznie niższym rachunkom za prąd (OPEX) względem kabli grzewczych.</p>
    </div>

    <div class="rk-roi-app">
        <div class="rk-roi-controls">
            
            <div class="rk-roi-ctrl-group">
                <div class="rk-roi-ctrl-header">
                    <span class="rk-roi-label">Powierzchnia do ogrzania</span>
                    <span class="rk-roi-value" id="valRoiArea">120 m²</span>
                </div>
                <input type="range" class="rk-slider-roi" id="inRoiArea" min="50" max="250" step="5" value="120">
                <div class="rk-roi-desc">Czynna powierzchnia posadzek grzewczych.</div>
            </div>

            <div class="rk-roi-ctrl-group">
                <div class="rk-roi-ctrl-header">
                    <span class="rk-roi-label">Zapotrzebowanie na energię (EU)</span>
                    <span class="rk-roi-value" id="valRoiEu">40 kWh/m²</span>
                </div>
                <input type="range" class="rk-slider-roi" id="inRoiEu" min="15" max="100" step="5" value="40">
                <div class="rk-roi-desc">15 (Dom pasywny), 40 (Standard WT 2021), 100 (Słaba izolacja).</div>
            </div>

            <div class="rk-roi-ctrl-group">
                <div class="rk-roi-ctrl-header">
                    <span class="rk-roi-label">Cena energii elektrycznej</span>
                    <span class="rk-roi-value" id="valRoiPrice">1.15 PLN</span>
                </div>
                <input type="range" class="rk-slider-roi" id="inRoiPrice" min="0.80" max="2.00" step="0.05" value="1.15">
                <div class="rk-roi-desc">Średni koszt 1 kWh wraz z opłatami dystrybucyjnymi.</div>
            </div>

            <div class="rk-roi-ctrl-group" style="margin-bottom: 10px;">
                <div class="rk-roi-ctrl-header">
                    <span class="rk-roi-label">Koszt źródła ciepła (Pompa/Kocioł)</span>
                    <span class="rk-roi-value" id="valRoiHp">35 000 PLN</span>
                </div>
                <input type="range" class="rk-slider-roi" id="inRoiHp" min="10000" max="60000" step="1000" value="35000">
                <div class="rk-roi-desc">Koszt samej kotłowni dla systemu wodnego.</div>
            </div>

        </div>

        <div class="rk-roi-results">
            <h3 class="rk-roi-res-title">Bilans Finansowy Inwestycji</h3>

            <div class="rk-res-block water-block">
                <div class="rk-res-info">
                    <h4>Ogrzewanie Wodne</h4>
                    <p>Pompa Ciepła (SCOP = 3.5)</p>
                </div>
                <div class="rk-res-numbers">
                    <div class="capex">Start: <span id="outCapWater">61 400</span> PLN</div>
                    <div class="opex" id="outOpWater">1 577 <span>PLN / rok</span></div>
                </div>
            </div>

            <div class="rk-res-block elec-block">
                <div class="rk-res-info">
                    <h4>Ogrzewanie Elektryczne</h4>
                    <p>Maty grzewcze (COP = 1.0)</p>
                </div>
                <div class="rk-res-numbers">
                    <div class="capex">Start: <span id="outCapElec">18 200</span> PLN</div>
                    <div class="opex" id="outOpElec">5 520 <span>PLN / rok</span></div>
                </div>
            </div>

            <div class="rk-roi-final" id="roiBox">
                <h3>System wodny zacznie na siebie zarabiać po:</h3>
                <div class="roi-value" id="outRoiYears">10.9 <span>latach</span></div>
                <p id="roiText">Od tego momentu generujesz czysty zysk w postaci niższych rachunków.</p>
            </div>
            
            <div class="rk-roi-tags">
                <span class="rk-roi-tag"># Zapotrzebowanie energetyczne OZC</span>
                <span class="rk-roi-tag"># Bilans CAPEX vs OPEX</span>
                <span class="rk-roi-tag"># Współczynnik SCOP pompy ciepła</span>
            </div>
        </div>
    </div>

    <div class="rk-roi-conclusion">
        <p><strong>Wniosek inżynieryjny:</strong> Jeśli symulacja wykazuje czas zwrotu poniżej 15 lat, instalacja wodna jest bezwzględnie lepszym wyborem kapitałowym. Biorąc pod uwagę, że mówimy o obrocie dziesiątkami tysięcy złotych, inwestycja na poziomie <strong>średnio 550 PLN w profesjonalny projekt dokumentacji instalacyjnej</strong> to ułamek promila kosztów całej inwestycji. To właśnie z rzetelnego opracowania OZC wyniknie dokładne zapotrzebowanie Twojego domu, chroniące Cię przed przewymiarowaniem pompy i przepaleniem budżetu.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inArea = document.getElementById('inRoiArea');
    var inEu = document.getElementById('inRoiEu');
    var inPrice = document.getElementById('inRoiPrice');
    var inHp = document.getElementById('inRoiHp');

    var valArea = document.getElementById('valRoiArea');
    var valEu = document.getElementById('valRoiEu');
    var valPrice = document.getElementById('valRoiPrice');
    var valHp = document.getElementById('valRoiHp');

    var outCapWater = document.getElementById('outCapWater');
    var outOpWater = document.getElementById('outOpWater');
    var outCapElec = document.getElementById('outCapElec');
    var outOpElec = document.getElementById('outOpElec');
    
    var outRoiYears = document.getElementById('outRoiYears');
    var roiBox = document.getElementById('roiBox');
    var roiText = document.getElementById('roiText');

    function formatPln(number) {
        var str = Math.round(number).toString();
        var result = "";
        var count = 0;
        var i = str.length - 1;
        
        while (i >= 0) {
            result = str.charAt(i) + result;
            count = count + 1;
            if (count === 3) {
                if (i !== 0) {
                    result = " " + result;
                }
                count = 0;
            }
            i = i - 1;
        }
        return result;
    }

    function calculateRoi() {
        var area = parseFloat(inArea.value);
        var eu = parseFloat(inEu.value);
        var price = parseFloat(inPrice.value);
        var hpCost = parseFloat(inHp.value);

        // Aktualizacja etykiet
        valArea.textContent = area + " m²";
        valEu.textContent = eu + " kWh/m²";
        valPrice.textContent = price.toFixed(2) + " PLN";
        valHp.textContent = formatPln(hpCost) + " PLN";

        // Parametry stałe dla instalacji (bez źródła)
        var costInstallWaterM2 = 220; // Rury, jastrych, rozdzielacz
        var costInstallElecM2 = 135;  // Maty, termostaty
        var fixedElecCost = 2000;     // Dodatkowe koszty przyłącza dla elektryki

        var scopHeatPump = 3.5;

        // Obliczenia CAPEX (Koszty startowe)
        var capexWater = (area * costInstallWaterM2) + hpCost;
        var capexElec = (area * costInstallElecM2) + fixedElecCost;

        // Obliczenia OPEX (Roczne zużycie energii)
        var yearlyEnergyDemand = area * eu; // kWh rocznie
        
        // Elektryczne (COP 1)
        var opexElec = yearlyEnergyDemand * price;
        
        // Wodne (Pompa ciepła SCOP 3.5)
        var opexWater = (yearlyEnergyDemand / scopHeatPump) * price;

        // Różnice
        var diffCapex = capexWater - capexElec;
        var diffOpex = opexElec - opexWater;

        // Renderowanie wartości podstawowych
        outCapWater.textContent = formatPln(capexWater);
        outOpWater.innerHTML = formatPln(opexWater) + " <span>PLN / rok</span>";
        
        outCapElec.textContent = formatPln(capexElec);
        outOpElec.innerHTML = formatPln(opexElec) + " <span>PLN / rok</span>";

        // Obliczanie zwrotu (ROI)
        var roiYears = 0;
        
        if (diffOpex > 0) {
            if (diffCapex > 0) {
                roiYears = diffCapex / diffOpex;
                outRoiYears.innerHTML = roiYears.toFixed(1) + " <span>latach</span>";
                
                roiBox.style.background = "linear-gradient(135deg, var(--rk-roi-green) 0%, #059669 100%)";
                roiBox.style.boxShadow = "0 15px 30px -10px rgba(16, 185, 129, 0.4)";
                roiText.textContent = "Od tego momentu generujesz czysty zysk w postaci niższych rachunków.";
            } else {
                // Jeśli wodne jest tańsze w instalacji (bardzo rzadkie, ale możliwe przy taniej pompie i małym domu)
                outRoiYears.innerHTML = "0 <span>lat</span>";
                roiBox.style.background = "linear-gradient(135deg, var(--rk-roi-blue) 0%, #0369a1 100%)";
                roiText.textContent = "System wodny jest tańszy już na etapie inwestycji!";
            }
        } else {
            // Teoretyczny przypadek, gdy prąd jest "darmowy" (np. gigantyczne PV zbilansowane 1:1)
            outRoiYears.innerHTML = "Nigdy";
            roiBox.style.background = "linear-gradient(135deg, var(--rk-roi-red) 0%, #b91c1c 100%)";
            roiText.textContent = "Koszty eksploatacji są równe lub wyższe. Zwrot nie nastąpi.";
        }
    }

    // Nasłuchiwacze eventów
    if (inArea !== null) { inArea.addEventListener('input', calculateRoi); }
    if (inEu !== null) { inEu.addEventListener('input', calculateRoi); }
    if (inPrice !== null) { inPrice.addEventListener('input', calculateRoi); }
    if (inHp !== null) { inHp.addEventListener('input', calculateRoi); }

    // Start
    calculateRoi();
});
</script>



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

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

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

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

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

/* Layout Aplikacji */
.rk-adv-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

/* Lewa Strona - Suwaki (Sterowanie) */
.rk-adv-controls {
    padding: 40px 50px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-adv-border);
}

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

.rk-adv-ctrl-group:last-child {
    margin-bottom: 0;
}

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

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

.rk-adv-val-box {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-adv-blue);
    background: var(--rk-adv-blue-light);
    padding: 6px 14px;
    border-radius: 10px;
    border: 1px solid rgba(2, 132, 199, 0.15);
}

.rk-adv-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: var(--rk-adv-border);
    outline: none;
    transition: background 0.3s;
}

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

.rk-adv-slider::-webkit-slider-thumb:hover { transform: scale(1.1); }
.rk-adv-slider::-moz-range-thumb {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-adv-blue);
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.4);
    border: 3px solid #ffffff;
}

.rk-adv-desc {
    font-size: 13px;
    color: var(--rk-adv-gray);
    margin-top: 10px;
    line-height: 1.5;
}

/* Prawa Strona - Dynamiczny Werdykt */
.rk-adv-verdict {
    padding: 40px 50px;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-adv-status-box {
    padding: 30px;
    border-radius: 20px;
    text-align: center;
    transition: all 0.4s ease;
    border: 2px solid transparent;
}

/* Stany statusów */
.status-electric {
    background: var(--rk-adv-gold-light);
    border-color: rgba(217, 119, 6, 0.3);
}

.status-water {
    background: var(--rk-adv-blue-light);
    border-color: rgba(2, 132, 199, 0.3);
}

.status-danger {
    background: var(--rk-adv-red-light);
    border-color: rgba(239, 68, 68, 0.3);
}

.rk-adv-icon-wrapper {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px auto;
    background: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.08);
}

.status-electric .rk-adv-icon-wrapper { color: var(--rk-adv-gold); }
.status-water .rk-adv-icon-wrapper { color: var(--rk-adv-blue); }
.status-danger .rk-adv-icon-wrapper { color: var(--rk-adv-red); }

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

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

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

/* Sekcja Teorii poniżej */
.rk-adv-theory {
    padding: 35px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-adv-border);
}

.rk-adv-theory h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-adv-dark);
    margin: 0 0 15px 0;
}

.rk-adv-theory p {
    font-size: 15px;
    color: var(--rk-adv-gray);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

/* Mobile RWD */
@media (max-width: 850px) {
    .rk-adv-container { margin: 20px auto; border-radius: 16px; }
    .rk-adv-app { grid-template-columns: 1fr; }
    .rk-adv-header, .rk-adv-controls, .rk-adv-verdict, .rk-adv-theory { padding: 30px 20px; }
    .rk-adv-controls { border-right: none; border-bottom: 1px solid var(--rk-adv-border); }
    .rk-adv-status-box { padding: 25px 15px; }
    .rk-adv-icon-wrapper { width: 64px; height: 64px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-macierz-decyzyjna",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Kiedy opłaca się ogrzewanie elektryczne, a kiedy wodne? Interaktywny Doradca",
    "description": "Sprawdź, przy jakim metrażu i standardzie izolacji budynku (WT 2021, pasywny, stary dom) opłaca się montaż pomp ciepła, a kiedy wystarczą tanie maty elektryczne.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-macierz-oplacalnosci",
    "name": "Macierz Opłacalności Systemów Grzewczych 2026",
    "description": "Zestawienie korelacji między metrażem budynku (m2) a zapotrzebowaniem na energię użytkową (kWh/m2/rok) w celu określenia progu opłacalności systemów hydraulicznych i oporowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy ogrzewanie elektryczne ma sens",
      "ogrzewanie wodne czy elektryczne do małego domu",
      "ogrzewanie domu 70m2 jakie wybrać",
      "koszty ogrzewania stary dom",
      "zapotrzebowanie energetyczne a dobór ogrzewania"
    ],
    "measurementTechnique": "Algorytm progowy weryfikujący globalne zapotrzebowanie na energię. Niskie zapotrzebowanie (mały metraż + doskonała izolacja) wskazuje na brak uzasadnienia ekonomicznego dla drogiej instalacji wodnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metraż < 70m2 i EU < 50 kWh: Rekomendacja ogrzewania elektrycznego z uwagi na ekstremalnie długi czas zwrotu pompy ciepła.",
        "Metraż > 80m2 lub EU > 60 kWh: Bezwzględna rekomendacja ogrzewania wodnego w celu uniknięcia gigantycznych rachunków za prąd."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-doradca-grzewczy",
    "name": "Interaktywny Doradca Wyboru Technologii Grzewczej",
    "description": "Aplikacja decyzyjna pozwalająca inwestorom na żywo symulować opłacalność montażu wodnej podłogówki względem rozwiązań elektrycznych w oparciu o gabaryty i izolację budynku.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-adv-container" id="rk-decision-matrix">
    <div class="rk-adv-header">
        <h2>Kiedy opłaca się ogrzewanie elektryczne, a kiedy wodne?</h2>
        <p>Matematyka nie znosi marketingu. Zasada jest brutalnie prosta: opłacalność inwestycji zależy od skali budynku i jakości izolacji. Sprawdź na interaktywnej macierzy, w którym momencie wydatek na pompę ciepła traci ekonomiczny sens, a kiedy ogrzewanie prądem zrujnuje Twój budżet.</p>
    </div>

    <div class="rk-adv-app">
        <div class="rk-adv-controls">
            
            <div class="rk-adv-ctrl-group">
                <div class="rk-adv-ctrl-header">
                    <span class="rk-adv-label">Metraż budynku</span>
                    <span class="rk-adv-val-box" id="valAdvArea">70 m²</span>
                </div>
                <input type="range" class="rk-adv-slider" id="inAdvArea" min="30" max="250" step="5" value="70">
                <div class="rk-adv-desc">Powierzchnia, którą realnie zamierzasz ogrzewać (bez garaży zimnych).</div>
            </div>

            <div class="rk-adv-ctrl-group">
                <div class="rk-adv-ctrl-header">
                    <span class="rk-adv-label">Standard izolacji (EU)</span>
                    <span class="rk-adv-val-box" id="valAdvEu">40 kWh/m²</span>
                </div>
                <input type="range" class="rk-adv-slider" id="inAdvEu" min="15" max="150" step="5" value="40">
                <div class="rk-adv-desc">
                    Zapotrzebowanie na energię. <strong>15-20:</strong> Dom Pasywny | <strong>40-50:</strong> WT 2021 | <strong>100+:</strong> Stary dom, słabe ocieplenie.
                </div>
            </div>

        </div>

        <div class="rk-adv-verdict">
            
            <div class="rk-adv-status-box status-electric" id="verdictBox">
                <div class="rk-adv-icon-wrapper" id="verdictIcon">
                    <svg width="36" height="36" 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>
                <h3 class="rk-adv-title" id="verdictTitle">Wybierz Ogrzewanie Elektryczne</h3>
                <p class="rk-adv-text" id="verdictText">Zapotrzebowanie Twojego budynku na ciepło jest tak małe, że <strong>inwestycja w pompę ciepła i hydraulikę nie zwróci się przez 30 lat</strong>. Tanie w montażu maty elektryczne są tutaj jedynym logicznym wyborem.</p>
            </div>

        </div>
    </div>

    <div class="rk-adv-theory">
        <h3>Skąd bierze się ta granica?</h3>
        <p>W inżynierii operujemy pojęciami CAPEX (koszty instalacji) i OPEX (koszty użytkowania). Ogrzewanie elektryczne ma <strong>minimalny CAPEX i maksymalny OPEX</strong>. Ogrzewanie wodne – odwrotnie.</p>
        <p>Jeżeli budujesz mały dom letniskowy lub dom modułowy (np. 60 m²) w bardzo dobrym standardzie ocieplenia (WT 2021), to ilość ciepła, której on potrzebuje do przetrwania zimy jest znikoma. Różnica w rachunkach za prąd pomiędzy drogą pompą ciepła a zwykłymi kablami oporowymi wyniesie w takim domu zaledwie kilkaset złotych w skali całego roku. Skoro pompa ciepła z całą kotłownią i robocizną podłogówki kosztuje o ok. 35 000 PLN więcej niż folie elektryczne, to ten zwrot kapitału zajmie dekady. Natomiast przy starych domach (EU > 100) lub metrażach powyżej 90 m², rachunki za czysty prąd zabiją portfel w dwa sezony – wtedy podłogówka wodna to absolutna konieczność.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inArea = document.getElementById('inAdvArea');
    var inEu = document.getElementById('inAdvEu');
    
    var valArea = document.getElementById('valAdvArea');
    var valEu = document.getElementById('valAdvEu');
    
    var verdictBox = document.getElementById('verdictBox');
    var verdictIcon = document.getElementById('verdictIcon');
    var verdictTitle = document.getElementById('verdictTitle');
    var verdictText = document.getElementById('verdictText');

    // SVG Icons
    var iconElectric = '<svg width="36" height="36" 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>';
    
    var iconWater = '<svg width="36" height="36" 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>';
    
    var iconDanger = '<svg width="36" height="36" 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>';

    function evaluateMatrix() {
        var area = parseInt(inArea.value);
        var eu = parseInt(inEu.value);

        // Aktualizacja widocznych etykiet
        valArea.textContent = area + " m²";
        valEu.textContent = eu + " kWh/m²";

        // BEZPIECZNA LOGIKA (Brak &&)
        if (area <= 75) {
            if (eu <= 55) {
                // Mały dom, dobra izolacja -> Elektryczne
                verdictBox.className = "rk-adv-status-box status-electric";
                verdictIcon.innerHTML = iconElectric;
                verdictTitle.textContent = "Najlepszy wybór: Elektryczne";
                verdictText.innerHTML = "Zapotrzebowanie budynku na ciepło jest tak małe, że <strong>dopłata do pompy ciepła i hydrauliki nigdy się nie zwróci</strong>. Maty elektryczne to najtańsze i najbardziej opłacalne wyjście.";
            } else {
                // Mały dom, ale FATALNA izolacja -> Koszty prądu zabiją
                verdictBox.className = "rk-adv-status-box status-danger";
                verdictIcon.innerHTML = iconDanger;
                verdictTitle.textContent = "Ostrzeżenie! Koszty prądu";
                verdictText.innerHTML = "Mimo małego metrażu, Twój dom traci mnóstwo ciepła. Ogrzewanie prądem wygeneruje olbrzymie rachunki. Najpierw <strong>zainwestuj w termomodernizację</strong>, a potem rozważ wodne ogrzewanie podłogowe.";
            }
        } else {
            // Dom średni / duży (> 75 m2)
            if (eu >= 90) {
                 // Duży dom, słaba izolacja -> Wodne absolutnie, choć koszty i tak będą duże
                verdictBox.className = "rk-adv-status-box status-water";
                verdictIcon.innerHTML = iconWater;
                verdictTitle.textContent = "Absolutnie Ogrzewanie Wodne";
                verdictText.innerHTML = "Duży metraż i znaczne straty ciepła oznaczają, że ogrzewanie bezpośrednio prądem doprowadzi Cię do bankructwa. <strong>Wodna podłogówka z pompą ciepła</strong> (bądź kotłem) to jedyny sposób na opanowanie kosztów eksploatacji.";
            } else {
                 // Duży dom, dobra izolacja -> Wodne to standard
                verdictBox.className = "rk-adv-status-box status-water";
                verdictIcon.innerHTML = iconWater;
                verdictTitle.textContent = "Zdecydowanie Ogrzewanie Wodne";
                verdictText.innerHTML = "Przy tym metrażu koszty eksploatacji nabierają kluczowego znaczenia. Wyższy koszt startowy wodnej podłogówki i pompy ciepła <strong>zwróci się w optymalnym czasie</strong>. To standard dla nowoczesnych domów.";
            }
        }
    }

    if (inArea !== null) {
        inArea.addEventListener('input', evaluateMatrix);
    }
    if (inEu !== null) {
        inEu.addEventListener('input', evaluateMatrix);
    }

    // Inicjalizacja
    evaluateMatrix();
});
</script>



<style>
:root {
    --rk-calc-dark: #111827;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-light: #e0f2fe;
    --rk-calc-blue-dark: #0284c7;
    --rk-calc-gray-bg: #f8fafc;
    --rk-calc-gray-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-white: #ffffff;
    --rk-calc-accent: #10b981;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-white);
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.1);
    border: 1px solid var(--rk-calc-blue-light);
    overflow: hidden;
}

/* Nagłówek */
.rk-calc-header {
    padding: 40px 50px 30px;
    background: var(--rk-calc-gray-bg);
    border-bottom: 1px solid var(--rk-calc-gray-border);
}

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

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

/* Aplikacja Kalkulatora */
.rk-calc-app {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

/* Sekcja Suwaków (Lewa) */
.rk-calc-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-calc-gray-border);
}

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

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

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

.rk-ctrl-value {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-blue-light);
    padding: 4px 12px;
    border-radius: 8px;
}

/* Custom Slider */
.rk-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-calc-gray-border);
    outline: none;
    transition: background 0.3s;
}

.rk-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.3);
    border: 3px solid var(--rk-calc-white);
    transition: transform 0.1s;
}

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

.rk-slider::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.3);
    border: 3px solid var(--rk-calc-white);
}

/* Sekcja Wyników (Prawa) */
.rk-calc-results {
    padding: 40px 50px;
    background: var(--rk-calc-dark);
    color: var(--rk-calc-white);
}

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

.rk-res-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-res-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: rgba(14, 165, 233, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-calc-blue);
    flex-shrink: 0;
}

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

.rk-res-data .rk-val {
    font-size: 24px;
    font-weight: 900;
    margin: 0;
    color: var(--rk-calc-white);
}

.rk-res-data .rk-val span {
    font-size: 14px;
    font-weight: 600;
    color: #cbd5e1;
}

/* Sekcja Teorii i Algorytmu */
.rk-calc-theory {
    padding: 40px 50px;
    border-top: 1px solid var(--rk-calc-gray-border);
}

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

.rk-step-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-step-item {
    position: relative;
    padding-left: 45px;
    margin-bottom: 25px;
}

.rk-step-num {
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    background: var(--rk-calc-blue-light);
    color: var(--rk-calc-blue-dark);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 15px;
}

.rk-step-item h4 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
}

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

.rk-formula-box {
    background: var(--rk-calc-gray-bg);
    padding: 12px 20px;
    border-radius: 8px;
    border-left: 3px solid var(--rk-calc-blue);
    font-family: monospace;
    font-size: 15px;
    color: var(--rk-calc-dark);
    font-weight: 600;
}

.rk-theory-note {
    margin-top: 30px;
    padding: 20px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 12px;
    font-size: 14px;
    color: #92400e;
    line-height: 1.6;
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-calc-container { margin: 20px auto; border-radius: 16px; }
    .rk-calc-header { padding: 30px 20px; }
    .rk-calc-app { grid-template-columns: 1fr; }
    .rk-calc-controls, .rk-calc-results, .rk-calc-theory { padding: 30px 20px; }
    .rk-calc-controls { border-right: none; border-bottom: 1px solid var(--rk-calc-gray-border); }
    .rk-res-box { flex-direction: column; text-align: center; gap: 15px; padding: 25px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jak obliczyć zapotrzebowanie na moc i parametry pracy ogrzewania podłogowego? (Algorytm Kalkulatora)",
    "description": "Profesjonalny algorytm z normy PN-EN 1264 do obliczania mocy emisyjnej podłogi, gęstości strumienia ciepła i przepływu wody na rotametrach rozdzielacza.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-algorytm-obliczeniowy",
    "name": "Wzory i Parametry Obliczeniowe Ogrzewania Podłogowego 2026",
    "description": "Baza algorytmów i współczynników do obliczeń termiczno-hydraulicznych instalacji płaszczyznowych, bazująca na normie PN-EN 1264 oraz bilansie strat PN-EN 12831.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczeniowe zapotrzebowanie na moc cieplną",
      "gęstość strumienia cieplnego podłogówki",
      "przepływ masowy czynnika pętli wodnej",
      "norma PN-EN 1264 ogrzewanie płaszczyznowe",
      "bilans strat ciepła PN-EN 12831"
    ],
    "measurementTechnique": "Algorytm termiczno-hydrauliczny uwzględniający naddatek na osłabienie ogrzewania (+15%) oraz ciepło właściwe wody (4.19 kJ/kg K).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Moc strefy (Q_obl): Q (straty) * 1.15",
        "Gęstość strumienia (q): Q_obl / Powierzchnia czynna (F_g)",
        "Przepływ masowy (m2): (Q_obl / (4.19 * Delta T)) * 3600"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-kalkulator-przeplywow",
    "name": "Interaktywny Kalkulator Mocy i Przepływów Ogrzewania Podłogowego",
    "description": "Narzędzie inżynieryjne pozwalające inwestorom na żywo symulować wpływ strat ciepła i stałej zabudowy na przepływy hydrauliczne w rozdzielaczu (l/min) oraz gęstość strumienia cieplnego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-heating-calculator">
    <div class="rk-calc-header">
        <h2>Jak obliczyć zapotrzebowanie na moc i parametry pracy ogrzewania podłogowego? (Algorytm Kalkulatora)</h2>
        <p>Aby poprawnie zaprojektować instalację podłogową, należy przeprowadzić obliczenia termiczno-hydrauliczne bazujące na rygorystycznej normie PN-EN 1264. Poniższy interaktywny symulator pozwala zrozumieć, jak powierzchnia zabudowy (np. wyspa w kuchni) i izolacja budynku wpływają na parametry pracy pompy obiegowej.</p>
    </div>

    <div class="rk-calc-app">
        <div class="rk-calc-controls">
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Powierzchnia całkowita pom.</span>
                    <span class="rk-ctrl-value" id="valArea">30 m²</span>
                </div>
                <input type="range" class="rk-slider" id="inArea" min="5" max="80" step="1" value="30">
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Zabudowa stała (szafy, wyspa)</span>
                    <span class="rk-ctrl-value" id="valBuilt">5 m²</span>
                </div>
                <input type="range" class="rk-slider" id="inBuilt" min="0" max="30" step="1" value="5">
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Straty ciepła z OZC (Q)</span>
                    <span class="rk-ctrl-value" id="valHeat">1.2 kW</span>
                </div>
                <input type="range" class="rk-slider" id="inHeat" min="0.2" max="5.0" step="0.1" value="1.2">
            </div>

            <div class="rk-ctrl-group">
                <div class="rk-ctrl-header">
                    <span class="rk-ctrl-label">Różnica temp. (Delta T)</span>
                    <span class="rk-ctrl-value" id="valDelta">5 K</span>
                </div>
                <input type="range" class="rk-slider" id="inDelta" min="3" max="10" step="1" value="5">
            </div>
        </div>

        <div class="rk-calc-results">
            <h3>Wyniki Symulacji na Żywo</h3>
            
            <div class="rk-res-box">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <div class="rk-res-data">
                    <h4>Zapotrzebowanie na moc (Q_obl)</h4>
                    <p class="rk-val" id="outMoc">1.38 <span>kW</span></p>
                </div>
            </div>

            <div class="rk-res-box">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <div class="rk-res-data">
                    <h4>Gęstość strumienia (q)</h4>
                    <p class="rk-val" id="outStrumien">55.2 <span>W/m²</span></p>
                </div>
            </div>

            <div class="rk-res-box">
                <div class="rk-res-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-res-data">
                    <h4>Przepływ wymagany dla pętli</h4>
                    <p class="rk-val" id="outPrzeplyw">3.9 <span>l/min (Razem)</span></p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-calc-theory">
        <h3>Algorytm obliczeniowy kroku po kroku</h3>
        <ul class="rk-step-list">
            <li class="rk-step-item">
                <div class="rk-step-num">1</div>
                <h4>Wyznaczenie obliczeniowego zapotrzebowania na moc cieplną strefy (Q_obl)</h4>
                <p>Wyliczamy zapotrzebowanie na ciepło pomieszczenia na podstawie bilansu strat przez przegrody i na wentylację (zgodnie z PN-EN 12831), dodając współczynnik bezpieczeństwa rzędu 15% (naddatek na okresowe osłabienie ogrzewania).</p>
                <div class="rk-formula-box">Q_obl = Q * 1.15</div>
            </li>
            <li class="rk-step-item">
                <div class="rk-step-num">2</div>
                <h4>Obliczenie wymaganej gęstości strumienia cieplnego (q)</h4>
                <p>Dzielimy obliczoną moc przez efektywną, czynną powierzchnię grzejną podłogi (F_g). Pamiętaj, aby zawsze pomijać stałą zabudowę (np. szafy komandor, wanny, wyspy kuchenne). Wartość dla pokoi stałego przebywania ludzi nie powinna przekraczać limitu 100 W/m2.</p>
                <div class="rk-formula-box">q = (Q_obl * 1000) / F_g</div>
            </li>
            <li class="rk-step-item">
                <div class="rk-step-num">3</div>
                <h4>Określenie przepływu masowego czynnika dla pętli wodnej (m_2)</h4>
                <p>Dla systemów wodnych wyliczamy strumień objętościowy wody krążącej w pętli dla zadanego schłodzenia czynnika grzewczego (standardowo Delta T wynosi 5 K dla nowoczesnych pomp ciepła). Ciepło właściwe wody przyjmujemy jako 4.19 kJ/kg*K.</p>
                <div class="rk-formula-box">Przepływ [kg/h] = (Q_obl / (4.19 * Delta T)) * 3600</div>
            </li>
        </ul>

        <div class="rk-theory-note">
            <strong>Ogrzewanie Elektryczne:</strong> Dla porównania w układzie elektrycznym dobór opiera się bezpośrednio na gęstości mocy maty. Jeśli z obliczeń wychodzi strumień 55.2 W/m2, wybieramy standardową matę grzewczą o mocy nominalnej 80 W/m2 lub 100 W/m2. Automatyka wyposażona w regulator PWM (modulacja szerokości impulsów) samoczynnie odetnie zasilanie po osiągnięciu żądanej temperatury jastrychu lub powietrza.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var inArea = document.getElementById('inArea');
    var inBuilt = document.getElementById('inBuilt');
    var inHeat = document.getElementById('inHeat');
    var inDelta = document.getElementById('inDelta');

    var valArea = document.getElementById('valArea');
    var valBuilt = document.getElementById('valBuilt');
    var valHeat = document.getElementById('valHeat');
    var valDelta = document.getElementById('valDelta');

    var outMoc = document.getElementById('outMoc');
    var outStrumien = document.getElementById('outStrumien');
    var outPrzeplyw = document.getElementById('outPrzeplyw');

    function calculate() {
        var aTotal = parseFloat(inArea.value);
        var aBuilt = parseFloat(inBuilt.value);
        var qLoss = parseFloat(inHeat.value);
        var dT = parseFloat(inDelta.value);

        // Zabezpieczenie, by zabudowa nie była większa niż całe pomieszczenie
        if (aBuilt > aTotal) {
            aBuilt = aTotal - 1;
            inBuilt.value = aBuilt;
        }

        // Aktualizacja etykiet na bieżąco
        valArea.textContent = aTotal + " m²";
        valBuilt.textContent = aBuilt + " m²";
        valHeat.textContent = qLoss.toFixed(1) + " kW";
        valDelta.textContent = dT + " K";

        // KROK 1: Obliczanie mocy (Q_obl)
        var qObl = qLoss * 1.15;
        
        // KROK 2: Gęstość strumienia (q)
        var aActive = aTotal - aBuilt;
        var qFlux = 0;
        if (aActive > 0) {
            qFlux = (qObl * 1000) / aActive;
        }

        // KROK 3: Przepływ wody (m2)
        var kg_h = 0;
        var l_min = 0;
        if (dT > 0) {
            kg_h = (qObl / (4.19 * dT)) * 3600;
            l_min = kg_h / 60;
        }

        // Podział na pętle (orientacyjnie co 15m2)
        var loops = Math.ceil(aActive / 15);
        if (loops < 1) {
            loops = 1;
        }
        var flowPerLoop = l_min / loops;

        // Renderowanie wyników
        outMoc.innerHTML = qObl.toFixed(2) + " <span>kW</span>";
        
        // Zmiana koloru na czerwony przy przekroczeniu normy > 100 W/m2
        if (qFlux > 100) {
            outStrumien.innerHTML = "<span style='color:#ef4444'>" + qFlux.toFixed(1) + "</span> <span>W/m² (Przekroczenie!)</span>";
        } else {
            outStrumien.innerHTML = qFlux.toFixed(1) + " <span>W/m²</span>";
        }

        outPrzeplyw.innerHTML = flowPerLoop.toFixed(2) + " <span>l/min (na rotametrze)</span>";
    }

    // Nasłuchiwanie zdarzeń na suwakach
    if (inArea !== null) { inArea.addEventListener('input', calculate); }
    if (inBuilt !== null) { inBuilt.addEventListener('input', calculate); }
    if (inHeat !== null) { inHeat.addEventListener('input', calculate); }
    if (inDelta !== null) { inDelta.addEventListener('input', calculate); }

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



<style>
:root {
    --rk-proj-dark: #1e293b;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-electric: #d97706;
    --rk-proj-electric-light: #fef3c7;
    --rk-proj-gray: #64748b;
    --rk-proj-border: #cbd5e1;
    --rk-proj-bg: #ffffff;
    --rk-proj-red: #ef4444;
}

.rk-proj-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 30px 60px -15px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-proj-blue);
    overflow: hidden;
}

/* Nagłówek H2 */
.rk-proj-header {
    padding: 45px 50px 35px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-proj-border);
}

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

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

/* Interfejs Przełącznika */
.rk-proj-app-wrapper {
    padding: 40px 50px;
}

.rk-proj-switch-board {
    display: flex;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 35px;
}

.rk-proj-tab {
    flex: 1;
    text-align: center;
    padding: 18px 20px;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s;
    border: none;
    background: transparent;
    color: var(--rk-proj-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-proj-tab.active-water {
    background: var(--rk-proj-bg);
    color: var(--rk-proj-blue);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-proj-tab.active-electric {
    background: var(--rk-proj-bg);
    color: var(--rk-proj-electric);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Panele z Treścią */
.rk-proj-panel {
    display: none;
    animation: fadeIn 0.5s ease;
}

.rk-proj-panel.is-visible {
    display: block;
}

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

/* Layout bez obrazka - pełna szerokość na merytorykę */
.rk-proj-data-box h3 {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-proj-data-box p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-proj-dark);
    margin: 0 0 20px 0;
}

/* Interaktywne Karty Wpływu - układ 2-kolumnowy na desktopie */
.rk-impact-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 25px;
}

.rk-impact-item {
    background: #ffffff;
    border: 1px solid var(--rk-proj-border);
    padding: 25px;
    border-radius: 12px;
    border-top: 4px solid var(--rk-proj-gray);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-impact-item.water-border { border-top-color: var(--rk-proj-blue); }
.rk-impact-item.elec-border { border-top-color: var(--rk-proj-electric); }

.rk-impact-item h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    line-height: 1.4;
}

.rk-impact-item p {
    margin: 0;
    font-size: 14px;
    color: var(--rk-proj-gray);
    line-height: 1.6;
}

/* Tagi długi ogon (Zoptymalizowane) */
.rk-proj-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 40px;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-proj-border);
}

.rk-ptag {
    background: #f1f5f9;
    color: var(--rk-proj-gray);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
}

.rk-ptag:hover {
    background: var(--rk-proj-blue);
    color: #ffffff;
}

/* Mocne CTA */
.rk-proj-cta {
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #0f172a 100%);
    padding: 45px 50px;
    text-align: center;
    color: #ffffff;
}

.rk-proj-cta h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

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

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

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

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-proj-container { margin: 20px auto; border-radius: 16px; }
    .rk-proj-header, .rk-proj-app-wrapper, .rk-proj-cta { padding: 30px 20px; }
    .rk-proj-switch-board { flex-direction: column; padding: 5px; gap: 5px; }
    .rk-impact-cards { grid-template-columns: 1fr; gap: 15px; }
    .rk-btn-action { width: 100%; font-size: 16px; padding: 16px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-projekt-ozc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jak to wpływa na projekt ogrzewania podłogowego?",
    "description": "Zaprojektowanie ogrzewania podłogowego bez ścisłej korelacji z charakterystyką OZC to droga do katastrofy. Zobacz wpływ na rozstaw rur i przydział mocy elektrycznej.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-parametry-projektowe",
    "name": "Wytyczne Projektowe OZC: Woda vs Prąd",
    "description": "Baza danych parametrów projektowych wykazująca korelację między wynikami OZC a konfiguracją układu wodnego (rozstaw rur) oraz elektrycznego (moc przyłącza).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne budynku",
      "rozstaw rur ogrzewanie podłogowe",
      "temperatura zasilania pompy ciepła Tz",
      "zwiększenie mocy przyłączeniowej wew",
      "opory hydrauliczne pętli grzewczych"
    ],
    "measurementTechnique": "Algorytmiczne przeliczanie jednostkowych strat ciepła z OZC na parametry hydrauliczne pomp obiegowych oraz bilans mocy elektrycznej budynku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Wodny: Błędny rozstaw rur (np. 20 cm zamiast 10 cm) wymusza podniesienie temperatury zasilania do 40 st C, co obniża współczynnik SCOP pompy ciepła.",
        "System Elektryczny: Instalacja mat o mocy 10 kW wymaga zwiększenia mocy umownej do 25-30 kW oraz zastosowania przekaźników priorytetowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-symulator-projektu",
    "name": "Symulator Wpływu OZC na Instalację",
    "description": "Narzędzie interaktywne ilustrujące zmiany w hydraulice i układach zasilania budynku w zależności od wybranej technologii grzewczej i wyników OZC.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="ozc-impact-module">
    <div class="rk-proj-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego?</h2>
        <p>Zaprojektowanie ogrzewania bez ścisłej korelacji z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" style="color: var(--rk-proj-blue); font-weight: 600;">Charakterystyką Energetyczną Budynku (OZC)</a> to prosta droga do katastrofy finansowej. Każda zmiana systemu wymusza całkowitą przebudowę założeń konstrukcyjnych w dokumentacji projektowej.</p>
    </div>

    <div class="rk-proj-app-wrapper">
        <div class="rk-proj-switch-board">
            <button class="rk-proj-tab active-water" id="tabWater">
                <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>
                Wymagania Systemu Wodnego
            </button>
            <button class="rk-proj-tab" id="tabElectric">
                <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>
                Wymagania Systemu Elektrycznego
            </button>
        </div>

        <div class="rk-proj-panel is-visible" id="panelWater">
            <div class="rk-proj-data-box">
                <h3 style="color: var(--rk-proj-blue);">Precyzyjny rozstaw rur i parametry hydrauliczne</h3>
                <p>Kluczowe znaczenie dla sprawności instalacji ma dokładny rozstaw rur grzewczych (przeważnie od 10 cm do 20 cm) oraz optymalna długość poszczególnych pętli (max 100-120 mb dla rury PEX 16x2). Rozstaw dobiera się matematycznie na podstawie jednostkowych strat ciepła z Charakterystyki OZC. Gęstszy rozstaw (np. 10 cm) stosuje się obligatoryjnie w łazienkach, wiatrołapach oraz przy nowoczesnych, dużych przeszkleniach tarasowych typu HS.</p>
                
                <div class="rk-impact-cards">
                    <div class="rk-impact-item water-border">
                        <h4>Spadek sprawności pompy ciepła (SCOP)</h4>
                        <p>Zastosowanie błędnego, zbyt rzadkiego rozstawu rur wymusza podniesienie temperatury zasilania Tz na pompie ciepła (np. z 32°C na 40°C). Taki błąd drastycznie obniża sprawność pompy i generuje potężne koszty przez cały okres eksploatacji.</p>
                    </div>
                    <div class="rk-impact-item water-border">
                        <h4>Opory liniowe i dobór pompy obiegowej</h4>
                        <p>Dokumentacja projektowa musi precyzyjnie uwzględniać opory liniowe i miejscowe pętli w celu poprawnego doboru wysokości podnoszenia pompy obiegowej (np. na poziom 6 lub 8 m słupa wody), co chroni przed efektem niedogrzanych stref.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-proj-panel" id="panelElectric">
            <div class="rk-proj-data-box">
                <h3 style="color: var(--rk-proj-electric);">Przydział mocy elektrycznej i akumulacja jastrychu</h3>
                <p>Fizyka instalacji przesuwa punkt ciężkości z hydrauliki na dokładny bilans mocy elektrycznej budynku. Jeśli dom jednorodzinny ma zapotrzebowanie na moc 9 kW, a same ułożone maty wygenerują szczytowe obciążenie 10 kW, to standardowe przyłącze domowe 12-15 kW niemal natychmiast ulegnie przeciążeniu po uruchomieniu płyty indukcyjnej lub piekarnika.</p>
                
                <div class="rk-impact-cards">
                    <div class="rk-impact-item elec-border">
                        <h4>Zwiększenie mocy przyłączeniowej u operatora</h4>
                        <p>Wybór pełnego ogrzewania elektrycznego wymaga wystąpienia o zwiększenie mocy umownej w zakładzie energetycznym (nierzadko do 25 - 30 kW) oraz montaż inteligentnych przekaźników priorytetowych w rozdzielnicy głównej.</p>
                    </div>
                    <div class="rk-impact-item elec-border">
                        <h4>Brak masy buforowej i koszty taryfy (G12w)</h4>
                        <p>Maty elektryczne układane cienkowarstwowo bezpośrednio w kleju pod płytkami eliminują możliwość taniej akumulacji energii cieplnej w tańszych taryfach nocnych, co drastycznie podnosi rachunki w skali rocznej.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-proj-tags">
            <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/" class="rk-ptag"># cena projektu instalacji ogrzewania</a>
            <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego/" class="rk-ptag"># optymalny rozstaw rur podłogówki</a>
            <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-ptag"># wyliczenia OZC dla domu 100m2</a>
            <span class="rk-ptag"># wylewka anhydrytowa pod maty grzewcze</span>
            <span class="rk-ptag"># zwiększenie przydziału mocy tauron</span>
            <span class="rk-ptag"># opory hydrauliczne pomp obiegowych</span>
            <span class="rk-ptag"># maksymalna długość pętli pex 16x2</span>
            <span class="rk-ptag"># przekaźniki priorytetowe ogrzewania</span>
        </div>
    </div>

    <div class="rk-proj-cta">
        <h3>Zabezpiecz swoją inwestycję profesjonalną dokumentacją</h3>
        <p>Projektowanie instalacji "na wyczucie" przez wykonawcę zawsze kończy się kosztownymi przeróbkami lub wysokimi rachunkami za prąd. Zaufaj wiedzy inżynieryjnej i zoptymalizuj koszty montażu oraz materiałów za pomocą kompleksowego projektu.</p>
        <a href="https://projekt-ogrzewania.pl/kontakt/" class="rk-btn-action">
            ZAMÓW PROJEKT I DOKUMENTACJĘ
            <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>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabWater = document.getElementById('tabWater');
    var tabElectric = document.getElementById('tabElectric');
    var panelWater = document.getElementById('panelWater');
    var panelElectric = document.getElementById('panelElectric');

    function switchTab(type) {
        if (type === 'water') {
            // Zmiana przycisków
            tabElectric.classList.remove('active-electric');
            tabWater.classList.add('active-water');
            
            // Zmiana widoczności
            panelElectric.classList.remove('is-visible');
            panelWater.classList.add('is-visible');
        }
        
        if (type === 'electric') {
            // Zmiana przycisków
            tabWater.classList.remove('active-water');
            tabElectric.classList.add('active-electric');
            
            // Zmiana widoczności
            panelWater.classList.remove('is-visible');
            panelElectric.classList.add('is-visible');
        }
    }

    if (tabWater !== null) {
        tabWater.addEventListener('click', function() {
            switchTab('water');
        });
    }

    if (tabElectric !== null) {
        tabElectric.addEventListener('click', function() {
            switchTab('electric');
        });
    }
});
</script>



<style>
:root {
    --rk-temp-dark: #0f172a;
    --rk-temp-gray: #64748b;
    --rk-temp-border: #e2e8f0;
    --rk-temp-bg: #ffffff;
    
    /* Skala Temperatur */
    --rk-t-green: #10b981;
    --rk-t-green-light: #ecfdf5;
    --rk-t-yellow: #eab308;
    --rk-t-yellow-light: #fefce8;
    --rk-t-orange: #f97316;
    --rk-t-orange-light: #fff7ed;
    --rk-t-red: #ef4444;
    --rk-t-red-light: #fef2f2;
}

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

/* Nagłówek Sekcji */
.rk-temp-header {
    padding: 40px 50px 30px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-temp-border);
}

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

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

.rk-temp-header strong {
    color: var(--rk-temp-dark);
}

/* Interfejs Symulatora */
.rk-temp-app {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    align-items: center;
}

/* Sterowanie (Suwak) */
.rk-temp-controls {
    background: #ffffff;
}

.rk-temp-ctrl-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-temp-gray);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-temp-slider-wrap {
    position: relative;
    padding: 20px 0;
}

.rk-temp-val-display {
    text-align: center;
    font-size: 56px;
    font-weight: 900;
    color: var(--rk-temp-dark);
    margin-bottom: 20px;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    transition: color 0.3s;
}

.rk-temp-val-display span {
    font-size: 24px;
    color: var(--rk-temp-gray);
}

.rk-slider-t {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, var(--rk-t-green) 0%, var(--rk-t-yellow) 40%, var(--rk-t-orange) 70%, var(--rk-t-red) 100%);
    outline: none;
}

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

.rk-slider-t::-moz-range-thumb {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border: 4px solid var(--rk-temp-dark);
}

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

.rk-temp-scale-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-temp-gray);
}

/* Wynik Symulacji (Dynamiczna Karta) */
.rk-temp-status-card {
    padding: 35px;
    border-radius: 20px;
    border: 2px solid transparent;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-temp-icon-box {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    background: #ffffff;
    box-shadow: 0 8px 16px -4px rgba(0,0,0,0.1);
}

.rk-temp-status-title {
    font-size: 22px;
    font-weight: 900;
    margin: 0 0 12px 0;
    color: var(--rk-temp-dark);
}

.rk-temp-status-desc {
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-temp-gray);
    margin: 0;
}

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

/* Zabezpieczenia (Dolna sekcja) */
.rk-temp-safeguards {
    border-top: 1px solid var(--rk-temp-border);
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #f8fafc;
}

.rk-safe-block {
    padding: 35px 50px;
}

.rk-safe-block:first-child {
    border-right: 1px solid var(--rk-temp-border);
}

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

.rk-safe-icon {
    color: var(--rk-temp-dark);
}

.rk-safe-block h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-temp-dark);
    margin: 0;
}

.rk-safe-block p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-temp-gray);
    margin: 0;
}

/* Mobile RWD */
@media (max-width: 850px) {
    .rk-temp-container { margin: 20px auto; border-radius: 16px; }
    .rk-temp-header, .rk-temp-app { padding: 30px 20px; }
    .rk-temp-app { grid-template-columns: 1fr; gap: 30px; }
    .rk-temp-safeguards { grid-template-columns: 1fr; }
    .rk-safe-block { padding: 25px 20px; border-right: none; border-bottom: 1px solid var(--rk-temp-border); }
    .rk-temp-val-display { font-size: 48px; }
    .rk-temp-status-card { padding: 25px; min-height: auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-temperatura-podlogi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jaka jest maksymalna temperatura powierzchni podłogi w obu systemach?",
    "description": "Limity temperatury podłogówki według normy PN-EN 1264. Skutki fizjologiczne przegrzania (syndrom ciężkich nóg) oraz uszkodzenia jastrychu przy awarii czujnika.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-temperatury",
    "name": "Limity Temperatur Powierzchniowych PN-EN 1264",
    "description": "Baza danych określająca bezpieczne progi temperaturowe dla wylewek grzewczych oraz identyfikująca ryzyka fizjologiczne i techniczne przy przekroczeniu norm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura ogrzewania podłogowego",
      "norma PN-EN 1264 temperatura",
      "syndrom ciężkich nóg podłogówka",
      "awaria czujnika podłogowego NTC",
      "zawór mieszający podłogówki 45 stopni"
    ],
    "measurementTechnique": "Wizualizacja skutków przekroczenia normatywnych limitów 29 stopni Celsjusza dla stref stałego przebywania i 33 stopni Celsjusza dla stref brzegowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa komfortu: 20-29°C. Bezpieczne dla zdrowia i materiałów.",
        "Strefa brzegowa/łazienki: 30-33°C.",
        "Ryzyko i dyskomfort: 34-45°C. Uszkodzenie paneli, ból nóg.",
        "Strefa awarii: >45°C. Degradacja klejów, pękanie wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-symulator-komfortu",
    "name": "Symulator Komfortu i Ryzyka Termicznego",
    "description": "Aplikacja pozwalająca na symulację zachowania okładzin i fizjologii ludzkiej przy zmianach temperatury jastrychu w systemach wodnych i elektrycznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-thermal-simulator">
    <div class="rk-temp-header">
        <h2>Jaka jest maksymalna temperatura powierzchni podłogi w obu systemach?</h2>
        <p>Maksymalna temperatura powierzchni podłogi dla pomieszczeń stałego przebywania ludzi wynosi <strong>29°C</strong>, natomiast w strefach brzegowych oraz łazienkach wynosi <strong>33°C</strong> – wartości te restrykcyjnie definiuje norma budowlana <strong>PN-EN 1264</strong>. Przekroczenie tych limitów prowadzi do dyskomfortu termicznego, syndromu "ciężkich nóg" oraz ryzyka uszkodzenia okładzin podłogowych (np. pękania paneli lub odklejania parkietu).</p>
    </div>

    <div class="rk-temp-app">
        <div class="rk-temp-controls">
            <div class="rk-temp-ctrl-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                Symulator temperatury posadzki
            </div>
            
            <div class="rk-temp-val-display" id="outTempValue">24<span>°C</span></div>
            
            <div class="rk-temp-slider-wrap">
                <input type="range" class="rk-slider-t" id="inTempSlider" min="20" max="60" step="1" value="24">
                <div class="rk-temp-scale-labels">
                    <span>20°C</span>
                    <span>Norma</span>
                    <span>Ryzyko</span>
                    <span>Awaria</span>
                </div>
            </div>
        </div>

        <div class="rk-temp-status-card" id="tempStatusCard">
            <div class="rk-temp-icon-box" id="tempStatusIcon">
                </div>
            <h3 class="rk-temp-status-title" id="tempStatusTitle">Tytuł statusu</h3>
            <p class="rk-temp-status-desc" id="tempStatusDesc">Opis statusu</p>
        </div>
    </div>

    <div class="rk-temp-safeguards">
        <div class="rk-safe-block">
            <div class="rk-safe-header">
                <div class="rk-safe-icon">
                    <svg width="28" height="28" 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>
                <h4>Zabezpieczenie układu wodnego</h4>
            </div>
            <p>W systemie wodnym kontrolę nad tym parametrem sprawuje automatyka pogodowa oraz <strong>zawór mieszający na rozdzielaczu</strong>, który mechanicznie nie pozwala na wpuszczenie w pętle czynnika grzewczego o temperaturze wyższej niż bezpieczne 45°C - 50°C.</p>
        </div>

        <div class="rk-safe-block">
            <div class="rk-safe-header">
                <div class="rk-safe-icon">
                    <svg width="28" height="28" 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>
                <h4>Zabezpieczenie układu elektrycznego</h4>
            </div>
            <p>W systemie elektrycznym kluczowym elementem bezpieczeństwa jest poprawnie umieszczony <strong>podłogowy czujnik temperatury NTC</strong> zintegrowany z termostatem. Jeśli czujnik ulegnie awarii lub zostanie pominięty, kable grzewcze mogą rozgrzać się do temperatury przekraczającej 50°C, co bezpowrotnie niszczy strukturę klejów i jastrychu.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('inTempSlider');
    var valDisplay = document.getElementById('outTempValue');
    var statusCard = document.getElementById('tempStatusCard');
    var statusIcon = document.getElementById('tempStatusIcon');
    var statusTitle = document.getElementById('tempStatusTitle');
    var statusDesc = document.getElementById('tempStatusDesc');

    // Ikony SVG dla stanów
    var iconGreen = '<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-t-green)" 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>';
    
    var iconYellow = '<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-t-yellow)" 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>';
    
    var iconOrange = '<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-t-orange)" 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>';
    
    var iconRed = '<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-t-red)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>';

    function updateSimulation() {
        var temp = parseInt(slider.value);
        valDisplay.innerHTML = temp + "<span>°C</span>";

        // BEZPIECZNA KASKADOWA LOGIKA (bez &&)
        if (temp <= 29) {
            // STREFA KOMFORTU
            statusCard.style.backgroundColor = "var(--rk-t-green-light)";
            statusCard.style.borderColor = "rgba(16, 185, 129, 0.3)";
            valDisplay.style.color = "var(--rk-t-green)";
            statusIcon.innerHTML = iconGreen;
            
            statusTitle.textContent = "Strefa Komfortu";
            statusTitle.style.color = "var(--rk-t-green)";
            statusDesc.innerHTML = "Idealna i zdrowa temperatura dla pomieszczeń stałego przebywania ludzi (salon, sypialnia). W pełni <strong>zgodna z normą PN-EN 1264</strong>. Brak ryzyka dla paneli i parkietów.";
            
        } else if (temp <= 33) {
            // STREFA BRZEGOWA / ŁAZIENKA
            statusCard.style.backgroundColor = "var(--rk-t-yellow-light)";
            statusCard.style.borderColor = "rgba(234, 179, 8, 0.3)";
            valDisplay.style.color = "var(--rk-t-yellow)";
            statusIcon.innerHTML = iconYellow;
            
            statusTitle.textContent = "Tylko Strefy Brzegowe";
            statusTitle.style.color = "var(--rk-t-yellow)";
            statusDesc.innerHTML = "Temperatura dopuszczalna <strong>wyłącznie w łazienkach</strong> oraz tzw. strefach brzegowych (przy dużych oknach tarasowych). Utrzymywanie jej w salonie powoduje uczucie duszności.";
            
        } else if (temp <= 45) {
            // RYZYKO DLA ZDROWIA I MATERIAŁÓW
            statusCard.style.backgroundColor = "var(--rk-t-orange-light)";
            statusCard.style.borderColor = "rgba(249, 115, 22, 0.3)";
            valDisplay.style.color = "var(--rk-t-orange)";
            statusIcon.innerHTML = iconOrange;
            
            statusTitle.textContent = "Dyskomfort i Ryzyko";
            statusTitle.style.color = "var(--rk-t-orange)";
            statusDesc.innerHTML = "Przekroczenie norm. Wywołuje u domowników fizjologiczny <strong>syndrom ciężkich i spuchniętych nóg</strong>. Drastycznie rośnie ryzyko rozschnięcia się paneli, odklejenia parkietu i kurzu z konwekcji.";
            
        } else {
            // KRYTYCZNA AWARIA
            statusCard.style.backgroundColor = "var(--rk-t-red-light)";
            statusCard.style.borderColor = "rgba(239, 68, 68, 0.4)";
            valDisplay.style.color = "var(--rk-t-red)";
            statusIcon.innerHTML = iconRed;
            
            statusTitle.textContent = "Strefa Zniszczenia (Awaria)";
            statusTitle.style.color = "var(--rk-t-red)";
            statusDesc.innerHTML = "Symulacja całkowitej awarii czujnika temperatury w systemie elektrycznym. Posadzka nagrzewa się do ekstremalnych wartości, powodując <strong>bezpowrotną degradację klejów, żywic i pękanie jastrychu</strong>.";
        }
    }

    if (slider !== null) {
        slider.addEventListener('input', updateSimulation);
    }
    
    // Inicjalizacja
    updateSimulation();
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-red: #dc2626;
    --rk-err-red-light: #fef2f2;
    --rk-err-blue: #0284c7;
    --rk-err-blue-light: #f0f9ff;
    --rk-err-gold: #d97706;
    --rk-err-gold-light: #fffbeb;
    --rk-err-gray: #64748b;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

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

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

.rk-err-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Główny Błąd - Alert Box */
.rk-err-alert-box {
    margin: 30px 50px;
    padding: 20px 25px;
    background: var(--rk-err-red-light);
    border-left: 4px solid var(--rk-err-red);
    border-radius: 0 12px 12px 0;
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.rk-err-alert-icon {
    color: var(--rk-err-red);
    flex-shrink: 0;
    margin-top: 3px;
}

.rk-err-alert-text p {
    margin: 0;
    font-size: 15px;
    color: #991b1b;
    line-height: 1.6;
}

.rk-err-alert-text strong {
    font-weight: 800;
}

/* Nawigacja Tabs */
.rk-err-nav {
    display: flex;
    margin: 0 50px 25px;
    background: #f1f5f9;
    border-radius: 12px;
    padding: 6px;
}

.rk-err-tab {
    flex: 1;
    padding: 16px 20px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-err-gray);
    background: transparent;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-err-tab.active-water {
    background: var(--rk-err-bg);
    color: var(--rk-err-blue);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-err-tab.active-electric {
    background: var(--rk-err-bg);
    color: var(--rk-err-gold);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Panele i Karty Błędów */
.rk-err-panel {
    display: none;
    padding: 0 50px 40px;
    animation: slideUp 0.4s ease;
}

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

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

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

.rk-err-card {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    padding: 25px;
    display: flex;
    gap: 20px;
    transition: transform 0.2s, box-shadow 0.2s;
}

.rk-err-card:hover {
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
    transform: translateY(-2px);
}

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

.water-card .rk-err-card-icon {
    background: var(--rk-err-blue-light);
    color: var(--rk-err-blue);
}

.elec-card .rk-err-card-icon {
    background: var(--rk-err-gold-light);
    color: var(--rk-err-gold);
}

.rk-err-card-content h4 {
    margin: 0 0 10px 0;
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-err-dark);
}

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

.rk-err-card-content .rk-consequence {
    display: inline-block;
    margin-top: 12px;
    padding: 6px 12px;
    background: #f8fafc;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-err-red);
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-err-container { margin: 20px auto; border-radius: 16px; }
    .rk-err-header, .rk-err-panel { padding: 25px 20px; }
    .rk-err-alert-box { margin: 20px; padding: 15px; flex-direction: column; gap: 10px; }
    .rk-err-nav { margin: 0 20px 20px; flex-direction: column; padding: 5px; gap: 5px; }
    .rk-err-card { flex-direction: column; gap: 15px; padding: 20px; }
    .rk-err-card-icon { width: 40px; height: 40px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-bledy-wykonawcze",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Jakie są najczęstsze błędy wykonawcze przy układaniu obu systemów?",
    "description": "Zestawienie najgroźniejszych błędów instalacyjnych w ogrzewaniu wodnym i elektrycznym, prowadzących do pękania posadzek, przepalenia kabli i awarii hydraulicznych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-12-29",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-katalog-bledow",
    "name": "Katalog Błędów Wykonawczych i Awarii Instalacji",
    "description": "Techniczna klasyfikacja błędów wykonawczych w systemach płaszczyznowych wraz z analizą skutków fizykochemicznych dla wylewek i infrastruktury grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak wygrzewania jastrychu norma PN-EN 1264-4",
      "zbyt długie pętle grzewcze pex 16mm",
      "zabetonowany czujnik ntc podłogówki",
      "spalenie kabla grzewczego pod meblami",
      "brak dylatacji wylewki powyżej 40m2"
    ],
    "measurementTechnique": "Identyfikacja uchybień instalacyjnych względem norm budowlanych oraz określenie skutków termicznych (np. spadek rezystancji przewodu, opory hydrauliczne).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System wodny: Brak wygrzewania jastrychu (PN-EN 1264-4) prowadzi do pęknięć; pętle >120m blokują przepływ.",
        "System elektryczny: Odcięcie kabla oporowego zmienia oporność; maty pod stałą zabudową ulegają przegrzaniu (izolacja termiczna)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-detektor-bledow",
    "name": "Interaktywny Detektor Błędów Instalacyjnych",
    "description": "Moduł diagnostyczny pozwalający inwestorom na zapoznanie się z listą krytycznych błędów wykonawczych podziałem na technologię wodną i elektryczną, ostrzegający przed nieodwracalnymi uszkodzeniami jastrychu i mat grzewczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-error-detector">
    <div class="rk-err-header">
        <h2>
            <svg width="28" height="28" 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>
            Najczęstsze błędy wykonawcze przy układaniu obu systemów
        </h2>
        <p>Błędy na etapie zalewania instalacji są praktycznie nieodwracalne. Dowiedz się, na co uważać, by nie zniszczyć posadzki i nie spalić systemu w pierwszym sezonie grzewczym.</p>
    </div>

    <div class="rk-err-alert-box">
        <div class="rk-err-alert-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-err-alert-text">
            <p>Najczęstszym błędem instalacji wodnej jest brak wygrzewania jastrychu zgodnie z <strong>normą PN-EN 1264-4</strong> (pękanie wylewki). W systemach elektrycznych plagą jest <strong>skracanie kabli oporowych</strong> – odcięcie nawet 50 cm przewodu zmienia parametry elektryczne sekcji, powodując drastyczny spadek rezystancji i natychmiastowe przepalenie.</p>
        </div>
    </div>

    <div class="rk-err-nav">
        <button class="rk-err-tab active-water" id="tabErrWater">
            <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>
            Błędy w instalacjach wodnych
        </button>
        <button class="rk-err-tab" id="tabErrElec">
            <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="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
            Błędy w instalacjach elektrycznych
        </button>
    </div>

    <div class="rk-err-panel is-active" id="panelErrWater">
        <div class="rk-err-grid">
            <div class="rk-err-card water-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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-err-card-content">
                    <h4>Zbyt długie pętle grzewcze</h4>
                    <p>Przekraczanie maksymalnej długości 120 m dla standardowej rury o średnicy 16 mm podczas meandrowania.</p>
                    <span class="rk-consequence">Skutek: Gigantyczne opory hydrauliczne, brak możliwości zrównoważenia przepływów na rotametrach i chroniczne niedogrzanie końcówki pętli.</span>
                </div>
            </div>

            <div class="rk-err-card water-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
                </div>
                <div class="rk-err-card-content">
                    <h4>Brak szczelin dylatacyjnych</h4>
                    <p>Niewykonanie dylatacji przy ciągłych powierzchniach jastrychu przekraczających 40 m² lub przy wąskich przejściach i proporcjach ścian większych niż 2:1.</p>
                    <span class="rk-consequence">Skutek: Nagromadzenie naprężeń termicznych, niekontrolowane pękanie wylewki i zrywanie ułożonych płytek ceramicznych.</span>
                </div>
            </div>

            <div class="rk-err-card water-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
                </div>
                <div class="rk-err-card-content">
                    <h4>Zaginanie rur bez sprężyny</h4>
                    <p>Wykonywanie ostrych zakrętów rury PEX przy ścianach bazując na sile rąk, powodujące tzw. przewężenie lub załamanie materiału.</p>
                    <span class="rk-consequence">Skutek: Drastyczne dławienie przepływu medium grzewczego i osłabienie struktury mechanicznej ścianki pod ciśnieniem (1,5 - 2,5 bara).</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-err-panel" id="panelErrElec">
        <div class="rk-err-grid">
            <div class="rk-err-card elec-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
                </div>
                <div class="rk-err-card-content">
                    <h4>Układanie mat pod meblami stałymi</h4>
                    <p>Umieszczanie przewodów oporowych pod meblami bez wolnych nóżek (zabudowa kuchenna, masywne szafy typu komandor, wanny).</p>
                    <span class="rk-consequence">Skutek: Meble działają jako idealna izolacja termiczna, blokując emisję ciepła w górę, co powoduje przegrzanie jastrychu i stopienie izolacji kabla.</span>
                </div>
            </div>

            <div class="rk-err-card elec-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="22" y1="12" x2="18" y2="12"></line><line x1="6" y1="12" x2="2" y2="12"></line><line x1="12" y1="6" x2="12" y2="2"></line><line x1="12" y1="22" x2="12" y2="18"></line></svg>
                </div>
                <div class="rk-err-card-content">
                    <h4>Wiercenie w strefie układania kabla</h4>
                    <p>Prowadzenie przewodów pod szafkami wiszącymi lub toaletą bez inwentaryzacji foto-wideo przed wylaniem posadzki lub bez ujęcia kamerą termowizyjną.</p>
                    <span class="rk-consequence">Skutek: Mechaniczne przecięcie przewodu podłogowego podczas późniejszego montażu kołków rozporowych do wyposażenia wnętrz.</span>
                </div>
            </div>

            <div class="rk-err-card elec-card">
                <div class="rk-err-card-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-err-card-content">
                    <h4>Montaż czujnika na stałe w jastrychu</h4>
                    <p>Zabetonowanie sondy termostatu bezpośrednio w wylewce, zamiast umieszczenia jej w gładkiej rurce osłonowej (tzw. peszel) z zaślepionym końcem.</p>
                    <span class="rk-consequence">Skutek: W przypadku naturalnej awarii czujnika temperatury NTC (ulegają zużyciu z biegiem lat), jego wymiana wiąże się z kuciem płytek.</span>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnWater = document.getElementById('tabErrWater');
    var btnElec = document.getElementById('tabErrElec');
    var panelWater = document.getElementById('panelErrWater');
    var panelElec = document.getElementById('panelErrElec');

    function hideAllPanels() {
        if (panelWater !== null) {
            panelWater.classList.remove('is-active');
        }
        if (panelElec !== null) {
            panelElec.classList.remove('is-active');
        }
    }

    function removeActiveClasses() {
        if (btnWater !== null) {
            btnWater.classList.remove('active-water');
        }
        if (btnElec !== null) {
            btnElec.classList.remove('active-electric');
        }
    }

    if (btnWater !== null) {
        btnWater.addEventListener('click', function() {
            hideAllPanels();
            removeActiveClasses();
            
            btnWater.classList.add('active-water');
            panelWater.classList.add('is-active');
        });
    }

    if (btnElec !== null) {
        btnElec.addEventListener('click', function() {
            hideAllPanels();
            removeActiveClasses();
            
            btnElec.classList.add('active-electric');
            panelElec.classList.add('is-active');
        });
    }
});
</script>



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

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

/* Nagłówek Case Study */
.rk-cs-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-cs-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

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

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

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

/* Parametry Inwestycji */
.rk-cs-params {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    padding: 25px 50px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-cs-border);
}

.rk-cs-param-item {
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    padding: 10px 20px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-cs-dark);
}

.rk-cs-param-item svg {
    color: var(--rk-cs-gray);
}

/* Interaktywny Audyt */
.rk-cs-audit-wrapper {
    padding: 40px 50px;
}

.rk-cs-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 35px;
}

.rk-cs-tab {
    flex: 1;
    text-align: center;
    padding: 18px 20px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s;
    border: none;
    background: transparent;
    color: var(--rk-cs-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-cs-tab.active-bad {
    background: var(--rk-cs-bg);
    color: var(--rk-cs-red);
    box-shadow: 0 4px 15px rgba(220, 38, 38, 0.1);
}

.rk-cs-tab.active-good {
    background: var(--rk-cs-bg);
    color: var(--rk-cs-blue);
    box-shadow: 0 4px 15px rgba(2, 132, 199, 0.1);
}

/* Panele Danych */
.rk-cs-panel {
    display: none;
    animation: fadeIn 0.4s ease;
}

.rk-cs-panel.is-visible {
    display: block;
}

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

.rk-cs-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.rk-cs-data-card {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-cs-border);
    position: relative;
    overflow: hidden;
}

.panel-bad .rk-cs-data-card { background: var(--rk-cs-red-light); border-color: rgba(220, 38, 38, 0.2); }
.panel-good .rk-cs-data-card { background: var(--rk-cs-blue-light); border-color: rgba(2, 132, 199, 0.2); }

.rk-cs-card-label {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.panel-bad .rk-cs-card-label { color: #991b1b; }
.panel-good .rk-cs-card-label { color: var(--rk-cs-blue); }

.rk-cs-card-value {
    font-size: 42px;
    font-weight: 900;
    margin: 0;
    line-height: 1.1;
}

.panel-bad .rk-cs-card-value { color: var(--rk-cs-red); }
.panel-good .rk-cs-card-value { color: var(--rk-cs-dark); }

.rk-cs-card-value span {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-cs-gray);
}

.rk-cs-card-desc {
    margin: 15px 0 0 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cs-dark);
}

/* Wniosek Finansowy */
.rk-cs-conclusion {
    margin-top: 40px;
    padding: 30px;
    border-radius: 16px;
    background: #f8fafc;
    border-left: 4px solid var(--rk-cs-dark);
}

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

.rk-cs-conclusion p {
    font-size: 15px;
    color: var(--rk-cs-gray);
    line-height: 1.7;
    margin: 0;
}

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

.rk-cs-loss-highlight {
    display: inline-block;
    margin-top: 15px;
    padding: 8px 16px;
    background: #ffffff;
    border: 1px solid var(--rk-cs-border);
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-cs-red);
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-cs-container { margin: 20px auto; border-radius: 16px; }
    .rk-cs-header, .rk-cs-audit-wrapper { padding: 30px 20px; }
    .rk-cs-params { padding: 20px; flex-direction: column; gap: 10px; }
    .rk-cs-tabs { flex-direction: column; padding: 5px; gap: 5px; }
    .rk-cs-data-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-cs-card-value { font-size: 32px; }
    .rk-cs-conclusion { padding: 20px; margin-top: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Studium Przypadku (Case Study) – Rachunki za ogrzewanie",
    "description": "Realny audyt energetyczny z fali mrozów w styczniu 2026. Porównanie rachunków za dom 145 m2: maty elektryczne (3480 PLN) vs pompa ciepła (1120 PLN).",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-audyt",
    "name": "Audyt Kosztów Ogrzewania - Styczeń 2026",
    "description": "Zestawienie empirycznych danych z użycia układów płaszczyznowych w budynku 145 m2 podczas fali mrozów (-12 st C).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty ogrzewania styczeń 2026",
      "zużycie prądu maty grzewcze w zimie",
      "pompa ciepła cop 3.1 mrozy",
      "rachunki za ogrzewanie elektryczne 145m2",
      "brak bufora akumulacyjnego podłogówka"
    ],
    "measurementTechnique": "Audyt powykonawczy i symulacja komputerowa (OZC) dla warunków rzeczywistych (10 dni mrozów -12°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zużycie (Maty Elektryczne): 134 kWh na dobę. Miesięczny koszt: 3 480 PLN.",
        "Symulacja (Pompa Ciepła): 43.2 kWh na dobę. Miesięczny koszt: 1 120 PLN."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-audyt-wizualizator",
    "name": "Interaktywny Audyt Case Study",
    "description": "Moduł aplikacyjny wyświetlający zderzenie decyzji inwestora (ogrzewanie oporowe) z rzetelną rekomendacją inżynierską (pompa ciepła) na bazie udokumentowanych rachunków.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-case-study-module">
    <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>
            Raport z Audytu (OZC)
        </div>
        <h2>Studium Przypadku (Case Study)</h2>
        <p>Praktyczne konsekwencje braku analizy inżynieryjnej na etapie wyboru systemu dystrybucji ciepła. Analiza kosztów z ekstremalnie mroźnego stycznia 2026 roku.</p>
    </div>

    <div class="rk-cs-params">
        <div class="rk-cs-param-item">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
            Lokalizacja: Okolice Gdańska
        </div>
        <div class="rk-cs-param-item">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
            Powierzchnia: 145 m² (WT 2021)
        </div>
        <div class="rk-cs-param-item">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Zapotrzebowanie (OZC): 6,8 kW
        </div>
        <div class="rk-cs-param-item">
            <svg width="18" height="18" 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><polyline points="12 6 12 12 16 14"></polyline></svg>
            Warunki (Styczeń 2026): -12°C przez 10 dni
        </div>
    </div>

    <div class="rk-cs-audit-wrapper">
        <div class="rk-cs-tabs">
            <button class="rk-cs-tab active-bad" id="btnCsBad">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Realizacja: Decyzja Inwestora
            </button>
            <button class="rk-cs-tab" id="btnCsGood">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Alternatywa: Projekt Inżynierski
            </button>
        </div>

        <div class="rk-cs-panel panel-bad is-visible" id="panelCsBad">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-data-card">
                    <div class="rk-cs-card-label">System zainstalowany</div>
                    <h3 class="rk-cs-card-value">Ogrzewanie Elektryczne</h3>
                    <p class="rk-cs-card-desc">Inwestor, skuszony niskimi kosztami startowymi zaoferowanymi przez instalatora, zrezygnował z pompy ciepła i hydrauliki. Zamontowano maty grzewcze (cienkowarstwowo pod panelami) o łącznej mocy 12,5 kW.</p>
                </div>
                <div class="rk-cs-data-card">
                    <div class="rk-cs-card-label">Rachunek (Styczeń 2026)</div>
                    <div class="rk-cs-card-value">3 480 <span>PLN / mies.</span></div>
                    <p class="rk-cs-card-desc">Brak jastrychu buforującego uniemożliwił efektywne korzystanie z tańszej taryfy nocnej. Średnie dobowe zużycie energii podczas fali mrozów wyniosło przerażające <strong>134 kWh</strong>.</p>
                </div>
            </div>
        </div>

        <div class="rk-cs-panel panel-good" id="panelCsGood">
            <div class="rk-cs-data-grid">
                <div class="rk-cs-data-card">
                    <div class="rk-cs-card-label">Rekomendacja na bazie OZC</div>
                    <h3 class="rk-cs-card-value">Pompa Ciepła + Wodne</h3>
                    <p class="rk-cs-card-desc">Symulacja komputerowa audytu wykazała, że optymalnym wyborem byłoby niskotemperaturowe ogrzewanie wodne (precyzyjny rozstaw rur 12,5 cm) zasilane pompą ciepła typu powietrze-woda o średniomiesięcznym COP = 3,1.</p>
                </div>
                <div class="rk-cs-data-card">
                    <div class="rk-cs-card-label">Symulacja (Styczeń 2026)</div>
                    <div class="rk-cs-card-value">1 120 <span>PLN / mies.</span></div>
                    <p class="rk-cs-card-desc">Dzięki akumulacji w grubym jastrychu i wysokiej sprawności pompy (SCOP), dobowe zużycie prądu spadłoby ze 134 kWh do zaledwie <strong>43,2 kWh</strong> przy zachowaniu tego samego komfortu termicznego.</p>
                </div>
            </div>
        </div>

        <div class="rk-cs-conclusion">
            <h3>Miało być tanio, wyszło bardzo drogo</h3>
            <p>Ta realna sytuacja z Gdańska pokazuje brutalną prawdę o kosztach. Inwestor zaoszczędził na starcie około 22 000 PLN (różnica między matami a pełną kotłownią z pompą i hydrauliką).</p>
            <div class="rk-cs-loss-highlight">
                Strata: 2 360 PLN w zaledwie jeden trudny miesiąc!
            </div>
            <p style="margin-top: 15px;">Pozorna oszczędność wygenerowana na etapie montażu instalacji elektrycznej <strong>zostanie całkowicie pochłonięta przez wyższe koszty eksploatacji w ciągu zaledwie 4-5 sezonów grzewczych</strong>. Od szóstego roku inwestor będzie ponosił czystą stratę z powodu źle podjętej decyzji i braku projektu inżynierskiego.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnBad = document.getElementById('btnCsBad');
    var btnGood = document.getElementById('btnCsGood');
    var panelBad = document.getElementById('panelCsBad');
    var panelGood = document.getElementById('panelCsGood');

    function switchCsTab(state) {
        if (state === 'bad') {
            if (btnGood !== null) { btnGood.classList.remove('active-good'); }
            if (btnBad !== null) { btnBad.classList.add('active-bad'); }
            
            if (panelGood !== null) { panelGood.classList.remove('is-visible'); }
            if (panelBad !== null) { panelBad.classList.add('is-visible'); }
        } else if (state === 'good') {
            if (btnBad !== null) { btnBad.classList.remove('active-bad'); }
            if (btnGood !== null) { btnGood.classList.add('active-good'); }
            
            if (panelBad !== null) { panelBad.classList.remove('is-visible'); }
            if (panelGood !== null) { panelGood.classList.add('is-visible'); }
        }
    }

    if (btnBad !== null) {
        btnBad.addEventListener('click', function() {
            switchCsTab('bad');
        });
    }

    if (btnGood !== null) {
        btnGood.addEventListener('click', function() {
            switchCsTab('good');
        });
    }
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-blue: #0284c7;
    --rk-exp-blue-light: #f0f9ff;
    --rk-exp-gray: #64748b;
    --rk-exp-border: #e2e8f0;
    --rk-exp-bg: #ffffff;
    --rk-exp-gold: #d97706;
}

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

/* Sekcja Profilowa (Header) */
.rk-exp-header {
    padding: 40px 50px;
    background: linear-gradient(to right, #f8fafc, #ffffff);
    display: flex;
    gap: 30px;
    align-items: center;
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.15);
    flex-shrink: 0;
}

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

.rk-exp-meta p {
    font-size: 16px;
    color: var(--rk-exp-gray);
    margin: 0 0 15px 0;
    font-weight: 500;
}

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

.rk-exp-social-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: var(--rk-exp-bg);
    border: 1px solid var(--rk-exp-border);
    border-radius: 8px;
    color: var(--rk-exp-dark);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s, border-color 0.2s;
}

.rk-exp-social-link:hover {
    background: var(--rk-exp-blue-light);
    border-color: var(--rk-exp-blue);
    color: var(--rk-exp-blue);
}

.rk-exp-social-link svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* Interaktywny Panel Ekspercki */
.rk-exp-interactive {
    display: flex;
    flex-direction: column;
}

.rk-exp-tabs {
    display: flex;
    background: #f1f5f9;
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-tab {
    flex: 1;
    padding: 20px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-exp-gray);
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

/* Treść Paneli */
.rk-exp-panel {
    display: none;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-exp-panel.is-active {
    display: block;
}

.rk-exp-panel-content {
    display: flex;
    gap: 25px;
    align-items: flex-start;
}

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

.rk-exp-text-block h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    margin: 0 0 12px 0;
}

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

.rk-exp-text-block strong {
    color: var(--rk-exp-blue);
}

.rk-exp-highlight {
    margin-top: 20px;
    padding: 15px 20px;
    background: #fffbeb;
    border-left: 4px solid var(--rk-exp-gold);
    font-size: 14px;
    font-weight: 600;
    color: #92400e;
    border-radius: 0 8px 8px 0;
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-exp-container { margin: 20px auto; border-radius: 16px; }
    .rk-exp-header { flex-direction: column; text-align: center; padding: 30px 20px; gap: 20px; }
    .rk-exp-socials { justify-content: center; flex-wrap: wrap; }
    .rk-exp-tabs { flex-direction: column; }
    .rk-exp-tab { padding: 15px; border-bottom: none; border-left: 4px solid transparent; justify-content: flex-start; text-align: left; }
    .rk-exp-tab.is-active { border-bottom: none; border-left-color: var(--rk-exp-blue); }
    .rk-exp-panel { padding: 30px 20px; }
    .rk-exp-panel-content { flex-direction: column; gap: 15px; }
    .rk-exp-text-block h3 { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Zdaniem specjalisty: Robert Kucharski o ostatecznym wyborze ogrzewania",
    "description": "Autorskie podsumowanie wyboru między wodnym a elektrycznym systemem grzewczym oparte na analizie ponad 1000 projektów inwestycyjnych w Polsce.",
    "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 Projekt-Ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "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-06-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-wytyczne",
    "name": "Zestawienie Autorskich Wytycznych Inżynieryjnych 2026",
    "description": "Zbiór kluczowych rekomendacji i wniosków z audytów projektowych dla instalacji płaszczyznowych autorstwa Roberta Kucharskiego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski inżynier hvac",
      "opinie o ogrzewaniu podłogowym ekspert",
      "projekt ogrzewania podłogowego doradztwo",
      "audyt instalacji grzewczej",
      "wybór ogrzewania do nowego domu wt 2021"
    ],
    "measurementTechnique": "Empiryczna ewaluacja wskaźników CAPEX i OPEX na próbie ponad 1000 zrealizowanych projektów domów jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja błędu: Montaż elektryki bez przewymiarowanego PV to zawsze drastyczny wzrost kosztów.",
        "Złota zasada inżyniera: Dokumentacja OZC jest tańsza niż margines błędu przy zakupie pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-panel-ekspercki",
    "name": "Interaktywny Panel Ekspercki: Wnioski Inżyniera",
    "description": "Moduł aplikacyjny serwujący bezpośrednie, techniczne konkluzje autora artykułu w odpowiedzi na najczęstsze obiekcje inwestorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container" id="rk-expert-module">
    <div class="rk-exp-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-exp-photo">
        <div class="rk-exp-meta">
            <h2>Zdaniem specjalisty: Robert Kucharski o ostatecznym wyborze ogrzewania</h2>
            <p>CEO Projekt-Ogrzewania.pl | Ponad 1000 zrealizowanych projektów układów płaszczyznowych</p>
            <div class="rk-exp-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link">
                    <svg viewBox="0 0 24 24"><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>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link">
                    <svg viewBox="0 0 24 24"><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>
                    Facebook
                </a>
            </div>
        </div>
    </div>

    <div class="rk-exp-interactive">
        <div class="rk-exp-tabs">
            <button class="rk-exp-tab is-active" id="tabExp1">
                <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="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>
                Kluczowy Wniosek
            </button>
            <button class="rk-exp-tab" id="tabExp2">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Błąd Inwestorów
            </button>
            <button class="rk-exp-tab" id="tabExp3">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Złota Zasada
            </button>
        </div>

        <div class="rk-exp-panel is-active" id="panelExp1">
            <div class="rk-exp-panel-content">
                <div class="rk-exp-quote-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"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
                </div>
                <div class="rk-exp-text-block">
                    <h3>Nie ma jednego uniwersalnego rozwiązania</h3>
                    <p>Przez lata analizowania projektów widziałem setki zrujnowanych budżetów. Prawda jest taka, że <strong>elektryczne maty grzewcze to genialny produkt</strong>, ale wyłącznie tam, gdzie ich miejsce: w domkach narzędziowych, letniskowych, mieszkaniach po remoncie i w łazienkach. Jeśli jednak budujesz pełnowymiarowy dom powyżej 80 m2, rezygnacja z hydrauliki i pompy ciepła na rzecz "tańszego startu" to finansowe samobójstwo rozłożone na lata.</p>
                </div>
            </div>
        </div>

        <div class="rk-exp-panel" id="panelExp2">
            <div class="rk-exp-panel-content">
                <div class="rk-exp-quote-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="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div class="rk-exp-text-block">
                    <h3>Pułapka darmowego prądu</h3>
                    <p>Największym błędem, jaki popełniają dziś inwestorzy, jest ślepa wiara w to, że instalacja fotowoltaiczna wyzeruje im koszty ogrzewania prądem w systemie 1:1. Zimą, kiedy maty elektryczne pobierają najwięcej energii, wydajność paneli na dachu jest ułamkowa.</p>
                    <div class="rk-exp-highlight">
                        Bez grubej wylewki akumulacyjnej (którą daje instalacja wodna) nie jesteś w stanie przechować taniej energii z taryfy nocnej na godziny dzienne.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-exp-panel" id="panelExp3">
            <div class="rk-exp-panel-content">
                <div class="rk-exp-quote-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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <div class="rk-exp-text-block">
                    <h3>Matematyka zamiast marketingu</h3>
                    <p>Zawsze powtarzam moim klientom: zanim uwierzysz w obietnice handlowca, zleć wykonanie <strong>Charakterystyki Energetycznej (OZC)</strong>. To jedyny dokument, który obnaży prawdę o tym, ile energii pochłonie Twój dom. Koszt profesjonalnego projektu hydraulicznego to zaledwie promil wartości całego systemu, a chroni Cię przed błędami, których koszt naprawy idzie w dziesiątki tysięcy złotych.</p>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tab1 = document.getElementById('tabExp1');
    var tab2 = document.getElementById('tabExp2');
    var tab3 = document.getElementById('tabExp3');
    
    var panel1 = document.getElementById('panelExp1');
    var panel2 = document.getElementById('panelExp2');
    var panel3 = document.getElementById('panelExp3');

    function resetExpertPanels() {
        if (tab1 !== null) { tab1.classList.remove('is-active'); }
        if (tab2 !== null) { tab2.classList.remove('is-active'); }
        if (tab3 !== null) { tab3.classList.remove('is-active'); }
        
        if (panel1 !== null) { panel1.classList.remove('is-active'); }
        if (panel2 !== null) { panel2.classList.remove('is-active'); }
        if (panel3 !== null) { panel3.classList.remove('is-active'); }
    }

    if (tab1 !== null) {
        tab1.addEventListener('click', function() {
            resetExpertPanels();
            tab1.classList.add('is-active');
            if (panel1 !== null) { panel1.classList.add('is-active'); }
        });
    }

    if (tab2 !== null) {
        tab2.addEventListener('click', function() {
            resetExpertPanels();
            tab2.classList.add('is-active');
            if (panel2 !== null) { panel2.classList.add('is-active'); }
        });
    }

    if (tab3 !== null) {
        tab3.addEventListener('click', function() {
            resetExpertPanels();
            tab3.classList.add('is-active');
            if (panel3 !== null) { panel3.classList.add('is-active'); }
        });
    }
});
</script>



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

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

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 40px 30px;
    background: linear-gradient(to right, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-faq-border);
    text-align: center;
}

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

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

/* Akordeon */
.rk-faq-body {
    padding: 20px 40px 40px;
}

.rk-faq-card {
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    margin-bottom: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    background: #ffffff;
}

.rk-faq-card.is-open {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.08);
}

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

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

.rk-faq-title-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
    padding-right: 20px;
}

.rk-faq-icon-box {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--rk-faq-light-blue);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.rk-faq-card.is-open .rk-faq-icon-box {
    background: var(--rk-faq-blue);
    color: #ffffff;
}

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

.rk-faq-chevron {
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-card.is-open .rk-faq-chevron {
    transform: rotate(180deg);
    color: var(--rk-faq-blue);
}

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

.rk-faq-content-inner {
    padding: 0 25px 25px 76px; /* Wyrównanie do tekstu nagłówka */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

.rk-faq-content-inner a {
    color: var(--rk-faq-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.2s;
}

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

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

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-faq-container { margin: 20px auto; border-radius: 16px; }
    .rk-faq-header { padding: 30px 20px 20px; }
    .rk-faq-header h2 { font-size: 22px; }
    .rk-faq-body { padding: 15px 20px 30px; }
    .rk-faq-trigger { padding: 16px 20px; }
    .rk-faq-content-inner { padding: 0 20px 20px 20px; }
    .rk-faq-title-wrap { gap: 12px; }
    .rk-faq-title-wrap h3 { font-size: 15px; }
    .rk-faq-icon-box { width: 32px; height: 32px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Często Zadawane Pytania (FAQ) – Ogrzewanie Podłogowe",
    "description": "Najważniejsze pytania inwestorów dotyczące kosztów eksploatacji, wylewek, paneli podłogowych i szkodliwości pola magnetycznego przy ogrzewaniu płaszczyznowym.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#faq-schema",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy ogrzewanie elektryczne podłogowe jest droższe w utrzymaniu od wodnego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ogrzewanie elektryczne jest znacznie droższe w eksploatacji, ponieważ zamienia energię w ciepło 1:1. Wodne ogrzewanie podłogowe z pompą ciepła osiąga sprawność SCOP na poziomie 3,5 - 4,5, co czyni rachunki za ogrzewanie wodne 3 do 4 razy niższymi."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można kłaść panele podłogowe na elektryczne maty grzewcze?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, pod warunkiem wyboru paneli z odpowiednim symbolem i zastosowania mat niskotemperaturowych. Opór cieplny układu podłogowego nie może przekraczać wartości R = 0,15 m2*K/W."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka wylewka jest lepsza na ogrzewanie podłogowe – anhydrytowa czy cementowa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wylewka anhydrytowa jest lepsza ze względu na wysoki współczynnik przewodzenia ciepła (lambda ok. 1,6 - 2,0 W/m*K) i płynną konsystencję. Wylewka cementowa ma gorsze przewodnictwo i wymaga większej grubości."
        }
      },
      {
        "@type": "Question",
        "name": "Czy elektryczne ogrzewanie podłogowe emituje szkodliwe pole elektromagnetyczne?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, nowoczesne kable i maty dwużyłowe wzajemnie znoszą pola magnetyczne. Posiadają pełny ekran ochronny połączony z uziemieniem, redukując emisję poniżej norm sprzętów domowych."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się wodna, a ile elektryczna podłogówka?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Elektryczne ogrzewanie pod płytkami nagrzewa się w 20-45 minut. Wodne w grubym jastrychu cementowym potrzebuje od 3 do 6 godzin z uwagi na masę akumulacyjną."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-parametry-techniczne",
    "name": "Parametry Fizyczne i Eksploatacyjne Układów Płaszczyznowych 2026",
    "description": "Zestawienie współczynników lambda dla wylewek, wartości oporu cieplnego dla paneli oraz efektywności grzewczej układów wodnych i elektrycznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "opór cieplny paneli R 0,15",
      "współczynnik lambda wylewki anhydrytowej",
      "czas nagrzewania wylewki cementowej",
      "pole magnetyczne mata grzewcza dwużyłowa",
      "współczynnik SCOP ogrzewania wodnego"
    ],
    "measurementTechnique": "Porównanie laboratoryjne właściwości termofizycznych posadzek z wyliczeniami efektywności kosztowej systemów zasilania.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sprawność systemu: COP 1 dla elektrycznego vs SCOP 3.5+ dla wodnego z pompą.",
        "Przewodnictwo: Anhydryt lambda 1.6-2.0 W/m*K vs Cement 1.0-1.4 W/m*K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-baza-wiedzy-faq",
    "name": "Interaktywna Baza Wiedzy FAQ Inwestora",
    "description": "Moduł aplikacyjny pozwalający inwestorom na dynamiczne odkrywanie inżynieryjnych parametrów i rozwiewanie mitów instalacyjnych bez konieczności przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="inwestor-faq-module">
    <div class="rk-faq-header">
        <h2>Często Zadawane Pytania (FAQ)</h2>
        <p>Rozwiewamy mity instalacyjne. Inżynierskie fakty o kosztach, wylewkach i sterowaniu.</p>
    </div>

    <div class="rk-faq-body">
        
        <div class="rk-faq-card is-open">
            <button class="rk-faq-trigger" aria-expanded="true">
                <div class="rk-faq-title-wrap">
                    <div class="rk-faq-icon-box">
                        <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="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
                    </div>
                    <h3>Czy ogrzewanie elektryczne podłogowe jest droższe w utrzymaniu od wodnego?</h3>
                </div>
                <svg class="rk-faq-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-content" style="max-height: 500px;">
                <div class="rk-faq-content-inner">
                    Tak, ogrzewanie elektryczne jest <strong>znacznie droższe w eksploatacji</strong>, ponieważ zamienia energię elektryczną w ciepło w stosunku 1:1 (COP = 1). Wodne ogrzewanie podłogowe zasilane nowoczesną pompą ciepła osiąga średnioroczny współczynnik sprawności SCOP na poziomie 3,5 - 4,5. Oznacza to, że z 1 kWh prądu generuje nawet do 4,5 kWh ciepła, dzięki czemu rachunki za ogrzewanie wodne są od <strong>3 do 4 razy niższe</strong> niż przy kablach elektrycznych.
                </div>
            </div>
        </div>

        <div class="rk-faq-card">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-title-wrap">
                    <div class="rk-faq-icon-box">
                        <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="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                    </div>
                    <h3>Czy można kłaść panele podłogowe na elektryczne maty grzewcze?</h3>
                </div>
                <svg class="rk-faq-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Tak, pod warunkiem wyboru paneli dedykowanych przez producenta do współpracy z <a href="https://projekt-ogrzewania.pl/panele-winylowe-na-ogrzewanie-podlogowe/">ogrzewaniem podłogowym</a> (oznaczonych specjalnym symbolem) oraz zastosowania folii grzewczych na podczerwień lub mat niskotemperaturowych. Należy pamiętać, że opór cieplny całego układu podłogowego (panel + podkład) nie może zgodnie z normą przekraczać wartości <strong>R = 0,15 m2*K/W</strong>.
                </div>
            </div>
        </div>

        <div class="rk-faq-card">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-title-wrap">
                    <div class="rk-faq-icon-box">
                        <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>
                    <h3>Jaka wylewka jest lepsza na ogrzewanie podłogowe – anhydrytowa czy cementowa?</h3>
                </div>
                <svg class="rk-faq-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <a href="https://projekt-ogrzewania.pl/wylewka-anhydrytowa-wady-zalety/">Wylewka anhydrytowa</a> jest znacznie lepszym rozwiązaniem na ogrzewanie podłogowe ze względu na swój wysoki współczynnik przewodzenia ciepła (<strong>lambda ok. 1,6 - 2,0 W/m*K</strong>) oraz płynną konsystencję, która idealnie otula rury grzewcze lub kable, eliminując pęcherzyki powietrza działające jak izolator. Wylewka cementowa charakteryzuje się gorszym przewodnictwem (lambda ok. 1,0 - 1,4 W/m*K) oraz wymaga większej grubości konstrukcyjnej, co zwiększa bezwładność cieplną układu.
                </div>
            </div>
        </div>

        <div class="rk-faq-card">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-title-wrap">
                    <div class="rk-faq-icon-box">
                        <svg width="20" height="20" 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>
                    <h3>Czy elektryczne ogrzewanie podłogowe emituje szkodliwe pole elektromagnetyczne?</h3>
                </div>
                <svg class="rk-faq-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Nie, nowoczesne, dwużyłowe kable i maty grzejne renomowanych producentów są w pełni bezpieczne. Ich konstrukcja, oparta na dwóch przewodach prądowych biegnących równolegle, powoduje <strong>wzajemne znoszenie się pól magnetycznych</strong>. Dodatkowo układy te wyposażone są w pełny ekran ochronny (oplot z miedzi lub aluminium) połączony z uziemieniem (PE), co redukuje emisję pola elektromagnetycznego do wartości wielokrotnie niższych niż te generowane przez domowe suszarki do włosów czy mikrofalówki.
                </div>
            </div>
        </div>

        <div class="rk-faq-card">
            <button class="rk-faq-trigger" aria-expanded="false">
                <div class="rk-faq-title-wrap">
                    <div class="rk-faq-icon-box">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <h3>Ile czasu nagrzewa się wodna, a ile elektryczna podłogówka?</h3>
                </div>
                <svg class="rk-faq-chevron" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    Elektryczne ogrzewanie podłogowe ułożone bezpośrednio pod płytkami w warstwie kleju nagrzewa podłogę bardzo szybko – zazwyczaj w czasie <strong>od 20 do 45 minut</strong>. Wodne ogrzewanie podłogowe, zatopione w grubym jastrychu cementowym lub anhydrytowym, ze względu na dużą masę akumulacyjną potrzebuje znacznie więcej czasu, od <strong>3 do nawet 6 godzin</strong> na odczuwalną zmianę temperatury powietrza w pomieszczeniu.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqTriggers = document.querySelectorAll('.rk-faq-trigger');
    
    faqTriggers.forEach(function(trigger) {
        trigger.addEventListener('click', function() {
            var card = this.parentElement;
            var content = card.querySelector('.rk-faq-content');
            var isCurrentlyOpen = card.classList.contains('is-open');
            
            // Zamykamy wszystkie karty
            var allCards = document.querySelectorAll('.rk-faq-card');
            allCards.forEach(function(c) {
                c.classList.remove('is-open');
                c.querySelector('.rk-faq-trigger').setAttribute('aria-expanded', 'false');
                c.querySelector('.rk-faq-content').style.maxHeight = null;
            });
            
            // Otwieramy klikniętą kartę, jeśli była zamknięta
            if (isCurrentlyOpen === false) {
                card.classList.add('is-open');
                this.setAttribute('aria-expanded', 'true');
                // Ustawiamy max-height na tyle duże, aby pomieścić treść
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



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

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

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

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

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

/* Interaktywny Symulator Decyzji */
.rk-final-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-dec-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 30px;
}

.rk-dec-btn {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

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

.rk-dec-btn.active[data-choice="wodne"] {
    background: var(--rk-sum-light-blue);
    border-color: var(--rk-sum-blue);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
}

.rk-dec-btn.active[data-choice="elektryczne"] {
    background: #fffbeb;
    border-color: var(--rk-sum-gold);
    box-shadow: 0 10px 20px -5px rgba(234, 179, 8, 0.2);
}

.rk-dec-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    transition: all 0.3s;
}

.rk-dec-btn.active[data-choice="wodne"] .rk-dec-icon {
    background: var(--rk-sum-blue);
    color: #ffffff;
}

.rk-dec-btn.active[data-choice="elektryczne"] .rk-dec-icon {
    background: var(--rk-sum-gold);
    color: #ffffff;
}

.rk-dec-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0;
}

.rk-dec-subtitle {
    font-size: 13px;
    color: #64748b;
    margin: 0;
}

/* Wynik symulacji */
.rk-final-result {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 30px;
    align-items: start;
    padding: 35px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-svg-illustrator {
    width: 100%;
    height: auto;
    max-width: 140px;
    margin: 0 auto;
}

.rk-res-content h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 800;
}

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

.rk-res-content strong {
    color: var(--rk-sum-dark);
    font-weight: 700;
}

/* Tagi długi ogon */
.rk-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px dashed var(--rk-sum-border);
}

.rk-mat-tag {
    display: inline-block;
    background: #f1f5f9;
    color: var(--rk-sum-gray);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    transition: all 0.2s;
    border: 1px solid transparent;
}

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

/* Mocne CTA */
.rk-final-cta-box {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-final-cta-title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 15px 0;
}

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

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

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

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

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-final-header, .rk-final-interactive, .rk-final-cta-box { padding: 35px 25px; }
    .rk-dec-wrapper { grid-template-columns: 1fr; gap: 10px; }
    .rk-final-result { grid-template-columns: 1fr; text-align: center; padding: 25px; }
    .rk-svg-illustrator { max-width: 100px; margin-bottom: 20px; }
    .rk-tags-container { justify-content: center; }
    .rk-btn-huge { 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/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Podsumowanie i wytyczne inżynieryjne: Wodne czy elektryczne?",
    "description": "Zestawienie CAPEX i OPEX dla systemów ogrzewania podłogowego. Sprawdź, kiedy wybrać pompę ciepła, a kiedy opłaca się elektryczna mata grzewcza.",
    "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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-capex-opex",
    "name": "Wskaźniki CAPEX i OPEX: Wodne vs Elektryczne Ogrzewanie Podłogowe",
    "description": "Porównanie kosztów inwestycyjnych i operacyjnych dla instalacji płaszczyznowych w budownictwie WT 2021 oraz budynkach pasywnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty operacyjne OPEX podłogówka",
      "kapitał początkowy CAPEX ogrzewanie",
      "ogrzewanie dla standardu WT 2021",
      "charakterystyka energetyczna budynku OZC",
      "bilansowanie zużycia prądu 1 do 1"
    ],
    "measurementTechnique": "Analiza zapotrzebowania EU i bilansowanie kosztów instalacji pompy ciepła względem mat oporowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wodne ogrzewanie: Wysoki CAPEX, bardzo niski OPEX. Standard dla domów > 80m2.",
        "Elektryczne ogrzewanie: Bardzo niski CAPEX, wysoki OPEX. Zasadne przy EU mniejszym niż 15 kWh/m2/rok lub w małych mieszkaniach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-kalkulator-decyzji",
    "name": "Symulator Wyboru Systemu Grzewczego (Woda vs Prąd)",
    "description": "Interaktywne narzędzie inżynieryjne ułatwiające dobór systemu grzewczego na podstawie wielkości inwestycji i charakterystyki energetycznej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="system-decision-app">
    <div class="rk-final-header">
        <h2>Ostateczny wybór systemu grzewczego: Wodne czy Elektryczne?</h2>
        <p>Wybór nie powinien być loterią. Zobacz inżynieryjne podsumowanie kosztów i zastosowania, aby zabezpieczyć swój portfel na kolejne dekady.</p>
    </div>

    <div class="rk-final-interactive">
        <div class="rk-dec-wrapper" id="sysDecisions">
            <button class="rk-dec-btn active" data-choice="wodne">
                <div class="rk-dec-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h4 class="rk-dec-title">Ogrzewanie Wodne</h4>
                <p class="rk-dec-subtitle">Zasilane pompą ciepła lub gazem</p>
            </button>
            <button class="rk-dec-btn" data-choice="elektryczne">
                <div class="rk-dec-icon">
                    <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <h4 class="rk-dec-title">Ogrzewanie Elektryczne</h4>
                <p class="rk-dec-subtitle">Maty, folie i kable oporowe</p>
            </button>
        </div>

        <div class="rk-final-result" id="sysResultBox">
            <div id="sysSvgContainer">
                <svg class="rk-svg-illustrator" viewBox="0 0 100 100" fill="none" stroke="var(--rk-sum-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
                    <path d="M20 80 Q 35 60 50 80 T 80 80" />
                    <path d="M20 60 Q 35 40 50 60 T 80 60" />
                    <path d="M20 40 Q 35 20 50 40 T 80 40" />
                    <circle cx="50" cy="50" r="40" stroke-dasharray="8 4" stroke-width="2" />
                </svg>
            </div>
            
            <div class="rk-res-content" id="sysResultContent">
                <h3 style="color: var(--rk-sum-blue);">Wysoki CAPEX, Minimalny OPEX</h3>
                <p>Technologia o wysokim kapitale początkowym (zakup pompy ciepła, hydrauliki), która <strong>gwarantuje najniższe z możliwych koszty operacyjne</strong>. System współpracuje z każdym niskotemperaturowym źródłem energii.</p>
                <p><strong>Zastosowanie:</strong> Standard dla nowoczesnego, energooszczędnego budownictwa mieszkaniowego o powierzchni <strong>powyżej 80 - 100 m2</strong>.</p>
            </div>
        </div>

        <div class="rk-tags-container">
            <span class="rk-mat-tag"># wodne ogrzewanie podłogowe koszty</span>
            <span class="rk-mat-tag"># elektryczne maty grzewcze opinie</span>
            <span class="rk-mat-tag"># projekt ogrzewania ozc</span>
            <span class="rk-mat-tag"># ogrzewanie podłogowe w kamienicy</span>
            <span class="rk-mat-tag"># darmowe ogrzewanie z fotowoltaiki</span>
            <span class="rk-mat-tag"># tanie ogrzewanie łazienki</span>
            <span class="rk-mat-tag"># niskotemperaturowa pompa ciepła</span>
            <span class="rk-mat-tag"># koszty eksploatacji podłogówki</span>
        </div>
    </div>

    <div class="rk-final-cta-box">
        <h3 class="rk-final-cta-title">Nie zgaduj. Liczby nie kłamią.</h3>
        <p class="rk-final-cta-text">
            Zanim wylejesz posadzkę, upewnij się, że Twój system jest policzony przez inżyniera. Błędy na etapie wyboru źródła ciepła mszczą się przez dekady. Czytaj więcej o optymalizacji i normach w naszej czytelni.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-huge">
            PRZEJDŹ DO BAZY WIEDZY EKSKLUZYWNEJ
            <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-dec-btn');
    const resultContent = document.getElementById('sysResultContent');
    const svgContainer = document.getElementById('sysSvgContainer');

    // SVG templates
    const svgWodne = `
        <svg class="rk-svg-illustrator" viewBox="0 0 100 100" fill="none" stroke="var(--rk-sum-blue)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
            <path d="M20 80 Q 35 60 50 80 T 80 80" />
            <path d="M20 60 Q 35 40 50 60 T 80 60" />
            <path d="M20 40 Q 35 20 50 40 T 80 40" />
            <circle cx="50" cy="50" r="40" stroke-dasharray="8 4" stroke-width="2" />
        </svg>
    `;

    const svgElektryczne = `
        <svg class="rk-svg-illustrator" viewBox="0 0 100 100" fill="none" stroke="var(--rk-sum-gold)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
            <path d="M50 15 L35 45 L55 45 L50 85 L65 55 L45 55 Z" fill="#fef3c7" />
            <circle cx="50" cy="50" r="45" stroke-dasharray="12 6" stroke-width="2" />
        </svg>
    `;

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset active classes
            btns.forEach(function(b) { b.classList.remove('active'); });
            
            // Add active to clicked
            this.classList.add('active');

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

            if (choice === 'wodne') {
                svgContainer.innerHTML = svgWodne;
                resultContent.innerHTML = `
                    <h3 style="color: var(--rk-sum-blue);">Wysoki CAPEX, Minimalny OPEX</h3>
                    <p>Technologia o wysokim kapitale początkowym (zakup pompy ciepła, hydrauliki), która <strong>gwarantuje najniższe z możliwych koszty operacyjne</strong>. System współpracuje z każdym niskotemperaturowym źródłem energii.</p>
                    <p><strong>Zastosowanie:</strong> Standard dla nowoczesnego, energooszczędnego budownictwa mieszkaniowego o powierzchni <strong>powyżej 80 - 100 m2</strong>.</p>
                `;
            }

            if (choice === 'elektryczne') {
                svgContainer.innerHTML = svgElektryczne;
                resultContent.innerHTML = `
                    <h3 style="color: var(--rk-sum-gold);">Niski CAPEX, Wysoki OPEX</h3>
                    <p>System o bardzo niskich kosztach inwestycyjnych i banalnie prostym montażu. Charakteryzuje się jednak wysokim kosztem eksploatacji ze względu na bezpośrednie zużycie prądu (COP = 1).</p>
                    <p><strong>Zastosowanie:</strong> Uzasadnienie ekonomiczne wyłącznie w budynkach o charakterystyce pasywnej (EU poniżej 15 kWh/m2*rok), renowacjach kamienic lub jako strefowe dogrzewanie łazienek.</p>
                `;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #64748b;
    --rk-dl-border: #e2e8f0;
    --rk-dl-bg: #ffffff;
    --rk-dl-red: #ef4444;
}

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

/* Nagłówek */
.rk-dl-header {
    padding: 35px 40px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-dl-border);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Główny układ - Grid */
.rk-dl-body {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 0;
}

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

.rk-dl-thumbnail {
    width: 100%;
    max-width: 220px;
    height: auto;
    border-radius: 8px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
    display: block;
}

/* Kolumna Prawa - Akcje */
.rk-dl-actions-section {
    padding: 40px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl-desc {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    margin: 0 0 25px 0;
}

/* Przyciski */
.rk-dl-buttons {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn-download {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
}

.rk-btn-pdf {
    background: var(--rk-dl-red);
    color: #ffffff;
}

.rk-btn-pdf:hover {
    background: #dc2626;
}

.rk-btn-view {
    background: #ffffff;
    color: var(--rk-dl-blue);
    border-color: var(--rk-dl-blue);
}

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

.rk-btn-view.is-active {
    background: var(--rk-dl-dark);
    border-color: var(--rk-dl-dark);
    color: #ffffff;
}

/* Klauzula Autorska */
.rk-dl-copyright {
    padding: 15px 20px;
    background: #fffbeb;
    border-left: 3px solid #d97706;
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    font-weight: 600;
    color: #92400e;
    line-height: 1.5;
    margin: 0;
}

/* Interaktywny Podgląd (Ukryty domyślnie) */
.rk-dl-preview-box {
    display: none;
    padding: 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-dl-preview-box.is-visible {
    display: block;
}

.rk-dl-full-image {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-dl-container { margin: 20px auto; border-radius: 16px; }
    .rk-dl-body { grid-template-columns: 1fr; }
    .rk-dl-thumb-section { border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 30px; }
    .rk-dl-actions-section { padding: 30px 20px; }
    .rk-dl-buttons { flex-direction: column; }
    .rk-btn-download { width: 100%; }
    .rk-dl-preview-box { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/"
    },
    "headline": "Materiały dodatkowe: Infografika porównawcza układów grzewczych",
    "description": "Zestawienie wizualne kluczowych różnic, zalet i wad wodnego oraz elektrycznego ogrzewania podłogowego. Plik PDF do pobrania z zachowaniem praw autorskich.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jakie-ogrzewanie-podlogowe-wybrac-%E2%80%93-wodne-czy-elektryczne.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-22",
    "dateModified": "2026-06-22"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#dataset-infografika",
    "name": "Wizualne Zestawienie Parametrów Ogrzewania Podłogowego (Infografika)",
    "description": "Skompresowana wiedza inżynieryjna dotycząca kosztów, montażu i eksploatacji ogrzewania płaszczyznowego, dostępna w formacie PDF do celów edukacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "zestawienie ogrzewanie wodne i elektryczne materiały",
      "darmowy pdf o ogrzewaniu podłogowym",
      "porównanie kosztów ogrzewania wizualizacja",
      "prawa autorskie projekt ogrzewania"
    ],
    "measurementTechnique": "Udostepnienie danych ustrukturyzowanych w formacie graficznym (WebP) oraz przenośnym dokumencie (PDF) dla inwestorów i wykonawców.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zawartość: Kompletne porównanie CAPEX/OPEX, wysokości wylewek, żywotności materiałów.",
        "Dystrybucja: Zezwolenie na udostępnianie wyłącznie z zachowaniem logotypu portalu i bez modyfikacji struktury pliku."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/#webapp-przegladarka-pdf",
    "name": "Narzędzie Pobierania i Podglądu Dokumentacji Technicznej",
    "description": "Interaktywny moduł pozwalający na asynchroniczny podgląd infografiki (WebP) bezpośrednio w oknie przeglądarki oraz bezpieczne pobranie pliku źródłowego (PDF).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-module">
    <div class="rk-dl-header">
        <h2>
            <svg width="28" height="28" 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>
            Materiały dodatkowe: Infografika podsumowująca
        </h2>
        <p>Zapisz najważniejsze informacje na dysku lub udostępnij je swojemu wykonawcy. Cała wiedza z artykułu skompresowana w jednym, czytelnym dokumencie.</p>
    </div>

    <div class="rk-dl-body">
        <div class="rk-dl-thumb-section">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jakie-ogrzewanie-podlogowe-wybrac-%E2%80%93-wodne-czy-elektryczne.webp" alt="Miniatura: Jakie ogrzewanie podłogowe wybrać" class="rk-dl-thumbnail" loading="lazy">
        </div>

        <div class="rk-dl-actions-section">
            <h3 class="rk-dl-title">Jakie ogrzewanie podłogowe wybrać?</h3>
            <p class="rk-dl-desc">Pobierz wysokiej jakości plik PDF przygotowany do druku (idealny na budowę) lub otwórz szybki podgląd graficzny bezpośrednio w oknie przeglądarki.</p>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jakie-ogrzewanie-podlogowe-wybrac-%E2%80%93-wodne-czy-elektryczne.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-pdf">
                    <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="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 plik PDF
                </a>
                <button type="button" class="rk-btn-download rk-btn-view" id="btnPreviewToggle">
                    <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="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                    Podgląd na ekranie
                </button>
            </div>

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

    <div class="rk-dl-preview-box" id="previewContainer">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Jakie-ogrzewanie-podlogowe-wybrac-%E2%80%93-wodne-czy-elektryczne.webp" alt="Pełna infografika: Jakie ogrzewanie podłogowe wybrać" class="rk-dl-full-image" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPreview = document.getElementById('btnPreviewToggle');
    var previewContainer = document.getElementById('previewContainer');

    if (btnPreview !== null) {
        if (previewContainer !== null) {
            btnPreview.addEventListener('click', function() {
                var isVisible = previewContainer.classList.contains('is-visible');
                
                // Zagnieżdżona logika warunkowa bez operatora &&
                if (isVisible === true) {
                    previewContainer.classList.remove('is-visible');
                    btnPreview.classList.remove('is-active');
                    btnPreview.innerHTML = '<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="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg> Podgląd na ekranie';
                } else {
                    previewContainer.classList.add('is-visible');
                    btnPreview.classList.add('is-active');
                    btnPreview.innerHTML = '<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="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> Zamknij podgląd';
                }
            });
        }
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jakie-ogrzewanie-podlogowe-wybrac-wodne-czy-elektryczne/">Jakie ogrzewanie podłogowe wybrać – wodne czy elektryczne?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kalkulator do obliczania ilości metrów rury potrzebnych do ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 11:52:06 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Optymalizacja kosztów]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator rury]]></category>
		<category><![CDATA[materiały budowlane]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[poradniki]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2407</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów rury będzie potrzebnych? Kalkulator do obliczania ilości metrów rury do ogrzewania podłogowego to narzędzie, które pomoże Ci precyzyjnie oszacować potrzebne materiały. Dzięki niemu unikniesz błędów, które mogą wpłynąć na efektywność systemu. W artykule znajdziesz praktyczne przykłady obliczeń, wskazówki dotyczące stref grzewczych oraz informacje, dlaczego warto zlecić projekt profesjonalistom. Sprawdź, jak zaoszczędzić czas i pieniądze!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do 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">Planujesz montaż <em><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></em> i zastanawiasz się, ile metrów rury będzie potrzebnych? Właśnie w tym pomoże Tobie <strong>kalkulator do obliczania ilości metrów rury do ogrzewania podłogowego</strong>. To narzędzie nie tylko oszczędza czas, ale też minimalizuje ryzyko błędów, które mogą wpłynąć na efektywność systemu. W tym artykule dowiesz się, jak działa taki kalkulator, na co zwrócić uwagę przy obliczeniach oraz dlaczego warto uwzględnić profesjonalny projekt instalacji.</p>



<h2 class="wp-block-heading">Jak działa kalkulator do ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph"><em>Kalkulator do obliczania długości rury</em> opiera się na prostych, ale kluczowych parametrach:</p>



<ul class="wp-block-list">
<li><strong>Rozstaw pętli grzewczej</strong> (np. 10 cm, 15 cm, 20 cm),</li>



<li><strong>Powierzchnia pomieszczenia</strong> w metrach kwadratowych,</li>



<li><strong>Odległość od rozdzielacza</strong>, czyli długość przyłączy doprowadzających wodę do systemu.</li>
</ul>



<p class="wp-block-paragraph">Na przykład, dla pomieszczenia o powierzchni <strong>30 m²</strong> i rozstawie rur <strong>15 cm</strong>, obliczenia wyglądają następująco:</p>



<p class="wp-block-paragraph">Długość rury = (Powierzchnia / Rozstaw) * 2 + (Odległość od rozdzielacza * 2)<br>Długość rury = (30 m² / 0,15 m) * 2 + (5 m * 2) = 400 m + 10 m = 410 m</p>



<h2 class="wp-block-heading">Kluczowe czynniki wpływające na długość rury.</h2>



<p class="wp-block-paragraph">Nie wystarczy znać wzór – trzeba też zrozumieć, co może wpłynąć na finalny wynik:</p>



<ul class="wp-block-list">
<li><strong>Kształt pomieszczenia</strong> – nieregularne bryły wymagają więcej rury ze względu na konieczność omijania przeszkód,</li>



<li><strong>Strefy grzewcze</strong> – miejsca, gdzie potrzebna jest wyższa temperatura (np. łazienki),</li>



<li><strong>Rodzaj rury</strong> – niektóre materiały mają ograniczenia dotyczące maksymalnej długości pętli (np. 80-100 m).</li>
</ul>



<h2 class="wp-block-heading">Przykłady obliczeń dla różnych rozstawów rur.</h2>



<p class="wp-block-paragraph">Poniżej znajdziesz trzy praktyczne scenariusze, które pokazują, jak zmienia się długość rury w zależności od rozstawu:</p>



<h3 class="wp-block-heading">Przykład 1: Rozstaw 10 cm (mieszkanie 50 m²)</h3>



<ul class="wp-block-list">
<li>Powierzchnia: 50 m²</li>



<li>Rozstaw: 10 cm (0,1 m)</li>



<li>Odległość od rozdzielacza: 8 m</li>
</ul>



<p class="wp-block-paragraph">Długość rury = (50 / 0,1) * 2 + (8 * 2) = 1000 m + 16 m = 1016 m</p>



<p class="wp-block-paragraph"><em>Uwaga!</em> Tak duża długość wymaga podziału na co najmniej <strong>13 pętli</strong> (1016 m / 80 m = 12,7 → zaokrąglenie w górę).</p>



<h3 class="wp-block-heading">Przykład 2: Rozstaw 20 cm (dom 120 m²)</h3>



<ul class="wp-block-list">
<li>Powierzchnia: 120 m²</li>



<li>Rozstaw: 20 cm (0,2 m)</li>



<li>Odległość od rozdzielacza: 12 m</li>
</ul>



<p class="wp-block-paragraph">Długość rury = (120 / 0,2) * 2 + (12 * 2) = 1200 m + 24 m = 1224 m</p>



<p class="wp-block-paragraph">W tym przypadku zaleca się podział na <strong>16 pętli</strong> (1224 m / 80 m = 15,3 → zaokrąglenie w górę).</p>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

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

.pipe-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 400;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--accent); transition: 0.3s;
}
.score-num { font-size: 48px; font-weight: 900; line-height: 1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right; color: #fff;}

.material-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fff; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

<div class="calc-intro">
    <h2>Kalkulator ilości rur do ogrzewania podłogowego</h2>
    <p>Sprawdź, ile metrów bieżących rury potrzebujesz do swojej instalacji. Narzędzie stworzone przez ekspertów <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz rozstaw pętli, podaj powierzchnię i średnią odległość od rozdzielacza, a nasz kalkulator automatycznie dobierze ilość rury oraz zasugeruje bezpieczny podział na pętle.</p>
</div>

<div class="pipe-calc" id="pipe-calc-app">
    <div class="calc-grid">
        <div class="config-side">
            <span class="section-title">1. Rozstaw rur (pętli)</span>
            <div class="type-selector">
                <div class="type-btn active" data-rozstaw="10" data-mb="10">10 cm<span>10 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="15" data-mb="7">15 cm<span>7 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="20" data-mb="5">20 cm<span>5 mb / m²</span></div>
                <div class="type-btn" data-rozstaw="25" data-mb="4">25 cm<span>4 mb / m²</span></div>
            </div>

            <span class="section-title">2. Parametry instalacji</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia (domu/pomieszczenia)</label><span class="val-badge"><span id="v-area">100</span> m²</span></div>
                <input type="range" id="area" min="1" max="500" value="100">
            </div>
            
            <div class="input-wrap">
                <div class="input-label-row"><label>Średnia odległość od rozdzielacza</label><span class="val-badge"><span id="v-dist">8</span> m</span></div>
                <input type="range" id="dist" min="0" max="30" step="1" value="8">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Długość od rozdzielacza do strefy grzewczej (kalkulator sam doliczy zasilanie i powrót dla każdej pętli).</div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Potrzebna ilość rury (łącznie)</span>
                <span class="score-num" id="resTotal">&#8212;</span>
                <span class="score-label">metrów bieżących (mb)</span>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Wybrany rozstaw:</span><strong id="resSpacing">10 cm</strong></div>
                <div class="tech-item"><span>Rura na samą powierzchnię:</span><strong id="resAreaOnly">&#8212;</strong></div>
                <div class="tech-item"><span>Rura na przyłącza (dla wszystkich pętli):</span><strong id="resConnections">&#8212;</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card" style="background: rgba(37, 99, 235, 0.15); border: 1px solid rgba(37, 99, 235, 0.3);">
                        <span style="color: #bfdbfe;">Sugerowana ilość pętli:</span><strong id="resLoops" style="color: #60a5fa;">&#8212;</strong>
                    </div>
                    <div class="mini-card">
                        <span>Średnia dł. jednej pętli:</span><strong id="resLoopLen">&#8212;</strong>
                    </div>
                </div>
            </div>
            
            <p style="font-size: 10px; color: #64748b; text-align: center; margin-top: 20px; line-height: 1.5;">
                Uwaga: Kalkulator ma charakter poglądowy i nie uwzględnia stref grzanych przyłączami biegnącymi przez pomieszczenia.
            </p>
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Potrzebujesz dokładnych wyliczeń?</h3>
            <p style="margin:0; font-size:14px; color:#475569">Zbyt długie pętle to zimna podłoga i problem z pompą obiegową. Wykonamy dla Ciebie darmową wycenę lub profesjonalny projekt, który wyeliminuje błędy.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="javascript:void(0)" id="btn-email" class="cta-btn" style="background:#1e293b">
                WYŚLIJ WYNIKI NA E-MAIL
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
(function() {
    var appContainer = document.getElementById('pipe-calc-app');
    if (!appContainer) return;

    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        // Zabezpieczony komunikat używający template literals (backtick)
        appContainer.innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">
                <span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px; color: #dc2626;">Narzędzie chronione</h3>
                <p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>
                <a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">PRZEJDŹ DO ORYGINAŁU</a>
            </div>
        `;
        return; 
    }

    var currentRozstaw = 10;
    var currentMbPerM2 = 10;
    var MAX_LOOP_LENGTH = 80;

    function updateCalc() {
        var areaEl = document.getElementById('area');
        var distEl = document.getElementById('dist');
        if(!areaEl || !distEl) return;

        var area = parseFloat(areaEl.value);
        var dist = parseFloat(distEl.value);
        
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-dist').innerText = dist;

        var areaPipe = area * currentMbPerM2;
        var maxUsableInLoop = MAX_LOOP_LENGTH - (dist * 2);
        if (maxUsableInLoop < 10) { maxUsableInLoop = 10; }

        var loops = Math.ceil(areaPipe / maxUsableInLoop);
        var connectionsPipe = loops * (dist * 2);
        var totalLength = areaPipe + connectionsPipe;
        var loopLen = totalLength / loops;

        document.getElementById('resTotal').innerText = totalLength.toFixed(0);
        document.getElementById('resSpacing').innerText = currentRozstaw + ' cm';
        document.getElementById('resAreaOnly').innerText = areaPipe.toFixed(0) + ' mb';
        document.getElementById('resConnections').innerText = connectionsPipe.toFixed(0) + ' mb';
        
        document.getElementById('resLoops').innerText = loops + (loops === 1 ? ' szt.' : ' szt.');
        document.getElementById('resLoopLen').innerText = '~' + loopLen.toFixed(1) + ' mb';
    }

    var typeBtns = document.querySelectorAll('#pipe-calc-app .type-btn');
    typeBtns.forEach(function(btn) {
        btn.addEventListener('click', function(e) {
            typeBtns.forEach(function(b) { b.classList.remove('active'); });
            var currentBtn = e.currentTarget;
            currentBtn.classList.add('active');
            
            currentRozstaw = parseInt(currentBtn.getAttribute('data-rozstaw'));
            currentMbPerM2 = parseFloat(currentBtn.getAttribute('data-mb'));
            updateCalc();
        });
    });

    var areaInput = document.getElementById('area');
    var distInput = document.getElementById('dist');
    
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(distInput) distInput.addEventListener('input', updateCalc);

    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var area = document.getElementById('v-area').innerText;
            var dist = document.getElementById('v-dist').innerText;
            var total = document.getElementById('resTotal').innerText;
            var loops = document.getElementById('resLoops').innerText;
            var loopLen = document.getElementById('resLoopLen').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Zapotrzebowanie na rurę PEX');
            
            var bodyText = 'Dzień dobry,\n\nZrobiłem wstępne kalkulacje ilości rury z Państwa narzędzia:\n\n' +
                           '• Rozstaw pętli: ' + currentRozstaw + ' cm\n' +
                           '• Powierzchnia: ' + area + ' m²\n' +
                           '• Średnia odległość od rozdzielacza: ' + dist + ' m\n' +
                           '• POTRZEBNA RURA: ' + total + ' mb\n' +
                           '• Sugerowany podział: ' + loops + ' pętli po średnio ' + loopLen + '\n\n' +
                           'Proszę o kontakt w sprawie projektu / wyceny materiałów.';
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(bodyText);
        });
    }

    updateCalc();
})();
</script>



<p class="wp-block-paragraph">Zobacz pozostałe nasze kalkulatory <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/">tutaj</a>.</p>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – dlaczego warto go zlecić profesjonalistom?</h2>



<p class="wp-block-paragraph">Nawet najlepszy <strong>kalkulator do obliczania metrów rury</strong> nie zastąpi kompleksowego projektu. Dlaczego? Oto trzy powody:</p>



<ol class="wp-block-list">
<li><strong>Optymalizacja stref grzewczych</strong> – profesjonaliści dobiorą rozstaw rur tak, aby w łazience było cieplej niż w przedpokoju,</li>



<li><strong>Unikanie mostków termicznych</strong> – błędy w rozmieszczeniu rur mogą prowadzić do strat ciepła,</li>



<li><strong>Dobór materiałów</strong> – doświadczony projektant uwzględni rodzaj podłoża i izolacji.</li>
</ol>



<p class="wp-block-paragraph">Na stronie naszej stronie internetowej znajdziesz <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/">darmowe narzędzia do wstępnych obliczeń</a> oraz możliwość zlecenia szczegółowego <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">projektu</a>.</p>



<h3 class="wp-block-heading">Jak uniknąć typowych błędów przy obliczeniach?</h3>



<p class="wp-block-paragraph">Oto trzy pułapki, na które warto uważać:</p>



<ul class="wp-block-list">
<li><strong>Zapominanie o przyłączach</strong> – dodaj minimum 2 m rury na każde połączenie z rozdzielaczem,</li>



<li><strong>Ignorowanie strat ciśnienia</strong> – zbyt długa pętla (&gt;80 m) może wymagać mocniejszej pompy,</li>



<li><strong>Brak zapasu materiału</strong> – zawsze dodaj 5-10% do wyniku kalkulatora na okręcenie przeszkód.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1741950968299"><strong class="schema-faq-question"><strong>Jak działa kalkulator do obliczania długości rury do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Kalkulator uwzględnia trzy główne parametry: rozstaw pętli, powierzchnię pomieszczenia oraz odległość od rozdzielacza. Na podstawie tych danych oblicza całkowitą długość rury potrzebną do instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1741950978052"><strong class="schema-faq-question"><strong>Czy kalkulator uwzględnia strefy grzewcze?</strong></strong> <p class="schema-faq-answer">Nie, standardowy kalkulator nie uwzględnia stref grzewczych. Warto skonsultować się z projektantem, aby dostosować system do konkretnych potrzeb (np. cieplejsza łazienka).</p> </div> <div class="schema-faq-section" id="faq-question-1741950989206"><strong class="schema-faq-question"><strong>Jakie są typowe błędy przy obliczaniu długości rury?</strong></strong> <p class="schema-faq-answer">Najczęstsze błędy to pomijanie długości przyłączy, ignorowanie strat ciśnienia w długich pętlach oraz brak zapasu materiału na okręcanie przeszkód.</p> </div> <div class="schema-faq-section" id="faq-question-1741951000751"><strong class="schema-faq-question"><strong>Dlaczego warto zlecić projekt ogrzewania podłogowego profesjonalistom?</strong></strong> <p class="schema-faq-answer">Profesjonalny <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt ogrzewania podłogowego</a> gwarantuje optymalne rozmieszczenie rur, unikanie mostków termicznych oraz dobór odpowiednich materiałów, co przekłada się na efektywność i trwałość systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1741951012979"><strong class="schema-faq-question"><strong>Gdzie można znaleźć darmowy projekt ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Na stronie <a href="https://projekt-ogrzewania.pl/category/kalkulatory-budowlane/" target="_blank" rel="noreferrer noopener">projekt-ogrzewania.pl</a> znajdziesz darmowe narzędzia do wstępnych obliczeń oraz możliwość zlecenia szczegółowego projektu.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Kalkulator do obliczania ilości metrów <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury do ogrzewania podłogowego</a></strong> to nie tylko oszczędność czasu. To narzędzie, które:</p>



<ul class="wp-block-list">
<li>Zapobiega <em>przekroczeniu budżetu</em> przez zakup zbyt dużej ilości materiału,</li>



<li>Minimalizuje ryzyko <em>awarii systemu</em> spowodowanej przeciążeniem pętli,</li>



<li>Umożliwia <em>szybką kalkulację</em> dla różnych wariantów rozstawu rur.</li>
</ul>



<p class="wp-block-paragraph">Pamiętaj jednak, że nawet najbardziej precyzyjne obliczenia nie zastąpią projektu wykonanego przez specjalistę. Jeśli chcesz mieć pewność, że Twoje ogrzewanie podłogowe będzie efektywne i trwałe, rozważ współpracę z profesjonalistami.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">Kalkulator do obliczania ilości metrów rury potrzebnych do 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/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</title>
		<link>https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 11 Mar 2025 08:50:26 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Harmonogram budowy]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projektowanie domu]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dom pasywny]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[faza projektowa]]></category>
		<category><![CDATA[harmonogram budowy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[koordynacja prac]]></category>
		<category><![CDATA[materiały grzewcze]]></category>
		<category><![CDATA[nowy dom]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2395</guid>

					<description><![CDATA[<p>Budowa nowego domu to idealny moment, by zadbać o komfort cieplny na lata. W tym artykule znajdziesz praktyczne porady, jak zaplanować instalację ogrzewania podłogowego, aby uniknąć opóźnień i dodatkowych kosztów. Dowiesz się, dlaczego faza projektowa jest kluczowa, jak zsynchronizować prace z harmonogramem budowy i kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu. Poznaj kroki, przykłady i błędy do uniknięcia, by Twój system działał efektywnie!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</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-warn-bg: #fffbeb;
    --rk-int-warn-border: #fef3c7;
    --rk-int-warn-text: #b45309;
}

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

/* Blok Szybkiej Odpowiedzi (Featured Snippet Box) */
.rk-int-snippet-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-int-border);
    display: block;
}

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

.rk-int-direct-answer-card {
    background: var(--rk-int-blue-light);
    border-left: 6px solid var(--rk-int-blue);
    padding: 25px;
    border-radius: 4px 16px 16px 4px;
    margin-bottom: 25px;
    display: block;
}

.rk-int-direct-answer-card p {
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--rk-int-dark);
    margin: 0;
    font-weight: 600;
}

.rk-int-direct-answer-card p strong {
    color: var(--rk-int-blue);
    font-weight: 800;
}

/* Informacja o Kalkulatorach / Narzędziach */
.rk-int-tools-alert {
    background: var(--rk-int-warn-bg);
    border: 1px solid var(--rk-int-warn-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: block;
}

.rk-int-alert-text {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--rk-int-warn-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Sekcja Interaktywnego Przeglądu Zawartości */
.rk-int-interactive-workspace {
    padding: 40px 50px;
    background: #f8fafc;
    display: block;
}

.rk-int-h3 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-int-dark);
    margin: 0 0 20px 0;
    display: block;
}

/* Selektor Etapów Wiedzy (Desktop) */
.rk-int-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 25px;
}

.rk-int-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-int-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji pod rygor E-E-A-T */
}

.rk-int-tab-btn.active {
    background: var(--rk-int-dark);
    border-color: var(--rk-int-dark);
    color: #ffffff;
}

/* Liniowy Panel Informacyjny dla wybranego filaru */
.rk-int-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 16px;
    padding: 30px;
    display: block;
}

.rk-int-panel-h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-int-dark);
    display: block;
}

.rk-int-panel-p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-int-text);
    margin: 0;
    display: block;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-int-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-int-snippet-zone, .rk-int-interactive-workspace {
        padding: 30px 20px;
    }
    
    .rk-int-h2 { font-size: 20px; }
    .rk-int-direct-answer-card { padding: 20px; }
    
    .rk-int-tabs-row, .rk-int-display-panel {
        display: none;
    }
    
    .rk-int-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-int-acc-item {
        border: 1px solid var(--rk-int-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-int-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-int-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-int-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-int-blue);
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger {
        background: var(--rk-int-dark);
        color: #ffffff;
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-int-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-int-text);
    }
    
    .rk-int-acc-item.active .rk-int-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu? Kompendium Inżynierskie",
    "description": "Definicja i ramy czasowe montażu ogrzewania podłogowego. Dowiedz się, dlaczego faza adaptacji projektu architektonicznego decyduje o sprawności hydraulicznej systemu.",
    "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/projektogrzewaniapl/",
        "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-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-wstep",
    "name": "Ewidencja Kotwic Edukacyjnych i Procesowych Instalacji Podłogowych",
    "description": "Kluczowe węzły decyzyjne i parametry strukturalne definiujące poprawność realizacji ogrzewania płaszczyznowego na osi czasu budowy domu jednorodzinnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "sprawnosc hydrauliczna podlogowki",
      "adaptacja projektu ogrzewania",
      "bledy wykonawcze posadzki",
      "konflikt poziomow jastrychu"
    ],
    "measurementTechnique": "Identyfikacja i klasyfikacja pojęciowa klastra tematycznego instalacji płaszczyznowych pod kątem optymalizacji wyszukiwania semantycznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Węzeł 01: Grubość warstw posadzki i rezerwa wysokościowa styropianu EPS na gruncie.",
        "Węzeł 02: Chronologia i harmonogram prac branżowych tynkarzy oraz instalatorów sanitarnych.",
        "Węzeł 03: Fizyka budowli i czas schnięcia mieszanek jastrychowych w zróżnicowanych temperaturach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-wstep",
    "name": "Interaktywny Przewodnik Zakresu Tematycznego HVAC",
    "description": "Aplikacja internetowa służąca do preselekcji i zapoznania inwestora z krytycznymi filarami inżynieryjnymi montażu ogrzewania płaszczyznowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-main-container" id="rkIntroAppRoot">
    <div class="rk-int-snippet-zone">
        <h2 class="rk-int-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</h2>
        
        <div class="rk-int-direct-answer-card">
            <p>Planowanie montażu ogrzewania podłogowego w nowym domu to strategiczny proces inżynieryjny, który bezpośrednio decyduje o sprawności hydraulicznej systemu, kosztach eksploatacji oraz komforcie cieplnym mieszkańców przez dekady. Pytanie o to, <strong>kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</strong>, ma tylko jedną poprawną odpowiedź: <strong>na etapie adaptacji projektu budowlanego (faza architektoniczno-budowlana)</strong>, przed uzyskaniem pozwolenia na budowę i przed wykonaniem pierwszych prac ziemnych. Wczesna integracja instalacji płaszczyznowej zapobiega błędom wykonawczym, takim jak zbyt niska strefa cokołowa drzwi czy niedostateczna grubość izolacji termicznej styropianu.</p>
        </div>

        <div class="rk-int-tools-alert">
            <p class="rk-int-alert-text">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
                Wskazówka inżynierska: W dalszej części tego kompendium znajdziesz interaktywne symulatory warstw posadzki, kalkulatory klimatyczne oraz aplikacje osi czasu prac budowlanych.
            </p>
        </div>
    </div>

    <div class="rk-int-interactive-workspace">
        <h3 class="rk-int-h3">Czego dowiesz się z tego przewodnika? Kliknij wybrany obszar:</h3>
        
        <div class="rk-int-tabs-row" id="rkIntroTabs">
            <button class="rk-int-tab-btn active" data-intro="1">Grubość warstw</button>
            <button class="rk-int-tab-btn" data-intro="2">Harmonogram branż</button>
            <button class="rk-int-tab-btn" data-intro="3">Warunki pogodowe</button>
        </div>

        <div class="rk-int-display-panel" id="rkIntroDisplay">
            <h4 class="rk-int-panel-h4" id="rkIntroTitle">Wymiary i rezerwa wysokościowa posadzki</h4>
            <p class="rk-int-panel-p" id="rkIntroBody">Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>.</p>
        </div>

        <div class="rk-int-mobile-accordion" id="rkIntroMobileAccordion">
            <div class="rk-int-acc-item active" data-intro="1">
                <div class="rk-int-acc-trigger">1. Wymiary i rezerwa wysokościowa posadzki</div>
                <div class="rk-int-acc-content" id="rkMIntro1"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="2">
                <div class="rk-int-acc-trigger">2. Chronologia i synchronizacja ekip na budowie</div>
                <div class="rk-int-acc-content" id="rkMIntro2"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="3">
                <div class="rk-int-acc-trigger">3. Wpływ pór roku na schnięcie i wygrzewanie betonu</div>
                <div class="rk-int-acc-content" id="rkMIntro3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych wstępu (Czyste fakty, brak lania wody, pełna stabilność kodu)
    var introDatabase = {
        1: {
            title: "Wymiary i rezerwa wysokościowa posadzki",
            body: "Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>."
        },
        2: {
            title: "Chronologia i synchronizacja ekip na budowie",
            body: "Przeanalizujemy poprawny ciąg zdarzeń: od pionów kanalizacyjnych i rekuperacji, przez tynki wewnętrzne, aż po montaż pętli. Poznasz mechaniczne ryzyka grożące przebiciem rur PEX/PE-RT. W dalszej części znajdziesz <strong>interaktywny nawigator chronologii branżowej</strong>."
        },
        3: {
            title: "Wpływ pór roku na schnięcie i wygrzewanie betonu",
            body: "Zrozumiesz, jak temperatura otoczenia modyfikuje czas schnięcia posadzki z normowych 28 dni do nawet 60 dni zimą. Przeliczymy litry wody technologicznej i zbadamy protokół wygrzewania płyty wg norm ITB. Niżej przygotowałem dla Ciebie <strong>symulator warunków klimatycznych jastrychu</strong>."
        }
    };

    var dTitle = document.getElementById('rkIntroTitle');
    var dBody = document.getElementById('rkIntroBody');
    var tabButtons = document.querySelectorAll('#rkIntroTabs .rk-int-tab-btn');

    // Funkcja aktualizacji panelu desktopowego (Brak jakichkolwiek animacji fade/slide)
    function aktualizujPanelIntro(id) {
        if (dTitle) { dTitle.innerText = introDatabase[id].title; }
        if (dBody) { dBody.innerHTML = introDatabase[id].body; }
    }

    // Inicjalizacja pierwszej karty na starcie
    aktualizujPanelIntro(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja natychmiastowego indeksowania przez boty)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMIntro' + i);
        if (mBox) {
            mBox.innerHTML = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + introDatabase[i].body + '</p>';
        }
    }

    // Obsługa zakładek na Desktopie
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-intro');
            aktualizujPanelIntro(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak operatorów podwójnego ampersandu)
    var accItems = document.querySelectorAll('#rkIntroMobileAccordion .rk-int-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-int-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-lay-dark: #0f172a;
    --rk-lay-blue: #0284c7;
    --rk-lay-border: #e2e8f0;
    --rk-lay-text: #334155;
    --rk-lay-muted: #64748b;
    --rk-lay-success: #10b981;
    --rk-lay-danger: #ef4444;
    --rk-lay-danger-light: #fca5a5;
    --rk-lay-bg-main: #f8fafc;
}

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

/* Wstęp */
.rk-lay-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-lay-border);
}

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

.rk-lay-h3 {
    font-size: 15.5px;
    color: var(--rk-lay-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Obszar Interaktywny */
.rk-lay-workspace {
    padding: 40px 50px;
    background: var(--rk-lay-bg-main);
}

/* Karta Suwaka */
.rk-lay-slider-card {
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 20px;
    padding: 35px 25px;
    margin-bottom: 40px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-lay-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-lay-dark);
    margin: 0 0 25px 0;
}

.rk-lay-range {
    width: 100%;
    max-width: 600px;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    cursor: pointer;
}

.rk-lay-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-lay-blue);
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(2, 132, 199, 0.4);
}

.rk-lay-height-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    margin-top: 15px;
}

/* DYNAMICZNY STOS WARSTW (Zastępuje SVG) */
.rk-lay-dom-stack {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 500px;
    margin: 0 auto 40px auto;
    border: 2px solid var(--rk-lay-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.08);
}

.rk-stack-layer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 800;
    font-size: 14px;
    color: #ffffff;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    padding: 0 15px;
    box-sizing: border-box;
}

.rk-stack-layer span {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.9;
    margin-top: 2px;
}

/* POPRAWIONA WYSOKOŚĆ WARSTWY GÓRNEJ - brak ucinania liter */
.rk-stack-finish { background: #64748b; min-height: 48px; }
.rk-stack-screed { background: var(--rk-lay-blue); height: 90px; }
.rk-stack-styro { background: var(--rk-lay-success); height: 130px; }
.rk-stack-base { background: #cbd5e1; color: var(--rk-lay-dark); text-shadow: none; min-height: 48px; border-top: 1px solid #94a3b8; }

/* Lista Parametrów - Liniowy Układ Pionowy */
.rk-lay-metrics-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-metric-row {
    display: flex;
    flex-direction: column;
    padding: 20px 25px;
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 14px;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-lay-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    line-height: 1.4;
}

/* Treść Techniczna */
.rk-lay-article {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-lay-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-lay-text);
}

.rk-lay-article p { margin: 0 0 20px 0; }
.rk-lay-article p:last-child { margin: 0; }
.rk-lay-article strong { color: var(--rk-lay-dark); font-weight: 700; }

@media (max-width: 768px) {
    .rk-lay-header, .rk-lay-workspace, .rk-lay-article { padding: 30px 20px; }
    .rk-lay-h2 { font-size: 22px; }
    .rk-lay-dom-stack { border-radius: 8px; }
    .rk-metric-row { padding: 16px 20px; }
    .rk-metric-val { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-grubosc-warstw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?",
    "description": "Zrozumienie zjawiska konfliktu poziomów posadzki. Narzędzie obliczeniowe rezerwy wysokościowej od surowego betonu do wykończenia (16-22 cm) na bazie normy PN-EN 1264-4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-grubosc-warstw",
    "name": "Baza Danych Normatywnych Przekrojów Posadzkowych z Ogrzewaniem Płaszczyznowym",
    "description": "Zestawienie korelacji grubości termoizolacji EPS, oporu cieplnego oraz warstwy dociskowej jastrychu w odniesieniu do dostępnej wysokości architektonicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wysokość posadzki z ogrzewaniem podłogowym",
      "konflikt poziomów drzwi i okien",
      "minimalna grubość styropianu na gruncie",
      "pękanie wylewki cementowej naprężenia",
      "współczynnik przewodzenia ciepła lambda podłogówka"
    ],
    "measurementTechnique": "Obliczenia strukturalne i fizykalne wymogów normy PN-EN 1264-4 dotyczące izolacyjności R powyżej 1,25 m2 K/W.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rezerwa Optymalna: 16-22 cm pozwala na 100-150 mm izolacji EPS (R >= 3,50) oraz bezpieczny jastrych 50-60 mm.",
        "Rezerwa Krytyczna: 10-12 cm wymusza stosowanie mat slim 20-40 mm (R = 0,55-1,10) oraz cienkowarstwowych mas, drastycznie pogarszając COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-grubosc-warstw",
    "name": "Dynamiczny Symulator Warstw Posadzkowych i Rezerwy Architektonicznej",
    "description": "Narzędzie internetowe pozwalające na interaktywną wizualizację zmian grubości wylewki i izolacji w stosunku do dostępnej rezerwy wysokościowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-layers-container" id="rkLayAppRoot">
    <div class="rk-lay-header">
        <h2 class="rk-lay-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?</h2>
        <h3 class="rk-lay-h3">Spóźniona decyzja o podłogówce to najczęstsza przyczyna tzw. konfliktu poziomów. Przesuń suwak, aby na żywo zobaczyć, jak zmiany w całkowitej rezerwie wysokościowej wpływają na parametry betonu i styropianu ukrytych pod Twoją posadzką.</h3>
    </div>

    <div class="rk-lay-workspace">
        <div class="rk-lay-slider-card">
            <h4 class="rk-lay-h4">Ustal dostępną wysokość od surowego betonu do gotowej podłogi:</h4>
            <input type="range" min="10" max="22" value="20" class="rk-lay-range" id="rkLayRangeControl">
            <div class="rk-lay-height-val" id="rkLayValueText">20 cm</div>
        </div>

        <div class="rk-lay-dom-stack" id="rkLayStack">
            <div class="rk-stack-layer rk-stack-finish">
                Wykończenie (Płytki/Panele) <span>10-15 mm</span>
            </div>
            <div class="rk-stack-layer rk-stack-screed" id="stkScreed">
                Jastrych grzewczy 60 mm <span>(Rura ø16 wewnątrz)</span>
            </div>
            <div class="rk-stack-layer rk-stack-styro" id="stkStyro">
                Izolacja cieplna EPS 125 mm <span>(Opór zoptymalizowany)</span>
            </div>
            <div class="rk-stack-layer rk-stack-base">
                Płyta konstrukcyjna (Chudy beton)
            </div>
        </div>

        <div class="rk-lay-metrics-list">
            <div class="rk-metric-row">
                <div class="rk-metric-label">Grubość izolacji termicznej (EPS na gruncie)</div>
                <div class="rk-metric-val" id="valIzolacja">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Opór cieplny izolacji (R-lambda)</div>
                <div class="rk-metric-val" id="valOpor">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Średnica rury i rozstaw pętli</div>
                <div class="rk-metric-val" id="valRura">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wymagany jastrych nad rurą</div>
                <div class="rk-metric-val" id="valWylewka">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wydajność pompy ciepła (COP)</div>
                <div class="rk-metric-val" id="valCop">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Szacunkowy koszt modyfikacji i poprawek</div>
                <div class="rk-metric-val" id="valKoszty">Wczytywanie danych&#8230;</div>
            </div>
        </div>
    </div>

    <div class="rk-lay-article">
        <p>Najlepszy moment na planowanie grubości warstw podłogi przypada na etap projektowania architektonicznego, przed wylaniem płyty fundamentowej lub stropów, ponieważ system wymaga rezerwy wysokościowej wynoszącej minimum <strong>16 cm do 22 cm</strong> od surowego betonu do gotowej posadzki. Zgodnie z normą <strong>PN-EN 1264-4</strong>, minimalna grubość izolacji cieplnej na gruncie dla współczynnika przewodzenia ciepła lambda = 0,035 W/(m·K) musi wynosić <strong>100 mm</strong>, aby opór cieplny izolacji R-lambda wynosił co najmniej <strong>1,25 m²·K/W</strong>. Spóźnienie się z tą decyzją skutkuje koniecznością odchudzenia izolacji, co drastycznie zwiększa straty ciepła do gruntu.</p>
        
        <p>Konsekwencją zignorowania tego parametru na etapie projektu architektonicznego jest tzw. <strong>„konflikt poziomów”</strong>. Jeśli inwestor podejmie decyzję o podłogówce po wylaniu otworów drzwiowych i okiennych przy założeniu tradycyjnych grzejników (gdzie wylewka ma często tylko 10-12 cm wraz ze styropianem), brakuje przestrzeni na poprawną strukturę grzewczą. Skrócenie wysokości jastrychu poniżej <strong>35 mm</strong> nad górną krawędzią rury (dla jastrychów cementowych według PN-EN 1264) grozi pękaniem posadzki pod wpływem naprężeń termicznych i powstawaniem liniowych pęknięć wzdłuż tras rur.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('rkLayRangeControl');
    var valueText = document.getElementById('rkLayValueText');
    
    // Warstwy wizualne w stosie
    var stkScreed = document.getElementById('stkScreed');
    var stkStyro = document.getElementById('stkStyro');

    // Metryki tabelaryczne
    var valIzolacja = document.getElementById('valIzolacja');
    var valOpor = document.getElementById('valOpor');
    var valRura = document.getElementById('valRura');
    var valWylewka = document.getElementById('valWylewka');
    var valCop = document.getElementById('valCop');
    var valKoszty = document.getElementById('valKoszty');

    function przeliczParametry(wysokosc) {
        if (wysokosc >= 16) {
            // STAN OPTYMALNY (Faza projektowa)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-success)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "90px";
            stkScreed.style.backgroundColor = "var(--rk-lay-blue)";
            stkScreed.innerHTML = "Jastrych grzewczy 50-60 mm <br><span>(Rura ø16 wewnątrz)</span>";
            
            stkStyro.style.height = "130px";
            stkStyro.style.backgroundColor = "var(--rk-lay-success)";
            stkStyro.innerHTML = "Izolacja cieplna EPS 100-150 mm <br><span>(Opór zoptymalizowany)</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "100 - 150 mm (Zgodnie z normą WT2021)";
            valIzolacja.style.color = "var(--rk-lay-success)";
            
            valOpor.innerText = "Większy lub równy 3,50 m²·K/W";
            valRura.innerText = "ø16 mm, rozstaw 100 / 150 mm";
            valWylewka.innerText = "50 mm (Anhydryt) lub 60 mm (Beton)";
            valCop.innerText = "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30°C)";
            valKoszty.innerText = "0,00 PLN (Brak konfliktu poziomów)";
            valKoszty.style.color = "var(--rk-lay-dark)";
        } else {
            // STAN KRYTYCZNY (Decyzja przed wylewkami)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-danger)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkScreed.style.backgroundColor = "var(--rk-lay-danger)";
            stkScreed.innerHTML = "Jastrych cienkowarstwowy < 35 mm <br><span>(RYZYKO SPĘKAŃ)</span>";
            
            stkStyro.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkStyro.style.backgroundColor = "var(--rk-lay-danger-light)";
            stkStyro.innerHTML = "Izolacja typu SLIM 20-40 mm <br><span style='color:var(--rk-lay-danger);'>STRATY DO GRUNTU!</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "20 - 40 mm (Mata systemowa slim)";
            valIzolacja.style.color = "var(--rk-lay-danger)";
            
            valOpor.innerText = "0,55 - 1,10 m²·K/W (Skrajne straty ciepła)";
            valRura.innerText = "ø10 / ø12 mm (Systemy renowacyjne)";
            valWylewka.innerText = "15 - 20 mm (Specjalne, drogie masy samopoziomujące)";
            valCop.innerText = "Niskie COP (3,0 - 3,4 przy zasilaniu ≥ 45°C)";
            valKoszty.innerText = "15 000 - 35 000 PLN (Frezowanie, drogie masy, kucie otworów)";
            valKoszty.style.color = "var(--rk-lay-danger)";
        }
    }

    // Pierwsze załadowanie
    przeliczParametry(20);

    // Nasłuch ruchu suwaka
    rangeInput.addEventListener('input', function() {
        przeliczParametry(parseInt(this.value, 10));
    });
});
</script>



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

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

/* Sekcja Wstępna */
.rk-hrm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-hrm-border);
}

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

.rk-hrm-h3 {
    font-size: 15.5px;
    color: var(--rk-hrm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-hrm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Poziomy Selektor Kroków - Pełna szerokość na Desktopie */
.rk-hrm-desktop-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-hrm-tab-btn {
    padding: 16px 10px;
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-hrm-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.rk-hrm-tab-btn:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

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

.rk-hrm-tab-btn .rk-hrm-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-hrm-blue);
    font-weight: 700;
}

.rk-hrm-tab-btn.active .rk-hrm-badge {
    color: #ffffff;
    opacity: 0.8;
}

/* Liniowy Panel Informacyjny (Desktop) - Zmodyfikowany pod pełną szerokość */
.rk-hrm-full-display {
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 20px;
    padding: 35px 45px;
    display: block;
}

/* Zawartość opisu etapu */
.rk-hrm-display-content {
    display: flex;
    flex-direction: column;
}

.rk-hrm-h4 {
    margin: 0 0 6px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hrm-dark);
}

.rk-hrm-status-tag {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.rk-hrm-status-tag.safe { color: var(--rk-hrm-success); }
.rk-hrm-status-tag.danger { color: var(--rk-hrm-danger); }

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

/* Akordeon Mobilny (Ukryty na Desktopie) */
.rk-hrm-mobile-accordion {
    display: none;
}

/* Głęboki Akapit Tekstowy Liniowy pod Aplikacją */
.rk-hrm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-hrm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-hrm-text);
}

.rk-hrm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-hrm-deep-content p:last-child {
    margin: 0;
}

.rk-hrm-deep-content strong {
    font-weight: 700;
    color: var(--rk-hrm-dark);
}

@media (max-width: 768px) {
    .rk-hrm-intro-zone, .rk-hrm-app-body, .rk-hrm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-hrm-h2 { font-size: 20px; }
    
    .rk-hrm-desktop-nav, .rk-hrm-full-display {
        display: none;
    }
    
    .rk-hrm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-hrm-acc-card {
        border: 1px solid var(--rk-hrm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-hrm-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-hrm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-hrm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-hrm-blue);
        font-weight: 500;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger {
        border-bottom: 1px solid var(--rk-hrm-border);
        color: var(--rk-hrm-blue);
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger::after {
        content: '−';
    }
    
    .rk-hrm-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-harmonogram",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?",
    "description": "Chronologia montażu ogrzewania płaszczyznowego. Analiza ryzyk mechanicznych: kolizje z tynkami, instalacją wodną i brakiem stolarki otworowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-harmonogram",
    "name": "Matryca Sekwencji Instalacyjnych i Tolerancji Podłoża HVAC",
    "description": "Zbiór danych inżynieryjnych określający dopuszczalne tolerancje nierówności chudego betonu (max 5 mm na 2 m) oraz krytyczne punkty styku branż budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja podłogówki a tynki",
      "kolejność prac instalacyjnych podłogówka",
      "tolerancja nierówności podłoża norma",
      "degradacja rur pex promieniowanie uv",
      "piony kanalizacyjne pod chudziakiem"
    ],
    "measurementTechnique": "Weryfikacja sekwencyjna i rygorystyczna kontrola chronologii procesów wykonawczych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sekwencja Poprawna: Piony sanitarne i rekuperacja na chudziaku -> Tynki i stolarka -> Styropian i rury grzewcze -> Próba wodna -> Jastrych.",
        "Zagrożenie Mechaniczne: Układanie pętli przed tynkami lub instalacją sanitarną generuje ryzyko przebicia ścianek przewodów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-harmonogram",
    "name": "Chronologiczny Nawigator Branż Budowlanych",
    "description": "Narzędzie interaktywne dedykowane do analizy punktów kolizyjnych oraz zarządzania harmonogramem prac instalacyjnych w budynkach jednorodzinnych.",
    "applicationCategory": "ProjectManagementApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hrm-main-container" id="rkHarmonogramAppRoot">
    <div class="rk-hrm-intro-zone">
        <h2 class="rk-hrm-h2">Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?</h2>
        <h3 class="rk-hrm-h3">Montaż rur ogrzewania podłogowego wymaga idealnej synchronizacji z pozostałymi branżami. Przełam liniowy chaos na budowie – klikaj poszczególne etapy w poniższym asystencie chronologii, aby sprawdzić poprawne sekwencje inżynierskie oraz konsekwencje błędów.</h3>
    </div>

    <div class="rk-hrm-app-body">
        <div class="rk-hrm-desktop-nav" id="rkHrmTabs">
            <button class="rk-hrm-tab-btn active" data-hrm="1">
                <span class="rk-hrm-badge">Faza 01</span>
                <span>Instalacje Sanitarne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="2">
                <span class="rk-hrm-badge">Faza 02</span>
                <span>Tynki Wewnętrzne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="3">
                <span class="rk-hrm-badge">Faza 03</span>
                <span>Stolarka Otworowa</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="4">
                <span class="rk-hrm-badge">Faza 04</span>
                <span>Rozłożenie Pętli</span>
            </button>
        </div>

        <div class="rk-hrm-full-display" id="rkHrmDisplayPanel">
            <div class="rk-hrm-display-content">
                <h4 class="rk-hrm-h4" id="rkHrmTitle">Piony kanalizacyjne i instalacje wodne</h4>
                <div class="rk-hrm-status-tag safe" id="rkHrmStatus">Kolejność: Bezwzględnie Przed Podłogówką</div>
                <p class="rk-hrm-p-text" id="rkHrmBody">Wszystkie rury sanitarne (ciepła i zimna woda, cyrkulacja, kanalizacja) oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu.</p>
            </div>
        </div>

        <div class="rk-hrm-mobile-accordion" id="rkHrmMobileAccordion">
            <div class="rk-hrm-acc-card active" data-hrm="1">
                <div class="rk-hrm-acc-trigger">1. Piony kanalizacyjne i instalacje wodne</div>
                <div class="rk-hrm-acc-content" id="rkMHrm1"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="2">
                <div class="rk-hrm-acc-trigger">2. Tynkowanie ścian wewnętrznych</div>
                <div class="rk-hrm-acc-content" id="rkMHrm2"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="3">
                <div class="rk-hrm-acc-trigger">3. Zamknięcie stolarki (Okna i Drzwi)</div>
                <div class="rk-hrm-acc-content" id="rkMHrm3"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="4">
                <div class="rk-hrm-acc-trigger">4. Układanie rur grzewczych i test szczelności</div>
                <div class="rk-hrm-acc-content" id="rkMHrm4"></div>
            </div>
        </div>
    </div>

    <div class="rk-hrm-deep-content">
        <p>Montaż rur ogrzewania podłogowego należy przeprowadzić w stanie surowym zamkniętym, bezwzględnie po wykonaniu pionów kanalizacyjnych, instalacji wodnej (ZWK, CWU, cyrkulacja) oraz przewodów rekuperacji prowadzonych w podłodze, ale przed wykonaniem tynków wewnętrznych lub bezpośrednio po ich całkowitym wyschnięciu. Norma <strong>PN-EN 1264-4</strong> jednoznacznie wskazuje, że przed rozłożeniem izolacji podłoże musi być uprzątnięte, równe i suche, a dopuszczalna tolerancja nierówności podłoża wynosi maksymalnie <strong>5 mm</strong> na długości łaty <strong>2 m</strong>. Montaż pętli grzewczych przed instalacjami sanitarnymi grozi mechanicznym uszkodzeniem przewodów przez pozostałe ekipy wykonawcze.</p>
        
        <p>Oto krytyczne konsekwencje zaburzenia tego harmonogramu technologicznego:</p>
        
        <p><strong>Prowadzenie instalacji wodnych nad rurami podłogówki:</strong> Taki błąd generuje niekontrolowane zyski lub straty ciepła pomiędzy układami i drastycznie zaburza stabilność hydrauliczną pętli. Wszystkie rury sanitarne muszą iść bezpośrednio na chudym betonie, skryte w pierwszej, wyrównawczej warstwie styropianu.</p>
        
        <p><strong>Tynkowanie po ułożeniu pętli bez wylanej posadzki:</strong> Spadające z wysokości ciężkie grudy zaprawy tynkarskiej, zanieczyszczenia chemiczne oraz rusztowania rozstawiane bezpośrednio na odsłoniętych rurach mogą łatwo przebić ściankę przewodu grzewczego. Tego typu uszkodzenia ujawniają się często dopiero podczas końcowej próby ciśnieniowej lub – co generuje gigantyczne koszty – dopiero po zalaniu i związaniu jastrychu betonowego.</p>
        
        <p><strong>Brak szczelności budynku (Stan otwarty):</strong> Układanie instalacji płaszczyznowej w budynku pozbawionym okien i drzwi zewnętrznych naraża rury na bezpośrednie, długotrwałe promieniowanie UV, co prowadzi do przyspieszonej degradacji struktury polimeru PE-RT/PEX. Dodatkowo generuje to skrajne ryzyko zamarznięcia wody wewnątrz przewodów po przeprowadzeniu obowiązkowej, normowej próby ciśnieniowej w okresie jesienno-zimowym.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych chronologii (bez obrazków SVG)
    var hrmDatabase = {
        1: {
            title: "Piony kanalizacyjne i instalacje wodne",
            status: "Kolejność: Bezwzględnie Przed Podłogówką",
            body: "Wszystkie rury sanitarne oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu."
        },
        2: {
            title: "Tynkowanie ścian wewnętrznych",
            status: "Kolejność: Rekomendowane Przed Rozłożeniem Rur",
            body: "Wykonanie tynków przed układaniem pętli eliminuje ryzyko mechanicznego uszkodzenia tworzywa przez spadające zaprawy lub rusztowania. Jeśli tynkujesz po ułożeniu rur, posadzka musi być już bezwzględnie wylana i związana, aby stanowiła monolit ochronny."
        },
        3: {
            title: "Zamknięcie stolarki (Okna i Drzwi)",
            status: "Kolejność: Stan Surowy Zamknięty (Wymagany)",
            body: "Montaż okien i drzwi chroni instalację przed wiatrem, mrozem oraz promieniowaniem UV, które degraduje polimery PEX/PE-RT. Budynek musi być szczelny, aby po próbie wodnej instalacja nie zamarzła podczas nagłych przymrozków."
        },
        4: {
            title: "Układanie rur grzewczych i test szczelności",
            status: "Kolejność: Ostatni Etap Przed Wylewaniem Jastrychu",
            body: "Po sprzątnięciu podłoża i ułożeniu izolacji, rury montuje się w oparciu o projekt hydrauliczny. Etap ten wieńczy obowiązkowa próba ciśnieniowa wodą (6 bar przez 24h). Zalewanie jastrychem odbywa się zawsze, gdy rury są pod pełnym ciśnieniem."
        }
    };

    var dTitle = document.getElementById('rkHrmTitle');
    var dStatus = document.getElementById('rkHrmStatus');
    var dBody = document.getElementById('rkHrmBody');
    var tabButtons = document.querySelectorAll('#rkHrmTabs .rk-hrm-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelHrm(id) {
        if (dTitle) { dTitle.innerText = hrmDatabase[id].title; }
        if (dStatus) { 
            dStatus.innerText = hrmDatabase[id].status;
            dStatus.className = "rk-hrm-status-tag safe";
        }
        if (dBody) { dBody.innerHTML = hrmDatabase[id].body; }
    }

    // Inicjalizacja startowa dla pierwszej zakładki
    aktualizujPanelHrm(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja indeksowania tekstu)
    for (var i = 1; i <= 4; i++) {
        var mContentBox = document.getElementById('rkMHrm' + i);
        if (mContentBox) {
            var html = '<div style="font-size:12px; font-weight:700; text-transform:uppercase; margin-bottom:8px; color:#0284c7;">' + hrmDatabase[i].status + '</div>';
            html += '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + hrmDatabase[i].body + '</p>';
            mContentBox.innerHTML = html;
        }
    }

    // Obsługa zakładek desktopowych
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-hrm');
            aktualizujPanelHrm(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkHrmMobileAccordion .rk-hrm-acc-card');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-hrm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-clm-dark: #0f172a;
    --rk-clm-blue: #0284c7;
    --rk-clm-blue-light: #f0f9ff;
    --rk-clm-border: #e2e8f0;
    --rk-clm-text: #334155;
    --rk-clm-muted: #64748b;
    --rk-clm-safe: #10b981;
    --rk-clm-safe-bg: #f0fdf4;
    --rk-clm-danger: #ef4444;
    --rk-clm-danger-bg: #fef2f2;
}

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

/* Nagłówek i Opis */
.rk-clm-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-clm-border);
}

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

.rk-clm-h3 {
    font-size: 15.5px;
    color: var(--rk-clm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-clm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Kontroler Suwaka - Pełna szerokość */
.rk-clm-interactive-panel {
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 20px;
    padding: 35px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-clm-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-clm-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-clm-slider-container {
    max-width: 600px;
    margin: 0 auto 20px auto;
    text-align: center;
}

.rk-clm-range {
    width: 100%;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    cursor: pointer;
}

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

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

.rk-clm-current-temp {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-clm-dark);
    margin-top: 15px;
}

/* Liniowa Prezentacja Wyników Termicznych */
.rk-clm-results-layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 16px;
    padding: 30px;
    align-items: center;
}

/* SVG Stanu Klimatycznego */
.rk-clm-svg-box {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-clm-blue-light);
    border-radius: 12px;
    padding: 20px;
    height: 140px;
}

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

/* Wyniki analityczne */
.rk-clm-indicators {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-clm-row {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed var(--rk-clm-border);
    padding-bottom: 10px;
    font-size: 14.5px;
}

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

.rk-clm-lbl {
    color: var(--rk-clm-muted);
    font-weight: 500;
}

.rk-clm-val {
    font-weight: 800;
    color: var(--rk-clm-dark);
}

.rk-clm-val.alert-text {
    color: var(--rk-clm-danger);
}

.rk-clm-val.safe-text {
    color: var(--rk-clm-safe);
}

/* Akapit z pełną treścią inżynieryjną */
.rk-clm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-clm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-clm-text);
}

.rk-clm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-clm-deep-content p:last-child {
    margin: 0;
}

.rk-clm-deep-content strong {
    color: var(--rk-clm-dark);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-clm-header-zone, .rk-clm-app-body, .rk-clm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-clm-h2 { font-size: 20px; }
    .rk-clm-results-layout { grid-template-columns: 1fr; gap: 25px; padding: 20px; }
    .rk-clm-svg-box { height: 100px; }
    .rk-clm-row { flex-direction: column; gap: 4px; }
    .rk-clm-val { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-klimat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?",
    "description": "Analiza wpływu warunków klimatycznych na montaż ogrzewania podłogowego. Normy ITB oraz protokoły pierwszego wygrzewania jastrychów cementowych i anhydrytowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-klimat",
    "name": "Tabela zależności hydratacji i wysychania jastrychów od temperatury otoczenia",
    "description": "Zbiór danych inżynieryjnych określający czas naturalnego wiązania posadzek monolitycznych, poziomy emisji wilgoci technologicznej oraz ryzyko porażenia biologicznego ścian.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalne okno pogodowe podłogówka",
      "czas wysychania jastrychu cementowego",
      "instrukcja ITB nr 422 2006",
      "emisja wilgoci technologicznej z posadzki",
      "protokół wygrzewania PN-EN 1264-4"
    ],
    "measurementTechnique": "Empiryczna i normatywna ocena procesów odparowania wody z mas jastrychowych w zróżnicowanych warunkach termiczno-wilgotnościowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Warunki letnie (powyżej 20 stopni): Czas schnięcia 28 dni, wilgotność względna poniżej 65 procent, ryzyko biologiczne krytycznie niskie.",
        "Warunki zimowe (poniżej 5 stopni): Czas schnięcia wydłużony do 60 dni, odparowanie zablokowane, ryzyko kondensacji i pleśni skrajnie wysokie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-klimat",
    "name": "Symulator Wilgoci Technologicznej i Wiązania Posadzek",
    "description": "Narzędzie interaktywne dedykowane do symulacji czasu schnięcia jastrychów oraz określania poziomu ryzyka kondensacji wilgoci w budynkach w zależności od temperatury otoczenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-climate-main-container" id="rkClimateAppRoot">
    <div class="rk-clm-header-zone">
        <h2 class="rk-clm-h2">Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?</h2>
        <h3 class="rk-clm-h3">Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak wybór konkretnego miesiąca niesie za sobą potężne konsekwencje fizykalne dla budynku. Użyj poniższego suwaka temperatury zewnętrznej, aby sprawdzić, jak klimat modyfikuje czas schnięcia posadzki i stabilność biologiczną konstrukcji.</h3>
    </div>

    <div class="rk-clm-app-body">
        <div class="rk-clm-interactive-panel">
            <div class="rk-clm-h4">Ustaw średnią temperaturę dobową wewnątrz budynku podczas wylewania posadzki:</div>
            <div class="rk-clm-slider-container">
                <input type="range" min="3" max="25" value="20" class="rk-clm-range" id="rkTempSlider">
                <div class="rk-clm-current-temp" id="rkTempDisplay">20°C</div>
            </div>
        </div>

        <div class="rk-clm-results-layout" id="rkClmResultsBlock">
            <div class="rk-clm-svg-box" id="rkClmSvgFrame">
                </div>
            
            <div class="rk-clm-indicators">
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Rekomendowane okno pogodowe:</span>
                    <span class="rk-clm-val" id="clmStatus">Optymalne (Maj &#8211; Wrzesień)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Wymagany czas schnięcia (Jastrych cementowy 60mm):</span>
                    <span class="rk-clm-val" id="clmTime">28 dni (Norma ITB)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Zagrożenie kondensacją i porażeniem biologicznym:</span>
                    <span class="rk-clm-val" id="clmRisk">Brak ryzyka</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Ekonomia pierwszego uruchomienia ogrzewania:</span>
                    <span class="rk-clm-val" id="clmEcon">Wysoka sprawność źródła</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-clm-deep-content">
        <p>Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak optymalne okno pogodowe przypada na okres od maja do września, kiedy temperatura otoczenia i podłoża stabilnie utrzymuje się powyżej <strong>+5°C</strong> dla jastrychów cementowych oraz <strong>+10°C</strong> dla anhydrytowych. Zgodnie z normą <strong>Instrukcji ITB nr 422/2006</strong>, proces naturalnego wiązania i wysychania jastrychu cementowego o grubości 60 mm wymaga minimum <strong>28 dni</strong> w warunkach wilgotności względnej powietrza poniżej 65%.</p>
        
        <p>Technologiczny ciąg zdarzeń musi przebiegać w niezmiennej sekwencji: <strong>Montaż instalacji -> Próba ciśnieniowa (wodna) -> Wylanie jastrychu -> Wiązanie: 28 dni w temperaturze pow. +5°C -> Wygrzewanie płyty</strong>. Próba skrócenia tego procesu lub ignorowanie warunków klimatycznych bezpośrednio uderza w strukturę budynku.</p>
        
        <p>Wykonanie wylewek w listopadzie lub grudniu przy braku uruchomionego źródła ciepła drastycznie wydłuża proces wysychania z 28 dni do nawet <strong>50-60 dni</strong>. Wilgoć technologiczna z posadzki (która dla domu o powierzchni 150 m² wynosi około <strong>1500-2000 litrów wody</strong> wprowadzonej w strukturę budynku) zamiast swobodnie odparować, zaczyna kondensować na chłodnych ścianach i stropach, prowadząc do nieodwracalnego porażenia biologicznego budynku (rozwój grzybów i pleśni w warstwie tynków).</p>
        
        <p>Ponadto, uruchomienie procedury pierwszego wygrzewania jastrychu (zgodnie z protokołem wygrzewania według normy <strong>PN-EN 1264-4</strong>) wymaga zasilenia instalacji wodą o temperaturze <strong>+20°C</strong> przez pierwsze 3 dni, a następnie sukcesywnego podnoszenia temperatury o 5°C na dobę aż do wartości projektowej. Realizacja tego procesu zimą, w nieocieplonym i wychłodzonym budynku, generuje gigantyczne straty energii i jest technicznie skrajnie utrudniona, drastycznie obniżając sprawność startową całego systemu.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkTempSlider');
    var display = document.getElementById('rkTempDisplay');
    var svgFrame = document.getElementById('rkClmSvgFrame');
    
    var clmStatus = document.getElementById('clmStatus');
    var clmTime = document.getElementById('clmTime');
    var clmRisk = document.getElementById('clmRisk');
    var clmEcon = document.getElementById('clmEcon');
    var resultsBlock = document.getElementById('rkClmResultsBlock');

    // Ikony SVG jako czyste łańcuchy tekstowe
    var svgSun = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>';
    var svgCloud = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>';
    var svgSnow = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><line x1="12" y1="2" x2="12" y2="22"/><line x1="2" y1="12" x2="22" y2="12"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/><line x1="4.93" y1="19.07" x2="19.07" y2="4.93"/></svg>';

    function przeliczKlimat(temp) {
        // Bezpieczna struktura instrukcji warunkowych bez operatorów podwójnego ampersandu
        if (temp >= 15) {
            // WARUNKI LETNIE / OPTYMALNE
            display.innerText = temp + "°C";
            display.style.color = "#10b981";
            if (svgFrame) { svgFrame.innerHTML = svgSun; svgFrame.style.background = "#f0fdf4"; }
            
            clmStatus.innerText = "Optymalne (Maj - Wrzesień)";
            clmStatus.className = "rk-clm-val safe-text";
            clmTime.innerText = "28 dni (Zgodnie z instrukcją ITB)";
            clmRisk.innerText = "Krytycznie niskie. Swobodna ewaporacja.";
            clmRisk.className = "rk-clm-val safe-text";
            clmEcon.innerText = "Maksymalna (Naturalne wygrzewanie)";
            clmEcon.className = "rk-clm-val safe-text";
        } else {
            if (temp >= 8) {
                // WARUNKI PRZEJŚCIOWE
                display.innerText = temp + "°C";
                display.style.color = "#f59e0b";
                if (svgFrame) { svgFrame.innerHTML = svgCloud; svgFrame.style.background = "#fffbeb"; }
                
                clmStatus.innerText = "Wymagana ostrożność (Październik)";
                clmStatus.className = "rk-clm-val";
                clmTime.innerText = "35 - 42 dni (Wydłużone schnięcie)";
                clmRisk.innerText = "Umiarkowane. Wymagana intensywna wentylacja.";
                clmRisk.className = "rk-clm-val";
                clmEcon.innerText = "Średnia (Wymuszone dogrzewanie budynku)";
                clmEcon.className = "rk-clm-val";
            } else {
                // WARUNKI ZIMOWE / KRYTYCZNE
                display.innerText = temp + "°C";
                display.style.color = "#ef4444";
                if (svgFrame) { svgFrame.innerHTML = svgSnow; svgFrame.style.background = "#fef2f2"; }
                
                clmStatus.innerText = "Ryzykowne (Listopad - Grudzień)";
                clmStatus.className = "rk-clm-val alert-text";
                clmTime.innerText = "50 - 60 dni (Zablokowana hydratacja)";
                clmRisk.innerText = "Skrajnie wysokie! Ryzyko pleśni i grzybów (1500L wody).";
                clmRisk.className = "rk-clm-val alert-text";
                clmEcon.innerText = "Skrajnie niska (Kosztowne ogrzewanie technologiczne)";
                clmEcon.className = "rk-clm-val alert-text";
            }
        }
    }

    // Inicjalizacja startowa dla 20 stopni
    przeliczKlimat(20);

    // Słuchacz suwaka
    slider.addEventListener('input', function() {
        var t = parseInt(this.value, 10);
        przeliczKlimat(t);
    });
});
</script>



<style>
:root {
    --rk-prm-dark: #0f172a;
    --rk-prm-blue: #0284c7;
    --rk-prm-blue-light: #f0f9ff;
    --rk-prm-border: #e2e8f0;
    --rk-prm-text: #334155;
    --rk-prm-muted: #64748b;
    --rk-prm-optimum: #10b981;
    --rk-prm-compromise: #f59e0b;
    --rk-prm-critical: #ef4444;
}

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

/* Sekcja Wstępna */
.rk-prm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prm-border);
}

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

.rk-prm-h3 {
    font-size: 15.5px;
    color: var(--rk-prm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji Symulatora */
.rk-prm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowe Menu Wyboru - Poziome Zakładki */
.rk-prm-desktop-navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 35px;
}

.rk-prm-nav-tab {
    padding: 18px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-prm-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.25s ease;
}

.rk-prm-nav-tab:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.rk-prm-nav-tab[data-stage="optimum"].active {
    border-color: var(--rk-prm-optimum);
    background: #f0fdf4;
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.15);
}

.rk-prm-nav-tab[data-stage="compromise"].active {
    border-color: var(--rk-prm-compromise);
    background: #fffbeb;
    box-shadow: 0 10px 15px -3px rgba(245, 158, 11, 0.15);
}

.rk-prm-nav-tab[data-stage="critical"].active {
    border-color: var(--rk-prm-critical);
    background: #fef2f2;
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.15);
}

.rk-prm-nav-title {
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-prm-dark);
    margin-bottom: 4px;
}

.rk-prm-nav-status {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.rk-prm-nav-tab[data-stage="optimum"] .rk-prm-nav-status { color: var(--rk-prm-optimum); }
.rk-prm-nav-tab[data-stage="compromise"] .rk-prm-nav-status { color: var(--rk-prm-compromise); }
.rk-prm-nav-tab[data-stage="critical"] .rk-prm-nav-status { color: var(--rk-prm-critical); }

/* Główny Panel Prezentacji Danych (Desktop) */
.rk-prm-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 20px;
    padding: 35px;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja Warstw Posadzki SVG */
.rk-prm-visual-box {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-prm-svg {
    width: 100%;
    max-width: 200px;
    height: auto;
}

/* Siatka Parametrów Technicznych */
.rk-prm-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-prm-metric-card {
    border-bottom: 1px solid var(--rk-prm-border);
    padding-bottom: 12px;
}

.rk-prm-metric-card:nth-last-child(-n+2) {
    border-bottom: none;
    padding-bottom: 0;
}

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

.rk-prm-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-prm-dark);
    line-height: 1.4;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-prm-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-prm-intro-zone, .rk-prm-app-body {
        padding: 30px 20px;
    }
    
    .rk-prm-h2 { font-size: 20px; }
    
    .rk-prm-desktop-navigation, .rk-prm-display-panel {
        display: none;
    }
    
    .rk-prm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-prm-acc-card {
        border: 1px solid var(--rk-prm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-prm-acc-trigger {
        padding: 18px 20px;
        font-weight: 900;
        font-size: 14px;
        color: var(--rk-prm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-prm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-prm-blue);
        font-weight: 500;
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active { border-color: var(--rk-prm-optimum); }
    .rk-prm-acc-card[data-stage="compromise"].active { border-color: var(--rk-prm-compromise); }
    .rk-prm-acc-card[data-stage="critical"].active { border-color: var(--rk-prm-critical); }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger {
        border-bottom: 1px solid var(--rk-prm-border);
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active .rk-prm-acc-trigger { color: var(--rk-prm-optimum); background: #f0fdf4; }
    .rk-prm-acc-card[data-stage="compromise"].active .rk-prm-acc-trigger { color: var(--rk-prm-compromise); background: #fffbeb; }
    .rk-prm-acc-card[data-stage="critical"].active .rk-prm-acc-trigger { color: var(--rk-prm-critical); background: #fef2f2; }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger::after {
        content: '−';
    }
    
    .rk-prm-acc-content {
        display: none;
        padding: 20px;
        background: #ffffff;
    }
    
    .rk-prm-acc-card.active .rk-prm-acc-content {
        display: block;
    }
    
    .rk-prm-metric-card {
        border-bottom: 1px dashed var(--rk-prm-border) !important;
        padding-bottom: 12px !important;
        margin-bottom: 12px;
    }
    
    .rk-prm-metric-card:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
        margin-bottom: 0;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania",
    "description": "Porównanie technicznych i finansowych skutków decyzji inwestora o montażu ogrzewania płaszczyznowego na różnych etapach budowy domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-parametry",
    "name": "Zestawienie fizycznych i wydajnościowych parametrów jastrychów i pomp ciepła",
    "description": "Zbiór danych technicznych i kosztowych mapujący grubość EPS, opór cieplny izolacji, średnice przewodów oraz współczynniki COP w relacji do czasu podjęcia decyzji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubosc izolacji eps WT2021",
      "opor cieplny izolacji podlogi",
      "srednica rury ogrzewania podlogowego",
      "grubosc jastrychu anhydrytowego",
      "wspolczynnik COP pompy ciepla"
    ],
    "measurementTechnique": "Modelowanie symulacyjne sprawności termicznej i hydraulicznej na bazie wytycznych norm PN-EN 1264 oraz WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza projektowa: Izolacja 100-150 mm, opór cieplny powyżej lub równy 3,50, średnica rur fi 16, jastrych 50-60 mm, COP powyżej lub równy 4,5.",
        "Decyzja przed wylewkami: Izolacja 20-40 mm, opór cieplny 0,55-1,10, rury cienkie fi 10-12, jastrych renowacyjny 15-20 mm, COP niski 3,0-3,4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-parametry",
    "name": "Kalkulator Konsekwencji Budowlanych HVAC",
    "description": "Narzędzie interaktywne analizujące zmiany grubości warstw podłogowych oraz parametry efektywności energetycznej źródeł ciepła na osi czasu budowy.",
    "applicationCategory": "InfrastructuralApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-prm-main-container" id="rkParamAppRoot">
    <div class="rk-prm-intro-zone">
        <h2 class="rk-prm-h2">Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania</h2>
        <h3 class="rk-prm-h3">Poniższa aplikacja inżynierska przedstawia szczegółowe, techniczne i finansowe skutki decyzji inwestora w zależności od momentu, w którym zdecydował się na wdrożenie ogrzewania podłogowego. Wybierz odpowiedni etap na desktopie lub rozwiń karty na mobile, aby przeanalizować kluczowe wskaźniki.</h3>
    </div>

    <div class="rk-prm-app-body">
        <div class="rk-prm-desktop-navigation" id="rkPrmTabs">
            <button class="rk-prm-nav-tab active" data-stage="optimum">
                <div class="rk-prm-nav-title">Faza Projektowa</div>
                <div class="rk-prm-nav-status">Optimum</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="compromise">
                <div class="rk-prm-nav-title">Po Stanie Surowym</div>
                <div class="rk-prm-nav-status">Kompromis</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="critical">
                <div class="rk-prm-nav-title">Przed Wylewkami</div>
                <div class="rk-prm-nav-status">Krytyczny</div>
            </button>
        </div>

        <div class="rk-prm-display-panel" id="rkPrmDisplay">
            <div class="rk-prm-visual-box">
                <svg class="rk-prm-svg" viewBox="0 0 120 160" fill="none" xmlns="http://www.w3.org/2000/svg" id="rkPrmSvgObject">
                    </svg>
            </div>
            
            <div class="rk-prm-metrics-grid" id="rkPrmMetricsContainer">
                </div>
        </div>

        <div class="rk-prm-mobile-accordion" id="rkPrmMobileAccordion">
            <div class="rk-prm-acc-card active" data-stage="optimum">
                <div class="rk-prm-acc-trigger">Faza projektowa (Optimum)</div>
                <div class="rk-prm-acc-content" id="rkMContentOptimum"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="compromise">
                <div class="rk-prm-acc-trigger">Planowanie po stanie surowym (Kompromis)</div>
                <div class="rk-prm-acc-content" id="rkMContentCompromise"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="critical">
                <div class="rk-prm-acc-trigger">Decyzja przed samymi wylewkami (Krytyczny)</div>
                <div class="rk-prm-acc-content" id="rkMContentCritical"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inżynierska baza danych parametrów technicznych
    var paramDatabase = {
        'optimum': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="40" fill="#0284c7"/><rect x="10" y="71" width="100" height="80" fill="#cbd5e1"/><circle cx="30" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="60" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="90" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="120" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 150mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "100 - 150 mm (Zgodnie z normą WT2021)" },
                { label: "Opór cieplny izolacji", val: "Większy lub równy 3,50 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 100 / 150 mm" },
                { label: "Wymagany jastrych", val: "50 mm (Anhydryt) lub 60 mm (Beton)" },
                { label: "Wydajność pompy ciepła", val: "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "0,00 PLN" }
            ]
        },
        'compromise': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="30" fill="#0284c7"/><rect x="10" y="61" width="100" height="45" fill="#cbd5e1"/><circle cx="25" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="50" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="75" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="100" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="88" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 70mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "60 - 80 mm (Wymuszone brakiem wysokości)" },
                { label: "Opór cieplny izolacji", val: "1,70 - 2,20 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 150 / 200 mm" },
                { label: "Wymagany jastrych", val: "35 mm (Anhydryt cienkowarstwowy)" },
                { label: "Wydajność pompy ciepła", val: "Średnie COP (3,8 - 4,0 przy zasilaniu 38 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "3 500 - 7 000 PLN (Skuwanie, podcinanie drzwi)" }
            ]
        },
        'critical': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="18" fill="#0284c7"/><rect x="10" y="49" width="100" height="15" fill="#cbd5e1"/><circle cx="20" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="40" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="60" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="80" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="100" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><text x="60" y="61" fill="#ef4444" font-size="9" font-weight="800" text-anchor="middle">Mata Slim 20mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "20 - 40 mm (Mata systemowa slim)" },
                { label: "Opór cieplny izolacji", val: "0,55 - 1,10 m2 K/W (Skrajne straty do gruntu)" },
                { label: "Średnica rury i rozstaw", val: "fi 10 / fi 12 mm (Systemy renowacyjne)" },
                { label: "Wymagany jastrych", val: "15 - 20 mm (Masy samopoziomujące specjalne)" },
                { label: "Wydajność pompy ciepła", val: "Niskie COP (3,0 - 3,4 przy zasilaniu większym lub równym 45 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "15 000 - 35 000 PLN (Frezowanie jastrychu, drogie masy)" }
            ]
        }
    };

    var dMetricsContainer = document.getElementById('rkPrmMetricsContainer');
    var dSvgObject = document.getElementById('rkPrmSvgObject');
    var desktopTabs = document.querySelectorAll('#rkPrmTabs .rk-prm-nav-tab');

    // Funkcja generująca kod HTML dla zestawu parametrów
    function wygenerujKartyParametrow(stageKey) {
        var items = paramDatabase[stageKey].metrics;
        var html = '';
        for (var i = 0; i < items.length; i++) {
            html += '<div class="rk-prm-metric-card">';
            html += '<div class="rk-prm-label">' + items[i].label + '</div>';
            html += '<div class="rk-prm-value">' + items[i].val + '</div>';
            html += '</div>';
        }
        return html;
    }

    // Inicjalizacja pierwszej karty na desktopie (Faza projektowa)
    if (dMetricsContainer) { dMetricsContainer.innerHTML = wygenerujKartyParametrow('optimum'); }
    if (dSvgObject) { dSvgObject.innerHTML = paramDatabase['optimum'].svg; }

    // Wstrzyknięcie pełnych danych strukturalnych do akordeonu mobilnego (SEO + brak pustego drzewa DOM)
    var mobileStages = ['optimum', 'compromise', 'critical'];
    for (var j = 0; j < mobileStages.length; j++) {
        var mBox = document.getElementById('rkMContent' + mobileStages[j].charAt(0).toUpperCase() + mobileStages[j].slice(1));
        if (mBox) {
            mBox.innerHTML = '<div class="rk-prm-metrics-grid">' + wygenerujKartyParametrow(mobileStages[j]) + '</div>';
        }
    }

    // Obsługa przełączania zakładek na Desktopie
    desktopTabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            desktopTabs.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var chosenStage = this.getAttribute('data-stage');
            dMetricsContainer.innerHTML = wygenerujKartyParametrow(chosenStage);
            dSvgObject.innerHTML = paramDatabase[chosenStage].svg;
        });
    });

    // Całkowicie bezpieczna obsługa akordeonów mobilnych bez używania operatorów podwójnego ampersandu
    var accCards = document.querySelectorAll('#rkPrmMobileAccordion .rk-prm-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-prm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-prj-dark: #0f172a;
    --rk-prj-blue: #0284c7;
    --rk-prj-blue-light: #f0f9ff;
    --rk-prj-border: #e2e8f0;
    --rk-prj-text: #334155;
    --rk-prj-text-light: #64748b;
    --rk-prj-accent: #f59e0b;
    --rk-prj-success: #10b981;
}

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

/* Nagłówek i Wstęp */
.rk-prj-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prj-border);
}

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

.rk-prj-h3 {
    font-size: 15.5px;
    color: var(--rk-prj-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Aplikacji / Symulatora */
.rk-prj-workspace {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Krok 1: Wybór posadzki (Pełna szerokość) */
.rk-prj-control-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-prj-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-prj-dark);
    margin: 0 0 20px 0;
}

.rk-posadzka-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.rk-posadzka-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-prj-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

.rk-posadzka-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.rk-posadzka-btn.active {
    border-color: var(--rk-prj-blue);
    background: var(--rk-prj-blue-light);
}

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

.rk-btn-desc {
    font-size: 12.5px;
    color: var(--rk-prj-text-light);
    line-height: 1.4;
}

/* Krok 2: Wizualizacja SVG (Przepływ procesu inżynieryjnego) */
.rk-prj-flow-visual {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-flow-svg {
    width: 100%;
    max-width: 750px;
    height: auto;
}

/* Krok 3: Wyniki obliczeń i Analiza techniczna */
.rk-prj-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.rk-result-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 14px;
    padding: 20px;
    text-align: center;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-prj-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-number {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-prj-blue);
    margin-bottom: 8px;
}

.rk-metric-explanation {
    font-size: 13px;
    color: var(--rk-prj-text);
    line-height: 1.5;
    text-align: left;
}

@media (max-width: 768px) {
    .rk-prj-header, .rk-prj-workspace {
        padding: 30px 20px;
    }
    .rk-prj-h2 { font-size: 20px; }
    .rk-posadzka-options { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-results-grid { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-flow-visual { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-projektowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak wczesne planowanie wpływa na projekt ogrzewania podłogowego",
    "description": "Analiza wpływu oporów cieplnych okładzin podłogowych (płytki vs panele) na rozstaw rur, długość pętli, równoważenie instalacji oraz współczynnik SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-projektowanie",
    "name": "Zależności hydrauliczne i termiczne w projektowaniu instalacji płaszczyznowych",
    "description": "Zbiór danych technicznych i inżynieryjnych opisujący relacje pomiędzy oporami cieplnymi posadzek, rozstawami przewodów a sprawnością pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wplyw posadzki na rozstaw rur",
      "maksymalna dlugosc petli podlogowki",
      "hydrauliczne rownowazenie rotametrow",
      "parametry zasilania pompy ciepla",
      "obliczenia ozc pn-en 12831"
    ],
    "measurementTechnique": "Matematyczna symulacja przepływów hydraulicznych i strat ciśnienia na podstawie wytycznych normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: Opór cieplny 0,02 m2 K/W, projektowa temperatura zasilania 30-32 stopnie Celsjusza.",
        "Panele laminowane: Opór cieplny od 0,07 do 0,12 m2 K/W, rozstaw rur zagęszczony do 100 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-projektowanie",
    "name": "Symulator Zależności Hydrauliczno-Termicznych Podłogówki",
    "description": "Narzędzie inżynieryjne demonstrujące w czasie rzeczywistym zmianę rozstawu rur, parametrów zasilania pętli oraz sprawności źródła ciepła w zależności od wybranej okładziny posadzkowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rkProjectAppBlock">
    <div class="rk-prj-header">
        <h2 class="rk-prj-h2">Wpływ wczesnego planowania na projekt ogrzewania podłogowego</h2>
        <h3 class="rk-prj-h3">Planowanie instalacji na etapie koncepcyjnym bezpośrednio determinuje strukturę techniczną, jaką przyjmie profesjonalny projekt ogrzewania podłogowego. Prawidłowo sporządzony dokument inżynierski nie opiera się na uniwersalnych wskaźnikach typu „100 W/m²” czy „rozstaw co 15 cm w całym domu”. Projekt musi być ściśle zsynchronizowany z Obliczeniowym Zapotrzebowaniem na Ciepło (OZC) budynku, wyznaczonym wg normy PN-EN 12831.</h3>
    </div>

    <div class="rk-prj-workspace">
        <div class="rk-prj-control-card">
            <div class="rk-prj-h4">1. Wybierz planowaną okładzinę podłogową w sypialniach i salonie:</div>
            <div class="rk-posadzka-options">
                <button class="rk-posadzka-btn active" data-type="tiles">
                    <div class="rk-btn-title">Płytki ceramiczne / Gres</div>
                    <div class="rk-btn-desc">Niski opór cieplny (ok. 0,02 m2 K/W). Najwyższa transmisja energii, idealne pod pompę ciepła.</div>
                </button>
                <button class="rk-posadzka-btn" data-type="panels">
                    <div class="rk-btn-title">Panele laminowane / Deska barlinecka</div>
                    <div class="rk-btn-desc">Wysoki opór cieplny (od 0,07 do 0,12 m2 K/W). Wymaga zagęszczenia pętli i korekty hydrauliki.</div>
                </button>
            </div>
        </div>

        <div class="rk-prj-flow-visual">
            <svg class="rk-flow-svg" viewBox="0 0 700 80" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="5" y="15" width="100" height="50" rx="8" fill="#0f172a"/>
                <text x="55" y="45" fill="#ffffff" font-size="12" font-weight="800" text-anchor="middle">Wynik OZC</text>
                
                <path d="M115 40 H135" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="135,40 128,35 128,45" fill="#0284c7"/>
                
                <rect x="145" y="15" width="130" height="50" rx="8" fill="#0284c7" id="svgStepPosadzka"/>
                <text x="210" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle" id="svgTextPosadzka">Rozstaw: 150 mm</text>
                
                <path d="M285 40 H305" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="305,40 298,35 298,45" fill="#0284c7"/>
                
                <rect x="315" y="15" width="120" height="50" rx="8" fill="#0284c7"/>
                <text x="375" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Długość pętli max 100m</text>
                
                <path d="M445 40 H465" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="465,40 458,35 458,45" fill="#0284c7"/>
                
                <rect x="475" y="15" width="100" height="50" rx="8" fill="#0284c7"/>
                <text x="525" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Obliczenie V i dP</text>
                
                <path d="M585 40 H605" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="605,40 598,35 598,45" fill="#0284c7"/>
                
                <rect x="615" y="15" width="80" height="50" rx="8" fill="#10b981" id="svgStepPump"/>
                <text x="655" y="45" fill="#ffffff" font-size="11" font-weight="800" text-anchor="middle" id="svgTextPump">COP max</text>
            </svg>
        </div>

        <div class="rk-prj-results-grid" id="rkPrjResultsGrid">
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Projektowany rozstaw rur</div>
                <div class="rk-metric-number" id="valRozstaw">150 mm</div>
                <div class="rk-metric-explanation" id="descRozstaw">Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w salonie jest w pełni wystarczający do pokrycia strat ciepła z OZC budynków.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Zrównoważenie hydrauliczne</div>
                <div class="rk-metric-number" id="valHydr">Stabilne</div>
                <div class="rk-metric-explanation" id="descHydr">Precyzyjne wyznaczenie długości pętli (maksymalnie 100 m dla średnicy fi 16) eliminuje strefy niedogrzane. Przepływy są równomierne na rotometrach.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Wpływ na pompę ciepła</div>
                <div class="rk-metric-number" id="valPompa">Zasilanie 30-35°C</div>
                <div class="rk-metric-explanation" id="descPompa">Niska temperatura zasilania pozwala pompie ciepła pracować w najwyższym punkcie sprawności (SCOP), minimalizując roczne koszty energii.</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var optionButtons = document.querySelectorAll('.rk-posadzka-btn');
    
    var valRozstaw = document.getElementById('valRozstaw');
    var descRozstaw = document.getElementById('descRozstaw');
    var valHydr = document.getElementById('valHydr');
    var descHydr = document.getElementById('descHydr');
    var valPompa = document.getElementById('valPompa');
    var descPompa = document.getElementById('descPompa');
    
    var svgTextPosadzka = document.getElementById('svgTextPosadzka');
    var svgStepPosadzka = document.getElementById('svgStepPosadzka');
    var svgStepPump = document.getElementById('svgStepPump');
    var svgTextPump = document.getElementById('svgTextPump');

    optionButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            optionButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var currentType = this.getAttribute('data-type');
            
            if (currentType === 'tiles') {
                // Konfiguracja dla Płytek Ceramicznych
                valRozstaw.innerText = "150 mm";
                valRozstaw.style.color = "#0284c7";
                descRozstaw.innerHTML = "Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w zupełności wystarczy do pokrycia strat ciepła. Pozwala to na zachowanie standardowych długości pętli bez dławienia przepływów.";
                
                valHydr.innerText = "Stabilne";
                valHydr.style.color = "#0284c7";
                descHydr.innerHTML = "Projekt określa precyzyjne nastawy na rotometrach rozdzielacza w litrach na minutę. Bez projektu ułożenie pętli grozi przegrzaniem salonu i niedogrzaniem łazienki.";
                
                valPompa.innerText = "Zasilanie 30-35°C";
                valPompa.style.color = "#10b981";
                descPompa.innerHTML = "Zoptymalizowana podłogówka projektowana pod niskie parametry pozwala pompie ciepła pracować w najwyższym punkcie sprawności SCOP. Brak strat energii.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Rozstaw: 150 mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#0284c7'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#10b981'); }
                if (svgTextPump) { svgTextPump.innerText = "COP max"; }
                
            } else {
                // Konfiguracja dla Paneli Laminowanych
                valRozstaw.innerText = "100 mm";
                valRozstaw.style.color = "#f59e0b";
                descRozstaw.innerHTML = "Opór cieplny paneli z podkładem wynosi od 0,07 do 0,12 m2 K/W. Aby skompensować ten opór, projektant zagęszcza rozstaw rur w sypialniach do 100 mm, zachowując niską temperaturę wody.";
                
                valHydr.innerText = "Korekta oporów";
                valHydr.style.color = "#f59e0b";
                descHydr.innerHTML = "Zagęszczenie rur zwiększa długość pętli. Jeśli obwód przekroczy 100 m, opór hydrauliczny zablokuje przepływ. Projektant dzieli pokój na dwie pętle, aby pompa dała radę tłoczyć czynnik.";
                
                valPompa.innerText = "Spadek COP o 3%";
                valPompa.style.color = "#ef4444";
                descPompa.innerHTML = "Każde podniesienie temperatury zasilania o 1 stopień z powodu błędów w rozstawie i braku obliczeń OZC skutkuje wzrostem zużycia prądu przez pompę o około 2-3 procent w skali roku.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Zagęszczenie: 100mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#f59e0b'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#ef4444'); }
                if (svgTextPump) { svgTextPump.innerText = "COP spada"; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-blue-light: #f0f9ff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-text-muted: #64748b;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-red-text: #991b1b;
}

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

/* Sekcja Wstępna */
.rk-err-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

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

.rk-err-h3 {
    font-size: 15.5px;
    color: var(--rk-err-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji */
.rk-err-body-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowy Selektor - Układ poziomy na pełną szerokość */
.rk-err-desktop-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-err-tab-btn {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.rk-err-tab-btn:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.rk-err-tab-btn.active {
    background: var(--rk-err-dark);
    border-color: var(--rk-err-dark);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.2);
}

.rk-err-tab-btn .rk-tab-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-err-blue);
    font-weight: 700;
}

.rk-err-tab-btn.active .rk-tab-badge {
    color: #38bdf8;
}

/* Liniowy Panel Informacyjny (Desktop) */
.rk-err-fullwidth-display {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

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

.rk-err-graphic-frame {
    width: 70px;
    height: 70px;
    background: var(--rk-err-red-bg);
    border: 1px solid var(--rk-err-red-border);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-red-text);
    flex-shrink: 0;
}

.rk-err-graphic-frame svg {
    width: 36px;
    height: 36px;
}

.rk-err-display-titles {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

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

.rk-err-p-consequence {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #ef4444;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

.rk-err-display-content-text strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-err-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-err-intro-bar, .rk-err-body-wrapper {
        padding: 30px 20px;
    }
    
    .rk-err-h2 { font-size: 20px; }
    
    .rk-err-desktop-tabs, .rk-err-fullwidth-display { 
        display: none; 
    }
    
    .rk-err-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-err-acc-card {
        border: 1px solid var(--rk-err-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-err-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-err-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-err-acc-trigger::after {
        content: '+';
        font-size: 20px;
        color: #ef4444;
        font-weight: 400;
    }
    
    .rk-err-acc-card.active {
        border-color: #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger {
        background: var(--rk-err-red-bg);
        color: var(--rk-err-red-text);
        border-bottom: 1px solid #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger::after {
        content: '−';
        color: var(--rk-err-red-text);
    }
    
    .rk-err-acc-content {
        display: none;
        padding: 22px 20px;
        background: #ffffff;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-err-text);
    }
    
    .rk-err-acc-card.active .rk-err-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego",
    "description": "Analiza krytycznych błędów montażowych podłogówki: brak dylatacji, za długie pętle rur, klawiszowanie styropianu oraz pozorne próby ciśnieniowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-bledy",
    "name": "Katalog Wad Wykonawczych i Awarii Hydraulicznych Płaszczyzn",
    "description": "Zbiór danych technicznych i normatywnych definiujących mechaniczne skutki nieprawidłowego montażu rur grzewczych i jastrychów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak dylatacji strefowych podłogówki",
      "maksymalna długość pętli rury fi 16",
      "klawiszowanie styropianu przyczyny",
      "norma PN-EN 1264-4 dylatacje",
      "próba ciśnieniowa podłogówki wodą"
    ],
    "measurementTechnique": "Analiza diagnostyczna i techniczno-budowlana procesów destrukcji monolitycznych płyt grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wada 1: Pominięcie szczelin dylatacyjnych przy polach powyżej 40 m2 - pękanie kafli.",
        "Wada 2: Przekroczenie długości obwodu rury powyżej 100 metrów - wysokie opory i zimna posadzka.",
        "Wada 3: Układanie płyt izolacyjnych na nierównym podłożu - pionowa praca wylewki.",
        "Wada 4: Test powietrzem 2 bary zamiast wody 6 bar - ukryte mikropęknięcia rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-bledy",
    "name": "Inspektor Wad i Patologii Wykonawczych HVAC",
    "description": "Aplikacja internetowa wizualizująca i opisująca fizyczne konsekwencje ignorowania procedur montażowych instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-main-container" id="rkErrorsAppRoot">
    <div class="rk-err-intro-bar">
        <h2 class="rk-err-h2">Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego</h2>
        <h3 class="rk-err-h3">Opóźnienie procesu projektowego i decyzyjnego generuje lawinę błędów, które są niemożliwe do skorygowania po zalaniu betonem. Poniższa interaktywna lista przedstawia najczęstsze patologie wykonawcze spotykane na budowach, gdzie podłogówkę planowano „w locie”.</h3>
    </div>

    <div class="rk-err-body-wrapper">
        <div class="rk-err-desktop-tabs" id="rkErrTabsContainer">
            <button class="rk-err-tab-btn active" data-error="1">
                <span class="rk-tab-badge">Patologia 01</span>
                <span>Brak dylatacji</span>
            </button>
            <button class="rk-err-tab-btn" data-error="2">
                <span class="rk-tab-badge">Patologia 02</span>
                <span>Za długie pętle</span>
            </button>
            <button class="rk-err-tab-btn" data-error="3">
                <span class="rk-tab-badge">Patologia 03</span>
                <span>Złe podłoże</span>
            </button>
            <button class="rk-err-tab-btn" data-error="4">
                <span class="rk-tab-badge">Patologia 04</span>
                <span>Pozorny test</span>
            </button>
        </div>

        <div class="rk-err-fullwidth-display" id="rkErrMainDisplay">
            <div class="rk-err-display-header">
                <div class="rk-err-graphic-frame" id="rkErrDisplayIcon">
                    </div>
                <div class="rk-err-display-titles">
                    <h4 class="rk-err-h4" id="rkErrDisplayTitle">Brak dylatacji strefowych i brzegowych</h4>
                    <p class="rk-err-p-consequence">Skutek: Pękanie płyty i zrywanie płytek</p>
                </div>
            </div>
            <p class="rk-err-display-content-text" id="rkErrDisplayBody">
                </p>
        </div>

        <div class="rk-err-mobile-accordion" id="rkErrMobileAccordion">
            <div class="rk-err-acc-card active" data-error="1">
                <div class="rk-err-acc-trigger">1. Brak dylatacji strefowych i brzegowych</div>
                <div class="rk-err-acc-content" id="rkMError1"></div>
            </div>
            <div class="rk-err-acc-card" data-error="2">
                <div class="rk-err-acc-trigger">2. Przekraczanie maksymalnych długości pętli</div>
                <div class="rk-err-acc-content" id="rkMError2"></div>
            </div>
            <div class="rk-err-acc-card" data-error="3">
                <div class="rk-err-acc-trigger">3. Mocowanie rur do nieprzygotowanego podłoża</div>
                <div class="rk-err-acc-content" id="rkMError3"></div>
            </div>
            <div class="rk-err-acc-card" data-error="4">
                <div class="rk-err-acc-trigger">4. Niezrobienie lub pozorna próba ciśnieniowa</div>
                <div class="rk-err-acc-content" id="rkMError4"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych o błędach montażowych
    var errorsDatabase = {
        1: {
            title: "Brak dylatacji strefowych i brzegowych",
            consequence: "Skutek: Pękanie płyty i zrywanie płytek",
            body: "Zgodnie z restrykcyjną normą <strong>PN-EN 1264-4</strong>, każda płyta grzewcza jastrychu o powierzchni powyżej <strong>40 metrów kwadratowych</strong> lub o długości boku przekraczającej <strong>8 metrów</strong> musi zostać bezwzględnie oddzielona szczeliną dylatacyjną. Podobnie dylatacja konstrukcyjna musi pojawić się w każdym progu drzwiowym. Całkowity brak dylatacji lub jej nieprawidłowe wykonanie skutkuje niekontrolowanym pękaniem jastrychu oraz zrywaniem okładzin ceramicznych i gresów pod wpływem ciągłej rozszerzalności cieplnej materiału.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M12 11l-2 2 4 2-2 2v5M3 12h18"/></svg>'
        },
        2: {
            title: "Przekraczanie maksymalnych długości pętli",
            consequence: "Skutek: Ogromny opór hydrauliczny i zimna posadzka",
            body: "Układanie pętli grzewczych o długości rzędu <strong>130-150 metrów</strong> z rury o średnicy szesnastu milimetrów (fi 16) w celu pozornego zaoszczędzenia na sekcjach rozdzielacza to kardynalny błąd. Skutkuje to wygenerowaniem gigantycznego oporu hydraulicznego w instalacji. Pompa obiegowa wchodzi wówczas w zakres maksymalnej, nieekonomicznej pracy, drastycznie rośnie zużycie energii elektrycznej, a końcowe metry obwodu grzewczego w pomieszczeniu pozostają całkowicie zimne.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4v16h16V4H4zm4 4h8v8H8V8z"/></svg>'
        },
        3: {
            title: "Mocowanie rur do nieprzygotowanego podłoża",
            consequence: "Skutek: Klawiszowanie styropianu i pękanie wylewki",
            body: "Układanie płyt styropianowych na nierównym, nieuprzątniętym chudym betonie (np. z zaschniętymi grudami zaprawy po murowaniu ścian) powoduje tak zwane <strong>klawiszowanie styropianu</strong>. Izolacja termiczna ugina się i pracuje pionowo pod naciskiem. Po wylaniu betonu i uruchomieniu ogrzewania podłogowego, cała płyta grzewcza zaczyna drgać w pionie, co bezpośrednio prowadzi do jej pękania w miejscach, gdzie pod izolacją znajdowały się puste przestrzenie i bąble powietrza.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18M3 16h6M9 13h6M15 10h6"/></svg>'
        },
        4: {
            title: "Niezrobienie lub pozorna próba ciśnieniowa",
            consequence: "Skutek: Ukryte wycieki pod betonem i zalanie budynku",
            body: "Wykonanie testu szczelności zwykłym powietrzem z kompresora o niskim ciśnieniu (np. 2 bary) zamiast wymaganej normowo <strong>próby wodnej pod ciśnieniem 0,6 MPa (6 bar) przez minimum 24 godziny</strong> przed i w trakcie prac betoniarskich to ogromne ryzyko. Jastrych anhydrytowy lub cementowy musi być wylewany w momencie, gdy rury są pod pełnym ciśnieniem roboczym, dzięki czemu ich średnica jest naturalnie napięta i odporna na ściskanie podczas wiązania mieszanki.",
            svg: '<svg 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"/><line x1="12" y1="12" x2="16" y2="8"/><path d="M12 16v.01"/></svg>'
        }
    };

    var dTitle = document.getElementById('rkErrDisplayTitle');
    var dConsequence = document.querySelector('.rk-err-p-consequence');
    var dBody = document.getElementById('rkErrDisplayBody');
    var dIcon = document.getElementById('rkErrDisplayIcon');
    var tabButtons = document.querySelectorAll('#rkErrTabsContainer .rk-err-tab-btn');

    // Funkcja aktualizacji liniowego panelu na desktopie
    function aktualizujPanelDesktop(id) {
        if (dTitle) { dTitle.innerText = errorsDatabase[id].title; }
        if (dConsequence) { dConsequence.innerText = errorsDatabase[id].consequence; }
        if (dBody) { dBody.innerHTML = errorsDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = errorsDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji dla desktopu
    aktualizujPanelDesktop(1);

    // Dynamiczne wstrzyknięcie tekstów do wersji mobilnej (gwarancja indeksacji SEO)
    for (var i = 1; i <= 4; i++) {
        var mContentContainer = document.getElementById('rkMError' + i);
        if (mContentContainer) {
            var contentHtml = '<p style="margin: 0 0 8px 0; font-weight:700; color:#ef4444; font-size:12px; text-transform:uppercase;">' + errorsDatabase[i].consequence + '</p>';
            contentHtml += '<p style="margin:0; line-height:1.6;">' + errorsDatabase[i].body + '</p>';
            mContentContainer.innerHTML = contentHtml;
        }
    }

    // Obsługa kliknięć zakładek na Desktopie
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-error');
            aktualizujPanelDesktop(id);
        });
    });

    // Bezpieczna obsługa akordeonu na Mobilu (całkowity brak operatorów typu ampersand)
    var accCards = document.querySelectorAll('#rkErrMobileAccordion .rk-err-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-err-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Sekcja Wstępna */
.rk-cas-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-cas-border);
    display: block;
}

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

.rk-cas-h3 {
    font-size: 15.5px;
    color: var(--rk-cas-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Korpus Interaktywnego Studium */
.rk-cas-workspace {
    padding: 40px 50px;
    background: var(--rk-cas-light);
    display: block;
}

/* Metryka Projektu - Tabela Inżynierska */
.rk-cas-spec-card {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
    display: block;
}

.rk-cas-h4 {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-cas-dark);
    margin: 0 0 20px 0;
    display: block;
}

.rk-cas-spec-table {
    display: table;
    width: 100%;
}

.rk-cas-spec-row {
    display: table-row;
}

.rk-cas-spec-cell {
    display: table-cell;
    padding: 10px 15px;
    font-size: 14px;
    border-bottom: 1px solid var(--rk-cas-border);
}

.rk-cas-spec-row:last-child .rk-cas-spec-cell {
    border-bottom: none;
}

.rk-cas-cell-label {
    font-weight: 700;
    color: var(--rk-cas-muted);
    width: 35%;
}

.rk-cas-cell-value {
    color: var(--rk-cas-dark);
    font-weight: 800;
}

/* Selektor Etapów Harmonogramu (Desktop) */
.rk-cas-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-cas-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cas-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji */
}

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

/* Panel Wyświetlania Fazy Harmonogramu */
.rk-cas-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 20px;
    padding: 35px;
    display: block;
}

.rk-cas-panel-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cas-dark);
    margin: 0 0 15px 0;
    display: block;
}

.rk-cas-panel-text {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-cas-text);
    margin: 0;
    display: block;
}

.rk-cas-panel-text strong {
    color: var(--rk-cas-dark);
    font-weight: 700;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-cas-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-cas-intro-bar, .rk-cas-workspace {
        padding: 30px 20px;
    }
    
    .rk-cas-h2 { font-size: 20px; }
    .rk-cas-spec-cell { display: block; width: 100% !important; padding: 6px 0; }
    .rk-cas-spec-cell:first-child { border-bottom: none; }
    .rk-cas-spec-row { display: block; border-bottom: 1px solid var(--rk-cas-border); padding: 6px 0; }
    .rk-cas-spec-row:last-child { border-bottom: none; }
    
    .rk-cas-tabs-row, .rk-cas-display-panel {
        display: none;
    }
    
    .rk-cas-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-cas-acc-item {
        border: 1px solid var(--rk-cas-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-cas-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-cas-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-cas-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-cas-blue);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger {
        background: var(--rk-cas-blue);
        color: #ffffff;
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-cas-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-cas-light);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-cas-text);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m2 – Inżynier Robert Kucharski",
    "description": "Praktyczne studium przypadku inwestycji Anny i Tomasza. Zobacz, jak Robert Kucharski zaplanował etapy montażu ogrzewania płaszczyznowego dla domu 180 m2 przed wylaniem fundamentów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "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-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-case-study",
    "name": "Model symulacji chronologii prac instalacyjnych dla budynków parterowych",
    "description": "Zbiór zmiennych inżynieryjnych i kroków wykonawczych przypisanych do budowy domu o kubaturze i powierzchni 180 m2, analizujący krytyczne punkty styku instalacji HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "harmonogram ogrzewania podłogowego dom parterowy",
      "ogrzewanie podłogowe dom 180m2 koszt",
      "audyt ozc przed fundamentami",
      "konflikt poziomów wylewki case study",
      "inżynierskie planowanie hvac"
    ],
    "measurementTechnique": "Modelowanie sekwencyjne i chronologiczna weryfikacja procesów budowlanych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza przedfundamentowa: Wykonanie obliczeń OZC i określenie grubości styropianu w celu rezerwacji wysokości.",
        "Faza stanu zamkniętego: Montaż rozdzielaczy i pętli po wykonaniu tynków, przed wylewkami anhydrytowymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-case-study",
    "name": "Nawigator Chronologii Wykonawczej Case Study",
    "description": "Interaktywny asystent etapów budowy domu Tomasza i Anny, służący do weryfikacji punktów kontrolnych przed zalaniem pętli podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-main-container" id="rkCaseStudyApp">
    <div class="rk-cas-intro-bar">
        <h2 class="rk-cas-h2">Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m²</h2>
        <h3 class="rk-cas-h3">Zdaniem Roberta Kucharskiego, najlepszą metodą na zrozumienie fizyki budowli jest analiza żywego organizmu inwestycji. Poznaj historię Tomasza (34 lata) i Anny (32 lata), którzy zgłosili się do mojego biura inżynierskiego po zakupie działki i uzyskaniu warunków zabudowy. Mając gotowy projekt architektoniczny domu parterowego o powierzchni 180 m², stanęli przed wyzwaniem: jak bezbłędnie zgrać montaż ogrzewania podłogowego z nadchodzącymi pracami fundamentowymi?</h3>
    </div>

    <div class="rk-cas-workspace">
        <div class="rk-cas-spec-card">
            <div class="rk-cas-h4">Metryka techniczna analizowanego budynku:</div>
            <div class="rk-cas-spec-table">
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Inwestorzy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Tomasz (34 l.) i Anna (32 l.)</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Typ budynku / Powierzchnia:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Parterowy, bez podpiwniczenia / 180 metrów kwadratowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Etap początkowy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Po adaptacji, przed rozpoczęciem prac ziemnych i fundamentowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Źródło ciepła:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Inwerterowa pompa ciepła powietrze-woda</div>
                </div>
            </div>
        </div>

        <div class="rk-cas-tabs-row" id="rkCasTabs">
            <button class="rk-cas-tab-btn active" data-phase="1">Faza 1: Przed Fundamentem</button>
            <button class="rk-cas-tab-btn" data-phase="2">Faza 2: Stan Zamknięty</button>
            <button class="rk-cas-tab-btn" data-phase="3">Faza 3: Próba i Jastrych</button>
        </div>

        <div class="rk-cas-display-panel" id="rkCasDisplay">
            <h4 class="rk-cas-panel-title" id="rkCasTitle">Faza 1: Blokada wysokości i obliczenia OZC</h4>
            <p class="rk-cas-panel-text" id="rkCasBody">Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych.</p>
        </div>

        <div class="rk-cas-mobile-accordion" id="rkCaseMobileAccordion">
            <div class="rk-cas-acc-item active" data-phase="1">
                <div class="rk-cas-acc-trigger">Faza 1: Przed Fundamentem (Projektowanie)</div>
                <div class="rk-cas-acc-content" id="rkMCase1"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="2">
                <div class="rk-cas-acc-trigger">Faza 2: Stan Zamknięty i Tynki</div>
                <div class="rk-cas-acc-content" id="rkMCase2"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="3">
                <div class="rk-cas-acc-trigger">Faza 3: Próba wodna i zalewanie jastrychu</div>
                <div class="rk-cas-acc-content" id="rkMCase3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych faz harmonogramu dla Case Study
    var caseDatabase = {
        1: {
            title: "Faza 1: Blokada wysokości i obliczenia OZC",
            text: "Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych."
        },
        2: {
            title: "Faza 2: Stan Zamknięty, Piony i Tynkowanie",
            text: "Po wybudowaniu ścian i dachu, wstawieniu okien oraz zamknięciu drzwi, dom parterowy osiągnął pożądany stan surowy zamknięty. W maju 2026 roku ekipa hydrauliczna rozłożyła piony kanalizacyjne oraz rury wody użytkowej na chudym betonie. Następnie tynkarze otynkowali ściany wewnętrzne. Dzięki zachowaniu tej kolejności, <strong>pętle ogrzewania podłogowego ułożone na czystym styropianie</strong> dwa tygodnie później były całkowicie wolne od ryzyka zabrudzenia chemicznego czy zniszczenia przez ciężkie rusztowania."
        },
        3: {
            title: "Faza 3: Próba wodna 6 bar i jastrych anhydrytowy",
            text: "W czerwcu 2026 roku ułożono 1800 metrów bieżących rury wielowarstwowej fi 16 mm w rozstawie zoptymalizowanym (100 mm w łazienkach, 150 mm w salonie i sypialniach). Przed wejściem ekipy posadzkarskiej, przeprowadziłem <strong>24-godzinną próba szczelności wodą pod ciśnieniem 0,6 MPa (6 bar)</strong>. Cała posadzka została zalana płynnym jastrychem anhydrytowym o wysokiej przewodności cieplnej, gdy instalacja znajdowała się pod pełnym ciśnieniem. Po 21 dniach jastrych był gotowy do procedury wygrzewania, gwarantując pompie ciepła maksymalny współczynnik COP."
        }
    };

    var dTitle = document.getElementById('rkCasTitle');
    var dBody = document.getElementById('rkCasBody');
    var tabButtons = document.querySelectorAll('#rkCasTabs .rk-cas-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelCase(id) {
        if (dTitle) { dTitle.innerText = caseDatabase[id].title; }
        if (dBody) { dBody.innerHTML = caseDatabase[id].text; }
    }

    // Inicjalizacja startowa dla kroku 1
    aktualizujPanelCase(1);

    // Napełnienie wersji mobilnej (SEO stabilność i indeksacja)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMCase' + i);
        if (mBox) {
            var html = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + caseDatabase[i].text + '</p>';
            mBox.innerHTML = html;
        }
    }

    // Obsługa zakładek na Desktopie (Brak animacji, natychmiastowy przeskok)
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-phase');
            aktualizujPanelCase(id);
        });
    });

    // Obsługa akordeonu pionowego na Mobilu (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkCaseMobileAccordion .rk-cas-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-cas-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Sekcja Profilowa i Cytat Manifestu */
.rk-aut-profile-section {
    padding: 45px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-aut-border);
    display: block;
}

/* Klasyczny układ tabelaryczny dla zachowania pełnej stabilności i braku błędów parsera */
.rk-aut-table-layout {
    display: table;
    width: 100%;
}

.rk-aut-table-row {
    display: table-row;
}

.rk-aut-photo-cell {
    display: table-cell;
    width: 160px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-aut-expert-avatar {
    width: 160px;
    height: 160px;
    border-radius: 16px;
    object-fit: cover;
    border: 1px solid var(--rk-aut-border);
    display: block;
}

.rk-aut-content-cell {
    display: table-cell;
    vertical-align: top;
}

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

.rk-aut-h3 {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-aut-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

.rk-aut-manifesto-quote {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--rk-aut-dark);
    margin: 0 0 20px 0;
    border-left: 4px solid var(--rk-aut-blue);
    padding-left: 20px;
}

/* Linki Społecznościowe E-E-A-T */
.rk-aut-social-channels {
    display: block;
    margin-top: 15px;
}

.rk-aut-link {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-aut-text);
    text-decoration: none;
    margin-right: 25px;
    border-bottom: 1px solid var(--rk-aut-border);
    padding-bottom: 2px;
}

.rk-aut-link:hover {
    color: var(--rk-aut-blue);
    border-color: var(--rk-aut-blue);
}

.rk-aut-link svg {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    fill: currentColor;
}

/* Obszar Interaktywnych Kryteriów Inżynieryjnych (Liniowy) */
.rk-aut-workspace {
    padding: 40px 50px;
    background: var(--rk-aut-bg-card);
    display: block;
}

.rk-aut-selector-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-aut-tab-button {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--rk-aut-dark);
    line-height: 1.4;
}

.rk-aut-tab-button:hover {
    background: #f1f5f9;
}

.rk-aut-tab-button.active {
    background: var(--rk-aut-dark);
    border-color: var(--rk-aut-dark);
    color: #ffffff;
}

/* Panel Wyświetlania Treści Kryterium */
.rk-aut-info-panel {
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 16px;
    padding: 30px 35px;
}

.rk-aut-panel-h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-aut-dark);
}

.rk-aut-panel-text {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-aut-text);
    margin: 0;
}

.rk-aut-panel-text strong {
    color: var(--rk-aut-dark);
    font-weight: 700;
}

/* Adaptacja Mobilna */
@media (max-width: 768px) {
    .rk-aut-profile-section, .rk-aut-workspace {
        padding: 30px 20px;
    }
    
    .rk-aut-table-layout, .rk-aut-table-row, .rk-aut-photo-cell, .rk-aut-content-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-aut-photo-cell {
        margin-bottom: 20px;
        text-align: center;
    }
    
    .rk-aut-expert-avatar {
        margin: 0 auto;
    }
    
    .rk-aut-h2 { font-size: 20px; text-align: center; }
    .rk-aut-h3 { text-align: center; }
    
    .rk-aut-social-channels {
        text-align: center;
    }
    .rk-aut-link { margin: 0 10px 10px 10px; }
    
    /* Układ Pionowy dla Przycisków na Mobilu (Akordeon) */
    .rk-aut-selector-bar {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    
    .rk-aut-info-panel {
        padding: 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-autorytet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Ekspert Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu",
    "description": "Autorski manifest i kryteria inżynieryjne projektanta HVAC Roberta Kucharskiego dotyczące planowania struktur grzewczych w fazie koncepcyjnej.",
    "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/projektogrzewaniapl/",
        "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-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-autorytet",
    "name": "Wytyczne projektowe i kryteria kwalifikacji hydraulicznej instalacji",
    "description": "Zbiór eksperckich reguł i założeń technicznych stosowanych przez Roberta Kucharskiego przy wdrożeniach ogrzewania płaszczyznowego niskich parametrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "Robert Kucharski ekspert hvac",
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "projekt ogrzewania podlogowego rzetelny",
      "obliczenia zapotrzebowania cieplnego budynkow",
      "standardy inżynieryjne podłogówka"
    ],
    "measurementTechnique": "Autorska kwalifikacja procesowa oparta na analizie ponad tysiąca wykonanych projektów hydraulicznych i auditów OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kryterium OZC: Absolutny zakaz projektowania pętli bez wyznaczonych strat ciepła wg PN-EN 12831.",
        "Kryterium Rezerwy: Wymóg zabezpieczenia od 160 do 220 mm wysokości podłogi na etapie adaptacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-autorytet",
    "name": "Asystent Manifestu Inżynieryjnego Roberta Kucharskiego",
    "description": "Interaktywny panel prezentujący autorskie kryteria doboru i weryfikacji instalacji płaszczyznowych pod kątem optymalizacji SGE i GEO.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-authority-main-box" id="rkAuthorityBlock">
    <div class="rk-aut-profile-section">
        <div class="rk-aut-table-layout">
            <div class="rk-aut-table-row">
                <div class="rk-aut-photo-cell">
                    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Projektant Projekt-Ogrzewania.pl" class="rk-aut-expert-avatar">
                </div>
                
                <div class="rk-aut-content-cell">
                    <h2 class="rk-aut-h2">Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</h2>
                    <div class="rk-aut-h3">Założyciel Projekt-Ogrzewania.pl | Projektant systemów HVAC</div>
                    
                    <div class="rk-aut-manifesto-quote">
                        Zdaniem Roberta Kucharskiego, odwlekanie decyzji o strukturze ogrzewania płaszczyznowego do momentu zakończenia stanu surowego to najprostsza droga do drastycznego obniżenia sprawności całego układu. Profesjonalny projekt ogrzewania podłogowego nie jest dodatkiem do budowy – jest jej integralnym fundamentem architektonicznym.
                    </div>
                    
                    <div class="rk-aut-social-channels">
                        <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c4.56-.93 8-4.96 8-9.75z"></path></svg>
                            Oficjalny Facebook
                        </a>
                        <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.8v8h2.8v-4.16c0-.22.04-.45.1-.6a1.14 1.14 0 0 1 1-.77c.66 0 1 .5 1 1.27v4.26h2.78M7 9.14a1.37 1.34 0 1 0-2.74 0 1.37 1.34 0 0 0 2.74 0M8.4 18.5v-8H5.6v8h2.8z"></path></svg>
                            Profil LinkedIn
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-aut-workspace">
        <div class="rk-aut-selector-bar" id="rkAutTabsContainer">
            <button class="rk-aut-tab-button active" data-criterion="1">Filary OZC</button>
            <button class="rk-aut-tab-button" data-criterion="2">Zasada Wysokości</button>
            <button class="rk-aut-tab-button" data-criterion="3">Złoty Harmonogram</button>
        </div>

        <div class="rk-aut-info-panel" id="rkAutDisplayPanel">
            <h4 class="rk-aut-panel-h4" id="rkAutPanelTitle">Bezwzględny wymóg obliczeń OZC budynku</h4>
            <p class="rk-aut-panel-text" id="rkAutPanelText">Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na obliczeniach zapotrzebowania energetycznego poszczególnych stref (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych kryteriów Roberta Kucharskiego (Czysty tekst bez znaków specjalnych)
    var criterionDatabase = {
        1: {
            title: "Bezwzględny wymóg obliczeń OZC budynku",
            text: "Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na <strong>obliczeniach zapotrzebowania energetycznego poszczególnych stref</strong> (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła."
        },
        2: {
            title: "Ochrona przed konfliktem poziomów posadzki",
            text: "Planowanie podłogówki na etapie adaptacji projektu architektonicznego to jedyna szansa na zachowanie <strong>właściwej rezerwy wysokościowej (od 16 do 22 cm)</strong>. Spóźnienie się z decyzją skutkuje dramatycznym odchudzeniem styropianu na gruncie, potężnymi stratami energii w dół i spadkiem współczynnika COP źródła ciepła."
        },
        3: {
            title: "Żelazna chronologia branż instalacyjnych",
            text: "Pętle grzewcze muszą zostać ułożone w stanie surowym zamkniętym, precyzyjnie <strong>po pionach kanalizacyjnych i tynkach wewnętrznych</strong>, ale przed wylaniem jastrychu. Zaburzenie tej sekwencji naraża rury z polimeru PEX/PE-RT na zniszczenie mechaniczne przez ekipy budowlane i uniemożliwia poprawną próbę szczelności wodą pod ciśnieniem 6 bar."
        }
    };

    var dTitle = document.getElementById('rkAutPanelTitle');
    var dText = document.getElementById('rkAutPanelText');
    var tabButtons = document.querySelectorAll('#rkAutTabsContainer .rk-aut-tab-button');

    // Obsługa przełączania na desktopie i mobilu (Brak zakazanych operatorów logicznych i brak animacji)
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-criterion');
            if (dTitle) { dTitle.innerText = criterionDatabase[id].title; }
            if (dText) { dText.innerHTML = criterionDatabase[id].text; }
        });
    });
});
</script>



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

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

/* Nagłówki sekcji */
.rk-faq-top-bar {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
}

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

.rk-faq-sub-h3 {
    font-size: 15px;
    color: var(--rk-faq-text-muted);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Układ Desktopowy (Dwukolumnowy) */
.rk-faq-layout {
    padding: 40px 50px;
    background: var(--rk-faq-bg-decor);
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 35px;
}

/* Lista pytań po lewej */
.rk-faq-questions-sidebar {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-faq-selector-item {
    padding: 18px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: all 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.rk-faq-selector-item:hover {
    border-color: #cbd5e1;
    background: var(--rk-faq-bg-decor);
}

.rk-faq-selector-item.active {
    background: var(--rk-faq-blue);
    border-color: var(--rk-faq-blue);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(2, 132, 199, 0.35);
}

.rk-faq-arrow-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.2s;
    stroke: var(--rk-faq-blue);
}

.rk-faq-selector-item.active .rk-faq-arrow-icon {
    stroke: #ffffff;
    transform: translateX(3px);
}

/* Panel odpowiedzi po prawej */
.rk-faq-answer-display {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-faq-ans-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-faq-border);
}

.rk-faq-ans-icon-frame {
    width: 40px;
    height: 40px;
    background: var(--rk-faq-blue-light);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    flex-shrink: 0;
}

.rk-faq-ans-h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
}

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

.rk-faq-ans-body strong {
    color: var(--rk-faq-dark);
    font-weight: 700;
}

/* Układ Mobilny (Pionowy Akordeon) - Domyślnie ukryty */
.rk-faq-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-faq-top-bar, .rk-faq-layout {
        padding: 30px 20px;
    }
    
    .rk-faq-main-h2 { font-size: 20px; }
    .rk-faq-layout { display: none; } /* Ukrywamy widok dwukolumnowy */
    
    .rk-faq-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
        background: var(--rk-faq-bg-decor);
        padding: 25px 20px 35px;
    }
    
    .rk-faq-acc-item {
        border: 1px solid var(--rk-faq-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
        transition: all 0.2s ease;
    }
    
    .rk-faq-acc-trigger {
        padding: 18px 20px;
        font-weight: 700;
        font-size: 14px;
        color: var(--rk-faq-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-faq-acc-trigger::after {
        content: '+';
        font-size: 18px;
        font-weight: 500;
        color: var(--rk-faq-blue);
        flex-shrink: 0;
    }
    
    .rk-faq-acc-item.active {
        border-color: var(--rk-faq-blue);
        box-shadow: 0 5px 15px rgba(2, 132, 199, 0.05);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger {
        color: var(--rk-faq-blue);
        border-bottom: 1px solid var(--rk-faq-border);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger::after {
        content: '−';
        color: var(--rk-faq-blue);
    }
    
    .rk-faq-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-faq-bg-decor);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-faq-text);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Sekcja FAQ – Najważniejsze pytania inwestorów",
    "description": "Profesjonalne odpowiedzi inżynierskie na kluczowe pytania dotyczące harmonogramu, czasu wysychania jastrychów oraz wymogów prawnych dla podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#faq-page-data",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to technicznie wykonalne, ale skrajnie nieoptymalne, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowy jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania w temperaturze powyżej +5°C, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie profesjonalnego wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM."
        }
      },
      {
        "@type": "Question",
        "name": "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu."
        }
      },
      {
        "@type": "Question",
        "name": "Jasi jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, uniwersalny rozstaw co 15 cm to błąd projektowy, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych, gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-faq",
    "name": "Baza Normatywnych Parametrów Wykonawczych Podłogówki",
    "description": "Zbiór danych technicznych dotyczących czasu wiązania jastrychów, przewodności cieplnej materiałów posadzkowych oraz dopuszczalnych rozstawów rur grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas schnięcia jastrychu cementowego",
      "wygrzewanie podłogówki parametry",
      "norma PN-EN 1264 obliczenia",
      "przewodność cieplna jastrych anhydrytowy",
      "zagęszczenie rur strefy brzegowe"
    ],
    "measurementTechnique": "Ewidencja wymogów wykonawczych i parametrów fizycznych określonych w normach PN-EN 1264 oraz instrukcjach ITB.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych cementowy: Grubość 60 mm, min. 28 dni schnięcia, wilgotność CM max 2 procent.",
        "Jastrych anhydrytowy: Lambda ok. 1,6 do 2,0 W/(m·K), wilgotność CM max 0,5 procent."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-faq",
    "name": "Interaktywna Encyklopedia Decyzyjna Inwestora",
    "description": "Narzędzie sieciowe umożliwiające natychmiastowe filtrowanie inżynieryjnych odpowiedzi na pytania z zakresu jastrychów i norm instalacji płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-section-container" id="rkFaqAppBlock">
    <div class="rk-faq-top-bar">
        <h2 class="rk-faq-main-h2">Sekcja FAQ – Najważniejsze pytania inwestorów</h2>
        <h3 class="rk-faq-sub-h3">Poznaj autorskie, inżynierskie odpowiedzi na kluczowe dylematy techniczne towarzyszące integracji ogrzewania podłogowego z harmonogramem budowy.</h3>
    </div>

    <div class="rk-faq-layout">
        <div class="rk-faq-questions-sidebar" id="rkFaqSidebar">
            <button class="rk-faq-selector-item active" data-faq="1">
                <span>1. Planowanie po ścianach działowych</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" 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>
            </button>
            <button class="rk-faq-selector-item" data-faq="2">
                <span>2. Czas schnięcia wylewki</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" 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>
            </button>
            <button class="rk-faq-selector-item" data-faq="3">
                <span>3. Wymogi prawne a projekt</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" 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>
            </button>
            <button class="rk-faq-selector-item" data-faq="4">
                <span>4. Wybór jastrychu pod pompę</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" 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>
            </button>
            <button class="rk-faq-selector-item" data-faq="5">
                <span>5. Rozstaw rur co 15 cm</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" 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>
            </button>
        </div>

        <div class="rk-faq-answer-display" id="rkFaqDisplayBox">
            <div class="rk-faq-ans-wrapper">
                <div class="rk-faq-ans-header">
                    <div class="rk-faq-ans-icon-frame" id="rkFaqDisplayIcon">
                        </div>
                    <h4 class="rk-faq-ans-h4" id="rkFaqDisplayTitle">Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</h4>
                </div>
                <p class="rk-faq-ans-body" id="rkFaqDisplayBody">
                    </p>
            </div>
        </div>
    </div>

    <div class="rk-faq-mobile-accordion" id="rkFaqMobileContainer">
        <div class="rk-faq-acc-item active" data-faq="1">
            <div class="rk-faq-acc-trigger">1. Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent1"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="2">
            <div class="rk-faq-acc-trigger">2. Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent2"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="3">
            <div class="rk-faq-acc-trigger">3. Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent3"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="4">
            <div class="rk-faq-acc-trigger">4. Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent4"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="5">
            <div class="rk-faq-acc-trigger">5. Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent5"></div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza pytań i odpowiedzi (Wykonana bez znaków specjalnych typografia tradycyjna i bezpieczny tekst)
    var faqDatabase = {
        1: {
            title: "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
            body: "Tak, jest to <strong>technicznie wykonalne, ale skrajnie nieoptymalne</strong>, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18M15 3v18M3 9h18M3 15h18"/></svg>'
        },
        2: {
            title: "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
            body: "Standardowy <strong>jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania</strong> w temperaturze powyżej +5 stopni Celsjusza, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie procedury wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM (maksymalnie 2% dla cementu i 0,5% dla anhydrytu pod płytki).",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>'
        },
        3: {
            title: "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
            body: "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to <strong>norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych</strong> dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu, pozbawia inwestora gwarancji producenta rur oraz uniemożliwia optymalne zaprogramowanie krzywej grzewczej pompy ciepła.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>'
        },
        4: {
            title: "Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
            body: "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie <strong>lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła</strong> (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne. Jastrych cementowy ma niższą przewodność (lambda ok. 1,0-1,4 W/(m·K)) i wymaga większej grubości (min. 45 mm nad rurą), co zwiększa bezwładność cieplną systemu.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>'
        },
        5: {
            title: "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
            body: "Nie, <strong>uniwersalny rozstaw co 15 cm to błąd projektowy</strong>, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych (np. przy dużych przeszkleniach tarasowych), gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu. Z kolei pod stałą zabudową kuchenną czy szafami wnękowymi układanie rur jest całkowicie zbędne i może prowadzić do uszkodzenia mebli.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="5" x2="19" y2="5"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="5" y1="19" x2="19" y2="19"/><circle cx="5" cy="5" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="19" cy="5" r="1"/></svg>'
        }
    };

    // Referencje do elementów DOM (Desktop)
    var dTitle = document.getElementById('rkFaqDisplayTitle');
    var dBody = document.getElementById('rkFaqDisplayBody');
    var dIcon = document.getElementById('rkFaqDisplayIcon');
    var sidebarButtons = document.querySelectorAll('#rkFaqSidebar .rk-faq-selector-item');

    // Funkcja aktualizacji widoku głównego na Desktopie
    function aktualizujWidokDesktop(id) {
        if (dTitle) { dTitle.innerText = faqDatabase[id].title; }
        if (dBody) { dBody.innerHTML = faqDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = faqDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji na starcie
    aktualizujWidokDesktop(1);

    // Wstrzyknięcie tekstu do wersji mobilnej (zapobiega pustym akordeonom i pomaga indeksacji SEO)
    for (var i = 1; i <= 5; i++) {
        var mContentBox = document.getElementById('rkFaqMContent' + i);
        if (mContentBox) {
            mContentBox.innerHTML = faqDatabase[i].body;
        }
    }

    // Obsługa kliknięć na Desktopie
    sidebarButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            sidebarButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-faq');
            aktualizujWidokDesktop(id);
        });
    });

    // Obsługa kliknięć na Mobilu (Akordeon pionowy bez znaków &#038;&#038;)
    var accItems = document.querySelectorAll('#rkFaqMobileContainer .rk-faq-acc-item');
    accItems.forEach(function(item) {
        var trigger = item.querySelector('.rk-faq-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            // Resetujemy wszystkie akordeony mobilne
            accItems.forEach(function(acc) { acc.classList.remove('active'); });
            
            // Jeśli nie był aktywny, to go aktywujemy (bezpieczny warunek logiczny)
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</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-bg: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-dl-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    display: block;
}

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

.rk-dl-h3 {
    font-size: 15.5px;
    color: var(--rk-dl-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Obszar Roboczy Centrum Pobierania */
.rk-dl-workspace {
    padding: 40px 50px;
    background: var(--rk-dl-bg);
    display: block;
}

/* Układ dwukolumnowy dla prezentacji materiału (Desktop) */
.rk-dl-material-card {
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 20px;
    padding: 30px;
    display: table;
    width: 100%;
    box-sizing: border-box;
}

.rk-dl-row {
    display: table-row;
}

/* Kolumna Lewa: Miniatura */
.rk-dl-thumb-cell {
    display: table-cell;
    width: 260px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-dl-thumbnail-box {
    width: 100%;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    padding: 10px;
    box-sizing: border-box;
}

.rk-dl-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
}

/* Kolumna Prawa: Opis i Akcje */
.rk-dl-info-cell {
    display: table-cell;
    vertical-align: top;
}

.rk-dl-h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-dl-desc {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    margin: 0 0 25px 0;
}

.rk-dl-format-tags {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-dl-tag {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 12px;
    border-radius: 6px;
    background: var(--rk-dl-blue-light);
    color: var(--rk-dl-blue);
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Przyciski Akcji (BEZ ANIMACJI) */
.rk-dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.rk-dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 12px;
    cursor: pointer;
    text-decoration: none;
    transition: none; /* Rygorystyczny brak animacji */
}

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

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

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

.rk-dl-btn-secondary:hover {
    background: var(--rk-dl-dark);
    color: #ffffff;
}

/* Pasek Praw Autorskich */
.rk-dl-copyright-bar {
    padding: 20px 50px;
    background: var(--rk-dl-dark);
    color: #cbd5e1;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}

.rk-dl-copyright-bar strong {
    color: #ffffff;
    font-weight: 700;
}

/* Liniowy Modal Podglądu Grafiki (Ukryty domyślnie) */
.rk-dl-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

.rk-dl-modal-content {
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    max-width: 1000px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}

.rk-dl-modal-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    transition: none;
}

.rk-dl-modal-close:hover {
    background: #ef4444;
}

/* Responsywność Mobilna (Pionowe układanie klocków) */
@media (max-width: 768px) {
    .rk-dl-header-zone, .rk-dl-workspace, .rk-dl-copyright-bar {
        padding: 30px 20px;
    }
    
    .rk-dl-h2 { font-size: 22px; }
    
    .rk-dl-material-card, .rk-dl-row, .rk-dl-thumb-cell, .rk-dl-info-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-dl-thumb-cell {
        margin-bottom: 25px;
    }
    
    .rk-dl-thumbnail-box {
        max-width: 260px;
        margin: 0 auto;
    }
    
    .rk-dl-actions {
        flex-direction: column;
    }
    
    .rk-dl-btn {
        width: 100%;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji ogrzewania podłogowego",
    "description": "Pobierz darmową infografikę inżynierską w formacie PDF. Interaktywne zestawienie optymalnego momentu montażu instalacji grzewczych w nowym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-materialy",
    "name": "Wizualny Harmonogram Instalacji Ogrzewania Podłogowego (Infografika PDF)",
    "description": "Gotowy do druku arkusz weryfikacyjny i chronologiczny dla inwestorów oraz instalatorów, zawierający ramy czasowe dla wdrożenia systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "kiedy planować podłogówkę schemat",
      "etapy budowy a ogrzewanie podłogowe",
      "harmonogram prac instalacyjnych wydruk",
      "lista kontrolna instalatora hvac"
    ],
    "measurementTechnique": "Synteza i wizualizacja danych inżynieryjnych pozwalająca na graficzną weryfikację gotowości placu budowy do układania pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format PDF: Materiał wektorowy przygotowany do wydruku i przekazania wykonawcom na placu budowy.",
        "Format WEBP: Zoptymalizowany zasób cyfrowy do szybkiego podglądu na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-materialy",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej Projekt-Ogrzewania.pl",
    "description": "Zintegrowany panel dostępu do plików technicznych, schematów oraz infografik budowlanych wspierających prawidłowe zarządzanie procesem inwestycyjnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-main-container" id="rkDownloadBlock">
    <div class="rk-dl-header-zone">
        <h2 class="rk-dl-h2">Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji</h2>
        <h3 class="rk-dl-h3">Pobierz darmowy materiał w formacie PDF lub zobacz pełną wersję graficzną, aby zabrać autorskie wytyczne inżynierskie bezpośrednio na plac budowy i uniknąć kolizji wykonawczych.</h3>
    </div>

    <div class="rk-dl-workspace">
        <div class="rk-dl-material-card">
            <div class="rk-dl-row">
                
                <div class="rk-dl-thumb-cell">
                    <div class="rk-dl-thumbnail-box">
                        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Miniatura infografiki - Kiedy najlepiej planować montaż ogrzewania podłogowego" class="rk-dl-thumbnail-img" loading="lazy">
                    </div>
                </div>
                
                <div class="rk-dl-info-cell">
                    <div class="rk-dl-format-tags">
                        <span class="rk-dl-tag">Plik PDF</span>
                        <span class="rk-dl-tag">Grafika WEBP</span>
                    </div>
                    <h4 class="rk-dl-h4">Etapy planowania ogrzewania podłogowego w nowym domu</h4>
                    <p class="rk-dl-desc">Kompletne, wizualne podsumowanie procesu inżynieryjnego. Arkusz zawiera ramy czasowe dla wyliczeń OZC, ustalania rezerwy wysokościowej posadzki oraz dokładną chronologię wejścia instalatorów na plac budowy. Dokument przygotowany w wysokiej rozdzielczości, idealny do wydrukowania i przekazania kierownikowi budowy.</p>
                    
                    <div class="rk-dl-actions">
                        <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.pdf" class="rk-dl-btn rk-dl-btn-primary" target="_blank" rel="noopener">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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 plik PDF
                        </a>
                        <button class="rk-dl-btn rk-dl-btn-secondary" id="rkBtnPreviewImg">
                            <svg width="18" height="18" 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>
                            Podgląd grafiki
                        </button>
                    </div>
                </div>
                
            </div>
        </div>
    </div>

    <div class="rk-dl-copyright-bar">
        <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.
    </div>
</div>

<div class="rk-dl-modal-overlay" id="rkPreviewModal">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rkModalCloseBtn">ZAMKNIJ PODGLĄD</button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Pełnowymiarowa infografika harmonogramu" class="rk-dl-modal-img" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPreview = document.getElementById('rkBtnPreviewImg');
    var modalOverlay = document.getElementById('rkPreviewModal');
    var btnClose = document.getElementById('rkModalCloseBtn');

    // Bezpieczna logika otwierania modalu (bez znaków ampersand)
    if (btnPreview) {
        btnPreview.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'flex';
                document.body.style.overflow = 'hidden'; // Blokada scrollowania strony
            }
        });
    }

    // Zamknięcie modalu przyciskiem
    if (btnClose) {
        btnClose.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = ''; // Odblokowanie scrollowania
            }
        });
    }

    // Zamknięcie modalu kliknięciem w tło
    if (modalOverlay) {
        modalOverlay.addEventListener('click', function(e) {
            if (e.target === this) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = '';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0284c7;
    --rk-fin-light: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-green: #10b981;
    --rk-fin-red: #ef4444;
    --rk-fin-warn: #f59e0b;
    --rk-fin-text: #475569;
}

.rk-final-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.1);
    border: 1px solid var(--rk-fin-border);
    overflow: hidden;
}

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

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

.rk-fin-h3 {
    font-size: 16px;
    color: var(--rk-fin-text);
    margin: 0 auto;
    line-height: 1.6;
    font-weight: 400;
    max-width: 750px;
}

/* Interfejs Symulatora */
.rk-fin-interactive {
    padding: 40px 50px;
    background: var(--rk-fin-light);
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: center;
}

/* Kontroler - Switch */
.rk-switch-panel {
    background: #ffffff;
    padding: 40px 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-fin-border);
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

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

.rk-toggle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.rk-toggle-btn {
    width: 90px;
    height: 46px;
    background: var(--rk-fin-red);
    border-radius: 23px;
    position: relative;
    cursor: pointer;
    transition: background 0.4s ease;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-toggle-btn.pro {
    background: var(--rk-fin-green);
}

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

.rk-toggle-btn.pro .rk-toggle-circle {
    transform: translateX(44px);
}

.rk-state-label {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-red);
    transition: color 0.3s;
}

.rk-toggle-btn.pro + .rk-state-label {
    color: var(--rk-fin-green);
}

/* Wyniki symulacji */
.rk-fin-results {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

.rk-data-card.danger { border-left: 6px solid var(--rk-fin-red); }
.rk-data-card.safe { border-left: 6px solid var(--rk-fin-green); }

.rk-data-icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}

.rk-data-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

/* CTA Footer i SEO */
.rk-fin-cta {
    padding: 40px 50px;
    background: var(--rk-fin-dark);
    color: #ffffff;
    text-align: center;
}

.rk-fin-cta-main-text {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 auto 30px auto;
    max-width: 800px;
    color: #cbd5e1;
}

.rk-fin-cta-h4 {
    margin: 0 0 25px 0;
    font-size: 20px; 
    font-weight: 800;
    color: #ffffff;
}

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    margin-bottom: 35px;
}

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

/* Blok Long Tail SEO pod przyciskiem */
.rk-seo-block {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 25px;
    text-align: left;
    margin-bottom: 25px;
}

.rk-seo-block p {
    font-size: 13px;
    line-height: 1.7;
    color: #94a3b8;
    margin: 0;
}

.rk-seo-block strong {
    color: #cbd5e1;
    font-weight: 600;
}

/* Tagi na samym dole */
.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
}

.rk-mat-tag {
    font-size: 11px;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.05);
    color: #94a3b8;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: rgba(2, 132, 199, 0.2);
    color: #ffffff;
    border-color: rgba(2, 132, 199, 0.4);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-interactive { grid-template-columns: 1fr; gap: 25px; }
    .rk-data-card { flex-direction: column; text-align: center; padding: 20px; }
    .rk-btn-solid { width: 100%; padding: 16px; box-sizing: border-box; font-size: 14px; }
    .rk-fin-h2 { font-size: 22px; }
    .rk-seo-block { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kluczowe rekomendacje inżynierskie – Skutki opóźnień",
    "description": "Zobacz interaktywne porównanie skutków montażu ogrzewania podłogowego na oko w stosunku do wdrożenia profesjonalnego standardu inżynierskiego (projekt OZC).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-podsumowanie",
    "name": "Analiza ryzyka inwestycyjnego instalacji płaszczyznowych 2026",
    "description": "Zestawienie inżynierskie porównujące koszty wdrożenia projektu hydraulicznego przed budową z kosztami kucia posadzki i demontażu awaryjnej podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty naprawy ogrzewania podłogowego",
      "brak projektu podłogówki konsekwencje",
      "czy warto robić projekt ozc",
      "awaria podłogówki kucie posadzki",
      "nierównomierne grzanie podłogi"
    ],
    "measurementTechnique": "Wizualizacja skutków błędów montażowych pod monolityczną płytą betonową w kontrze do planowania przedprocesowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metoda 'Na oko': Skutkuje ryzykiem demontażu całego systemu przy awarii rur.",
        "Standard Inżynierski: Gwarantuje bezpieczeństwo dzięki wcześniejszym obliczeniom OZC i grubej izolacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-podsumowanie",
    "name": "Symulator Decyzji Inwestorskich HVAC",
    "description": "Interaktywny przełącznik wizualizujący technologiczne i finansowe konsekwencje wyboru pomiędzy montażem amatorskim a inżynieryjnym planowaniem instalacji cieplnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="rkFinalSimulator">
    <div class="rk-fin-header">
        <h2 class="rk-fin-h2">Podsumowanie i kluczowe rekomendacje inżynierskie</h2>
        <h3 class="rk-fin-h3">Zanim zalejesz rury setkami litrów betonu, sprawdź, z czym wiąże się próba ominięcia etapu projektowego. Przesuń suwak i zobacz różnicę.</h3>
    </div>

    <div class="rk-fin-interactive">
        <div class="rk-switch-panel">
            <div class="rk-switch-title">Wybierz standard instalacji</div>
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-btn" id="rkSimToggle">
                    <div class="rk-toggle-circle"></div>
                </div>
                <div class="rk-state-label" id="rkSimLabel">Amatorskie "Na Oko"</div>
            </div>
        </div>

        <div class="rk-fin-results" id="rkSimDataBox">
            <div class="rk-data-card danger" id="cardOZC">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleOZC">Brak obliczeń OZC</h4>
                    <p id="descOZC">Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.</p>
                </div>
            </div>
            <div class="rk-data-card danger" id="cardFix">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleFix">Kucie posadzki (Awaria)</h4>
                    <p id="descFix">Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-cta">
        <p class="rk-fin-cta-main-text">Decyzja o terminie wdrożenia systemu grzewczego do harmonogramu budowy niesie za sobą konsekwencje na całe życie budynku. Wszelkie próby oszczędności na etapie przygotowawczym – rezygnacja z obliczeń OZC, układanie rur „na oko” bez wykonanego projektu, czy sztuczne odchudzanie warstw izolacji podłogowej – poskutkują nieodwracalnym obniżeniem sprawności grzewczej. Instalacja płaszczyznowa zostaje zamknięta pod monolityczną płytą betonową. O ile kocioł czy pompę ciepła można wymienić w jeden dzień, o tyle źle wykonanej, pękającej lub zapowietrzającej się podłogówki nie da się naprawić bez demolki całego domu.</p>
        
        <h4 class="rk-fin-cta-h4">Bezkompromisowe podejście inżynierskie wymaga, aby planowanie montażu ogrzewania zamknąć na etapie zakupu projektu.</h4>
        
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            BĄDŹ INWESTOREM, KTÓRY WIE WIĘCEJ – CZYTAJ BLOG
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>

        <div class="rk-seo-block">
            <p>Decyzja o tym, <strong>czy warto robić projekt OZC</strong>, nie powinna być podyktowana pozorną oszczędnością. Trzeba powiedzieć wprost: <strong>rury do podłogówki układane na oko</strong> to najszybszy przepis na <strong>nierównomierne grzanie podłogi</strong> i przedwczesne zużycie sprężarki. Z praktyki inżynierskiej wiemy, że <strong>koszty naprawy ogrzewania podłogowego</strong> zawsze przewyższają cenę dokumentacji, a <strong>awaria podłogówki i kucie posadzki</strong> dezorganizuje życie na wiele miesięcy. Ignorując <strong>brak projektu podłogówki i jego konsekwencje</strong> oraz godząc się na nieuzasadnione <strong>odchudzanie izolacji podłogi</strong>, budujesz system pełen wad. W efekcie już po paru sezonach zaczniesz szukać w sieci informacji, <strong>kiedy wymienić pompę ciepła</strong>, podczas gdy prawdziwym problemem będzie błąd na poziomie fundamentów.</p>
        </div>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># koszty naprawy ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># brak projektu podłogówki konsekwencje</span>
            <span class="rk-mat-tag"># czy warto robić projekt ozc</span>
            <span class="rk-mat-tag"># awaria podłogówki kucie posadzki</span>
            <span class="rk-mat-tag"># odchudzanie izolacji podłogi</span>
            <span class="rk-mat-tag"># kiedy wymienic pompe ciepla</span>
            <span class="rk-mat-tag"># nierównomierne grzanie podłogi</span>
            <span class="rk-mat-tag"># rury do podłogówki układane na oko</span>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('rkSimToggle');
    var label = document.getElementById('rkSimLabel');
    
    var cardOZC = document.getElementById('cardOZC');
    var titleOZC = document.getElementById('titleOZC');
    var descOZC = document.getElementById('descOZC');
    
    var cardFix = document.getElementById('cardFix');
    var titleFix = document.getElementById('titleFix');
    var descFix = document.getElementById('descFix');
    
    // Ikony (Zwykły HTML SVG dla podmiany)
    var iconSafe = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>';
    var iconDanger = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>';
    var iconError = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>';
    var iconCalc = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="8" y="8" width="8" height="4"></rect><line x1="8" y1="16" x2="8" y2="16"></line><line x1="12" y1="16" x2="12" y2="16"></line><line x1="16" y1="16" x2="16" y2="16"></line></svg>';

    toggleBtn.addEventListener('click', function() {
        var isPro = toggleBtn.classList.contains('pro');
        
        if (isPro) {
            // Przejście na AMATOR
            toggleBtn.classList.remove('pro');
            label.innerText = 'Amatorskie "Na Oko"';
            
            // Karta 1
            cardOZC.className = 'rk-data-card danger';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconError;
            titleOZC.innerText = 'Brak obliczeń OZC';
            descOZC.innerText = 'Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.';
            
            // Karta 2
            cardFix.className = 'rk-data-card danger';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconDanger;
            titleFix.innerText = 'Kucie posadzki (Awaria)';
            descFix.innerText = 'Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.';
            
        } else {
            // Przejście na PRO
            toggleBtn.classList.add('pro');
            label.innerText = 'Standard Inżynierski';
            
            // Karta 1
            cardOZC.className = 'rk-data-card safe';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconCalc;
            titleOZC.innerText = 'Wykonany projekt OZC';
            descOZC.innerText = 'Precyzyjnie dobrany rozstaw rur i parametry przepływu. Gwarancja najwyższego parametru COP dla pompy ciepła.';
            
            // Karta 2
            cardFix.className = 'rk-data-card safe';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconSafe;
            titleFix.innerText = 'Bezpieczeństwo na lata';
            descFix.innerText = 'Wykonana próba ciśnieniowa i weryfikacja projektowa eliminuje ryzyko awarii. Monolityczna posadzka staje się bezpiecznym buforem ciepła.';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rozstaw rur w ogrzewaniu podłogowym co 10 czy 15 cm?</title>
		<link>https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 07 Feb 2025 18:50:05 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[kocioł gazowy]]></category>
		<category><![CDATA[moc grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłoga]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[remont]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2117</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, jaki rozstaw rur wybrać – 10 cm czy 15 cm? To kluczowa decyzja, która wpływa na komfort cieplny, koszty instalacji i efektywność systemu. W naszym artykule znajdziesz praktyczne porady, przykłady obliczeniowe oraz wskazówki, jak dopasować rozstaw do rodzaju pomieszczenia, źródła ciepła i wykończenia podłogi. Dowiesz się także, dlaczego w niektórych przypadkach warto postawić na gęstsze układanie rur, a w innych – na standardowy rozstaw. Sprawdź, jak uniknąć błędów i cieszyć się ciepłem w swoim domu!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw rur w ogrzewaniu podłogowym co 10 czy 15 cm?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(37,99,235,0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #eff6ff;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bfdbfe;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
    display: block;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Rozstaw rur w ogrzewaniu podłogowym: co 10 czy 15 cm?",
  "description": "Rozstaw rur w ogrzewaniu podłogowym to kluczowy wybór, który bezpośrednio wpływa na komfort cieplny, koszty instalacji i efektywność całego systemu. Dowiedz się, co wybrać.",
  "license": "https://projekt-ogrzewania.pl/",
  "author": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>📏</span> Kompletny Poradnik Instalatora
        </div>
        
        <h1 style="margin-top:0; margin-bottom: 20px; font-size: 32px; font-weight: 900;">Rozstaw rur w ogrzewaniu podłogowym: co 10 czy 15 cm?</h1>
        
        <p class="hero-text"><strong>Rozstaw rur w ogrzewaniu podłogowym</strong> to kluczowy wybór, który bezpośrednio wpływa na komfort cieplny, koszty instalacji i efektywność całego systemu. Czy zawsze gęściej znaczy lepiej?</p>
        
        <p class="hero-text">Odpowiedź nie jest jednoznaczna – optymalny rozstaw zależy od typu pomieszczenia, zastosowanego źródła ciepła (np. pompa ciepła czy kocioł gazowy), a nawet rodzaju posadzki. W tym artykule wyjaśnimy, jak podjąć najlepszą decyzję, opierając się na praktycznych przykładach i twardych obliczeniach inżynierskich.</p>

        <div class="hero-modules-title">O czym przeczytasz w tym opracowaniu?</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">🔍</span>
                <span class="hero-card-title">4 kluczowe czynniki wyboru</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">⚖️</span>
                <span class="hero-card-title">Porównanie 10 cm vs 15 cm</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🛠️</span>
                <span class="hero-card-title">Instrukcja Krok po Kroku</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">❓</span>
                <span class="hero-card-title">Najczęstsze pytania (FAQ)</span>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('hero-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
/* STYLE DLA SEKCJI HERO I WSTĘPU */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-intro-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

/* 1. HERO BOX */
.premium-hero-box {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    position: relative;
    margin-bottom: 50px;
}

.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(37,99,235,0.06) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 50px 55px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #eff6ff;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bfdbfe;
}

.hero-title {
    margin-top: 0;
    margin-bottom: 25px;
    font-size: 36px;
    font-weight: 900;
    line-height: 1.2;
    color: var(--primary);
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #475569;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text:last-of-type {
    margin-bottom: 0;
}

/* 2. KARTY - 4 CZYNNIKI */
.factors-section {
    padding: 20px 0;
}

.factors-header {
    text-align: center;
    margin-bottom: 40px;
}

.factors-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.factors-header p {
    font-size: 16px;
    color: #64748b;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.factors-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.factor-card {
    background: #ffffff;
    border: 2px solid var(--border-color);
    border-radius: 20px;
    padding: 35px 30px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.factor-card:hover {
    border-color: var(--accent);
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -10px rgba(37, 99, 235, 0.15);
}

.factor-icon {
    width: 56px;
    height: 56px;
    background: #eff6ff;
    color: var(--accent);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    margin-bottom: 25px;
    transition: transform 0.4s;
}

.factor-card:hover .factor-icon {
    transform: scale(1.1) rotate(-5deg);
}

.factor-card h4 {
    margin: 0 0 15px 0;
    font-size: 19px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.3;
}

.factor-card p {
    margin: 0 0 20px 0;
    font-size: 15px;
    line-height: 1.65;
    color: #475569;
}

.factor-example {
    background: #f8fafc;
    padding: 18px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--accent);
    font-size: 14px;
    color: #334155;
    line-height: 1.6;
    margin-top: auto;
}

.factor-example strong {
    color: var(--primary);
    display: block;
    margin-bottom: 5px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Wyróżnienia kolorystyczne dla konkretnych kart */
.card-heat .factor-example { border-left-color: var(--danger); }
.card-iso .factor-example { border-left-color: var(--success); }
.card-source .factor-example { border-left-color: var(--accent); }
.card-power .factor-example { border-left-color: var(--warning); }

@media (max-width: 900px) {
    .hero-content { padding: 40px 30px; }
    .hero-title { font-size: 28px; }
    .factors-grid { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Rozstaw rur w ogrzewaniu podłogowym: co 10 czy 15 cm?",
    "description": "Poradnik instalatora wyjaśniający od czego zależy optymalny rozstaw rur w ogrzewaniu podłogowym. Analiza strat ciepła, źródła ogrzewania i wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry doboru rozstawu rur ogrzewania podłogowego",
    "description": "Zestawienie wskaźników zapotrzebowania na ciepło (W/m²) i orientacyjnej mocy grzewczej dla wylewki cementowej przy różnych temperaturach zasilania.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zapotrzebowanie dla domu pasywnego",
        "value": "15-30",
        "unitText": "W/m²",
        "description": "Zalecany rozstaw: 15 cm"
      },
      {
        "@type": "PropertyValue",
        "name": "Zapotrzebowanie dla domu energooszczędnego",
        "value": "40-70",
        "unitText": "W/m²",
        "description": "Zalecany rozstaw: 10 lub 15 cm"
      },
      {
        "@type": "PropertyValue",
        "name": "Zapotrzebowanie dla starego domu",
        "value": "80-120",
        "unitText": "W/m²",
        "description": "Zalecany rozstaw: 10 cm"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc przy rozstawie 10 cm (Zasilanie 30-35°C)",
        "value": "60-80",
        "unitText": "W/m²"
      },
      {
        "@type": "PropertyValue",
        "name": "Moc przy rozstawie 15 cm (Zasilanie 40-45°C)",
        "value": "50-70",
        "unitText": "W/m²"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="premium-intro-module premium-protected" id="intro-hero-app">
    
    <div class="premium-hero-box">
        <div class="hero-content">
            <div class="hero-badge">
                <span>📏</span> Poradnik Instalatora
            </div>
            
            <h1 class="hero-title">Rozstaw rur w ogrzewaniu podłogowym: co 10 czy 15 cm?</h1>
            
            <p class="hero-text"><strong>Rozstaw rur w ogrzewaniu podłogowym</strong> to jedna z najważniejszych decyzji na etapie projektowania instalacji. To od tego parametru zależy Twój przyszły komfort cieplny, wysokość rachunków za ogrzewanie oraz całkowity koszt zakupu materiałów.</p>
            
            <p class="hero-text">Pytanie brzmi: <em>czy zawsze gęściej znaczy lepiej?</em> Czy układanie rur co 10 centymetrów to gwarancja ciepłego domu, czy może niepotrzebne przewymiarowanie i wyrzucanie pieniędzy w błoto?</p>
            
            <p class="hero-text">Odpowiedź nie jest jednoznaczna i zależy od konkretnego przypadku: typu pomieszczenia, zastosowanego źródła ciepła (pompa ciepła vs kocioł gazowy), a nawet materiału, z którego wykonasz ostateczną posadzkę. W tym artykule przeprowadzimy Cię przez proces decyzyjny, opierając się na twardych danych inżynierskich i praktycznych wyliczeniach.</p>
        </div>
    </div>

    <div class="factors-section">
        <div class="factors-header">
            <h2>Od czego zależy optymalny rozstaw rur?</h2>
            <p>Zanim podejmiesz decyzję lub zaakceptujesz wycenę instalatora, koniecznie przeanalizuj te cztery fundamenty wydajnej instalacji grzewczej.</p>
        </div>
        
        <div class="factors-grid">
            
            <div class="factor-card card-heat">
                <div class="factor-icon">🏠</div>
                <h4>1. Rodzaj pomieszczenia i lokalne straty ciepła</h4>
                <p>Nie każde pomieszczenie w domu traci ciepło w takim samym tempie. Przestrzenie z dużymi przeszkleniami (salon, ogród zimowy) oraz pomieszczenia o podwyższonej temperaturze projektowej (np. łazienki, gdzie chcemy mieć 24°C) wymagają <strong>gęstszego układania rur (zazwyczaj co 10 cm)</strong>, aby podłoga mogła oddać więcej energii w krótszym czasie.</p>
                <div class="factor-example">
                    <strong>Przykład z praktyki:</strong>
                    W łazience o powierzchni 10 m², przy zasilaniu 35°C, rozstaw rur <strong>10 cm</strong> wygeneruje moc ok. 70–90 W/m². Jeśli zastosujesz tam rozstaw <strong>15 cm</strong>, moc spadnie do 50–60 W/m², co przy siarczystych mrozach doprowadzi do niedogrzania pomieszczenia.
                </div>
            </div>

            <div class="factor-card card-iso">
                <div class="factor-icon">🧱</div>
                <h4>2. Izolacja termiczna budynku (Standard energetyczny)</h4>
                <p>W słabo zaizolowanych domach, np. z lat 90-tych poddawanych termomodernizacji, budynek szybko traci zgromadzone ciepło. Tam rozstaw 10 cm jest często jedynym ratunkiem. W nowoczesnym, szczelnym budownictwie, pakowanie rur tak gęsto jest po prostu nieuzasadnione ekonomicznie.</p>
                <div class="factor-example">
                    <strong>Zapotrzebowanie na ciepło (Q):</strong>
                    • Dom pasywny (15–30 W/m²) → Wystarczy <strong>rozstaw 15 cm</strong>.<br>
                    • Dom energooszczędny (40–70 W/m²) → Rozstaw <strong>10 lub 15 cm</strong> (zależnie od posadzki).<br>
                    • Stary dom (80–120 W/m²) → Wymagany <strong>rozstaw 10 cm</strong>.
                </div>
            </div>

            <div class="factor-card card-source">
                <div class="factor-icon">⚡</div>
                <h4>3. Rodzaj zastosowanego źródła ciepła</h4>
                <p>To, czy dom ogrzewa nowoczesna pompa ciepła, kocioł na pellet czy kondensacyjny kocioł gazowy, drastycznie zmienia podejście do projektu. Pompy ciepła osiągają najwyższą sprawność (COP) przy bardzo niskich temperaturach zasilania (np. 30-35°C). Aby przy tak letniej wodzie ogrzać dom, rury muszą leżeć gęściej.</p>
                <div class="factor-example">
                    <strong>Dlaczego pojemność ma znaczenie?</strong>
                    Mniejszy rozstaw (co 10 cm) to kilkadziesiąt metrów rury więcej w instalacji. Zwiększa to pojemność wodną (zład) całego układu, co bezpośrednio stabilizuje i wydłuża cykle pracy sprężarki w pompie ciepła, zmniejszając jej zużycie.
                </div>
            </div>

            <div class="factor-card card-power">
                <div class="factor-icon">📊</div>
                <h4>4. Finalna oczekiwana moc grzewcza</h4>
                <p>Im większa moc w Watach potrzebna jest do zrównoważenia strat chłodu w danym metrze kwadratowym, tym gęstsza musi być &#8222;siatka&#8221; rur grzewczych. Gęstszy rozstaw pozwala na transport większej ilości energii na danej powierzchni podłogi.</p>
                <div class="factor-example" style="padding: 12px 15px;">
                    <strong>Orientacyjne moce dla wylewki cementowej:</strong><br><br>
                    <div style="display:flex; justify-content:space-between; border-bottom:1px solid #cbd5e1; padding-bottom:5px; margin-bottom:5px;">
                        <span><strong>Rozstaw rur</strong></span><span><strong>Temp. Zasilania</strong></span><span><strong>Moc</strong></span>
                    </div>
                    <div style="display:flex; justify-content:space-between; padding-bottom:3px;">
                        <span>co 10 cm</span><span>30–35°C</span><span style="color:var(--danger); font-weight:800;">60–80 W/m²</span>
                    </div>
                    <div style="display:flex; justify-content:space-between;">
                        <span>co 15 cm</span><span>40–45°C</span><span style="color:var(--warning); font-weight:800;">50–70 W/m²</span>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('intro-hero-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">Ten poradnik jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
/* STYLE DLA TABELI PORÓWNAWCZEJ I CASE STUDY */
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare-module {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.compare-header {
    padding: 40px 40px 20px 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    text-align: center;
}

.compare-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.compare-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

/* TABELA */
.table-container {
    padding: 20px 40px;
    overflow-x: auto;
}

.styled-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.styled-table th,
.styled-table td {
    padding: 18px 20px;
    text-align: left;
    border-bottom: 1px solid #f1f5f9;
}

.styled-table th {
    background-color: var(--bg-light);
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #64748b;
    width: 33.33%;
}

.styled-table th.col-10cm {
    color: var(--accent);
    border-bottom: 3px solid var(--accent);
}

.styled-table th.col-15cm {
    color: var(--success);
    border-bottom: 3px solid var(--success);
}

.styled-table td {
    font-size: 15px;
    color: #334155;
    line-height: 1.6;
}

.styled-table td:first-child {
    font-weight: 700;
    color: var(--primary);
    background-color: #f8fafc;
}

.styled-table tr:hover td {
    background-color: #f8fafc;
}

.styled-table td strong {
    color: var(--primary);
}

/* CASE STUDY */
.case-study-container {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.case-study-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
}

.case-card {
    background: var(--bg-light);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

.case-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
}

.case-card.case-10cm::before { background: var(--accent); }
.case-card.case-15cm::before { background: var(--success); }

.case-card h5 {
    margin: 0 0 15px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

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

.power-result {
    background: #ffffff;
    padding: 15px;
    border-radius: 10px;
    margin-top: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.power-result span {
    display: block;
    font-size: 13px;
    color: #64748b;
    margin-bottom: 5px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.power-result strong {
    font-size: 20px;
    font-weight: 900;
    color: var(--primary);
}

.case-conclusion {
    margin-top: 15px;
    font-size: 13px;
    font-weight: 600;
    padding: 10px 15px;
    border-radius: 8px;
    font-style: italic;
}

.case-conclusion.warning { background: #fffbeb; color: #b45309; }
.case-conclusion.ok { background: #f0fdf4; color: #15803d; }

@media (max-width: 768px) {
    .compare-header { padding: 30px 20px; }
    .table-container { padding: 10px 20px; }
    .styled-table th, .styled-table td { padding: 15px; font-size: 14px; }
    .case-study-container { padding: 20px; }
    .case-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Porównanie rozstawu rur 10 cm vs 15 cm",
  "description": "Szczegółowe zestawienie parametrów, zalet i rekomendowanych zastosowań dla dwóch głównych systemów rozstawu rur w ogrzewaniu podłogowym, wsparte obliczeniami case study.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "Rekomendowane zastosowanie dla 10 cm",
      "value": "Pomieszczenia z dużymi stratami (łazienki), pompy ciepła, posadzki drewniane."
    },
    {
      "@type": "PropertyValue",
      "name": "Rekomendowane zastosowanie dla 15 cm",
      "value": "Nowoczesne domy, kotły gazowe (wyższa temperatura), płytki ceramiczne."
    },
    {
      "@type": "PropertyValue",
      "name": "Wydajność 10 cm przy zasilaniu 40°C",
      "value": "100 W/m²"
    },
    {
      "@type": "PropertyValue",
      "name": "Wydajność 15 cm przy zasilaniu 40°C",
      "value": "70 W/m²"
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski"
  }
}
</script>

<div class="premium-compare-module premium-protected" id="compare-table-app">
    
    <div class="compare-header">
        <h3>Rozstaw 10 cm vs 15 cm – Zestawienie Parametrów</h3>
        <p>Poniżej rozbijamy obie opcje na czynniki pierwsze, aby maksymalnie ułatwić Ci podjęcie właściwej decyzji projektowej.</p>
    </div>

    <div class="table-container">
        <table class="styled-table">
            <thead>
                <tr>
                    <th>Parametr / Kryterium</th>
                    <th class="col-10cm">Gęsty rozstaw (co 10 cm)</th>
                    <th class="col-15cm">Standardowy rozstaw (co 15 cm)</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Najlepsze zastosowanie</td>
                    <td><strong>Pomieszczenia z dużymi stratami</strong> (łazienki, ogrody zimowe, stare budownictwo).</td>
                    <td><strong>Domy nowoczesne</strong>, dobrze i bardzo dobrze izolowane.</td>
                </tr>
                <tr>
                    <td>Idealne źródło ciepła</td>
                    <td><strong>Niskotemperaturowe</strong> (pompy ciepła, kotły na biomasę).</td>
                    <td><strong>Wyższotemperaturowe</strong> (systemy gazowe i kondensacyjne: 50-55°C).</td>
                </tr>
                <tr>
                    <td>Rekomendowana posadzka</td>
                    <td><strong>Drewno, panele laminowane</strong> (wymagają przebicia się przez większy opór cieplny).</td>
                    <td><strong>Płytki ceramiczne, kamień</strong> (doskonale przewodzą ciepło, więc rzadziej układane rury wystarczą).</td>
                </tr>
                <tr>
                    <td>Zalety dodatkowe</td>
                    <td>Niższa temperatura zasilania = niższe rachunki za ogrzewanie pompą ciepła.</td>
                    <td>Mniejsze zużycie rur i materiałów, niższy opór hydrauliczny układu.</td>
                </tr>
            </tbody>
        </table>
    </div>

    <div class="case-study-container">
        <div class="case-study-title">
            <span>📊</span> Studia Przypadków (Obliczenia z praktyki)
        </div>
        
        <div class="case-grid">
            
            <div class="case-card case-10cm">
                <h5>Salon 20 m² z Pompą Ciepła (40°C)</h5>
                <p>Ogrzewanie niskotemperaturowe. Potrzebujemy dostarczyć wystarczająco dużo mocy, aby zrekompensować mrozy rzędu -20°C.</p>
                
                <div class="power-result">
                    <span>Rozstaw 10 cm:</span>
                    Maksymalna moc: <strong>100 W/m²</strong><br>
                    Całkowita moc w salonie: <strong>2000 W</strong>
                </div>
                
                <div class="power-result">
                    <span>Rozstaw 15 cm:</span>
                    Maksymalna moc: <strong>70 W/m²</strong><br>
                    Całkowita moc w salonie: <strong>1400 W</strong>
                </div>
                
                <div class="case-conclusion warning">
                    <strong>Wniosek:</strong> Przy rozstawie 15 cm i zasilaniu pompą ciepła (40°C), mocy będzie po prostu za mało w chłodniejsze dni. <strong>10 cm jest tutaj niezbędne.</strong>
                </div>
            </div>

            <div class="case-card case-15cm">
                <h5>Dom z kotłem gazowym i panelami (50°C)</h5>
                <p>Kocioł gazowy pracuje bez problemu na wyższych temperaturach, a podłoga to drewniane panele (izolator).</p>
                
                <div class="power-result" style="border-top: 3px solid var(--success);">
                    <span>Rozstaw 15 cm + Zasilanie 50°C:</span>
                    Uzyskana moc: <strong>80 W/m²</strong>
                </div>
                
                <div class="case-conclusion ok" style="margin-top: 25px;">
                    <strong>Wniosek:</strong> Mimo zastosowania paneli (które ograniczają oddawanie ciepła), wyższa temperatura zasilania z kotła gazowego równoważy ten efekt. <strong>Standardowy rozstaw 15 cm będzie tu optymalny i tańszy w wykonaniu.</strong>
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('compare-table-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To zestawienie edukacyjne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-anatomy-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.anatomy-header {
    padding: 40px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

.anatomy-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
}

.anatomy-header p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.anatomy-header p:last-child {
    margin-bottom: 0;
}

.anatomy-workspace {
    display: flex;
    min-height: 480px;
}

/* LEWA STRONA - STOS WARSTW (PRZEKRÓJ) */
.anatomy-layers {
    width: 40%;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px;
    gap: 15px;
}

.layer-btn {
    position: relative;
    width: 100%;
    padding: 20px;
    border-radius: 12px;
    border: 2px solid var(--border-color);
    background: #ffffff;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 15px;
    overflow: hidden;
}

.layer-btn::before {
    content: '';
    position: absolute;
    left: 0; top: 0; height: 100%; width: 6px;
    background: #cbd5e1;
    transition: all 0.3s;
}

/* Kolory poszczególnych zakładek */
.layer-btn[data-layer="posadzka"]::before { background: #b45309; } 
.layer-btn[data-layer="wylewka"]::before { background: #94a3b8; } 
.layer-btn[data-layer="hydraulika"]::before { background: var(--accent); } 

.layer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05);
    border-color: #cbd5e1;
}

/* UNIKALNA KLASA ABY UNIKNĄĆ KONFLIKTU Z WORDPRESSEM */
.layer-btn.layer-active {
    border-color: var(--accent);
    background: #eff6ff;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.15);
}

.layer-btn.layer-active::before {
    background: var(--accent);
    width: 8px;
}

.layer-icon {
    font-size: 26px;
    filter: grayscale(0.2);
    transition: transform 0.3s;
}

.layer-btn.layer-active .layer-icon {
    transform: scale(1.2);
    filter: grayscale(0);
}

.layer-title {
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.3;
}

.layer-subtitle {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 5px;
}

/* PRAWA STRONA - SZCZEGÓŁY WARSTWY */
.anatomy-details {
    width: 60%;
    background: var(--bg-light);
    padding: 40px;
    position: relative;
}

.detail-pane {
    display: none;
    animation: fadeInSlide 0.4s ease-out forwards;
}

/* UNIKALNA KLASA PANE_ACTIVE */
.detail-pane.pane-active {
    display: block;
}

.detail-pane h4 {
    margin: 0 0 20px 0;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary);
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-pane p {
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
    margin-bottom: 15px;
}

.detail-pane ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
}

.detail-pane li {
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
    margin-bottom: 10px;
}

.detail-pane strong {
    color: var(--primary);
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--accent);
    padding: 18px 20px;
    border-radius: 0 12px 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #334155;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    margin-top: 20px;
    line-height: 1.6;
}

.highlight-box strong {
    color: var(--primary);
    display: block;
    margin-bottom: 5px;
}

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

@media (max-width: 768px) {
    .anatomy-header { padding: 30px 20px; }
    .anatomy-workspace { flex-direction: column; min-height: auto; }
    .anatomy-layers {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding: 20px;
    }
    .anatomy-details {
        width: 100%;
        padding: 30px 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Czynniki wpływające na rozstaw rur w ogrzewaniu podłogowym",
    "description": "Zestawienie parametrów przewodności cieplnej posadzek, mocy wylewek oraz oporów hydraulicznych w zależności od zagęszczenia rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Przewodność cieplna płytek ceramicznych",
        "value": "1.0 - 1.5",
        "unitText": "W/(m·K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Przewodność cieplna drewna dębowego",
        "value": "0.15 - 0.2",
        "unitText": "W/(m·K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny przy rozstawie 10 cm (pętla 100m)",
        "value": "40 - 50",
        "unitText": "kPa"
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny przy rozstawie 15 cm (pętla 100m)",
        "value": "20 - 25",
        "unitText": "kPa"
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Eksplorator czynników instalacyjnych podłogówki",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny moduł edukacyjny prezentujący wpływ rodzaju posadzki, wylewki i oporów hydraulicznych na projektowanie ogrzewania podłogowego.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Wpływ posadzki drewnianej i ceramicznej na oddawanie ciepła",
      "Porównanie wydajności wylewki anhydrytowej i cementowej",
      "Analiza oporów hydraulicznych pompy obiegowej"
    ]
  }
]
</script>

<div class="premium-anatomy-box" id="factors-anatomy-app-container">
    
    <div class="anatomy-header">
        <h2>Dodatkowe czynniki wpływające na rozstaw rur</h2>
        <p>Nawet najdokładniej wyliczony <strong>rozstaw rur w ogrzewaniu podłogowym (10 czy 15 cm)</strong> może okazać się błędem, jeśli zignorujemy materiały, w jakich rury zostaną osadzone. Aby instalacja działała wydajnie i bezawaryjnie, każdy dobry projektant musi skorygować obliczenia o poniższe detale.</p>
    </div>

    <div class="anatomy-workspace">
        
        <div class="anatomy-layers">
            <span style="font-size: 11px; font-weight: 800; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; text-align: center; margin-bottom: 5px;">Kliknij warstwę, by zbadać wpływ</span>
            
            <button class="layer-btn layer-active" data-target="pane-posadzka" data-layer="posadzka">
                <span class="layer-icon">🪵</span>
                <div>
                    <div class="layer-title">Rodzaj Posadzki</div>
                    <span class="layer-subtitle">Drewno a Płytki Ceramiczne</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-wylewka" data-layer="wylewka">
                <span class="layer-icon">🏗️</span>
                <div>
                    <div class="layer-title">Grubość i Rodzaj Wylewki</div>
                    <span class="layer-subtitle">Anhydryt vs Wylewka Cementowa</span>
                </div>
            </button>
            
            <button class="layer-btn" data-target="pane-hydraulika" data-layer="hydraulika">
                <span class="layer-icon">💧</span>
                <div>
                    <div class="layer-title">Opór Hydrauliczny</div>
                    <span class="layer-subtitle">Wyzwanie dla Pompy Obiegowej</span>
                </div>
            </button>
        </div>

        <div class="anatomy-details">
            
            <div class="detail-pane pane-active" id="pane-posadzka">
                <h4>Rodzaj posadzki a przewodność cieplna</h4>
                <p>Wybór materiału wykończeniowego ma krytyczny wpływ na to, jak dużo wyprodukowanego ciepła faktycznie przebije się do pomieszczenia.</p>
                <ul>
                    <li><strong>Płytki ceramiczne i kamień:</strong> Doskonale przewodzą ciepło. Przy tego typu posadzkach, standardowy rozstaw rur co 15 cm w zupełności wystarczy, aby sprawnie oddać zład energii.</li>
                    <li><strong>Drewno i grube wykładziny:</strong> Działają jak naturalny izolator cieplny. Jeśli planujesz takie wykończenie, rozstaw 10 cm staje się często koniecznością, aby skompensować blokadę termiczną podłogi.</li>
                </ul>
                <div class="highlight-box">
                    <strong>Wartości przewodności cieplnej (λ):</strong>
                    • Płytki ceramiczne: ok. 1,0–1,5 W/(m·K)<br>
                    • Drewno dębowe: zaledwie 0,15–0,2 W/(m·K) (5-krotnie słabsze przewodzenie!)
                </div>
            </div>

            <div class="detail-pane" id="pane-wylewka">
                <h4>Grubość i rodzaj jastrychu</h4>
                <p>W tradycyjnym ogrzewaniu podłogowym (systemie mokrym) parametry wylewki drastycznie zmieniają wydajność całego układu. Wylewka anhydrytowa (gipsowa) ma płynną konsystencję, dzięki czemu idealnie otula rury i przewodzi ciepło znacznie lepiej niż klasyczny, porowaty beton.</p>
                <p>Dzięki właściwościom anhydrytu, nawet przy rzadszym rozstawie 15 cm system zachowuje potężną moc oddawania ciepła.</p>
                <div class="highlight-box" style="border-left-color: var(--success);">
                    <strong>Przykład różnicy w mocy zasilania:</strong>
                    • Wylewka anhydrytowa (λ = 1,2 W/m·K) → moc oddawania ok. <strong>100 W/m²</strong> przy rozstawie rur 15 cm.<br>
                    • Wylewka cementowa (λ = 0,8 W/m·K) → moc zaledwie <strong>75 W/m²</strong> przy identycznych warunkach w tym samym domu.
                </div>
            </div>

            <div class="detail-pane" id="pane-hydraulika">
                <h4>Opór hydrauliczny instalacji</h4>
                <p>Gęstszy rozstaw rur do ogrzewania podłogowego (10 cm) to nie tylko wyższa moc grzewcza, ale również znacznie dłuższe pętle i ogromna ilość zakrętów.</p>
                <p>To powoduje drastyczny wzrost tzw. oporów przepływu. Skutek? Zbyt gęsta &#8222;podłogówka&#8221; wymusi na Tobie zastosowanie znacznie wydajniejszej (i droższej w zakupie oraz eksploatacji) pompy obiegowej.</p>
                <div class="highlight-box" style="border-left-color: var(--danger);">
                    <strong>Zestawienie oporów dla typowej pętli 100 m:</strong>
                    • Układanie rur co <strong>10 cm</strong> → generuje bardzo wysoki opór <strong>40–50 kPa</strong>.<br>
                    • Układanie rur co <strong>15 cm</strong> → redukuje opór do zaledwie <strong>20–25 kPa</strong>, odciążając całą kotłownię.
                </div>
            </div>

        </div>
    </div>
    
    <noscript>
        <style>
            /* Ujawnienie wszystkich zakładek, gdy JavaScript jest wyłączony */
            .detail-pane { display: block !important; margin-bottom: 40px; }
        </style>
        <div style="padding: 30px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h3 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Zestawienie parametrów (Wersja tekstowa)</h3>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Czynnik</th>
                        <th style="padding: 10px 0; color: #475569;">Parametr / Różnica</th>
                        <th style="padding: 10px 0; color: #475569;">Wniosek instalacyjny</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Posadzka</td>
                        <td style="padding: 10px 0;">Płytki (λ ~1.5) vs Drewno (λ ~0.2)</td>
                        <td style="padding: 10px 0;">Drewno mocno izoluje, wymuszając gęstszy rozstaw (10 cm).</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0; font-weight: bold;">Wylewka</td>
                        <td style="padding: 10px 0;">Anhydryt (100 W/m²) vs Cement (75 W/m²)</td>
                        <td style="padding: 10px 0;">Anhydryt lepiej przewodzi ciepło, pozwalając na rozstaw 15 cm.</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0; font-weight: bold;">Hydraulika</td>
                        <td style="padding: 10px 0;">10 cm (opór 50 kPa) vs 15 cm (25 kPa)</td>
                        <td style="padding: 10px 0; color: #dc2626; font-weight:bold;">Zbyt gęsty rozstaw obciąża pompę obiegową.</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
// Zapakowane w funkcję, by bezbłędnie działało w każdym środowisku WP
function initAnatomyTabs() {
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const lockContainer = document.getElementById('factors-anatomy-app-container');
        if (lockContainer) {
            lockContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
        return; 
    }

    const factorsApp = document.getElementById('factors-anatomy-app-container');
    if (!factorsApp) return;

    const layerBtns = factorsApp.querySelectorAll('.layer-btn');
    const panes = factorsApp.querySelectorAll('.detail-pane');

    layerBtns.forEach(function(button) {
        button.addEventListener('click', function(e) {
            e.preventDefault(); // Zabezpieczenie przed przeładowaniem

            // Usuwanie unikalnej klasy z przycisków
            layerBtns.forEach(function(btn) { btn.classList.remove('layer-active'); });
            // Usuwanie unikalnej klasy z paneli
            panes.forEach(function(pane) { pane.classList.remove('pane-active'); });
            
            // Dodawanie unikalnej klasy do klikniętego przycisku
            this.classList.add('layer-active');
            
            // Pokazywanie odpowiedniego panelu
            const targetId = this.getAttribute('data-target');
            const targetPane = factorsApp.querySelector('#' + targetId);
            if(targetPane) {
                targetPane.classList.add('pane-active');
            }
        });
    });
}

// Bezpieczne uruchomienie w środowiskach typu WordPress
if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', initAnatomyTabs);
} else {
    initAnatomyTabs();
}
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-steps-widget {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.steps-header {
    padding: 35px 40px;
    text-align: center;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
    border-bottom: 1px solid var(--border-color);
}

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

.steps-header p {
    margin: 0 auto;
    max-width: 750px;
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
}

.steps-container {
    padding: 30px 40px 40px 40px;
    background: #ffffff;
}

.step-item {
    border: 2px solid transparent;
    border-radius: 16px;
    margin-bottom: 15px;
    background: #ffffff;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.03);
    border: 1px solid #f1f5f9;
    transition: all 0.3s ease;
}

.step-item.active {
    border-color: #bfdbfe;
    background: #eff6ff;
    box-shadow: 0 12px 25px -5px rgba(37, 99, 235, 0.1);
}

.step-header {
    padding: 20px 25px;
    display: flex;
    align-items: center;
    cursor: pointer;
    gap: 20px;
}

.step-number {
    width: 44px;
    height: 44px;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    flex-shrink: 0;
    transition: all 0.3s ease;
}

.step-item.active .step-number {
    background: var(--accent);
    color: white;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.step-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    flex-grow: 1;
    line-height: 1.3;
}

.step-item.active .step-title {
    color: var(--accent);
}

.step-toggle {
    font-size: 24px;
    color: #94a3b8;
    transition: transform 0.3s ease;
}

.step-item.active .step-toggle {
    transform: rotate(180deg);
    color: var(--accent);
}

.step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0 25px;
}

.step-content-inner {
    padding-bottom: 25px;
    padding-left: 64px; /* Wyrównanie z tekstem tytułu */
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.step-content-inner p {
    margin-top: 0;
    margin-bottom: 15px;
}

.step-content-inner p:last-child {
    margin-bottom: 0;
}

.formula-box {
    background: #ffffff;
    border: 1px dashed #cbd5e1;
    padding: 15px 20px;
    border-radius: 12px;
    font-family: 'Courier New', Courier, monospace;
    color: var(--accent);
    font-weight: 700;
    font-size: 14px;
    margin: 15px 0;
    text-align: center;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);
}

.highlight-box {
    background: #ffffff;
    border-left: 4px solid var(--warning);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    margin: 15px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.highlight-box strong {
    display: block;
    margin-bottom: 5px;
    color: var(--warning);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.5px;
}

.cta-box {
    margin-top: 30px;
    padding: 25px 30px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    text-align: center;
}

.cta-box p {
    font-size: 15px;
    color: #334155;
    margin: 0 0 15px 0;
    font-weight: 500;
}

.cta-link {
    display: inline-block;
    background: var(--accent);
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
}

.cta-link:hover {
    background: #1d4ed8;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(37, 99, 235, 0.3);
}

@media (max-width: 768px) {
    .steps-header { padding: 30px 20px; }
    .steps-header h2 { font-size: 24px; }
    .steps-container { padding: 20px; }
    .step-header { padding: 15px; gap: 15px; }
    .step-title { font-size: 16px; }
    .step-number { width: 36px; height: 36px; font-size: 16px; }
    .step-content-inner { padding-left: 0; padding-bottom: 20px; font-size: 14px; }
    .formula-box { font-size: 13px; padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny poradnik: Jak dobrać rozstaw rur podłogówki",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Krok po kroku: interaktywny przewodnik inżynierski pomagający w doborze optymalnego rozstawu rur ogrzewania podłogowego z uwzględnieniem strat ciepła, źródła ogrzewania i rodzaju posadzki.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Kalkulacja realnego zapotrzebowania na ciepło",
      "Dobór rozstawu pod pompę ciepła vs kocioł gazowy",
      "Korekta obliczeń o opór cieplny posadzki"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "HowTo",
    "name": "Jak dobrać rozstaw rur w ogrzewaniu podłogowym",
    "description": "Instrukcja krok po kroku jak mądrze podejść do projektowania instalacji ogrzewania podłogowego i uniknąć kosztownych błędów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "step": [
      {
        "@type": "HowToStep",
        "name": "Oblicz realne zapotrzebowanie na ciepło dla każdego pokoju",
        "text": "Zastosuj wzór: Zapotrzebowanie (W) = Powierzchnia (m²) × Szacunkowe straty ciepła (W/m²). W przypadku nowych domów o niskich stratach standardowy rozstaw rur co 15 cm wystarczy z ogromnym zapasem."
      },
      {
        "@type": "HowToStep",
        "name": "Dopasuj rozstaw do planowanego źródła ciepła",
        "text": "Dla niskotemperaturowej pompy ciepła zalecany jest zagęszczony rozstaw 10 cm. Dla kotłów gazowych pracujących na wyższych temperaturach zasilania rozstaw 15 cm jest standardem."
      },
      {
        "@type": "HowToStep",
        "name": "Skoryguj obliczenia o rodzaj wykończenia podłogi",
        "text": "W przypadku podłóg drewnianych i paneli załóż spadek mocy grzewczej o 20-30%. Zrekompensuj to zagęszczając rozstaw rur do 10 cm."
      }
    ]
  }
]
</script>

<div class="premium-steps-widget premium-protected" id="steps-design-app-container">
    
    <div class="steps-header">
        <h2>Jak dobrać rozstaw rur w ogrzewaniu podłogowym – instrukcja krok po kroku</h2>
        <p>Błędy popełnione przy wymiarowaniu instalacji są niezwykle kosztowne w naprawie – często wiążą się z kuciem posadzki. Podpowiadamy, jak zminimalizować ryzyko na etapie planowania i mądrze podejść do projektowania instalacji ogrzewania podłogowego.</p>
    </div>

    <div class="steps-container">
        
        <div class="step-item active">
            <div class="step-header" onclick="toggleDesignStep(this)">
                <div class="step-number">1</div>
                <div class="step-title">Oblicz realne zapotrzebowanie na ciepło dla każdego pokoju</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content" style="max-height: 800px;">
                <div class="step-content-inner">
                    <p>Zanim w ogóle zaczniesz zastanawiać się nad tym, czy wybrać rozstaw rur 10 cm, czy 15 cm, musisz wiedzieć, ile energii potrzebuje dane pomieszczenie, aby utrzymać komfortową temperaturę (zazwyczaj 20-22°C w salonie i 24°C w łazience).</p>
                    
                    <p>Do wstępnych szacunków możesz użyć uproszczonego wzoru:</p>
                    <div class="formula-box">
                        Zapotrzebowanie (W) = Powierzchnia (m²) × Szacunkowe straty ciepła (W/m²)
                    </div>
                    
                    <div class="highlight-box">
                        <strong>Przykład obliczeniowy:</strong>
                        Wyobraźmy sobie sypialnię o powierzchni 15 m² w nowoczesnym, domu pasywnym (gdzie straty ciepła wynoszą zaledwie ok. 25 W/m²).<br><br>
                        <em>15 m² × 25 W/m² = <strong>375 W</strong></em><br><br>
                        Zapotrzebowanie jest bardzo niskie, co oznacza, że <strong>standardowy rozstaw rur co 15 cm wystarczy z ogromnym zapasem</strong>.
                    </div>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleDesignStep(this)">
                <div class="step-number">2</div>
                <div class="step-title">Dopasuj rozstaw do planowanego źródła ciepła</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Rozstaw rur w ogrzewaniu podłogowym musi bezpośrednio współpracować z urządzeniem, które grzeje wodę w instalacji. Błędne sparowanie tych dwóch elementów to najczęstsza przyczyna problemów i wysokich rachunków.</p>
                    
                    <ul>
                        <li><strong>Pompa ciepła (niskotemperaturowa):</strong> Osiąga najwyższą wydajność, gdy podgrzewa wodę do niskich temperatur (np. 32-35°C). Aby przy tak &#8222;letniej&#8221; wodzie ogrzać dom, rury muszą leżeć bardzo gęsto. <strong>Zalecany rozstaw to 10 cm.</strong></li>
                        <li><strong>Kocioł gazowy kondensacyjny:</strong> Pracuje bardzo efektywnie przy nieco wyższych temperaturach zasilania (np. 40-45°C). Wyższa temperatura nadrabia rzadsze ułożenie pętli. <strong>Tutaj rozstaw 15 cm jest standardem i pozwala zaoszczędzić na rurach PEX.</strong></li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="step-item">
            <div class="step-header" onclick="toggleDesignStep(this)">
                <div class="step-number">3</div>
                <div class="step-title">Skoryguj obliczenia o rodzaj wykończenia podłogi</div>
                <div class="step-toggle">▼</div>
            </div>
            <div class="step-content">
                <div class="step-content-inner">
                    <p>Jeśli planujesz wykończyć salon litym drewnem, deską barlinecką lub grubymi panelami laminowanymi, musisz pamiętać, że materiały te działają jak naturalny izolator. Utkną Ci one część ciepła produkowanego przez wylewkę.</p>
                    
                    <p><strong>Złota zasada instalatora:</strong> W przypadku drewna, z góry załóż <strong>spadek mocy grzewczej o 20–30%</strong> w stosunku do płytek ceramicznych. Aby temu zapobiec, masz dwie drogi:</p>
                    
                    <ol>
                        <li>Zwiększyć temperaturę zasilania na piecu (uwaga na gwarancję producenta paneli!).</li>
                        <li><strong>Zagęścić rozstaw rur do 10 cm</strong>, aby większa ilość ciepła skuteczniej &#8222;przebijała się&#8221; przez opór cieplny drewna.</li>
                    </ol>
                </div>
            </div>
        </div>

        <div class="cta-box">
            <p>Zbyt wiele zmiennych? Nie ryzykuj niedogrzania domu ani przepłacania za materiały. Zostaw twarde wyliczenia inżynierom.</p>
            <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/" target="_blank" class="cta-link">Sprawdź ofertę profesjonalnych projektów Ogrzewania Podłogowego →</a>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('steps-design-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To interaktywne narzędzie jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});

// 2. LOGIKA AKORDEONU
function toggleDesignStep(element) {
    const parent = element.parentElement;
    const content = parent.querySelector('.step-content');
    
    // Jeśli kliknięto otwarty panel - zamknij go
    if (parent.classList.contains('active')) {
        parent.classList.remove('active');
        content.style.maxHeight = null;
    } else {
        // Otwórz kliknięty panel
        parent.classList.add('active');
        content.style.maxHeight = content.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
}

/* ZAJAWKA SEO I LINK */
.calc-intro {
    max-width: 1150px;
    margin: 40px auto 10px auto;
    text-align: center;
    padding: 0 20px;
}

.calc-intro h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
    line-height: 1.3;
}

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

.screed-calc {
    max-width: 1150px;
    margin: 30px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: var(--primary);
    border: 1px solid #e2e8f0;
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.type-btn {
    padding: 14px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 12px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 25px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 25px; border-bottom: 6px solid var(--success); transition: 0.3s;
}
.score-num { font-size: 38px; font-weight: 900; line-height: 1.1; display: block; margin: 10px 0; }
.score-label { font-size: 12px; color: #64748b; font-weight: 700; text-transform: uppercase; }

#risk-msg {
    margin-top: 15px; padding: 12px 15px; border-radius: 10px; font-size: 13px; font-weight: 600; display: none; line-height: 1.5; text-align: center; border: 1px solid transparent;
}

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: grid; gap: 12px;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 15px; text-align: right;}

.material-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px;
}
.mini-card { background: rgba(255,255,255,0.08); padding: 15px; border-radius: 12px; text-align: center;}
.mini-card span { font-size: 11px; color: #94a3b8; display: block; margin-bottom: 6px; text-transform: uppercase; font-weight: 600;}
.mini-card strong { font-size: 18px; color: #fff; }

/* WYKRES PASKOWY */
.bars-container { margin-top: 25px; }
.bar-row { display: flex; align-items: center; margin-bottom: 10px; gap: 10px; }
.bar-label { width: 110px; font-size: 11px; font-weight: 800; color: #64748b; text-transform: uppercase; }
.bar-track { flex-grow: 1; height: 12px; background: #e2e8f0; border-radius: 6px; overflow: hidden; position: relative; }
.bar-fill { height: 100%; transition: width 0.4s ease; border-radius: 6px; }

/* STOPKA */
.footer-cta {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    max-width: 550px;
}

.cta-buttons-stack {
    display: flex;
    flex-direction: column; 
    gap: 12px;
    min-width: 280px; 
}

.cta-btn {
    display: block; background: var(--accent); color: white; text-decoration: none; padding: 16px 20px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; gap: 25px; margin: 20px; }
    .cta-buttons-stack { min-width: 100%; width: 100%; }
}
</style>

<div class="calc-intro">
    <h2>Rozstaw rur w ogrzewaniu podłogowym co 10 czy 15 cm? Kalkulator</h2>
    <p>Zastanawiasz się, jaki rozstaw rur będzie optymalny dla Twojego domu? Skorzystaj z kalkulatora inżynierów <a href="https://projekt-ogrzewania.pl/" style="color: #2563eb; font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>. Wybierz standard ocieplenia budynku, rodzaj posadzki oraz źródło ciepła, a algorytm wskaże Ci <strong>jedyną bezpieczną decyzję</strong>, eliminując ryzyko niedogrzania zimą.</p>
</div>

<div class="screed-calc premium-protected" id="pipe-spacing-calc-app">
    <div class="calc-grid">
        
        <div class="config-side">
            <span class="section-title">1. Standard izolacji budynku (Straty ciepła)</span>
            <div class="type-selector">
                <div class="type-btn active" id="btn-bldg-new">NOWY DOM / PASYWNY<span style="font-size:10px; font-weight:400">Zapotrzebowanie ok. 50 W/m²</span></div>
                <div class="type-btn" id="btn-bldg-old">STARY DOM (Po remoncie)<span style="font-size:10px; font-weight:400">Zapotrzebowanie ok. 80 W/m²</span></div>
            </div>

            <span class="section-title">2. Planowane wykończenie podłogi</span>
            <div class="type-selector" style="grid-template-columns: 1fr 1fr 1fr; margin-bottom: 25px;">
                <div class="type-btn active" id="btn-floor-tiles">PŁYTKI<span style="font-size:10px; font-weight:400">Ceramika</span></div>
                <div class="type-btn" id="btn-floor-panels">PANELE<span style="font-size:10px; font-weight:400">Laminat</span></div>
                <div class="type-btn" id="btn-floor-wood">DREWNO<span style="font-size:10px; font-weight:400">Deska lita</span></div>
            </div>

            <span class="section-title">3. Parametry pomieszczenia i zasilania</span>
            <div class="input-wrap">
                <div class="input-label-row"><label>Powierzchnia pomieszczenia</label><span class="val-badge"><span id="v-area">20</span> m²</span></div>
                <input type="range" id="inp-area" min="5" max="100" step="1" value="20">
            </div>
            
            <div class="input-wrap" style="margin-bottom: 0;">
                <div class="input-label-row"><label>Temperatura zasilania (T_zas)</label><span class="val-badge"><span id="v-temp">35</span> °C</span></div>
                <input type="range" id="inp-temp" min="30" max="50" step="1" value="35">
                <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Dla pomp ciepła zaleca się 30-35°C. Dla kotłów gazowych 40-45°C.</div>
            </div>
        </div>

        <div class="result-side">
            <div id="mainBox" class="main-score-box">
                <span class="score-label">Rekomendowany rozstaw rur w tym pokoju:</span>
                <span class="score-num" id="resRec">&#8212;</span>
                <div id="risk-msg">✅ System działa optymalnie!</div>
            </div>

            <div class="tech-grid">
                <div class="tech-item"><span>Wymagane zapotrzebowanie cieplne:</span><strong id="resReqPower">&#8212;</strong></div>
                <div class="tech-item"><span>Uzyskana moc przy rozstawie 15 cm:</span><strong id="resPower15">&#8212;</strong></div>
                <div class="tech-item"><span>Uzyskana moc przy rozstawie 10 cm:</span><strong id="resPower10">&#8212;</strong></div>
                
                <div class="material-grid">
                    <div class="mini-card"><span>Zapotrzebowanie rury (15 cm):</span><strong id="resPipe15">&#8212;</strong></div>
                    <div class="mini-card"><span>Zapotrzebowanie rury (10 cm):</span><strong id="resPipe10">&#8212;</strong></div>
                </div>
            </div>
            
            <div class="bars-container">
                <div class="bar-row">
                    <div class="bar-label" style="color:var(--primary)">Zapotrzebowanie</div>
                    <div class="bar-track"><div class="bar-fill" id="bar-req" style="background:#0f172a;"></div></div>
                </div>
                <div class="bar-row">
                    <div class="bar-label">Moc z 15 cm</div>
                    <div class="bar-track"><div class="bar-fill" id="bar-15" style="background:#94a3b8;"></div></div>
                </div>
                <div class="bar-row">
                    <div class="bar-label">Moc z 10 cm</div>
                    <div class="bar-track"><div class="bar-fill" id="bar-10" style="background:var(--accent);"></div></div>
                </div>
            </div>
            
        </div>
    </div>

    <div class="footer-cta">
        <div class="cta-text-side">
            <h3 style="margin:0 0 10px 0; color:#1e3a8a">Oszczędź na rurach, ale nie zepsuj ogrzewania</h3>
            <p style="margin:0; font-size:14px; color:#475569">Różnica w kosztach ułożenia rur co 10 cm, a 15 cm dla całego domu może wynieść nawet kilka tysięcy złotych. Nie zgaduj – zleć precyzyjne obliczenia projektowe inżynierom i miej 100% pewności, że zimą nie zmarzniesz.</p>
        </div>
        <div class="cta-buttons-stack">
            <a href="javascript:void(0)" id="btn-email" class="cta-btn" style="background:#1e293b">
                WYŚLIJ WYNIKI NA E-MAIL
            </a>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">
                ZAMÓW PROJEKT OGRZEWANIA →
            </a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ZABEZPIECZENIE DOMENOWE
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('pipe-spacing-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;"><span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span><h3 style="margin-top:0; font-size: 24px;">Narzędzie chronione</h3><p style="font-size: 16px; margin-bottom: 25px;">Ten kalkulator jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p></div>';
        }
        return; 
    }

    // STAN APLIKACJI
    var bldgType = 'new';
    var floorType = 'tiles';

    function updateCalc() {
        var areaEl = document.getElementById('inp-area');
        var tempEl = document.getElementById('inp-temp');
        if(!areaEl || !tempEl) return;

        var area = parseFloat(areaEl.value);
        var tempZas = parseFloat(tempEl.value);
        
        document.getElementById('v-area').innerText = area;
        document.getElementById('v-temp').innerText = tempZas;

        // Logika zapotrzebowania
        var reqPower = (bldgType === 'new') ? 50 : 80;

        // Logika wykończenia podłogi
        var floorFactor = 1.0;
        if(floorType === 'panels') floorFactor = 0.8;
        if(floorType === 'wood') floorFactor = 0.65;

        // Symulacja mocy W/m2 (Wzór empiryczny)
        var deltaT = tempZas - 20; // Zakładana temp w pokoju to 20C
        var power15 = Math.max(0, deltaT * 4.0 * floorFactor);
        var power10 = Math.max(0, deltaT * 5.5 * floorFactor);

        // Ilość rury (mb)
        var pipeLen15 = Math.round(area * 6.6);
        var pipeLen10 = Math.round(area * 10.0);

        // Werdykt algorytmu
        var recommended = "Co 15 cm";
        var riskMsg = "";
        var boxColor = "var(--success)";
        var riskBg = "#dcfce7";

        if (power15 >= reqPower) {
            recommended = "Rozstaw co 15 cm";
            riskMsg = "✅ System przy rozstawie 15 cm w zupełności pokryje zapotrzebowanie cieplne. Zaoszczędzisz na rurach.";
            boxColor = "var(--success)";
            riskBg = "#dcfce7";
        } else if (power10 >= reqPower) {
            recommended = "Rozstaw co 10 cm";
            riskMsg = "⚠️ Przy 15 cm brakuje mocy! Musisz zagęścić rury do 10 cm, aby uniknąć niedogrzania w mrozy.";
            boxColor = "var(--warning)";
            riskBg = "#ffedd5";
        } else {
            recommended = "Zbyt niska moc!";
            riskMsg = "❌ Nawet przy rozstawie 10 cm podłoga nie da rady ogrzać pomieszczenia. Podnieś temperaturę zasilania lub zmień posadzkę.";
            boxColor = "var(--danger)";
            riskBg = "#fee2e2";
        }

        // Dodatkowe ostrzeżenie dla drewna i wysokiej temperatury
        if ((floorType === 'panels' || floorType === 'wood') && tempZas > 40) {
            riskMsg += "<br><br>🔥 <strong>RYZYKO:</strong> Temperatura zasilania powyżej 40°C może zdeformować Twoją posadzkę (szpary w podłodze)!";
            boxColor = "var(--danger)";
            riskBg = "#fee2e2";
        }

        // Aktualizacja DOM
        document.getElementById('resRec').innerText = recommended;
        document.getElementById('resRec').style.color = boxColor;
        document.getElementById('mainBox').style.borderBottomColor = boxColor;
        
        var rMsg = document.getElementById('risk-msg');
        rMsg.innerHTML = riskMsg;
        rMsg.style.display = 'block';
        rMsg.style.color = (boxColor === 'var(--warning)') ? '#9a3412' : boxColor;
        rMsg.style.borderColor = boxColor;
        rMsg.style.backgroundColor = riskBg;

        document.getElementById('resReqPower').innerText = reqPower + ' W/m²';
        document.getElementById('resPower15').innerText = Math.round(power15) + ' W/m²';
        document.getElementById('resPower10').innerText = Math.round(power10) + ' W/m²';
        document.getElementById('resPipe15').innerText = pipeLen15 + ' mb';
        document.getElementById('resPipe10').innerText = pipeLen10 + ' mb';

        // Paski proporcji
        var maxP = Math.max(reqPower, power10) + 10;
        document.getElementById('bar-req').style.width = Math.min(100, (reqPower/maxP)*100) + '%';
        document.getElementById('bar-15').style.width = Math.min(100, (power15/maxP)*100) + '%';
        document.getElementById('bar-10').style.width = Math.min(100, (power10/maxP)*100) + '%';
        
        // Koloruj pasek z 15cm na czerwono jesli nie wyrabia
        document.getElementById('bar-15').style.background = (power15 < reqPower) ? '#fca5a5' : '#94a3b8';
    }

    // Bindowanie przycisków
    var btnNew = document.getElementById('btn-bldg-new');
    var btnOld = document.getElementById('btn-bldg-old');
    
    if(btnNew) btnNew.addEventListener('click', function(){ bldgType = 'new'; btnOld.classList.remove('active'); btnNew.classList.add('active'); updateCalc(); });
    if(btnOld) btnOld.addEventListener('click', function(){ bldgType = 'old'; btnNew.classList.remove('active'); btnOld.classList.add('active'); updateCalc(); });

    var btnTiles = document.getElementById('btn-floor-tiles');
    var btnPanels = document.getElementById('btn-floor-panels');
    var btnWood = document.getElementById('btn-floor-wood');

    function resetFloorBtns() { btnTiles.classList.remove('active'); btnPanels.classList.remove('active'); btnWood.classList.remove('active'); }

    if(btnTiles) btnTiles.addEventListener('click', function(){ floorType = 'tiles'; resetFloorBtns(); btnTiles.classList.add('active'); updateCalc(); });
    if(btnPanels) btnPanels.addEventListener('click', function(){ floorType = 'panels'; resetFloorBtns(); btnPanels.classList.add('active'); updateCalc(); });
    if(btnWood) btnWood.addEventListener('click', function(){ floorType = 'wood'; resetFloorBtns(); btnWood.classList.add('active'); updateCalc(); });

    // Bindowanie suwaków
    var areaInput = document.getElementById('inp-area');
    var tempInput = document.getElementById('inp-temp');
    if(areaInput) areaInput.addEventListener('input', updateCalc);
    if(tempInput) tempInput.addEventListener('input', updateCalc);

    // Bindowanie E-mail
    var btnEmail = document.getElementById('btn-email');
    if(btnEmail) {
        btnEmail.addEventListener('click', function() {
            var area = document.getElementById('v-area').innerText;
            var temp = document.getElementById('v-temp').innerText;
            var rec = document.getElementById('resRec').innerText;
            
            var email = 'biuro@projekt-ogrzewania.pl';
            var subject = encodeURIComponent('Konsultacja - Rozstaw Rur (10 cm czy 15 cm)');
            
            var bodyText = 'Dzień dobry,\n\nZrobiłem wstępne kalkulacje rozstawu rur z Państwa kalkulatora na blogu:\n\n' +
                           '• Powierzchnia pokoju: ' + area + ' m²\n' +
                           '• Zakładana temperatura zasilania: ' + temp + ' °C\n' +
                           '• Rekomendowany rozstaw z algorytmu: ' + rec + '\n\n' +
                           'Proszę o wycenę profesjonalnego projektu ogrzewania podłogowego z precyzyjnym doborem pętli.';
            
            var ampersand = String.fromCharCode(38);           
            window.location.href = 'mailto:' + email + '?subject=' + subject + ampersand + 'body=' + encodeURIComponent(bodyText);
        });
    }

    updateCalc();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-myth-box {
    max-width: 1050px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.myth-header {
    padding: 35px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.myth-header h3 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
}

.myth-header p {
    margin: 0 auto;
    max-width: 800px;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.myth-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    padding: 40px;
    background: #ffffff;
}

/* FLIP CARD STYLES */
.flip-card {
    background-color: transparent;
    width: 100%;
    min-height: 360px;
    perspective: 1000px;
    cursor: pointer;
}

.flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
}

.flip-card.is-flipped .flip-card-inner {
    transform: rotateY(180deg);
}

.flip-card-front, .flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 20px;
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    border: 2px solid transparent;
}

.flip-card-front {
    background-color: #fef2f2;
    border-color: #fecaca;
    color: var(--danger);
}

.flip-card-back {
    background-color: #f0fdf4;
    border-color: #bbf7d0;
    color: var(--success);
    transform: rotateY(180deg);
}

.card-icon {
    font-size: 42px;
    margin-bottom: 15px;
    line-height: 1;
}

.card-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
    opacity: 0.8;
}

.card-text {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.flip-card-back .card-title {
    color: var(--success);
}

.flip-card-back .card-text {
    font-size: 14px;
    font-weight: 500;
    color: #166534;
    line-height: 1.6;
}

.flip-hint {
    margin-top: 20px;
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.8);
    padding: 6px 16px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.myth-summary {
    margin: 0 40px 40px 40px;
    padding: 30px;
    background: #eff6ff;
    border-radius: 20px;
    border-left: 6px solid var(--accent);
}

.myth-summary h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.myth-summary p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: #334155;
}

@media (max-width: 900px) {
    .myth-grid { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
    .flip-card { min-height: 280px; }
    .myth-summary { margin: 0 20px 25px 20px; padding: 25px 20px; }
    .myth-header { padding: 25px 20px; }
}
</style>

<div class="premium-myth-box premium-protected" id="pipe-spacing-myths-app">
    <div class="myth-header">
        <h3>Fakty i Mity: Rozstaw rur w ogrzewaniu podłogowym</h3>
        <p>Wokół zagadnienia <strong>rozstawu rur co 10 czy 15 cm</strong> urosło w internecie wiele szkodliwych mitów, które prowadzą do kosztownych błędów instalacyjnych. Obalmy trzy najpopularniejsze wymysły "fachowców" starej daty. <strong>Kliknij kartę, aby poznać brutalną prawdę.</strong></p>
    </div>

    <div class="myth-grid">
        
        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">💸</div>
                    <div class="card-title">MIT #1</div>
                    <p class="card-text">"Rozstaw co 10 cm to naciąganie na materiał przez instalatora. Rurka ułożona co 15 cm ogrzeje każdy dom tak samo dobrze."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">🥶</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To najkrótsza droga do niedogrzania w zimie.</strong> W starym budownictwie lub łazience z dużą wentylacją, rozstaw 15 cm nie odda wystarczającej mocy. Aby utrzymać 20°C w pokoju, będziesz musiał podnieść temperaturę zasilania na piecu do 45-50°C, co drastycznie podniesie Twoje rachunki.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">🪵</div>
                    <div class="card-title">MIT #2</div>
                    <p class="card-text">"Mam grube, dębowe deski. Dam rozstaw rur co 15 cm, ale po prostu odkręcę wyższą temperaturę na pompie, żeby przebiło się przez drewno."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">🔥</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>Tak zniszczysz swoją posadzkę.</strong> Producenci drewna i paneli zabraniają podgrzewania podłogi powyżej 27°C (temp. na powierzchni). Jeśli puścisz 45°C pod izolujące drewno przy rzadkim rozstawie, zrobisz sobie "zebrę cieplną", a podłoga zschnie się i pojawią się wielkie szpary.</p>
                </div>
            </div>
        </div>

        <div class="flip-card" onclick="this.classList.toggle('is-flipped')">
            <div class="flip-card-inner">
                <div class="flip-card-front">
                    <div class="card-icon">📏</div>
                    <div class="card-title">MIT #3</div>
                    <p class="card-text">"Najlepiej dać wszędzie w domu rurki co 10 cm. Będzie cieplej i bezpieczniej, bo więcej rury to zawsze lepiej."</p>
                    <div class="flip-hint" style="color: var(--danger)"><span>Odwróć kartę</span> ⤵</div>
                </div>
                <div class="flip-card-back">
                    <div class="card-icon">⚙️</div>
                    <div class="card-title">FAKT</div>
                    <p class="card-text"><strong>To bezsensowne przewymiarowanie.</strong> Wkładanie rury co 10 cm w ocieplonym domu pasywnym to wyrzucanie pieniędzy w błoto. Taki układ wygeneruje gigantyczne opory hydrauliczne, wymusi montaż znacznie mocniejszej pompy obiegowej, a dom i tak szybciej się nie nagrzeje.</p>
                </div>
            </div>
        </div>

    </div>

    <div class="myth-summary">
        <h4>Podsumowując – nie ufaj opiniom z forów, zaufaj inżynierii</h4>
        <p>Rozstaw rur w ogrzewaniu podłogowym (10 czy 15 cm) <strong>nigdy nie powinien być "zgadywany"</strong> na budowie. Zbyt rzadki rozstaw oznacza zimno w domu lub konieczność pracy na wysokich, prądożernych temperaturach. Zbyt gęsty rozstaw to przepalony budżet instalacyjny i wysokie opory tłoczenia wody w rurach. Jedyną właściwą drogą jest wykonanie profesjonalnego projektu, uwzględniającego rodzaj izolacji i typ posadzki (ceramika vs drewno).</p>
    </div>
</div>

<script>
/* DOMAIN PROTECTION MODULE */
!function(){var _0x1f2a=['\x68\x6f\x73\x74\x6e\x61\x6d\x65','\x6c\x6f\x63\x61\x74\x69\x6f\x6e','\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x77\x77\x77\x2e\x70\x72\x6f\x6a\x65\x6b\x74\x2d\x6f\x67\x72\x7a\x65\x77\x61\x6e\x69\x61\x2e\x70\x6c','\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74','\x31\x32\x37\x2e\x30\x2e\x30\x2e\x31','','\x69\x6e\x63\x6c\x75\x64\x65\x73','\x70\x69\x70\x65\x2d\x73\x70\x61\x63\x69\x6e\x67\x2d\x6d\x79\x74\x68\x73\x2d\x61\x70\x70','\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c','\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64','\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64','\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72'];document[_0x1f2a[12]](_0x1f2a[11],function(){var _0x4b9c=window[_0x1f2a[1]][_0x1f2a[0]];var _0x2c3d=[_0x1f2a[2],_0x1f2a[3],_0x1f2a[4],_0x1f2a[5],_0x1f2a[6]];if(!_0x2c3d[_0x1f2a[7]](_0x4b9c)){document[_0x1f2a[10]](_0x1f2a[8])[_0x1f2a[9]]=decodeURIComponent(escape(window.atob('PGRpdiBzdHlsZT0icGFkZGluZzogNjBweCAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJhY2tncm91bmQ6ICNmZWUyZTI7IGNvbG9yOiAjZGMyNjI2OyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgbWluLWhlaWdodDogNDAwcHg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiA0OHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyI+8J+TkTwvc3Bhbj48aDMgc3R5bGU9Im1hcmdpbi10b3A6MDsgZm9udC1zaXplOiAyNHB4OyI+VHJlxZvEhyBjaHJvbmlvbmEgcHJhd2VtIGF1dG9yc2tpbTwvaDM+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTZweDsgbWF4LXdpZHRoOiA1MDBweDsgY29sb3I6ICM3ZjFkMWQ7IGxpbmUtaGVpZ2h0OiAxLjU7Ij5UbyB6ZXN0YXdpZW5pZSBqZXN0IHfFgmFzbm/Fm2NpxIUgc2Vyd2lzdSA8c3Ryb25nPlByb2pla3QtT2dyemV3YW5pYS5wbDwvc3Ryb25nPiBpIHpvc3RhxYJvIHdrbGVqb25lIG5hIHTEmSBzdHJvbsSZIGJleiB6Z29keSBhdXRvcmEuPC9wPjxhIGhyZWY9Imh0dHBzOi8vcHJvamVrdC1vZ3J6ZXdhbmlhLnBsLyIgc3R5bGU9Im1hcmdpbi10b3A6IDI1cHg7IHBhZGRpbmc6IDE0cHggMjhweDsgYmFja2dyb3VuZDogI2RjMjYyNjsgY29sb3I6IHdoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1yYWRpdXM6IDEycHg7IGZvbnQtd2VpZ2h0OiA4MDA7IHRyYW5zaXRpb246IDAuM3M7Ij5aT0JBQ1ogT1JZR0lOQUxOWSBBUlRZS1XFgTwvYT48L2Rpdj4=')));}})}();
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-questions {
    max-width: 1000px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.qa-header {
    text-align: center;
    margin-bottom: 40px;
}

.qa-header h2 {
    font-size: 32px;
    font-weight: 900;
    color: var(--primary);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.qa-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
}

.qa-list {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.qa-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
}

.qa-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    border-color: #cbd5e1;
}

.question-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--primary);
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-light);
    display: flex;
    gap: 15px;
    align-items: center;
}

.q-number {
    background: var(--primary);
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.answers-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.answer-box {
    padding: 20px;
    border-radius: 12px;
    border-left: 4px solid;
}

.answer-bad {
    background: #fef2f2;
    border-color: var(--danger);
}

.answer-good {
    background: #f0fdf4;
    border-color: var(--success);
}

.answer-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.answer-bad .answer-label { color: var(--danger); }
.answer-good .answer-label { color: var(--success); }

.answer-text {
    font-size: 15px;
    line-height: 1.6;
    color: #334155;
    margin: 0;
}

.answer-bad .answer-text {
    font-style: italic;
}

.red-flags-section {
    margin-top: 50px;
    background: #fff1f2;
    border: 2px dashed #fecaca;
    border-radius: 20px;
    padding: 35px 40px;
}

.red-flags-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
}

.red-flags-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    color: #9f1239;
}

.flags-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.flags-list li {
    position: relative;
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
    color: #7f1d1d;
    font-weight: 600;
}

.flags-list li::before {
    content: "✖";
    position: absolute;
    left: 0;
    top: 2px;
    color: var(--danger);
    font-size: 18px;
}

@media (max-width: 768px) {
    .answers-grid { grid-template-columns: 1fr; gap: 15px; }
    .qa-card { padding: 20px; }
    .question-title { font-size: 18px; line-height: 1.4; align-items: flex-start; }
    .red-flags-section { padding: 25px 20px; }
    .red-flags-header h3 { font-size: 20px; }
}
</style>

<div class="premium-questions premium-protected" id="qa-spacing-faq-app">
    
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "mainEntity": [{
        "@type": "Question",
        "name": "Czy rozstaw rur 10 cm zawsze jest lepszy niż 15 cm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, rzadszy rozstaw nie zawsze jest gorszy. Rozstaw 10 cm sprawdza się świetnie w pomieszczeniach o dużych stratach ciepła (np. łazienki) lub przy niskotemperaturowych źródłach ciepła takich jak pompy ciepła. W dobrze izolowanych domach z kotłami gazowymi w zupełności wystarczy rozstaw 15 cm."
        }
      }, {
        "@type": "Question",
        "name": "Jakie są koszty różnicy w rozstawie rur?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Decyzja o zmianie z 15 cm na 10 cm wiąże się ze wzrostem zużycia rury pex o 50% na każdym metrze kwadratowym podłogi. To oznacza, że różnica kosztów materiałów i samego montażu instalacji może wzrosnąć nawet o 20–30%."
        }
      }, {
        "@type": "Question",
        "name": "Czy rozstaw rur w ogrzewaniu podłogowym wpływa na odczuwalną temperaturę podłogi?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak. Gęstszy rozstaw (10 cm) minimalizuje zjawisko tzw. 'zebry termicznej', zapewniając dużo bardziej równomierną dystrybucję ciepła. Przekłada się to na przyjemniejszą, wyższą temperaturę podłogi, nawet przy relatywnie niskiej temperaturze zasilania z pieca."
        }
      }, {
        "@type": "Question",
        "name": "Czy mogę zastosować różne rozstawy rur w różnych pomieszczeniach w jednym domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Zdecydowanie tak, to bardzo profesjonalna i częsta praktyka. Przykładem jest zastosowanie gęstszego rozstawu 10 cm w łazience lub przy ogromnych oknach, a szerszego 15 cm w salonie lub na korytarzach, aby idealnie dostosować moc do strat ciepła."
        }
      }, {
        "@type": "Question",
        "name": "Jak sprawdzić, czy rozstaw 15 cm będzie wystarczający w moim nowym domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Kluczem jest wykonanie rzetelnego obliczenia strat ciepła (OZC) dla każdego pomieszczenia przez projektanta instalacji. Jeśli wykaże on, że zapotrzebowanie nie przekracza 70–80 W/m², rozstaw 15 cm i standardowa wylewka betonowa będą w pełni wystarczające."
        }
      }]
    }
    </script>
    
    <div class="qa-header">
        <h2>❓ FAQ – Rozstaw rur pod lupą</h2>
        <p>Podsumujmy wiedzę! Oto odpowiedzi na najczęściej zadawane pytania przez inwestorów, opracowane przez ekspertów Projekt-Ogrzewania.pl. Sprawdź, czy powielasz popularne mity budowlane.</p>
    </div>

    <div class="qa-list">
        
        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">1</span> Czy rozstaw rur 10 cm zawsze jest lepszy niż 15 cm?</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Powszechny Mit</div>
                    <p class="answer-text">„Więcej rurek to więcej ciepła w domu. Oszczędzanie na rurach to głupota, zawsze kładę wszędzie co 10 cm.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Odpowiedź inżyniera</div>
                    <p class="answer-text">Nie, gęściej nie zawsze znaczy lepiej. Rozstaw 10 cm to konieczność w łazienkach czy przy pompach ciepła. Jednak w ocieplonym domu z kotłem gazowym układanie co 10 cm to <strong>przewymiarowanie</strong>, generujące jedynie koszty i ogromne opory pompy obiegowej.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">2</span> Jakie są koszty różnicy w rozstawie rur?</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Powszechny Mit</div>
                    <p class="answer-text">„To tylko parę rolek rury więcej, koszty są marginalne, panie inwestorze.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Odpowiedź inżyniera</div>
                    <p class="answer-text">Zmiana decyzji z 15 cm na 10 cm to zużycie rury większe aż o <strong>50%</strong> (10 mb vs 6,6 mb na 1 m²). Dodatkowo pętle stają się dłuższe, co wymusza zakup większych rozdzielaczy i spędzenie wielu dodatkowych godzin na układaniu. Różnica cenowa całego układu to zwykle 20-30%.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">3</span> Czy rozstaw rur wpływa na temperaturę podłogi?</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Powszechny Mit</div>
                    <p class="answer-text">„Beton po 5 godzinach i tak cały się nagrzeje, nie ma żadnej różnicy, co leży pod spodem.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Odpowiedź inżyniera</div>
                    <p class="answer-text">Tak. Zastosowanie rozstawu 10 cm zapewnia znacznie bardziej równomierną dystrybucję ciepła (brak tzw. zebry cieplnej – chłodniejszych pasów). Pozwala to cieszyć się przyjemnie ciepłą podłogą, używając bardzo "chłodnej" i taniej wody z pompy ciepła.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">4</span> Czy mogę zastosować różne rozstawy w różnych pokojach?</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Powszechny Mit</div>
                    <p class="answer-text">„Zawsze robimy w całym domu jeden rozstaw dla świętego spokoju, po co to mieszać i kombinować.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Odpowiedź inżyniera</div>
                    <p class="answer-text">Zdecydowanie tak! Zmiana zagęszczenia rur to cecha profesjonalnego projektu. Standardem jest stosowanie gęstszego rozstawu (10 cm) w zimnych strefach brzegowych i łazienkach, a standardowego (15 cm) w sypialniach i na korytarzach.</p>
                </div>
            </div>
        </div>

        <div class="qa-card">
            <h3 class="question-title"><span class="q-number">5</span> Jak sprawdzić, czy rozstaw 15 cm wystarczy w moim domu?</h3>
            <div class="answers-grid">
                <div class="answer-box answer-bad">
                    <div class="answer-label">❌ Powszechny Mit</div>
                    <p class="answer-text">„Zapytam na forum facebookowym, tam mają takie same domy z bloczka i powiedzą, jak u nich grzeje.”</p>
                </div>
                <div class="answer-box answer-good">
                    <div class="answer-label">✅ Odpowiedź inżyniera</div>
                    <p class="answer-text">Należy zamówić projekt i wyliczyć tzw. OZC (straty ciepła) dla każdego pomieszczenia. Jeśli zapotrzebowanie <strong>nie przekracza 70–80 W/m²</strong> (co w nowych domach jest normą), rozstaw rur co 15 cm będzie w 100% wystarczający i bezpieczny.</p>
                </div>
            </div>
        </div>

    </div>

    <div class="red-flags-section">
        <div class="red-flags-header">
            <span style="font-size: 32px;">🔥</span>
            <h3>Podsumowanie: 10 cm czy 15 cm?</h3>
        </div>
        <ul class="flags-list" style="margin-bottom: 25px;">
            <li style="color: var(--primary);"><strong>Wybierz rozstaw 10 cm</strong>, jeśli masz niskotemperaturową pompę ciepła, słabą izolację ścian lub planujesz ułożenie drewnianej podłogi.</li>
            <li style="color: var(--primary);"><strong>Wybierz rozstaw 15 cm</strong>, gdy Twój dom jest świetnie ocieplony, użytkujesz piec gazowy i planujesz posadzkę z płytek ceramicznych.</li>
        </ul>
        <div style="background: #ffffff; padding: 20px; border-radius: 12px; font-weight: 600; color: #475569; text-align: center; border: 1px solid #e2e8f0;">
            Pamiętaj: Każdy dom wymaga indywidualnej analizy. Aby uniknąć drastycznego przewymiarowania lub niedogrzania zimą, <strong>nie zgaduj!</strong> Skonsultuj swój przypadek i zleć wykonanie profesjonalnego projektu instalacji ogrzewania podłogowego.
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Kod Jawny)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('qa-spacing-faq-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</h3>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5;">To zestawienie jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało wklejone na tę stronę bez zgody autora.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-summary-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

/* 1. ASYSTENT WYBORU - WIDGET */
.decision-card {
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid var(--border-color);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin-bottom: 40px;
}

.decision-header {
    padding: 35px 40px;
    background: linear-gradient(135deg, var(--primary) 0%, #1e293b 100%);
    color: white;
    text-align: center;
}

.decision-header h2 {
    margin: 0 0 10px 0;
    font-size: 24px;
    font-weight: 900;
    color: #fff;
}

.decision-header p {
    margin: 0;
    font-size: 14px;
    color: #cbd5e1;
    opacity: 0.9;
}

.decision-body {
    padding: 40px;
}

.selector-group {
    margin-bottom: 30px;
}

.selector-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.options-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.opt-btn {
    padding: 15px;
    border: 2px solid #e2e8f0;
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 14px;
    transition: all 0.2s;
    background: #fff;
    color: #475569;
}

.opt-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
}

/* WYNIK WIDGETU */
.result-area {
    background: var(--bg-light);
    border-radius: 20px;
    padding: 30px;
    text-align: center;
    border: 2px dashed #cbd5e1;
    transition: 0.3s;
}

.result-tag {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 10px;
    display: block;
}

.result-value {
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 15px;
    display: block;
}

.result-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    max-width: 600px;
    margin: 0 auto;
}

/* 2. ROZWINIĘTE PODSUMOWANIE TEKSTOWE */
.summary-content {
    padding: 0 10px;
}

.summary-content h3 {
    font-size: 24px;
    font-weight: 900;
    margin-bottom: 20px;
}

.summary-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.summary-text strong {
    color: var(--primary);
}

.summary-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin: 30px 0;
}

.summary-col {
    background: #fff;
    padding: 25px;
    border-radius: 18px;
    border: 1px solid var(--border-color);
}

.summary-col h4 {
    margin: 0 0 15px 0;
    font-size: 17px;
    font-weight: 800;
}

.summary-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.summary-col li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 10px;
    font-size: 14px;
}

.summary-col li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--success);
    font-weight: 900;
}

/* STOPKA KONTAKT */
.contact-cta {
    background: #eff6ff;
    border-radius: 20px;
    padding: 35px;
    text-align: center;
    border: 1px solid #bfdbfe;
}

.contact-cta h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
}

.contact-cta p {
    margin-bottom: 25px;
    color: #475569;
}

.contact-btn {
    display: inline-block;
    background: var(--accent);
    color: white;
    padding: 16px 35px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
    transition: 0.3s;
    box-shadow: 0 10px 20px -5px rgba(37, 99, 235, 0.4);
}

.contact-btn:hover {
    transform: translateY(-3px);
    background: #1d4ed8;
}

@media (max-width: 768px) {
    .decision-body { padding: 25px; }
    .options-grid { grid-template-columns: 1fr; }
    .summary-split { grid-template-columns: 1fr; }
    .decision-header h2 { font-size: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Asystent Wyboru: Rozstaw rur ogrzewania podłogowego",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Interaktywny asystent inżynierski pomagający dobrać optymalny rozstaw rur ogrzewania podłogowego (10 cm lub 15 cm) na podstawie standardu izolacji, źródła ciepła i rodzaju posadzki.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "featureList": [
      "Kalkulacja optymalnego rozstawu rur PEX",
      "Analiza wpływu pompy ciepła i kotła gazowego",
      "Uwzględnienie oporu cieplnego posadzki"
    ]
  }
]
</script>

<div class="premium-summary-module premium-protected" id="final-summary-app">
    
    <div class="decision-card">
        <div class="decision-header">
            <h2>Asystent Wyboru: 10 cm czy 15 cm?</h2>
            <p>Zaznacz swoje parametry, aby otrzymać błyskawiczną rekomendację inżynierską.</p>
        </div>
        
        <div class="decision-body">
            <div class="selector-group">
                <span class="selector-label">1. Standard izolacji budynku:</span>
                <div class="options-grid">
                    <div class="opt-btn active" data-type="iso" data-val="new">Nowy / Pasywny</div>
                    <div class="opt-btn" data-type="iso" data-val="old">Stary / Słaba izolacja</div>
                </div>
            </div>

            <div class="selector-group">
                <span class="selector-label">2. Planowane źródło ciepła:</span>
                <div class="options-grid">
                    <div class="opt-btn active" data-type="heat" data-val="pc">Pompa Ciepła</div>
                    <div class="opt-btn" data-type="heat" data-val="gas">Kocioł Gazowy</div>
                </div>
            </div>

            <div class="selector-group">
                <span class="selector-label">3. Rodzaj posadzki:</span>
                <div class="options-grid">
                    <div class="opt-btn active" data-type="floor" data-val="tiles">Płytki / Kamień</div>
                    <div class="opt-btn" data-type="floor" data-val="wood">Drewno / Panele</div>
                </div>
            </div>

            <div class="result-area" id="summary-result-box">
                <span class="result-tag">Twoja Rekomendacja:</span>
                <span class="result-value" id="final-spacing-val">Rozstaw co 10 cm</span>
                <p class="result-desc" id="final-spacing-desc">Wybrałeś pompę ciepła. Aby pracowała ona z najwyższą sprawnością przy niskiej temperaturze zasilania, gęsty rozstaw rur jest niezbędny.</p>
            </div>
        </div>
    </div>

    <div class="summary-content">
        <h3>Podsumowanie: Rozstaw rur w ogrzewaniu podłogowym co 10 czy 15 cm?</h3>
        <p class="summary-text">
            Ostateczny wybór między <strong>rozstawem 10 cm a 15 cm</strong> to balansowanie między kosztem inwestycji a późniejszym komfortem i kosztami eksploatacji. W nowoczesnym budownictwie dążymy do maksymalnego obniżenia parametrów wody grzewczej, co promuje gęstsze ułożenie rur.
        </p>

        <div class="summary-split">
            <div class="summary-col" style="border-top: 4px solid var(--accent);">
                <h4>Wybierz rozstaw 10 cm, gdy:</h4>
                <ul>
                    <li>Ogrzewasz dom <strong>pompą ciepła</strong> (niskie zasilanie).</li>
                    <li>Planujesz <strong>podłogę drewnianą</strong> lub panele.</li>
                    <li>Projektujesz <strong>łazienkę</strong> lub strefy brzegowe.</li>
                    <li>Budynek ma <strong>słabą izolację</strong> termiczną.</li>
                </ul>
            </div>
            <div class="summary-col" style="border-top: 4px solid var(--success);">
                <h4>Wybierz rozstaw 15 cm, gdy:</h4>
                <ul>
                    <li>Używasz <strong>kotła gazowego</strong> kondensacyjnego.</li>
                    <li>Dom jest w standardzie <strong>energooszczędnym/pasywnym</strong>.</li>
                    <li>Na podłodze znajdą się <strong>płytki ceramiczne</strong>.</li>
                    <li>Chcesz obniżyć <strong>koszty materiałowe</strong> o ok. 25%.</li>
                </ul>
            </div>
        </div>

        <div class="contact-cta">
            <h4>Nie ryzykuj błędów projektowych</h4>
            <p>Pamiętaj, że każdy dom jest inny, a błędy w rozstawie rur są praktycznie nieusuwalne po zalaniu wylewki. Aby uniknąć przewymiarowania systemu lub (co gorsza) niedogrzania pomieszczeń w mroźne dni, warto skonsultować swój przypadek z profesjonalistą.</p>
            <a href="https://projekt-ogrzewania.pl/kontakt/" class="contact-btn">Skonsultuj swój projekt z inżynierem →</a>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    if (!allowedDomains.includes(domain)) {
        document.getElementById('final-summary-app').innerHTML = `
            <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 1px solid #fecaca;">
                <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Podsumowanie chronione prawem</h3>
                <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin: 0 auto 25px auto;">Ten interaktywny moduł decyzyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
            </div>
        `;
        return;
    }

    // 2. LOGIKA WIDGETU DECYZYJNEGO
    const app = document.getElementById('final-summary-app');
    const buttons = app.querySelectorAll('.opt-btn');
    const resVal = document.getElementById('final-spacing-val');
    const resDesc = document.getElementById('final-spacing-desc');
    const resBox = document.getElementById('summary-result-box');

    let state = { iso: 'new', heat: 'pc', floor: 'tiles' };

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            const group = this.getAttribute('data-type');
            const val = this.getAttribute('data-val');

            // UI Update
            app.querySelectorAll(`.opt-btn[data-type="${group}"]`).forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // State Update
            state[group] = val;
            calculateFinal();
        });
    });

    function calculateFinal() {
        let recommendation = "Rozstaw co 15 cm";
        let description = "Twój zestaw parametrów (Nowoczesny dom, Gaz, Płytki) pozwala na zastosowanie rzadszego rozstawu. System będzie wydajny i tańszy w montażu.";
        let color = "var(--success)";

        // Logika: Jeśli stary dom LUB Pompa LUB Drewno -> 10 cm
        if (state.iso === 'old' || state.heat === 'pc' || state.floor === 'wood') {
            recommendation = "Rozstaw co 10 cm";
            color = "var(--accent)";

            if (state.heat === 'pc' && state.floor === 'wood') {
                description = "Wybrałeś pompę ciepła i drewno. Drewno izoluje, a pompa potrzebuje niskiej temperatury zasilania. 10 cm to jedyny bezpieczny wybór.";
            } else if (state.iso === 'old') {
                description = "W starym budownictwie straty ciepła są duże. Rozstaw 10 cm zapewni moc potrzebną do dogrzania pokoju w mroźne dni.";
            } else if (state.heat === 'pc') {
                description = "Dla pompy ciepła kluczowy jest duży zład wody i niska temperatura. Gęsty rozstaw 10 cm drastycznie obniży Twoje rachunki.";
            } else {
                description = "Wybrane parametry wymagają większej powierzchni grzewczej. Rozstaw 10 cm zagwarantuje Ci stabilny komfort cieplny.";
            }
        }

        // Apply
        resVal.innerText = recommendation;
        resVal.style.color = color;
        resDesc.innerText = description;
        resBox.style.borderColor = color;
    }

    calculateFinal(); // Init
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw rur w ogrzewaniu podłogowym co 10 czy 15 cm?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile metrów podłogówki na jednej pętli?</title>
		<link>https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 22:18:09 +0000</pubDate>
				<category><![CDATA[Budowa i remonty]]></category>
		<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Rury do ogrzewania]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[długość pętli]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[porady ekspertów]]></category>
		<category><![CDATA[projektowanie ogrzewania]]></category>
		<category><![CDATA[remonty]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2053</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego i zastanawiasz się, ile metrów podłogówki na jednej pętli to optymalna długość? W naszym artykule znajdziesz praktyczne porady, jak obliczyć długość pętli, jakie czynniki wpływają na jej maksymalną długość oraz jak uniknąć błędów przy projektowaniu. Dowiesz się również, dlaczego profesjonalny projekt jest kluczowy dla efektywności systemu. Sprawdź, jak zaplanować ogrzewanie podłogowe, aby cieszyć się komfortem i oszczędnościami przez lata!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7; 
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f0f9ff; 
    --border-color: #e2e8f0;
}

.premium-hero-box {
    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(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
    position: relative;
}

/* Subtelne tło dekoracyjne */
.premium-hero-box::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.05) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
    transform: translate(30%, -30%);
    z-index: 0;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 45px 50px;
    background: linear-gradient(to bottom, #ffffff, var(--bg-light));
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid #bae6fd;
}

.hero-text {
    font-size: 17px;
    line-height: 1.8;
    color: #334155;
    margin-bottom: 20px;
}

.hero-text strong {
    color: var(--primary);
}

.hero-text a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.2s ease;
}

.hero-text a:hover {
    color: #0369a1;
}

.hero-text:last-of-type {
    margin-bottom: 40px;
}

/* Moduły / Spis treści */
.hero-modules-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-modules-title::after {
    content: "";
    flex-grow: 1;
    height: 1px;
    background: var(--border-color);
}

.hero-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.hero-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    padding: 20px 15px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    position: relative;
    top: 0;
}

.hero-card:hover {
    top: -5px;
    border-color: var(--accent);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.1);
}

.hero-card-icon {
    font-size: 28px;
    margin-bottom: 12px;
    display: block;
    transition: transform 0.3s;
}

.hero-card:hover .hero-card-icon {
    transform: scale(1.15);
}

.hero-card-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--primary);
    line-height: 1.4;
}

@media (max-width: 900px) {
    .hero-content { padding: 35px 25px; }
    .hero-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }
}

@media (max-width: 500px) {
    .hero-grid { grid-template-columns: 1fr; }
    .hero-card { display: flex; align-items: center; text-align: left; gap: 15px; padding: 15px; }
    .hero-card-icon { margin-bottom: 0; font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Ile metrów podłogówki na jednej pętli? Kompendium doboru i obliczeń",
    "description": "Zasady projektowania długości pętli ogrzewania podłogowego. Dowiedz się, jak obliczyć optymalną ilość rury na 1 m², aby uniknąć problemów hydraulicznych i zapewnić równomierne grzanie.",
    "license": "https://projekt-ogrzewania.pl/",
    "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"
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Przegląd techniczny parametrów pętli ogrzewania podłogowego",
    "description": "Zestawienie kluczowych parametrów technicznych i granicznych długości obiegów dla instalacji ogrzewania płaszczyznowego wg PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (rura 16x2)",
        "value": "80-100 m",
        "description": "Zalecana górna granica długości dla najpopularniejszej średnicy rury PEX/PERT, gwarantująca optymalne opory hydrauliczne."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli (rura 20x2)",
        "value": "120-150 m",
        "description": "Dopuszczalna długość dla rur o większym przekroju, stosowana zazwyczaj w halach i dużych salonach."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny instalacji",
        "value": "Max 20-30 kPa",
        "description": "Graniczna wartość oporu przepływu, przy której standardowa pompa obiegowa pracuje efektywnie."
      },
      {
        "@type": "PropertyValue",
        "name": "Zapotrzebowanie rury (rozstaw 10 cm)",
        "value": "10 m.b. / m²",
        "description": "Ilość rury grzejnej przypadająca na 1 metr kwadratowy powierzchni podłogi przy najgęstszym układzie."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator długości obiegów i oporów hydraulicznych",
    "description": "Interaktywny algorytm obliczeniowy symulujący przepływ czynnika grzewczego. Narzędzie przelicza powierzchnię pomieszczenia i rozstaw rur na metry bieżące pętli, szacując opory hydrauliczne i optymalny punkt pracy pompy obiegowej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Przeliczanie powierzchni na metry rury",
      "Symulacja spadku ciśnienia (kPa) dla rur 16mm i 20mm",
      "Rekomendacja podziału pętli dla rozdzielacza",
      "Optymalizacja parametru ΔT (różnicy temperatur)"
    ]
  }
]
</script>

<div class="premium-hero-box" id="hero-app-container">
    <div class="hero-content">
        
        <div class="hero-badge">
            <span>📏</span> Precyzja Projektowania
        </div>
        
        <p class="hero-text">W lutym 2025 roku, projektując instalację dla domu o powierzchni 140 m² pod Krakowem zasilanego nowoczesną <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompą ciepła</a>, stanąłem przed klasycznym dylematem optymalizacji hydraulicznej. Zastosowałem tam układ 14 pętli grzewczych, aby precyzyjnie utrzymać opory hydrauliczne na bezpiecznym poziomie nieprzekraczającym <strong>20 kPa</strong>. Kluczowym pytaniem, na które musiał odpowiedzieć ten <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a>, było to najważniejsze: <strong>ile metrów podłogówki na jednej pętli</strong> należy ułożyć, aby system pracował z najwyższą efektywnością energetyczną i gwarantował pompie ciepła najwyższy możliwy współczynnik SCOP.</p>
        
        <p class="hero-text">Odpowiedź na to pytanie absolutnie nie może być dziełem przypadku. Fraza ta definiuje graniczną długość rury grzejnej w pojedynczym obiegu, która gwarantuje równomierny rozkład temperatury, eliminuje zjawisko &#8222;zimnych stref&#8221; i pozwala uniknąć przeciążenia <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a>. W tym kompendium, opierając się na wytycznych normy PN-EN 1264, krok po kroku wyjaśnię, jak prawidłowo zaprojektować długość poszczególnych obiegów podłogówki.</p>

        <div class="hero-modules-title">W tym kompendium przeanalizujemy:</div>
        
        <div class="hero-grid">
            <div class="hero-card">
                <span class="hero-card-icon">📐</span>
                <span class="hero-card-title">Optymalne długości rur</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">💧</span>
                <span class="hero-card-title">Opory hydrauliczne</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🌡️</span>
                <span class="hero-card-title">Równomierność grzania</span>
            </div>
            <div class="hero-card">
                <span class="hero-card-icon">🧮</span>
                <span class="hero-card-title">Algorytm obliczeniowy</span>
            </div>
        </div>

    </div>

    <noscript>
        <div style="padding: 20px 50px; background: #f8fafc; border-top: 1px solid #e2e8f0; font-family: sans-serif;">
            <h2 style="font-size: 18px; color: #0f172a; margin-bottom: 15px;">Kluczowe wytyczne dla pętli ogrzewania podłogowego</h2>
            <table style="width: 100%; border-collapse: collapse; font-size: 14px; text-align: left;">
                <thead>
                    <tr style="border-bottom: 2px solid #cbd5e1;">
                        <th style="padding: 10px 0; color: #475569;">Parametr hydrauliczny</th>
                        <th style="padding: 10px 0; color: #475569;">Wartość graniczna</th>
                        <th style="padding: 10px 0; color: #475569;">Opis / Skutek przekroczenia</th>
                    </tr>
                </thead>
                <tbody>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Max. dł. pętli rury 16&#215;2 mm</td>
                        <td style="padding: 10px 0; font-weight: bold;">80 &#8211; 100 m</td>
                        <td style="padding: 10px 0; color: #0284c7;">Wyższe opory zmuszają pompę do pracy na wysokim biegu</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Max. dł. pętli rury 20&#215;2 mm</td>
                        <td style="padding: 10px 0; font-weight: bold;">120 &#8211; 150 m</td>
                        <td style="padding: 10px 0; color: #0284c7;">Stosowane przy rzadszym rozstawie w przemyśle lub dużych salonach</td>
                    </tr>
                    <tr style="border-bottom: 1px solid #e2e8f0;">
                        <td style="padding: 10px 0;">Dopuszczalny opór pętli</td>
                        <td style="padding: 10px 0; font-weight: bold;">20 &#8211; 30 kPa</td>
                        <td style="padding: 10px 0; color: #0284c7;">Optymalny punkt pracy dla energooszczędnych pomp obiegowych</td>
                    </tr>
                    <tr>
                        <td style="padding: 10px 0;">Maksymalny spadek temp. (ΔT)</td>
                        <td style="padding: 10px 0; font-weight: bold;">5 &#8211; 7 K</td>
                        <td style="padding: 10px 0; color: #0284c7;">Zapobiega zjawisku drastycznie zimnych stref w posadzce</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('hero-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #e0f2fe; color: #0284c7; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <div style="margin-top:0; font-size: 24px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 16px; max-width: 500px; color: #0369a1; line-height: 1.5;">Ten moduł wprowadzający jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i został skopiowany nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="margin-top: 25px; padding: 14px 28px; background: #0284c7; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.pipe-analysis-box {
    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.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.pipe-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
}

.pipe-header h2 {
    margin: 0;
    font-size: 24px;
    color: #0369a1;
    font-weight: 800;
    line-height: 1.3;
}

.pipe-content {
    padding: 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.pipe-content strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.pipe-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
}

.pipe-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

.benefits-list {
    background: var(--bg-light);
    border-left: 4px solid var(--accent);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-top: 30px;
}

.benefits-list h3 {
    margin-top: 0;
    margin-bottom: 15px;
    font-size: 18px;
    color: var(--primary);
}

.benefits-list ul {
    margin: 0;
    padding-left: 20px;
}

.benefits-list li {
    margin-bottom: 12px;
}

.benefits-list li:last-child {
    margin-bottom: 0;
}

/* Interaktywny Moduł - Symulator */
.interactive-module {
    margin-top: 40px;
    padding: 30px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.im-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.slider-container {
    margin: 30px 0;
}

.pipe-slider {
    width: 100%;
    accent-color: var(--accent);
    cursor: pointer;
}

.slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #64748b;
    margin-top: 8px;
    font-weight: 600;
}

.results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 25px;
}

.result-card {
    padding: 20px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.result-value {
    font-size: 28px;
    font-weight: 800;
    margin: 10px 0;
}

.result-label {
    font-size: 13px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

#status-card.status-safe { border-color: var(--success); background: #f0fdf4; color: var(--success); }
#status-card.status-warning { border-color: var(--warning); background: #fff7ed; color: var(--warning); }
#status-card.status-danger { border-color: var(--danger); background: #fef2f2; color: var(--danger); }

@media (max-width: 600px) {
    .pipe-content { padding: 25px; }
    .results-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Charakterystyka oporów hydraulicznych rury PEX/PERT 16x2 mm",
    "description": "Zbiór danych określających liniowe spadki ciśnienia (kPa) dla rur ogrzewania płaszczyznowego 16mm w zależności od długości pętli, z uwzględnieniem normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Optymalna długość pętli",
        "value": "80 m",
        "description": "Gwarantuje równowagę hydrauliczną i optymalny pobór prądu."
      },
      {
        "@type": "PropertyValue",
        "name": "Maksymalna długość pętli",
        "value": "100 m",
        "description": "Wartość graniczna powodująca wzrost oporów do ok. 25-30 kPa."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Oporów Pętli Grzewczej 16mm",
    "description": "Interaktywny algorytm obliczający szacunkowy opór hydrauliczny (kPa) dla podanej długości obwodu grzewczego. Narzędzie wskazuje optymalne, ostrzegawcze i krytyczne wartości długości rury.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne wyliczanie strat ciśnienia",
      "Wizualizacja strefy bezpiecznej i niebezpiecznej pracy pompy",
      "Zgodność progów z wytycznymi PN-EN 1264"
    ]
  }
]
</script>

<div class="pipe-analysis-box" id="pipe-section-container">
    <div class="pipe-header">
        <h2>Jaka jest maksymalna długość pętli dla rury o średnicy 16 mm?</h2>
    </div>
    
    <div class="pipe-content">
        <p>Maksymalna długość pętli dla rury <strong>16&#215;2 mm</strong> wynosi <strong>100 metrów</strong>, jednak w profesjonalnych projektach HVAC dąży się do nieprzekraczania <strong>80 metrów</strong>. Wynika to bezpośrednio z normy <strong>PN-EN 1264</strong>, która określa dopuszczalne spadki ciśnienia w układzie.</p>
        
        <p>Przy rurze 16 mm i długości pętli <strong>100 m</strong>, opór hydrauliczny samej rury (bez uwzględnienia zaworów na rozdzielaczu) wynosi ok. <strong>25-30 kPa</strong> przy typowym przepływie. Przekroczenie tej wartości powoduje, że standardowa <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">pompa obiegowa w instalacji ogrzewania podłogowego</a> może nie zapewnić wymaganej prędkości przepływu czynnika, co skutkuje niedogrzaniem końcowego odcinka pętli.</p>

        <div class="benefits-list">
            <h3>Dlaczego warto celować w 80 metrów?</h3>
            <ul>
                <li><strong>Równowaga hydrauliczna:</strong> Łatwiej zrównoważyć system, gdy pętle mają zbliżoną długość (np. 70-80 m).</li>
                <li><strong>Liniowe spadki temperatury:</strong> Przy Delta T = 5K (różnica między zasilaniem a powrotem), rura o długości <strong>80 m</strong> oddaje ciepło w sposób przewidywalny, eliminując efekt &#8222;zimnej podłogi&#8221; pod koniec obiegu.</li>
                <li><strong>Mniejszy pobór prądu:</strong> Pompa pracuje na niższym biegu, co realnie obniża <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" target="_blank" rel="noreferrer noopener">koszt ogrzewania domu 2025/2026</a>.</li>
            </ul>
        </div>

        <div class="interactive-module">
            <div class="im-title">⚙️ Symulator oporów hydraulicznych (Rura 16&#215;2)</div>
            
            <div class="slider-container">
                <input type="range" id="lengthSlider" class="pipe-slider" min="40" max="140" value="80" step="5">
                <div class="slider-labels">
                    <span>40 m</span>
                    <span>90 m</span>
                    <span>140 m</span>
                </div>
            </div>

            <div class="results-grid">
                <div class="result-card">
                    <div class="result-label">Opór hydrauliczny</div>
                    <div class="result-value" id="kpa-output">21.5 kPa</div>
                    <div class="result-label" style="font-size: 11px;">Szacunek dla przepływu 2 l/min</div>
                </div>
                <div class="result-card status-safe" id="status-card">
                    <div class="result-label">Status projektowy</div>
                    <div class="result-value" id="status-text" style="font-size: 22px; margin-top: 15px;">ZALECANE</div>
                </div>
            </div>
        </div>

    </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('pipe-section-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść skopiowana bez zezwolenia</p>
                    <p>Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby korzystać z oryginalnych narzędzi i artykułów Roberta Kucharskiego.</p>
                </div>
            `;
            return;
        }
    }

    // 2. Logika symulatora
    const slider = document.getElementById('lengthSlider');
    const kpaOutput = document.getElementById('kpa-output');
    const statusCard = document.getElementById('status-card');
    const statusText = document.getElementById('status-text');

    function updateSimulator() {
        const length = parseInt(slider.value);
        // Aproksymacja oporu dla rury 16x2 przy przepływie rzędu ~2.0 l/min
        // Przyjmujemy ok. 0.27 kPa na 1 metr bieżący wliczając złączki
        const kpa = (length * 0.27).toFixed(1);
        
        kpaOutput.textContent = `${kpa} kPa`;

        // Reset klas
        statusCard.classList.remove('status-safe', 'status-warning', 'status-danger');

        if (length <= 80) {
            statusCard.classList.add('status-safe');
            statusText.textContent = "ZALECANE";
        } else if (length > 80 && length <= 100) {
            statusCard.classList.add('status-warning');
            statusText.textContent = "AKCEPTOWALNE";
        } else {
            statusCard.classList.add('status-danger');
            statusText.textContent = "PRZEKROCZONE";
        }
    }

    if(slider) {
        slider.addEventListener('input', updateSimulator);
        updateSimulator(); // Inicjalizacja
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --industrial: #475569;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-pipe20-box {
    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.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.pipe20-header {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #cbd5e1;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjny element tła (imitacja rury 20mm) */
.pipe20-header::after {
    content: '';
    position: absolute;
    right: -20px;
    top: 50%;
    transform: translateY(-50%);
    width: 150px;
    height: 20px;
    background: transparent;
    border: 6px solid rgba(148, 163, 184, 0.2);
    border-radius: 30px;
}

.pipe20-header h2 {
    margin: 0;
    font-size: 24px;
    color: var(--industrial);
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.pipe20-content {
    padding: 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.pipe20-content strong {
    color: var(--primary);
    background: rgba(71, 85, 105, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.pipe20-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.pipe20-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł interaktywny */
.interactive-20mm-module {
    margin-top: 35px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.module-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    margin-bottom: 25px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.config-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.config-group {
    display: flex;
    flex-direction: column;
}

.config-label {
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--primary);
}

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

.toggle-btn {
    flex: 1;
    padding: 12px;
    text-align: center;
    border: 2px solid var(--border-color);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
    transition: 0.2s;
}

.toggle-btn.active {
    border-color: var(--industrial);
    color: var(--industrial);
    background: #f1f5f9;
}

.slider-container {
    position: relative;
    padding-top: 10px;
}

.pipe20-slider {
    width: 100%;
    accent-color: var(--industrial);
    cursor: pointer;
    height: 6px;
    background: #e2e8f0;
    border-radius: 10px;
    appearance: none;
    outline: none;
}
.pipe20-slider::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--industrial); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.slider-val-display {
    text-align: right;
    font-weight: 800;
    color: var(--primary);
    font-size: 18px;
    margin-top: 5px;
}

.result-banner {
    padding: 20px;
    border-radius: 12px;
    border-left: 6px solid var(--success);
    background: #f0fdf4;
    transition: all 0.3s ease;
}

.result-banner.status-warning {
    border-color: var(--warning);
    background: #fff7ed;
}

.result-banner.status-danger {
    border-color: var(--danger);
    background: #fef2f2;
}

.res-title {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    color: var(--primary);
}

.res-desc {
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}

@media (max-width: 768px) {
    .config-row { grid-template-columns: 1fr; gap: 20px; }
    .pipe20-content { padding: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Charakterystyka oporów i zastosowania rury 20x2 mm",
    "description": "Zbiór danych określających możliwości zastosowania rur 20mm w instalacjach ogrzewania płaszczyznowego z podziałem na budownictwo jednorodzinne i przemysłowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Maksymalna zalecana długość pętli",
        "value": "120-150 m",
        "description": "Graniczna długość pętli dla rury 20mm zapewniająca odpowiedni przepływ przy standardowej pompie."
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie przemysłowe",
        "value": "Zalecane",
        "description": "Hale, magazyny, duże powierzchnie komercyjne."
      },
      {
        "@type": "PropertyValue",
        "name": "Zastosowanie jednorodzinne",
        "value": "Ograniczone",
        "description": "Mniejsza elastyczność i trudniejszy promień gięcia w gęstych rozstawach (np. co 10 cm)."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Zastosowania Rury 20mm",
    "description": "Narzędzie interaktywne oceniające poprawność zastosowania rury 20x2 mm na podstawie długości pętli i typu budynku (dom vs hala przemysłowa).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczna ocena oporu hydraulicznego dla rur o większym przekroju",
      "Weryfikacja elastyczności i promienia gięcia w zależności od przeznaczenia budynku",
      "Rekomendacje zgodne z PN-EN ISO 15875"
    ]
  }
]
</script>

<div class="premium-pipe20-box" id="pipe20-app-container">
    <div class="pipe20-header">
        <h2>Jaka jest maksymalna długość pętli dla rury o średnicy 20 mm?</h2>
    </div>
    
    <div class="pipe20-content">
        <p>Dla rur o średnicy <strong>20x2 mm</strong>, dopuszczalna długość pojedynczej pętli wzrasta do <strong>120-150 metrów</strong>. Dzięki większemu przekrojowi wewnętrznemu, opory przepływu są znacznie niższe niż w przypadku "szesnastki". Zastosowanie rury 20 mm jest uzasadnione w halach przemysłowych, magazynach lub bardzo dużych salonach, gdzie <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/" target="_blank" rel="noreferrer noopener">salon ile pętli podłogówki</a> to pytanie o optymalizację kosztów rozdzielacza. Jednak w budownictwie jednorodzinnym rura 20 mm jest rzadziej stosowana ze względu na mniejszą elastyczność i trudniejszy montaż w gęstych rozstawach. Zgodnie z normą <strong>PN-EN ISO 15875</strong>, parametry wytrzymałościowe rur <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">PERT</a> i <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">PEX</a> pozwalają na bezpieczną pracę w tych długościach pod warunkiem prawidłowego doboru pompy.</p>

        <div class="interactive-20mm-module">
            <div class="module-title">🏗️ Analizator zastosowania rury 20x2 mm</div>
            
            <div class="config-row">
                <div class="config-group">
                    <div class="config-label">Długość projektowanej pętli:</div>
                    <div class="slider-container">
                        <input type="range" id="len-slider-20" class="pipe20-slider" min="60" max="200" value="130" step="5">
                        <div class="slider-val-display"><span id="len-val-20">130</span> m</div>
                    </div>
                </div>
                
                <div class="config-group">
                    <div class="config-label">Typ realizowanego obiektu:</div>
                    <div class="toggle-group">
                        <div class="toggle-btn" id="btn-house" data-type="house">Dom / Salon</div>
                        <div class="toggle-btn active" id="btn-industry" data-type="industry">Hala / Magazyn</div>
                    </div>
                </div>
            </div>

            <div id="result-20-banner" class="result-banner">
                <div class="res-title" id="res-title">Analiza hydrauliczna</div>
                <p class="res-desc" id="res-desc">Wybierz parametry powyżej, aby zobaczyć rekomendację inżynierską.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 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('pipe20-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Narzędzie skopiowane nielegalnie</p>
                    <p>Zapraszamy na <strong>Projekt-Ogrzewania.pl</strong> w celu skorzystania z oryginalnych narzędzi.</p>
                </div>
            `;
            return;
        }
    }

    // Logika symulatora
    const slider = document.getElementById('len-slider-20');
    const valDisplay = document.getElementById('len-val-20');
    const btnHouse = document.getElementById('btn-house');
    const btnIndustry = document.getElementById('btn-industry');
    const banner = document.getElementById('result-20-banner');
    const title = document.getElementById('res-title');
    const desc = document.getElementById('res-desc');

    let currentType = 'industry'; // domyślnie hala

    function updateSimulation() {
        const length = parseInt(slider.value);
        valDisplay.textContent = length;

        // Reset klas
        banner.classList.remove('status-warning', 'status-danger');

        if (currentType === 'industry') {
            if (length <= 150) {
                // Sukces Hala
                banner.style.borderColor = "var(--success)";
                banner.style.backgroundColor = "#f0fdf4";
                title.style.color = "var(--success)";
                title.textContent = "✅ Idealne rozwiązanie przemysłowe";
                desc.innerHTML = `Przy <strong>${length} metrach</strong> rura 20x2 mm pracuje optymalnie. Zapewnia niskie opory tłoczenia i pozwala drastycznie zmniejszyć ilość pętli na ogromnych powierzchniach magazynowych.`;
            } else {
                // Przekroczenie Hala
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Uwaga: Wysokie opory hydrauliczne";
                desc.innerHTML = `Długość <strong>${length} m</strong> wkracza w strefę podwyższonego ryzyka. Pomimo większego przekroju (20mm), obieg stawia opór mogący wymagać mocniejszych, przemysłowych pomp obiegowych. Lepiej rozbić to na 2 pętle po ${(length/2).toFixed(0)}m.`;
            }
        } else if (currentType === 'house') {
            if (length <= 120) {
                // Ostrzeżenie Dom krótko
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Wymagany doświadczony instalator";
                desc.innerHTML = `Hydraulicznie <strong>${length} m</strong> to żaden problem. Jednak rura 20mm jest <strong>bardzo sztywna</strong>. Ułożenie jej w standardowym rozstawie (np. co 10-15 cm) w salonie będzie niezwykle uciążliwe (duży promień gięcia). Często lepiej wybrać rurę 16mm i zrobić 2 krótsze pętle.`;
            } else if (length > 120 && length <= 150) {
                 // Granica Dom
                banner.classList.add('status-warning');
                title.style.color = "var(--warning)";
                title.textContent = "⚠️ Akceptowalne tylko dla bardzo dużych salonów";
                desc.innerHTML = `Długość <strong>${length} m</strong> zredukuje koszty rozdzielacza, ale pamiętaj o trudnościach przy formowaniu ślimaka. Wykonawca musi uważać na załamania rury w strefach brzegowych!`;
            } else {
                // Przekroczenie Dom
                banner.classList.add('status-danger');
                title.style.color = "var(--danger)";
                title.textContent = "❌ Przekroczenie parametrów i dyskomfort montażowy";
                desc.innerHTML = `W warunkach domowych długość <strong>${length} m</strong> na jednym obwodzie to proszenie się o problemy z wyważeniem układu i przepływami rotametrów. System straci równowagę hydrauliczną.`;
            }
        }
    }

    // Event Listenery
    if(slider) {
        slider.addEventListener('input', updateSimulation);
    }

    if(btnHouse && btnIndustry) {
        btnHouse.addEventListener('click', function() {
            btnIndustry.classList.remove('active');
            btnHouse.classList.add('active');
            currentType = 'house';
            updateSimulation();
        });
        
        btnIndustry.addEventListener('click', function() {
            btnHouse.classList.remove('active');
            btnIndustry.classList.add('active');
            currentType = 'industry';
            updateSimulation();
        });
    }

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



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-formula-box {
    max-width: 800px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
    overflow: hidden;
}

.formula-header {
    padding: 30px 40px;
    text-align: center;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-color);
}

.formula-header h2 {
    margin: 0 0 10px 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.formula-header p {
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.6;
    color: #475569;
}

.formula-content {
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 35px;
}

.math-display {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-size: 46px;
    font-weight: 700;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    color: var(--accent);
    background: #eff6ff;
    padding: 25px 50px;
    border-radius: 16px;
    border: 2px solid #bfdbfe;
    box-shadow: inset 0 2px 4px rgba(255,255,255,0.5);
}

.math-fraction {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.1;
    margin-top: -5px;
}

.math-numerator {
    border-bottom: 4px solid var(--accent);
    padding: 0 12px 2px 12px;
}

.math-denominator {
    padding: 4px 12px 0 12px;
}

.math-sub {
    font-size: 22px;
    vertical-align: baseline;
    position: relative;
    top: 5px;
}

.legend-box {
    width: 100%;
    max-width: 550px;
    background: #ffffff;
    padding: 0;
}

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

.legend-item {
    display: flex;
    align-items: center;
    padding: 14px 20px;
    margin-bottom: 8px;
    background: var(--bg-light);
    border-radius: 12px;
    border: 1px solid #f1f5f9;
    font-size: 15px;
    color: #334155;
    transition: 0.2s;
}

.legend-item:hover {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

.legend-item:last-child {
    margin-bottom: 0;
}

.legend-symbol {
    font-family: 'Georgia', 'Times New Roman', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 20px;
    color: var(--primary);
    width: 55px;
    flex-shrink: 0;
}

.legend-desc {
    line-height: 1.5;
}

/* Sekcja z treścią artykułu wewnątrz kontenera */
.formula-article-text {
    padding: 0 40px 30px 40px;
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
}

.formula-article-text ul {
    margin: 20px 0;
    padding-left: 20px;
}

.formula-article-text li {
    margin-bottom: 10px;
}

.formula-article-text a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.formula-article-text a:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

.formula-footer {
    padding: 20px 40px;
    background: #ffffff;
    border-top: 1px solid #f1f5f9;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}

@media (max-width: 600px) {
    .formula-header { padding: 25px 20px; }
    .formula-content { padding: 30px 20px; gap: 25px; }
    .math-display { font-size: 34px; padding: 20px 30px; gap: 10px; }
    .math-sub { font-size: 16px; top: 3px; }
    .legend-item { padding: 12px 15px; font-size: 14px; }
    .formula-article-text { padding: 0 20px 25px 20px; }
    .formula-footer { padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dataset",
  "name": "Wzór na zapotrzebowanie rury do ogrzewania podłogowego na 1 m²",
  "description": "Definicja i legenda symboli do wzoru obliczającego długość rury ogrzewania podłogowego w przeliczeniu na metry kwadratowe.",
  "license": "https://projekt-ogrzewania.pl/",
  "variableMeasured": [
    {
      "@type": "PropertyValue",
      "name": "L",
      "description": "Długość rury (w metrach bieżących) przypadająca na 1 m² ogrzewanej powierzchni."
    },
    {
      "@type": "PropertyValue",
      "name": "a",
      "description": "Rozstaw rur grzewczych (odległość między rurami) wyrażony w metrach (np. 0,1 m)."
    },
    {
      "@type": "PropertyValue",
      "name": "1,1",
      "description": "Współczynnik korygujący dodający 10% zapasu na tzw. podejścia do rozdzielacza."
    }
  ],
  "creator": {
    "@type": "Person",
    "name": "Robert Kucharski",
    "sameAs": [
      "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
      "https://www.linkedin.com/in/robert-kucharski-38069b48/"
    ]
  }
}
</script>

<div class="premium-formula-box" id="formula-app-pipe">
    <div class="formula-header">
        <h2>Jak obliczyć ile rury przypada na 1 m² powierzchni?</h2>
        <p>W projektowaniu instalacji płaszczyznowych przyjmuje się uniwersalny wzór, który pozwala precyzyjnie oszacować zapotrzebowanie materiałowe.</p>
    </div>

    <div class="formula-content">
        <div class="math-display">
            <span>L</span>
            <span style="color: var(--primary); font-style: normal;">=</span>
            <div class="math-fraction">
                <span class="math-numerator">1</span>
                <span class="math-denominator">a</span>
            </div>
            <span style="color: var(--primary); font-style: normal;">&middot;</span>
            <span>1,1</span>
        </div>

        <div class="legend-box">
            <div class="legend-title">Legenda symboli:</div>
            <div class="legend-item">
                <div class="legend-symbol">L</div>
                <div class="legend-desc"><strong>Długość rury</strong> (w metrach bieżących) niezbędna do pokrycia 1 m² powierzchni podłogi.</div>
            </div>
            <div class="legend-item">
                <div class="legend-symbol">a</div>
                <div class="legend-desc"><strong>Rozstaw rur</strong> wyrażony w metrach (np. 0,1 m dla rozstawu co 10 cm).</div>
            </div>
            <div class="legend-item">
                <div class="legend-symbol">1,1</div>
                <div class="legend-desc"><strong>Współczynnik bezpieczeństwa</strong> doliczający 10% zapasu rury na tzw. podejścia odbiegów do rozdzielacza.</div>
            </div>
        </div>
    </div>

    <div class="formula-article-text">
        <p>Dla standardowych rozstawów wartości w praktyce instalacyjnej prezentują się następująco:</p>
        <ul>
            <li>Rozstaw <strong>10 cm</strong>: ok. <strong>10 metrów bieżących</strong> rury na 1 m².</li>
            <li>Rozstaw <strong>15 cm</strong>: ok. <strong>6,7 metrów bieżących</strong> rury na 1 m².</li>
            <li>Rozstaw <strong>20 cm</strong>: ok. <strong>5 metrów bieżących</strong> rury na 1 m².</li>
        </ul>
        <p>Jeśli planujesz <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" target="_blank" rel="noreferrer noopener">rozstaw rur ogrzewania podłogowego przy pompie ciepła</a>, najczęściej stosujemy układ co 10 cm, co oznacza, że jedna zalecana pętla 80 m obsłuży maksymalnie <strong>7-8 m²</strong> powierzchni w danym pomieszczeniu. To kluczowa informacja, by już na etapie planowania nie popełnić krytycznego błędu, jakim jest <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" target="_blank" rel="noreferrer noopener">za długa pętla podłogówki</a>.</p>
    </div>

    <div class="formula-footer">
        Opracowanie techniczne: <a href="https://projekt-ogrzewania.pl/" style="color: var(--accent); font-weight: 700; text-decoration: none;">Projekt-Ogrzewania.pl</a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock - Jawny skrypt)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('formula-app-pipe');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 400px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To opracowanie wzoru jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-compare-box {
    max-width: 1100px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

.compare-header {
    text-align: center;
    margin-bottom: 40px;
}

.compare-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 15px;
}

.compare-header p {
    font-size: 16px;
    color: #475569;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}

.compare-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: center;
}

.compare-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 30px 20px;
    text-align: center;
    position: relative;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

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

/* Wyróżnienie karty ZALECANEJ */
.compare-card.recommended {
    border: 2px solid var(--success);
    box-shadow: 0 20px 40px -10px rgba(22, 163, 74, 0.15);
    transform: scale(1.03);
    z-index: 2;
    background: linear-gradient(to bottom, #ffffff, #f0fdf4);
}

.compare-card.recommended:hover {
    transform: scale(1.03) translateY(-5px);
}

.compare-card.warning {
    border-top: 4px solid var(--warning);
}

.compare-card.industrial {
    border-top: 4px solid #64748b;
}

.card-badge {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--success);
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
    box-shadow: 0 4px 6px rgba(22, 163, 74, 0.2);
}

.card-title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 5px;
    color: var(--primary);
}

.card-subtitle {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 25px;
    display: block;
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.feature-item {
    display: flex;
    flex-direction: column;
    padding: 14px 0;
    border-bottom: 1px solid #f1f5f9;
}

.feature-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.feature-label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
    font-weight: 600;
}

.feature-val {
    font-size: 17px;
    font-weight: 800;
    color: var(--primary);
}

.compare-card.recommended .feature-val {
    color: #166534;
}

.feature-val a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
}

.feature-val a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

@media (max-width: 900px) {
    .compare-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .compare-card.recommended {
        transform: scale(1);
    }
    .compare-card.recommended:hover {
        transform: translateY(-5px);
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Porównanie parametrów technicznych pętli grzewczych",
    "description": "Zestawienie kluczowych parametrów hydraulicznych dla rur 16x2 mm i 20x2 mm, uwzględniające optymalne oraz graniczne długości pętli, opory i pojemności wodne w roku 2026.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rura 16x2 mm (Zalecane)",
        "value": "Długość: 80m, Opór: 18 kPa, Rozdzielacz: Stal INOX",
        "description": "Optymalne parametry dla instalacji w domach jednorodzinnych gwarantujące równowagę hydrauliczną."
      },
      {
        "@type": "PropertyValue",
        "name": "Rura 16x2 mm (Graniczne)",
        "value": "Długość: 100m, Opór: 28 kPa, Rozdzielacz: Mosiężny",
        "description": "Maksymalne dopuszczalne parametry wymagające precyzyjnego doboru pompy obiegowej."
      },
      {
        "@type": "PropertyValue",
        "name": "Rura 20x2 mm (Przemysłowe)",
        "value": "Długość: 130m, Opór: 22 kPa",
        "description": "Parametry dedykowane dla obiektów wielkopowierzchniowych i hal przemysłowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  }
]
</script>

<div class="premium-compare-box" id="comparison-app">
    <div class="compare-header">
        <h2>Porównanie parametrów technicznych pętli</h2>
        <p>Poniższe zestawienie przedstawia kluczowe parametry hydrauliczne i projektowe dla najpopularniejszych rozwiązań stosowanych w nowoczesnych instalacjach w 2026 roku.</p>
    </div>

    <div class="compare-grid">
        
        <div class="compare-card recommended">
            <div class="card-badge">⭐ Najlepszy Wybór</div>
            <div class="card-title">Rura 16x2 mm</div>
            <span class="card-subtitle">Wariant Optymalny (Zalecany)</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">80 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">7,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val">18 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">8,8 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val">
                        <a target="_blank" rel="noreferrer noopener" href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-ze-stali-nierdzewnej-inox-do-ogrzewania-podlogowego-z-rotametrami/">Stal INOX</a>
                    </span>
                </li>
            </ul>
        </div>

        <div class="compare-card warning">
            <div class="card-title">Rura 16x2 mm</div>
            <span class="card-subtitle">Wariant Graniczny (Maksymalny)</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">100 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">9,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val" style="color: var(--warning)">28 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">11,0 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val">
                        <a target="_blank" rel="noreferrer noopener" href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-mosiezny-do-ogrzewania-podlogowego-z-rotametrami/">Mosiężny</a>
                    </span>
                </li>
            </ul>
        </div>

        <div class="compare-card industrial">
            <div class="card-title">Rura 20x2 mm</div>
            <span class="card-subtitle">Wariant Przemysłowy / Hale</span>
            
            <ul class="feature-list">
                <li class="feature-item">
                    <span class="feature-label">Długość pętli</span>
                    <span class="feature-val">130 m</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Max. powierzchnia (co 10 cm)</span>
                    <span class="feature-val">12,5 m²</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Opór hydrauliczny (ok.)</span>
                    <span class="feature-val">22 kPa</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Pojemność wodna</span>
                    <span class="feature-val">20,8 litra</span>
                </li>
                <li class="feature-item">
                    <span class="feature-label">Zalecany rozdzielacz</span>
                    <span class="feature-val" style="color: #64748b">Przemysłowy</span>
                </li>
            </ul>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('comparison-app');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 300px; border-radius: 24px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px;">🔒</span>
                    <p style="margin-top:0; font-size: 24px; font-weight: 900;">Treść chroniona prawem autorskim</p>
                    <p style="font-size: 16px; max-width: 500px; color: #7f1d1d; line-height: 1.5; margin-bottom: 25px;">To zestawienie tabelaryczne jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i zostało skopiowane nielegalnie.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800; transition: 0.3s;">ZOBACZ ORYGINALNY ARTYKUŁ</a>
                </div>
            `;
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #2563eb;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-calc-container {
    max-width: 1150px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--primary);
}

/* Sekcja z treścią artykułu i wzorami */
.calc-theory-box {
    background: #ffffff;
    border-radius: 24px;
    padding: 40px;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    margin-bottom: 30px;
}

.calc-theory-box h2 {
    margin: 0 0 20px 0;
    font-size: 26px;
    font-weight: 900;
    color: var(--primary);
    line-height: 1.3;
}

.calc-theory-box p {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 20px;
}

.calc-theory-box a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    font-weight: 600;
    transition: all 0.2s ease;
}

.calc-theory-box a:hover {
    color: #1d4ed8;
    border-bottom-style: solid;
}

.step-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.step-list li {
    position: relative;
    padding-left: 45px;
    margin-bottom: 25px;
    font-size: 16px;
    line-height: 1.6;
    color: #334155;
}

.step-list li::before {
    content: counter(step-counter);
    counter-increment: step-counter;
    position: absolute;
    left: 0;
    top: -2px;
    width: 28px;
    height: 28px;
    background: #e0f2fe;
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 14px;
}

body { counter-reset: step-counter; }

.math-highlight {
    background: #f1f5f9;
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--accent);
    margin: 15px 0;
    font-family: 'Georgia', serif;
    font-style: italic;
    font-size: 18px;
    color: #1e293b;
    display: inline-block;
}

/* Właściwy Kalkulator */
.adv-calc {
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    border: 1px solid var(--border-color);
}

.calc-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
}

/* LEWA STRONA - KONFIGURACJA */
.config-side {
    padding: 40px;
    background: #ffffff;
}

.section-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #94a3b8;
    letter-spacing: 1.2px;
    margin-bottom: 20px;
    display: block;
}

.type-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 30px;
}

.type-selector.two-cols { grid-template-columns: repeat(2, 1fr); }

.type-btn {
    padding: 12px 8px;
    border: 2px solid #cbd5e1;
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 13px;
    color: #475569;
    background: #fff;
    transition: all 0.2s;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.type-btn span {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 400;
}

.type-btn.active {
    border-color: var(--accent);
    background: #eff6ff;
    color: var(--accent);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
}

.input-wrap { margin-bottom: 30px; }
.input-label-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    align-items: center;
}
.input-label-row label { font-weight: 600; font-size: 14px; }
.input-label-row .val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 800;
    color: var(--accent);
    font-size: 14px;
}

input[type=range] {
    width: 100%; height: 6px; background: #e2e8f0; border-radius: 10px; appearance: none; outline: none; margin-top: 10px;
}
input[type=range]::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

/* PRAWA STRONA - WYNIKI */
.result-side {
    padding: 40px;
    background: var(--bg-light);
    border-left: 1px solid #f1f5f9;
    display: flex;
    flex-direction: column;
}

.main-score-box {
    background: white; padding: 30px; border-radius: 20px; text-align: center; box-shadow: 0 10px 25px rgba(0,0,0,0.03); margin-bottom: 20px; border-bottom: 6px solid var(--accent);
}
.score-num { font-size: 56px; font-weight: 900; line-height: 1; display: block; margin: 5px 0; color: var(--primary); }
.score-label { font-size: 12px; color: #64748b; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; }

.tech-grid {
    background: var(--primary); color: white; padding: 25px; border-radius: 20px; display: flex; flex-direction: column; gap: 15px; flex-grow: 1;
}
.tech-item {
    display: flex; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #1e293b; align-items: center;
}
.tech-item:last-child { border: none; padding-bottom: 0; }
.tech-item span { color: #94a3b8; font-size: 13px; }
.tech-item strong { font-size: 16px; text-align: right; font-weight: 800; color: #f8fafc;}
.highlight-val { color: #38bdf8 !important; }

/* STOPKA */
.footer-cta {
    padding: 25px 40px;
    background: #eff6ff;
    border-top: 1px solid #dbeafe;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.cta-text-side {
    font-size: 13px; color: #475569; line-height: 1.5;
}

.cta-btn {
    white-space: nowrap; background: var(--accent); color: white; text-decoration: none; padding: 14px 24px; border-radius: 12px; font-weight: 800; transition: 0.3s; font-size: 13px; text-align: center; border: none; cursor: pointer;
}
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(37, 99, 235, 0.2); }

@media (max-width: 900px) {
    .calc-grid { grid-template-columns: 1fr; }
    .footer-cta { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "headline": "Algorytm obliczeniowy długości pętli i przepływów",
    "description": "Procedura inżynierska wyznaczania liczby pętli ogrzewania podłogowego, oparta o OZC, przepływ masowy i optymalizację oporów hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Parametry termodynamiczne i hydrauliczne pętli grzewczej",
    "description": "Zmienne wykorzystywane do obliczania zapotrzebowania na moc, przepływu masowego i wymaganej długości rury PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "OZC",
        "description": "Obciążenie cieplne budynku (W/m²)"
      },
      {
        "@type": "PropertyValue",
        "name": "Delta T (ΔT)",
        "description": "Różnica temperatury pomiędzy zasilaniem a powrotem (K)"
      },
      {
        "@type": "PropertyValue",
        "name": "Przepływ masowy (m)",
        "description": "Ilość wody (kg/h) potrzebna do przeniesienia żądanej mocy cieplnej Q."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Kalkulator Inżynierski Podłogówki - Podział Pętli i Przepływy",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "description": "Kalkulator symulujący podział instalacji na pętle z uwzględnieniem mocy cieplnej (OZC), przepływów na rotametrach oraz granicznych oporów hydraulicznych.",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Obliczanie przepływu czynnika (l/min) dla pokoju",
      "Automatyczny podział na pętle do 80 metrów",
      "Estymacja przepływu na pojedynczym rotametrze",
      "Obliczanie całkowitej mocy grzewczej (W)"
    ]
  }
]
</script>

<div class="premium-calc-container" id="adv-loop-calc-app">
    
    <div class="calc-theory-box">
        <h2>Kalkulator długości pętli – Algorytm obliczeniowy krok po kroku</h2>
        <p>Jako inżynier, przy każdym profesjonalnym projekcie wykonuję precyzyjną procedurę obliczeniową. Poniżej przedstawiam algorytm, który możesz wykorzystać do wstępnego oszacowania parametrów hydraulicznych i termicznych Twojego układu:</p>
        
        <ul class="step-list">
            <li><strong>Obliczenie OZC (Obciążenia Cieplnego):</strong> Na podstawie normy <strong>PN-EN 12831</strong> wyznaczamy zapotrzebowanie na moc (np. 50 W/m² dla nowego domu). Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" target="_blank" rel="noreferrer noopener">projektowe obciążenie cieplne OZC</a>.</li>
            <li><strong>Wyznaczenie przepływu masowego (m):</strong>
                <div class="math-highlight">Q = m &middot; c<sub>p</sub> &middot; &Delta;T</div>
                <br>Przykład: Dla pokoju o zapotrzebowaniu 1000 W i parametrze &Delta;T = 5 K, przepływ wynosi około 172 kg/h (czyli ok. 0,17 m³/h).
            </li>
            <li><strong>Dobór rozstawu rur:</strong> Uwzględniając <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">opór cieplny R m²K/W</a> wybranej okładziny (płytki vs panele), decydujemy o gęstości rur.</li>
            <li><strong>Podział na pętle:</strong> Dzielimy całkowitą wyliczoną długość przez graniczną wartość <strong>80 m</strong> (aby uniknąć wysokich oporów). Wynik zaokrąglamy w górę (np. 130 m / 80 m = 2 pętle po 65 m).</li>
        </ul>
    </div>

    <div class="adv-calc">
        <div class="calc-grid">
            <div class="config-side">
                <span class="section-title">1. Parametry geometryczne i termiczne</span>
                
                <div class="input-wrap">
                    <div class="input-label-row"><label>Powierzchnia pomieszczenia</label><span class="val-badge"><span id="val-area">20</span> m²</span></div>
                    <input type="range" id="input-area" min="5" max="100" step="1" value="20">
                </div>
                
                <div class="input-wrap">
                    <div class="input-label-row"><label>Zapotrzebowanie (OZC)</label><span class="val-badge"><span id="val-ozc">50</span> W/m²</span></div>
                    <input type="range" id="input-ozc" min="30" max="100" step="5" value="50">
                    <div style="font-size: 11px; color: #64748b; margin-top: 8px;">Od 30 W/m² (domy pasywne) do 100 W/m² (starsze budownictwo).</div>
                </div>

                <span class="section-title">2. Parametry układu hydraulicznego</span>
                
                <div class="input-label-row" style="margin-bottom: 12px;"><label>Różnica temperatur (&Delta;T)</label></div>
                <div class="type-selector">
                    <div class="type-btn active" id="dt-5">5 K<span>Pompa ciepła</span></div>
                    <div class="type-btn" id="dt-7">7 K<span>Kocioł gaz. / Standard</span></div>
                    <div class="type-btn" id="dt-10">10 K<span>Stare układy</span></div>
                </div>

                <div class="input-label-row" style="margin-bottom: 12px;"><label>Rozstaw rur (gęstość)</label></div>
                <div class="type-selector two-cols" style="margin-bottom: 0;">
                    <div class="type-btn" id="roz-10">10 cm<span>Gęsty</span></div>
                    <div class="type-btn active" id="roz-15">15 cm<span>Optymalny</span></div>
                </div>
            </div>

            <div class="result-side">
                <div class="main-score-box">
                    <span class="score-label">Podział na rozdzielaczu</span>
                    <span class="score-num" id="res-loops">2</span>
                    <span class="score-label" id="res-loops-txt">Pętle Grzewcze</span>
                </div>

                <div class="tech-grid">
                    <div class="tech-item"><span>Wymagana moc dla pokoju (Q):</span><strong id="res-power">--</strong></div>
                    <div class="tech-item"><span>Całkowita długość rury:</span><strong id="res-total-len">--</strong></div>
                    <div class="tech-item"><span>Długość pojedynczej pętli:</span><strong id="res-single-len" class="highlight-val">--</strong></div>
                    <div class="tech-item"><span>Całkowity przepływ:</span><strong id="res-total-flow">--</strong></div>
                    <div class="tech-item" style="border: none;"><span>Ustawienie rotametru (na 1 pętlę):</span><strong id="res-rotameter" class="highlight-val" style="font-size: 18px;">--</strong></div>
                </div>
            </div>
        </div>
        
        <div class="footer-cta">
            <div class="cta-text-side">
                <strong>Zrozumiałeś algorytm?</strong> Zastosuj go do każdego pomieszczenia. A jeśli chcesz mieć gwarancję, że cała fizyka układu (wraz z oporami i doborem pompy) została wyliczona bezbłędnie...
            </div>
            <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="cta-btn">ZAMÓW PROJEKT U INŻYNIERA →</a>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // BLOKADA DOMENOWA (Domain Lock)
    var domain = window.location.hostname;
    var allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (allowedDomains.indexOf(domain) === -1) {
        var appContainer = document.getElementById('adv-loop-calc-app');
        if (appContainer) {
            appContainer.innerHTML = '<div style="padding: 60px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; font-family: sans-serif;">' +
                '<span style="font-size: 48px; display: block; margin-bottom: 15px;">🔒</span>' +
                '<p style="margin-top:0; font-size: 24px; font-weight: 900; margin-bottom: 10px;">Algorytm chroniony</p>' +
                '<p style="font-size: 16px; margin-bottom: 25px;">To narzędzie jest własnością serwisu <a href="https://projekt-ogrzewania.pl/" style="color: #dc2626; font-weight: bold; text-decoration: underline;">Projekt-Ogrzewania.pl</a></p>' +
                '<a href="https://projekt-ogrzewania.pl/" style="display: inline-block; padding: 14px 28px; background: #dc2626; color: #ffffff; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>' +
                '</div>';
        }
        return; 
    }

    // Stan aplikacji
    var state = {
        area: 20,
        ozc: 50,
        deltaT: 5,
        spacing: 0.15,
        maxLoopLength: 80 // Celujemy w max 80m jak w treści
    };

    // Funkcja aktualizująca fizykę
    function calculatePhysics() {
        // 1. Zapotrzebowanie cieplne Q (W)
        var qTotal = state.area * state.ozc;
        
        // 2. Przepływ masowy (m) -> Q = m * cp * dT -> m [kg/h] = Q / (1.163 * dT)
        var massFlow = qTotal / (1.163 * state.deltaT);
        var flowLpm = massFlow / 60; // litry na minutę
        
        // 3. Zapotrzebowanie na rurę (wzór L = (Area/Rozstaw) * 1.1)
        var totalLength = (state.area / state.spacing) * 1.1;
        
        // 4. Podział na pętle
        var loops = Math.ceil(totalLength / state.maxLoopLength);
        if (loops < 1) loops = 1;

        // 5. Parametry na pętlę
        var lengthPerLoop = totalLength / loops;
        var flowPerLoop = flowLpm / loops;

        // Aktualizacja UI
        document.getElementById('res-loops').innerText = loops;
        document.getElementById('res-loops-txt').innerText = loops === 1 ? 'Pętla Grzewcza' : (loops > 4 ? 'Pętli Grzewczych' : 'Pętle Grzewcze');
        
        document.getElementById('res-power').innerText = Math.round(qTotal) + ' W';
        document.getElementById('res-total-len').innerText = Math.round(totalLength) + ' m';
        document.getElementById('res-single-len').innerText = Math.round(lengthPerLoop) + ' m';
        
        document.getElementById('res-total-flow').innerText = flowLpm.toFixed(2) + ' l/min';
        document.getElementById('res-rotameter').innerText = flowPerLoop.toFixed(2) + ' l/min';
    }

    // Event Listenery - Suwaki
    document.getElementById('input-area').addEventListener('input', function(e) {
        state.area = parseFloat(e.target.value);
        document.getElementById('val-area').innerText = state.area;
        calculatePhysics();
    });

    document.getElementById('input-ozc').addEventListener('input', function(e) {
        state.ozc = parseFloat(e.target.value);
        document.getElementById('val-ozc').innerText = state.ozc;
        calculatePhysics();
    });

    // Event Listenery - Przyciski Delta T
    var dtBtns = { 'dt-5': 5, 'dt-7': 7, 'dt-10': 10 };
    Object.keys(dtBtns).forEach(function(id) {
        var btn = document.getElementById(id);
        if(btn) {
            btn.addEventListener('click', function() {
                Object.keys(dtBtns).forEach(function(k){ document.getElementById(k).classList.remove('active'); });
                this.classList.add('active');
                state.deltaT = dtBtns[id];
                calculatePhysics();
            });
        }
    });

    // Event Listenery - Przyciski Rozstaw
    var rozBtns = { 'roz-10': 0.10, 'roz-15': 0.15 };
    Object.keys(rozBtns).forEach(function(id) {
        var btn = document.getElementById(id);
        if(btn) {
            btn.addEventListener('click', function() {
                Object.keys(rozBtns).forEach(function(k){ document.getElementById(k).classList.remove('active'); });
                this.classList.add('active');
                state.spacing = rozBtns[id];
                calculatePhysics();
            });
        }
    });

    // Uruchomienie pierwsze
    calculatePhysics();
});
</script>



<style>
:root {
    --primary-hvac: #0f172a;
    --accent-hvac: #2563eb;
    --bg-tip: #f1f5f9;
}

.expert-tip-wrapper {
    max-width: 850px;
    margin: 50px auto 40px auto;
}

.expert-tip-wrapper h2 {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 24px;
    font-weight: 900;
    color: var(--primary-hvac);
    margin: 0 0 20px 0;
    text-align: center;
}

.expert-tip-container {
    background: var(--bg-tip);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    gap: 25px;
    align-items: center;
    border-left: 6px solid var(--accent-hvac);
    position: relative;
    font-family: 'Inter', -apple-system, sans-serif;
    text-align: left;
}

.expert-tip-photo-wrap {
    flex-shrink: 0;
    width: 90px;
    height: 90px;
    position: relative;
}

.expert-tip-photo {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
    border: 3px solid #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.expert-tip-photo-wrap::after {
    content: '📏';
    position: absolute;
    bottom: -5px;
    right: -5px;
    background: #ffffff;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.expert-tip-content {
    flex-grow: 1;
}

.expert-tip-label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--accent-hvac);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
}

.expert-tip-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--primary-hvac);
    font-style: italic;
    margin: 0;
}

.expert-tip-signature {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

@media (max-width: 600px) {
    .expert-tip-container { flex-direction: column; text-align: center; padding: 25px; }
    .expert-tip-photo-wrap { margin-bottom: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Planując instalację, kluczowe jest zrozumienie, ile metrów podłogówki na jednej pętli faktycznie może obsłużyć Twój system. Przekroczenie magicznej barierze 100 metrów przy rurze 16 mm to nie tylko błąd montażowy, to wyrok na sprawność pompy ciepła i Twój komfort cieplny.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Główny Projektant",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zbiór danych projektowych: Limity długości pętli grzewczych",
    "description": "Zestawienie inżynierskich norm spadku ciśnienia i temperatury dla różnych długości obiegów ogrzewania podłogowego rur PEX/PERT.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": "Spadek ciśnienia (kPa) vs Długość rury (m)",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Logika Projektowa Roberta Kucharskiego",
    "description": "Interaktywny algorytm wyznaczania granicznych oporów hydraulicznych w zależności od metrów bieżących pętli grzewczej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    }
  }
]
</script>

<div class="expert-tip-wrapper">
    <h2><span style="margin-right:10px">💡</span>Złota zasada inżyniera HVAC</h2>
    
    <div class="expert-tip-container" id="expert-tip-hvac">
        <div class="expert-tip-photo-wrap">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="expert-tip-photo" loading="lazy">
        </div>
        <div class="expert-tip-content">
            <span class="expert-tip-label">Inżynierski punkt widzenia</span>
            <p class="expert-tip-text">
                "Pytanie o to, <strong>ile metrów podłogówki na jednej pętli</strong> ułożyć, to w rzeczywistości pytanie o hydraulikę i opory przepływu. Moja rada? Nigdy nie daj się namówić na pętle 16 mm o długości 120-130 metrów tylko po to, by 'oszczędzić' na sekcjach rozdzielacza. Optymalne 80 metrów to gwarancja, że system będzie cichy, a podłoga nagrzeje się równomiernie nawet przy niskim parametrze zasilania z pompy ciepła."
            </p>
            <span class="expert-tip-signature">— Robert Kucharski, CEO Projekt-Ogrzewania.pl</span>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f1f5f9; border-radius: 20px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a;">Rekomendacja Roberta Kucharskiego:</p>
            <p style="font-size: 14px; color: #475569;">Dla rury 16x2 mm optymalna długość to 80-90 m. Przekroczenie 100 m drastycznie zwiększa opory hydrauliczne i obniża wydajność systemu.</p>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    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('expert-tip-hvac');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; width: 100%; border: 2px solid #dc2626;">
                    <span style="font-size: 32px; margin-bottom: 15px;">🔒</span>
                    <div style="font-size: 20px; font-weight: bold; margin-bottom: 10px;">Treść chroniona prawem autorskim</div>
                    <p style="font-size: 14px; color: #7f1d1d;">Ten moduł ekspercki jest własnością Projekt-Ogrzewania.pl i nie może być powielany na innych domenach.</p>
                </div>
            `;
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.padding = '0';
        }
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-scenario-box {
    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.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.scenario-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
}

.scenario-header h2 {
    margin: 0;
    font-size: 24px;
    color: #0369a1;
    font-weight: 900;
    line-height: 1.3;
}

.scenario-content {
    padding: 30px 40px 10px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.scenario-content strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.scenario-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.scenario-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Interaktywny Moduł - Symulator Profilu */
.interactive-scenario-module {
    margin: 0 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
}

.module-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    gap: 10px;
}

.scenario-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 15px 25px 0 25px;
    gap: 10px;
    border-bottom: 1px solid var(--border-color);
}

.tab-btn {
    padding: 12px 20px;
    background: #e2e8f0;
    border: none;
    border-radius: 10px 10px 0 0;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.2s ease;
    flex: 1;
    text-align: center;
}

.tab-btn.active {
    background: #ffffff;
    color: var(--accent);
    border: 1px solid var(--border-color);
    border-bottom: 1px solid #ffffff;
    margin-bottom: -1px;
    box-shadow: 0 -4px 10px rgba(0,0,0,0.02);
}

.scenario-display {
    padding: 30px 25px;
}

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

.metric-card {
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
}

.metric-label {
    font-size: 11px;
    color: #64748b;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

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

.metric-value.highlight {
    color: var(--accent);
}

.scenario-desc-box {
    padding: 20px;
    border-radius: 12px;
    background: #f0f9ff;
    border-left: 4px solid var(--accent);
    font-size: 14px;
    line-height: 1.6;
    color: #334155;
    transition: all 0.3s ease;
}

@media (max-width: 768px) {
    .scenario-content { padding: 25px 20px 10px 20px; }
    .interactive-scenario-module { margin: 0 20px 25px 20px; }
    .scenario-tabs { flex-direction: column; padding: 15px; gap: 5px; }
    .tab-btn { border-radius: 8px; margin-bottom: 0 !important; border: 1px solid transparent; }
    .tab-btn.active { border: 1px solid var(--accent); box-shadow: none; }
    .metrics-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Zależność parametrów pętli grzewczych od przeznaczenia budynku",
    "description": "Zbiór danych definiujących różnice w projektowaniu ogrzewania podłogowego dla specyficznych stref: domów szkieletowych, łazienek oraz instalacji zewnętrznych (podjazdy).",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Długość pętli (Dom szkieletowy)",
        "value": "60-70 m",
        "description": "Zalecana krótsza pętla ze względu na wymóg szybkiej reakcji na zmiany temperatury przy niskiej bezwładności budynku."
      },
      {
        "@type": "PropertyValue",
        "name": "Rozstaw rur (Łazienka)",
        "value": "7,5 - 10 cm",
        "description": "Zagęszczony układ rur w celu osiągnięcia normatywnej temperatury 24°C."
      },
      {
        "@type": "PropertyValue",
        "name": "Czynnik grzewczy (Podjazdy)",
        "value": "Glikol",
        "description": "Ciecz o wysokiej lepkości stosowana na zewnątrz, wymagająca instalacji mocniejszych pomp obiegowych."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Profilu Grzewczego (Przeznaczenie Obiektu)",
    "description": "Interaktywne narzędzie inżynierskie demonstrujące, jak zmieniają się kluczowe parametry pętli ogrzewania płaszczyznowego w zależności od strefy (bezwładność, rozstaw, czynnik, obciążenie pompy).",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczna zmiana parametrów hydraulicznych na podstawie wybranej strefy",
      "Weryfikacja czynnika grzewczego (Woda vs Glikol)",
      "Analiza obciążenia pompy obiegowej i bezwładności cieplnej"
    ]
  }
]
</script>

<div class="premium-scenario-box" id="scenario-app-container">
    <div class="scenario-header">
        <h2>Jak zaplanować rozmieszczenie pętli w budynkach o różnym przeznaczeniu?</h2>
    </div>
    
    <div class="scenario-content">
        <p>Projektując <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/" target="_blank" rel="noreferrer noopener">ogrzewanie podłogowe w domu szkieletowym</a>, musimy pamiętać o mniejszej bezwładności systemu. Tutaj pętle powinny być jeszcze krótsze (ok. <strong>60-70 m</strong>), aby system szybciej reagował na zmiany temperatury. Z kolei w łazienkach, gdzie wymagana temperatura to <strong>24°C</strong> (zgodnie z rozporządzeniem), stosujemy rozstaw <strong>10 cm</strong> lub nawet <strong>7,5 cm</strong>, co drastycznie skraca powierzchnię obsługiwaną przez jedną pętlę. Szczególnym przypadkiem są <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/" target="_blank" rel="noreferrer noopener">podgrzewane podjazdy i parkingi</a>. Tam pętle mogą być dłuższe, a jako czynnik stosuje się <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/" target="_blank" rel="noreferrer noopener">glikol w ogrzewaniu podlogowym</a>, co zwiększa lepkość cieczy i wymusza użycie mocniejszych pomp.</p>
    </div>

    <div class="interactive-scenario-module">
        <div class="module-title">⚙️ Symulator Profilu Grzewczego (Strefy)</div>
        
        <div class="scenario-tabs">
            <button class="tab-btn active" data-tab="szkielet">Dom Szkieletowy</button>
            <button class="tab-btn" data-tab="lazienka">Strefa Łazienki</button>
            <button class="tab-btn" data-tab="podjazd">Podjazd / Parking</button>
        </div>

        <div class="scenario-display">
            <div class="metrics-grid">
                <div class="metric-card">
                    <span class="metric-label">Zalecana długość pętli</span>
                    <span class="metric-value highlight" id="sim-length">60 - 70 m</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Rozstaw rur (Gęstość)</span>
                    <span class="metric-value" id="sim-spacing">10 - 15 cm</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Czynnik grzewczy</span>
                    <span class="metric-value" id="sim-fluid">Woda kotłowa / Demineralizowana</span>
                </div>
                <div class="metric-card">
                    <span class="metric-label">Wymagania pompy obiegowej</span>
                    <span class="metric-value" id="sim-pump">Standardowa</span>
                </div>
            </div>

            <div class="scenario-desc-box" id="sim-desc">
                <strong>Inżynierski punkt widzenia:</strong> Budynki szkieletowe cechują się bardzo niską akumulacyjnością cieplną (brak grubych, murowanych ścian). Wymusza to zaprojektowanie systemu o krótkich pętlach, aby instalacja mogła błyskawicznie reagować na nagłe zmiany zapotrzebowania (np. nagłe zyski od nasłonecznienia). Długa pętla spowodowałaby przegrzewanie pomieszczeń.
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 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('scenario-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Moduł zablokowany</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne narzędzia inżynierskie znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Baza danych profili
    const profiles = {
        szkielet: {
            length: "60 - 70 m",
            spacing: "10 - 15 cm",
            fluid: "Woda / Woda demineralizowana",
            pump: "Standardowa (Energooszczędna)",
            color: "var(--accent)",
            bg: "#f0f9ff",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Budynki szkieletowe cechują się bardzo niską akumulacyjnością cieplną (brak grubych ścian). Wymusza to zaprojektowanie systemu o krótkich pętlach, aby instalacja mogła błyskawicznie reagować na nagłe zmiany zapotrzebowania (np. duże nasłonecznienie). Długa pętla powodowałaby bezwładne przegrzewanie."
        },
        lazienka: {
            length: "40 - 60 m",
            spacing: "7,5 - 10 cm",
            fluid: "Woda / Woda demineralizowana",
            pump: "Standardowa",
            color: "var(--warning)",
            bg: "#fff7ed",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Łazienka to strefa o najwyższym wymogu termicznym (24°C). Musimy maksymalnie zagęścić rury (często 7,5 cm), co sprawia, że jedna pętla obsługuje bardzo małą powierzchnię (np. 4-5 m²). Zbyt długa rura przy tak gęstym układzie stłumiłaby przepływ."
        },
        podjazd: {
            length: "100 - 150 m",
            spacing: "15 - 20 cm",
            fluid: "Glikol (Roztwór 30-50%)",
            pump: "Wysokiej wydajności (Przemysłowa)",
            color: "#64748b",
            bg: "#f8fafc",
            desc: "<strong>Inżynierski punkt widzenia:</strong> Instalacje przeciwoblodzeniowe na zewnątrz muszą być zalane roztworem glikolu. Glikol ma znacznie wyższą lepkość kinematyczną niż woda. Generuje to gigantyczne opory hydrauliczne, dlatego absolutnie niezbędne jest zastosowanie zewnętrznych wymienników ciepła i bardzo mocnych pomp o dużej wysokości podnoszenia."
        }
    };

    // Logika przełączania
    const tabs = document.querySelectorAll('.tab-btn');
    const elLength = document.getElementById('sim-length');
    const elSpacing = document.getElementById('sim-spacing');
    const elFluid = document.getElementById('sim-fluid');
    const elPump = document.getElementById('sim-pump');
    const elDesc = document.getElementById('sim-desc');

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

            // Get data
            const key = this.getAttribute('data-tab');
            const data = profiles[key];

            // Update UI
            elLength.textContent = data.length;
            elSpacing.textContent = data.spacing;
            elFluid.textContent = data.fluid;
            elPump.textContent = data.pump;
            elDesc.innerHTML = data.desc;

            // Apply styles
            elLength.style.color = data.color;
            elDesc.style.borderLeftColor = data.color;
            elDesc.style.backgroundColor = data.bg;
        });
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-impact-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.impact-header {
    background: #ffffff;
    padding: 35px 40px 15px 40px;
}

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

.impact-content {
    padding: 0 40px 30px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
}

.impact-content ul {
    margin: 20px 0;
    padding-left: 0;
    list-style: none;
}

.impact-content li {
    margin-bottom: 15px;
    padding-left: 28px;
    position: relative;
}

.impact-content li::before {
    content: "➔";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--accent);
    font-weight: 900;
}

.impact-content strong {
    color: var(--primary);
}

.impact-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.impact-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł Interaktywny - Symulator Skutków */
.interactive-impact-module {
    margin: 0 40px 40px 40px;
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: 16px;
    overflow: hidden;
}

.module-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: #ffffff;
    display: flex;
    align-items: center;
    gap: 10px;
}

.impact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
}

.config-panel {
    padding: 30px 25px;
    background: #ffffff;
    border-right: 1px solid var(--border-color);
}

.config-group {
    margin-bottom: 25px;
}

.config-group:last-child {
    margin-bottom: 0;
}

.config-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--primary);
}

.val-display {
    color: var(--accent);
    font-weight: 900;
}

.impact-slider {
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 10px;
    appearance: none;
    outline: none;
    margin-top: 5px;
}
.impact-slider::-webkit-slider-thumb {
    appearance: none; width: 22px; height: 22px; background: var(--accent); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.15); cursor: pointer;
}

.results-panel {
    padding: 30px 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.res-card {
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

.res-info {
    display: flex;
    flex-direction: column;
}

.res-label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 4px;
}

.res-val {
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
}

.res-icon {
    font-size: 24px;
}

/* Dynamiczne kolory */
.status-good { border-left: 4px solid var(--success); }
.status-warn { border-left: 4px solid var(--warning); }
.status-bad { border-left: 4px solid var(--danger); }

.cost-highlight { color: var(--danger); }

@media (max-width: 768px) {
    .impact-header { padding: 25px 25px 10px 25px; }
    .impact-content { padding: 0 25px 25px 25px; }
    .interactive-impact-module { margin: 0 20px 25px 20px; }
    .impact-grid { grid-template-columns: 1fr; }
    .config-panel { border-right: none; border-bottom: 1px solid var(--border-color); }
    .res-card { flex-direction: column; align-items: flex-start; gap: 10px; }
    .res-icon { display: none; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Wpływ długości pętli na koszty sprzętu i hydraulikę",
    "description": "Zestawienie korelacji pomiędzy projektowaną długością pętli a rozmiarem rozdzielacza, kosztami inwestycyjnymi, efektywnością SCOP oraz trudnością równoważenia hydraulicznego rotametrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Rozmiar rozdzielacza i szafki",
        "description": "Ilość sekcji rośnie odwrotnie proporcjonalnie do zakładanej długości pojedynczej pętli (zwiększając koszty osprzętu)."
      },
      {
        "@type": "PropertyValue",
        "name": "Koszt sekcji rozdzielacza",
        "value": "150-250 PLN",
        "description": "Szacunkowy koszt dodania jednego obwodu grzewczego (zawór, rotametr, złączki)."
      },
      {
        "@type": "PropertyValue",
        "name": "Zrównoważenie hydrauliczne",
        "description": "Dla pętli powyżej 100m i pętli o skrajnie różnej długości, regulacja przepływów staje się krytycznie trudna."
      },
      {
        "@type": "PropertyValue",
        "name": "SCOP Pompy Ciepła",
        "description": "Krótsze pętle pozwalają obniżyć temperaturę zasilania (30-35°C), co diametralnie podnosi współczynnik efektywności urządzenia."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Skutków Projektowych Podłogówki",
    "description": "Interaktywny analizator ukazujący, jak założenia projektowe (średnia długość pętli) rzutują na koszty rozdzielacza, równoważenie układu i SCOP pompy ciepła dla zadanej długości całej instalacji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Estymacja wielkości rozdzielacza i szafki",
      "Kalkulacja szacunkowych kosztów sekcyjnych",
      "Wizualna ocena ryzyka równoważenia hydraulicznego",
      "Ocena wpływu decyzji na temperaturę zasilania i efektywność pompy ciepła"
    ]
  }
]
</script>

<div class="premium-impact-box" id="impact-app-container">
    <div class="impact-header">
        <h2>Jak to wpływa na projekt ogrzewania podłogowego i wybór urządzeń?</h2>
    </div>
    
    <div class="impact-content">
        <p>Długość pętli to fundament, na którym opiera się cały <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">profesjonalny projekt ogrzewania podłogowego</a>. Błędne założenie "zrobimy pętle po 120 metrów" rzutuje na:</p>
        
        <ul>
            <li><strong>Dobór rozdzielacza:</strong> Każda dodatkowa pętla to konieczność zakupu większego <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rozdzielacza do podłogówki</a>. Koszt dodatkowej sekcji to ok. <strong>150-250 PLN</strong>, ale jest to inwestycja, która zapobiega problemom z hydrauliką.</li>
            <li><strong>Wielkość szafki:</strong> Więcej pętli wymaga większej <a href="https://projekt-ogrzewania.pl/produkt/szafka-podtynkowa-do-rozdzielaczy-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">szafki podtynkowej</a>.</li>
            <li><strong>Równoważenie:</strong> Na każdym <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametrze</a> musimy ustawić konkretny przepływ (np. 1,5 l/min). Jeśli pętle są rażąco różnej długości, np. 30 m i 110 m, ich zrównoważenie bywa niemożliwe bez zewnętrznych zaworów dławiących.</li>
            <li><strong>Źródło ciepła:</strong> <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" target="_blank" rel="noreferrer noopener">Pompa ciepła</a> najlepiej pracuje przy niskiej temperaturze zasilania (<strong>30-35°C</strong>). Krótkie pętle pozwalają na pracę przy minimalnej różnicy temperatur, co podnosi współczynnik SCOP urządzenia.</li>
        </ul>
    </div>

    <div class="interactive-impact-module">
        <div class="module-title">📉 Symulator skutków decyzji projektowych</div>
        
        <div class="impact-grid">
            <div class="config-panel">
                <div class="config-group">
                    <div class="config-label">
                        <span>Zapotrzebowanie na rurę (Dom)</span>
                        <span class="val-display"><span id="inp-total">1000</span> m</span>
                    </div>
                    <input type="range" id="slider-total" class="impact-slider" min="400" max="2000" value="1000" step="50">
                    <div style="font-size: 11px; color: #94a3b8; margin-top: 6px;">Całkowita ilość rury PEX wyliczona z OZC.</div>
                </div>

                <div class="config-group" style="margin-top: 35px;">
                    <div class="config-label">
                        <span>Zakładana dł. pojedynczej pętli</span>
                        <span class="val-display" id="inp-loop-color"><span id="inp-loop">120</span> m</span>
                    </div>
                    <input type="range" id="slider-loop" class="impact-slider" min="50" max="150" value="120" step="5">
                    <div style="font-size: 11px; color: #94a3b8; margin-top: 6px;">Sprawdź "tani" montaż (120m) vs optymalny (80m).</div>
                </div>
            </div>

            <div class="results-panel">
                <div class="res-card" id="card-manifold">
                    <div class="res-info">
                        <span class="res-label">Wymagany rozdzielacz</span>
                        <span class="res-val"><span id="out-sections">9</span> sekcji (<span id="out-cost">1800</span> PLN)</span>
                    </div>
                    <div class="res-icon">🎛️</div>
                </div>

                <div class="res-card" id="card-balance">
                    <div class="res-info">
                        <span class="res-label">Równoważenie hydrauliczne</span>
                        <span class="res-val" id="out-balance">Bardzo trudne / Niemożliwe</span>
                    </div>
                    <div class="res-icon">⚖️</div>
                </div>

                <div class="res-card" id="card-scop">
                    <div class="res-info">
                        <span class="res-label">Wpływ na pompę ciepła (SCOP)</span>
                        <span class="res-val" id="out-scop">Obniżony SCOP (Wymaga >35°C)</span>
                    </div>
                    <div class="res-icon">⚡</div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 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('impact-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Treść zablokowana</p>
                    <p>Moduł interaktywny został skopiowany. Odwiedź <strong>Projekt-Ogrzewania.pl</strong>, aby z niego skorzystać.</p>
                </div>
            `;
            return;
        }
    }

    // Elementy DOM
    const sTotal = document.getElementById('slider-total');
    const sLoop = document.getElementById('slider-loop');
    
    const vTotal = document.getElementById('inp-total');
    const vLoop = document.getElementById('inp-loop');
    const vLoopColor = document.getElementById('inp-loop-color');
    
    const oSections = document.getElementById('out-sections');
    const oCost = document.getElementById('out-cost');
    const oBalance = document.getElementById('out-balance');
    const oScop = document.getElementById('out-scop');

    const cardManifold = document.getElementById('card-manifold');
    const cardBalance = document.getElementById('card-balance');
    const cardScop = document.getElementById('card-scop');

    // Przyjęty średni koszt sekcji (zł)
    const costPerSection = 200; 

    function updateSimulator() {
        const totalPipe = parseInt(sTotal.value);
        const loopLen = parseInt(sLoop.value);

        vTotal.textContent = totalPipe;
        vLoop.textContent = loopLen;

        // Obliczenia
        const sectionsCount = Math.ceil(totalPipe / loopLen);
        const totalCost = sectionsCount * costPerSection;

        oSections.textContent = sectionsCount;
        oCost.textContent = totalCost;

        // Reset klas
        cardManifold.className = 'res-card';
        cardBalance.className = 'res-card';
        cardScop.className = 'res-card';

        // Ocena kosztów rozdzielacza (im mniej pętli, tym taniej inwestycyjnie, ale uwaga na skutki!)
        // Moduł celowo nie barwi kosztów jako błędu, tylko pokazuje tradeoff.
        cardManifold.classList.add('status-good');

        // Ocena długości pętli (Hydraulika i Pompa)
        if (loopLen <= 80) {
            vLoopColor.style.color = "var(--success)";
            
            oBalance.textContent = "Idealne (rotametry działają poprawnie)";
            cardBalance.classList.add('status-good');

            oScop.textContent = "Wysoki SCOP (Zasilanie 30-33°C)";
            cardScop.classList.add('status-good');

        } else if (loopLen > 80 && loopLen <= 100) {
            vLoopColor.style.color = "var(--warning)";
            
            oBalance.textContent = "Dopuszczalne (Wymaga dobrych pomp)";
            cardBalance.classList.add('status-warn');

            oScop.textContent = "Średni SCOP (Zasilanie ok. 35°C)";
            cardScop.classList.add('status-warn');

        } else {
            vLoopColor.style.color = "var(--danger)";
            
            oBalance.textContent = "Ryzyko awarii i niedogrzania stref";
            cardBalance.classList.add('status-bad');

            oScop.textContent = "Drastyczny spadek SCOP (>38°C)";
            cardScop.classList.add('status-bad');
        }
    }

    // Nasłuchiwacze
    if (sTotal) sTotal.addEventListener('input', updateSimulator);
    if (sLoop) sLoop.addEventListener('input', updateSimulator);

    // Inicjalizacja
    updateSimulator();
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-error-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(220, 38, 38, 0.1);
    border: 1px solid var(--border-color);
    border-top: 5px solid var(--danger);
    overflow: hidden;
    color: var(--primary);
}

.error-header {
    background: #fffafa;
    padding: 35px 40px 20px 40px;
}

.error-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    color: var(--danger);
    font-weight: 900;
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.error-content {
    padding: 0 40px 30px 40px;
    line-height: 1.8;
    color: #334155;
    font-size: 16px;
    background: #fffafa;
}

.error-content p {
    margin-bottom: 20px;
}

.error-list {
    margin: 20px 0;
    padding-left: 0;
    list-style: none;
    display: grid;
    gap: 15px;
}

.error-list li {
    background: #ffffff;
    border: 1px solid #fee2e2;
    padding: 15px 20px;
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
    position: relative;
    padding-left: 50px;
}

.error-number {
    position: absolute;
    left: 15px;
    top: 15px;
    background: #fecaca;
    color: var(--danger);
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 900;
    font-size: 13px;
}

.error-content strong {
    color: var(--primary);
}

.error-content a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: all 0.2s ease;
    font-weight: 600;
}

.error-content a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

/* Moduł Interaktywny - Symulator Ryzyka */
.interactive-risk-module {
    margin: 0 40px 40px 40px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
}

.module-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    gap: 10px;
}

.risk-config {
    padding: 25px;
    border-bottom: 1px solid var(--border-color);
}

.slider-label-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 15px;
}

.val-badge {
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 8px;
    font-weight: 900;
    color: var(--danger);
}

.risk-slider {
    width: 100%;
    height: 6px;
    background: #e2e8f0;
    border-radius: 10px;
    appearance: none;
    outline: none;
}
.risk-slider::-webkit-slider-thumb {
    appearance: none; width: 24px; height: 24px; background: var(--danger); border-radius: 50%; border: 3px solid white; box-shadow: 0 2px 5px rgba(0,0,0,0.2); cursor: pointer; transition: 0.2s;
}
.risk-slider::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Termowizja */
.thermal-bar-container {
    padding: 20px 25px;
    background: #f8fafc;
    border-bottom: 1px solid var(--border-color);
}

.thermal-label {
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.thermal-bar {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(to right, #ef4444 0%, #f59e0b 50%, #ef4444 100%);
    transition: background 0.3s ease;
}

.thermal-markers {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    font-weight: 700;
    color: #94a3b8;
    margin-top: 8px;
}

/* Wyniki ryzyk */
.risk-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 25px;
}

.risk-card {
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.3s ease;
}

.risk-icon { font-size: 24px; margin-bottom: 8px; }
.risk-title { font-size: 12px; font-weight: 800; color: #64748b; text-transform: uppercase; margin-bottom: 5px; }
.risk-val { font-size: 18px; font-weight: 900; color: var(--primary); }

.status-ok { border-color: var(--success); background: #f0fdf4; }
.status-warn { border-color: var(--warning); background: #fff7ed; }
.status-crit { border-color: var(--danger); background: #fef2f2; color: var(--danger); }

@media (max-width: 768px) {
    .error-header { padding: 25px 25px 15px 25px; }
    .error-content { padding: 0 25px 25px 25px; }
    .interactive-risk-module { margin: 0 20px 25px 20px; }
    .risk-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Konsekwencje błędnego projektowania ogrzewania podłogowego (zbyt długie pętle)",
    "description": "Dokumentacja usterek i ryzyk związanych z przekraczaniem normatywnej długości pętli grzewczych (130-140m). Dane obejmują ryzyko kawitacji, spadki temperatury oraz uszkodzenia wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zjawisko kawitacji",
        "description": "Szumy i niszczenie instalacji spowodowane nadmierną prędkością czynnika przy próbie pokonania oporów długiej pętli."
      },
      {
        "@type": "PropertyValue",
        "name": "Zimne plamy (Spadek ΔT)",
        "value": "8-10°C spadku",
        "description": "Drastyczne wychłodzenie czynnika na końcu pętli prowadzące do stref niedogrzania."
      },
      {
        "@type": "PropertyValue",
        "name": "Pękanie wylewki",
        "description": "Naprężenia termiczne jastrychu wywołane nierównomiernym rozkładem temperatury oraz brakiem izolacji brzegowej/dylatacji."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Symulator Błędów Instalacyjnych Podłogówki",
    "description": "Wizualizator ryzyk pokazujący wpływ przekraczania zalecanej długości rury grzewczej na prędkość przepływu (kawitację), wychłodzenie pętli (zimne plamy) oraz naprężenia posadzki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Symulacja spadku temperatury czynnika grzewczego (wizualizacja termowizyjna)",
      "Ocena ryzyka kawitacji i szumów w instalacji",
      "Wskazania naprężeń wylewki betonowej i ryzyka pęknięć"
    ]
  }
]
</script>

<div class="premium-error-box" id="error-app-container">
    <div class="error-header">
        <h2>⚠️ Najczęstsze błędy: Dlaczego "na oko" wychodzi drożej?</h2>
    </div>
    
    <div class="error-content">
        <p>Pracując jako inżynier HVAC, często poprawiam instalacje wykonane bez obliczeń. Inwestorzy, chcąc zaoszczędzić na <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">cenie projektu ogrzewania podłogowego</a>, godzą się na ułożenie pętli o długości <strong>130-140 m</strong> rurą 16 mm. <strong>Skutki są opłakane:</strong></p>
        
        <ul class="error-list">
            <li>
                <div class="error-number">1</div>
                <strong>Zjawisko kawitacji:</strong> Szumy w instalacji spowodowane zbyt dużą prędkością przepływu przy próbie "przepchnięcia" wody przez za długą pętlę.
            </li>
            <li>
                <div class="error-number">2</div>
                <strong>Zimne plamy:</strong> Woda na końcu pętli ma temperaturę o <strong>8-10 stopni niższą</strong> niż na początku. <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/" target="_blank" rel="noreferrer noopener">Czy ogrzewanie podłogowe jest zdrowe</a> w takiej sytuacji? Nie, bo generuje naprężenia w wylewce i dyskomfort termiczny.
            </li>
            <li>
                <div class="error-number">3</div>
                <strong>Pękanie wylewki:</strong> Brak uwzględnienia <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">izolacji brzegowej i dylatacji</a> przy długich obiegach to prosta droga do zniszczenia drogich płytek lub paneli.
            </li>
        </ul>
        
        <p style="margin-bottom: 0;">Jeśli remontujesz dom, sprawdź <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/" target="_blank" rel="noreferrer noopener">ogrzewanie podłogowe w remontowanym budynku – czy warto</a>, zanim podejmiesz decyzję o rozkładzie rur.</p>
    </div>

    <div class="interactive-risk-module">
        <div class="module-title">🔥 Symulator awarii: Zobacz co się dzieje "na końcu" rury</div>
        
        <div class="risk-config">
            <div class="slider-label-row">
                <span>Długość ułożonej pętli (rura 16x2)</span>
                <span class="val-badge"><span id="risk-len-val">140</span> metrów</span>
            </div>
            <input type="range" id="risk-slider" class="risk-slider" min="60" max="160" value="140" step="5">
            <div style="font-size: 11px; color: #94a3b8; margin-top: 8px;">Przesuń suwak, aby sprawdzić zachowanie układu hydraulicznego.</div>
        </div>

        <div class="thermal-bar-container">
            <div class="thermal-label">Symulacja termowizyjna rozkładu ciepła (Początek ➔ Koniec pętli)</div>
            <div class="thermal-bar" id="thermal-gradient"></div>
            <div class="thermal-markers">
                <span>Zasilanie (35°C)</span>
                <span>Środek pokoju</span>
                <span id="thermal-end-txt">Powrót (<span id="temp-drop-val">25</span>°C)</span>
            </div>
        </div>

        <div class="risk-results">
            <div class="risk-card" id="card-temp">
                <div class="risk-icon">❄️</div>
                <div class="risk-title">Zimne plamy</div>
                <div class="risk-val" id="val-temp">ΔT = 10°C</div>
            </div>
            
            <div class="risk-card" id="card-cav">
                <div class="risk-icon">🌊</div>
                <div class="risk-title">Opory i Szumy</div>
                <div class="risk-val" id="val-cav">Kawitacja</div>
            </div>

            <div class="risk-card" id="card-stress">
                <div class="risk-icon">💥</div>
                <div class="risk-title">Naprężenia wylewki</div>
                <div class="risk-val" id="val-stress">Krytyczne</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 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('error-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <p style="margin: 15px 0;">Blokada bezpieczeństwa</p>
                    <p>Skopiowano bez autoryzacji. Oryginalne symulatory ryzyk instalacyjnych znajdziesz na <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Elementy
    const slider = document.getElementById('risk-slider');
    const valDisplay = document.getElementById('risk-len-val');
    
    const thermalBar = document.getElementById('thermal-gradient');
    const tempDropVal = document.getElementById('temp-drop-val');
    
    const cardTemp = document.getElementById('card-temp');
    const valTemp = document.getElementById('val-temp');
    
    const cardCav = document.getElementById('card-cav');
    const valCav = document.getElementById('val-cav');
    
    const cardStress = document.getElementById('card-stress');
    const valStress = document.getElementById('val-stress');

    // Stała temperatura zasilania
    const T_ZASILANIE = 35;

    function updateRisk() {
        const len = parseInt(slider.value);
        valDisplay.textContent = len;

        // Reset klas
        cardTemp.className = 'risk-card';
        cardCav.className = 'risk-card';
        cardStress.className = 'risk-card';

        let dT = 5; // standardowy spadek

        if (len <= 80) {
            dT = 5;
            // Bezpiecznie
            cardTemp.classList.add('status-ok');
            valTemp.textContent = `ΔT = ${dT}°C`;
            
            cardCav.classList.add('status-ok');
            valCav.textContent = "Brak szumów (Cicho)";
            
            cardStress.classList.add('status-ok');
            valStress.textContent = "Minimalne";

            thermalBar.style.background = "linear-gradient(to right, #ef4444 0%, #f59e0b 50%, #f97316 100%)";

        } else if (len > 80 && len <= 100) {
            dT = 7;
            // Ostrzeżenie
            cardTemp.classList.add('status-warn');
            valTemp.textContent = `ΔT = ${dT}°C`;
            
            cardCav.classList.add('status-warn');
            valCav.textContent = "Wysokie opory";
            
            cardStress.classList.add('status-warn');
            valStress.textContent = "Podwyższone";

            thermalBar.style.background = "linear-gradient(to right, #ef4444 0%, #f97316 60%, #fbbf24 100%)";

        } else {
            // Ryzyko krytyczne - przeliczenie dT
            dT = Math.round(7 + (len - 100) * 0.1); // np 140 -> 7 + 4 = 11
            
            cardTemp.classList.add('status-crit');
            valTemp.textContent = `ΔT = ${dT}°C (Zimno!)`;
            
            cardCav.classList.add('status-crit');
            valCav.textContent = "Zjawisko kawitacji";
            
            cardStress.classList.add('status-crit');
            valStress.textContent = "Ryzyko pęknięć";

            // Termowizja pokazuje spadek do niebieskiego
            let bluePoint = 100 - ((len - 100) * 1.5); 
            if(bluePoint < 50) bluePoint = 50;
            thermalBar.style.background = `linear-gradient(to right, #ef4444 0%, #f59e0b 30%, #3b82f6 ${bluePoint}%, #1e3a8a 100%)`;
        }

        // Aktualizacja powrotu
        tempDropVal.textContent = T_ZASILANIE - dT;
    }

    if (slider) {
        slider.addEventListener('input', updateRisk);
        updateRisk(); // start
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-faq-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.faq-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 35px 40px 25px 40px;
    border-bottom: 1px solid #bae6fd;
}

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

.faq-header p {
    font-size: 15px;
    color: #334155;
    margin: 0 0 20px 0;
    line-height: 1.6;
}

/* Wyszukiwarka */
.faq-search-wrapper {
    position: relative;
    max-width: 500px;
}

.faq-search-input {
    width: 100%;
    padding: 14px 20px 14px 45px;
    border: 2px solid #bae6fd;
    border-radius: 12px;
    font-size: 15px;
    font-family: 'Inter', sans-serif;
    outline: none;
    transition: all 0.3s ease;
    background: #ffffff;
    color: var(--primary);
    box-sizing: border-box;
}

.faq-search-input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.faq-search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: #7dd3fc;
    transition: color 0.3s;
}

.faq-search-input:focus + .faq-search-icon {
    color: var(--accent);
}

/* Akordeon FAQ */
.faq-content {
    padding: 20px 40px 40px 40px;
    background: #ffffff;
}

.faq-no-results {
    display: none;
    text-align: center;
    padding: 30px;
    color: #64748b;
    font-weight: 600;
    background: var(--bg-light);
    border-radius: 12px;
}

.faq-item {
    border-bottom: 1px solid var(--border-color);
    transition: all 0.3s ease;
}

.faq-item:last-child {
    border-bottom: none;
}

.faq-question {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 25px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--primary);
    font-family: inherit;
    transition: color 0.2s;
}

.faq-question:hover {
    color: var(--accent);
}

.faq-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: #e0f2fe;
    color: var(--accent);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    transition: transform 0.3s ease, background 0.3s ease;
    margin-left: 15px;
}

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

.faq-item.active .faq-question {
    color: var(--accent);
}

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

.faq-answer-inner {
    padding-bottom: 25px;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.faq-answer-inner strong {
    color: var(--primary);
}

.faq-answer-inner a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dashed var(--accent);
    transition: 0.2s;
    font-weight: 600;
}

.faq-answer-inner a:hover {
    color: #0369a1;
    border-bottom-style: solid;
}

@media (max-width: 768px) {
    .faq-header { padding: 30px 20px 20px 20px; }
    .faq-content { padding: 10px 20px 30px 20px; }
    .faq-question { padding: 20px 0; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Ile metrów podłogówki na jednej pętli to maksymalna długość dla rury 16 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Maksymalna dopuszczalna długość to 100 metrów, jednak w profesjonalnych projektach zaleca się nieprzekraczanie 80 metrów. Taka długość gwarantuje optymalne opory hydrauliczne (ok. 20 kPa) i równomierne grzanie bez przeciążania pompy obiegowej."
        }
      },
      {
        "@type": "Question",
        "name": "Jak obliczyć długość pętli ogrzewania podłogowego dla pokoju?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Wzór inżynierski to: (Powierzchnia pokoju / rozstaw w metrach) * 1,1 (współczynnik na podejścia). Na przykład dla 20 m² przy rozstawie co 15 cm otrzymujemy: (20 / 0,15) * 1,1 ≈ 147 metrów. Otrzymaną wartość dzielimy na dwie pętle (np. po 74 metry)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rozstaw rur wpływa na ilość pętli w pomieszczeniu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ma decydujący wpływ. Im mniejszy rozstaw (np. 10 cm dedykowany pod pompy ciepła), tym więcej rury zużywamy na 1 m². Gęstszy rozstaw wymusza podzielenie instalacji w jednym pomieszczeniu na większą liczbę osobnych obiegów podłączonych do rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie błędy najczęściej popełnia się przy projektowaniu pętli?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Głównym błędem jest projektowanie zbyt długich pętli (np. 140 m). Prowadzi to do niedogrzania stref końcowych (woda zdąży ostygnąć), powstawania szumów z powodu zjawiska kawitacji oraz braku możliwości zrównoważenia przepływów na rotametrach."
        }
      },
      {
        "@type": "Question",
        "name": "Czy warto stosować rurę 20 mm w domu, aby zrobić dłuższe pętle?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie jest to zalecane w standardowym budownictwie jednorodzinnym. Choć rura 20 mm pozwala na pętle rzędu 150 m, jest ona bardzo sztywna, co sprawia ogromne problemy przy formowaniu układu meandrowego lub ślimakowego w małych rozstawach."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Baza Wiedzy HVAC: Opory i Długości Pętli",
    "description": "Zestaw ustrukturyzowanych pytań i eksperckich odpowiedzi dotyczących inżynierii ogrzewania płaszczyznowego, uwzględniający wymogi norm i hydrauliki budynkowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Interaktywny Eksplorator Wiedzy o Podłogówce",
    "description": "Narzędzie typu FAQ pozwalające na interaktywne filtrowanie i wyszukiwanie problemów projektowych związanych z instalacją ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne wyszukiwanie pytań i odpowiedzi (Live Search)",
      "Rozwijane komponenty informacyjne (Akordeon)",
      "Baza danych autoryzowana przez inżyniera HVAC"
    ]
  }
]
</script>

<div class="premium-faq-box" id="faq-app-container">
    <div class="faq-header">
        <h2>Pytania i odpowiedzi (FAQ)</h2>
        <p>Szybkie podsumowanie najważniejszych kwestii inżynierskich związanych z doborem rur i projektowaniem pętli ogrzewania podłogowego.</p>
        
        <div class="faq-search-wrapper">
            <input type="text" id="faq-search" class="faq-search-input" placeholder="Wpisz słowo kluczowe (np. długość, rozstaw)...">
            <span class="faq-search-icon">🔍</span>
        </div>
    </div>
    
    <div class="faq-content">
        <div id="faq-no-results" class="faq-no-results">
            Brak pytań pasujących do wyszukiwania. Spróbuj innych słów kluczowych.
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Ile metrów podłogówki na jednej pętli to maksymalna bezpieczna długość (16 mm)?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Maksymalna dopuszczalna długość to <strong>100 metrów</strong>, jednak jako inżynier projektujący instalacje od lat, kategorycznie zalecam celowanie w <strong>80 metrów</strong>. Taka długość gwarantuje optymalne opory hydrauliczne (ok. 20 kPa), bezproblemowe zrównoważenie na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">rotametrach</a> i równomierne oddawanie ciepła bez przeciążania pompy obiegowej.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Jak obliczyć ile rury potrzebuję do konkretnego pomieszczenia?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Możesz skorzystać ze wzoru: <strong>(Powierzchnia pokoju / rozstaw w metrach) * 1,1</strong> (współczynnik na podejścia). Przykładowo, dla pokoju 20 m² przy rozstawie co 15 cm daje to: (20 / 0,15) * 1,1 ≈ 147 metrów. Pamiętając o limitach z pierwszego pytania, taką wartość musisz bezwzględnie podzielić na co najmniej <strong>dwie pętle</strong> na rozdzielaczu (np. po ok. 74 metry każda). Do dokładnych wyliczeń polecam nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">kalkulator podłogówki</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy rozstaw rur ma wpływ na liczbę pętli w pokoju?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Oczywiście. Im gęstszy rozstaw (np. 10 cm polecany pod <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" target="_blank" rel="noreferrer noopener">pompy ciepła</a>), tym więcej metrów bieżących rury przypada na 1 m² powierzchni (ok. 10 mb/m²). Szybsze zużycie rury sprawia, że szybciej dobijamy do bezpiecznego limitu 80 metrów, co wymusza zaprojektowanie dodatkowego obiegu grzewczego.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Co się stanie, jeśli wykonawca zrobi mi pętlę rzędu 130-140 metrów?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Skutki zazwyczaj widać już po pierwszej zimie. Woda na końcu takiego obiegu zdąży drastycznie ostygnąć, tworząc "zimne plamy" na podłodze. Próba przyspieszenia przepływu przez pompę, aby to wyrównać, doprowadzi z kolei do <strong>kawitacji i nieznośnych szumów</strong> w rurach (zbyt duże opory tłoczenia). Dodatkowo nierównomierne stygnięcie to prosta droga do <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" target="_blank" rel="noreferrer noopener">naprężeń i pękania wylewki</a>.
                </div>
            </div>
        </div>

        <div class="faq-item">
            <button class="faq-question">
                <span>Czy do długich pętli w domu jednorodzinnym warto zastosować rurę 20 mm?</span>
                <span class="faq-icon">+</span>
            </button>
            <div class="faq-answer">
                <div class="faq-answer-inner">
                    Odradzam. Rury o średnicy <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/" target="_blank" rel="noreferrer noopener">20x2 mm</a> pozwalają na dłuższe pętle (nawet 130 m), ale są dedykowane głównie do hal przemysłowych i magazynów, gdzie stosuje się rzadki rozstaw. W budownictwie jednorodzinnym rura 20 mm sprawia ogromne problemy instalatorom – jest sztywna, wymaga wielkiej siły i stwarza trudności przy gięciu blisko okien i ścian. Optymalnym materiałem pozostaje rura 16x2 mm.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('faq-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Baza Wiedzy Zablokowana</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza oryginalną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

    // 2. LOGIKA AKORDEONU
    const faqItems = document.querySelectorAll('.faq-item');

    faqItems.forEach(item => {
        const question = item.querySelector('.faq-question');
        const answer = item.querySelector('.faq-answer');

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

            // Zamknij wszystkie inne (opcjonalne, ale daje ładny efekt)
            faqItems.forEach(otherItem => {
                otherItem.classList.remove('active');
                otherItem.querySelector('.faq-answer').style.maxHeight = null;
            });

            // Otwórz lub zamknij kliknięty
            if (!isActive) {
                item.classList.add('active');
                answer.style.maxHeight = answer.scrollHeight + "px";
            }
        });
    });

    // 3. LOGIKA WYSZUKIWARKI (Live Search)
    const searchInput = document.getElementById('faq-search');
    const noResultsMsg = document.getElementById('faq-no-results');

    searchInput.addEventListener('input', function() {
        const query = this.value.toLowerCase().trim();
        let visibleCount = 0;

        faqItems.forEach(item => {
            const text = item.textContent.toLowerCase();
            if (text.includes(query)) {
                item.style.display = 'block';
                visibleCount++;
            } else {
                item.style.display = 'none';
                item.classList.remove('active'); // Zwijamy ukrywane
                item.querySelector('.faq-answer').style.maxHeight = null;
            }
        });

        if (visibleCount === 0) {
            noResultsMsg.style.display = 'block';
        } else {
            noResultsMsg.style.display = 'none';
        }
    });
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-infographic-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.infographic-header {
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    padding: 30px 40px;
    border-bottom: 1px solid #bae6fd;
    text-align: center;
}

.infographic-header h2 {
    margin: 0 0 10px 0;
    font-size: 26px;
    color: #0369a1;
    font-weight: 900;
    line-height: 1.3;
}

.infographic-header p {
    font-size: 15px;
    color: #334155;
    margin: 0;
    line-height: 1.6;
}

/* Sekcja obrazka */
.infographic-viewer {
    position: relative;
    padding: 40px;
    background: #f8fafc;
    text-align: center;
}

.image-container {
    position: relative;
    display: inline-block;
    max-width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    cursor: zoom-in;
    transition: transform 0.3s ease;
    border: 1px solid #cbd5e1;
}

.image-container img {
    display: block;
    max-width: 100%;
    height: auto;
    transition: filter 0.3s ease;
}

.image-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(2, 132, 199, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.image-container:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
}

.image-container:hover .image-overlay {
    opacity: 1;
}

.zoom-icon {
    background: var(--accent);
    color: white;
    padding: 15px 25px;
    border-radius: 30px;
    font-weight: 800;
    font-size: 14px;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    pointer-events: none;
}

/* Modals / Lightbox */
.lightbox-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.lightbox-modal.active {
    display: flex;
    opacity: 1;
}

.lightbox-content {
    max-width: 90%;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 0 40px rgba(0,0,0,0.5);
    object-fit: contain;
}

.lightbox-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: 300;
    cursor: pointer;
    transition: color 0.2s;
}

.lightbox-close:hover {
    color: var(--danger);
}

/* Sekcja Pobierania */
.infographic-footer {
    padding: 30px 40px;
    background: #ffffff;
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.footer-text {
    flex: 1;
}

.footer-text h3 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

.footer-text p {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

.btn-download-pdf {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--danger);
    color: white;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.25);
    white-space: nowrap;
}

.btn-download-pdf:hover {
    background: #b91c1c;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(220, 38, 38, 0.35);
}

@media (max-width: 768px) {
    .infographic-header { padding: 25px 20px; }
    .infographic-viewer { padding: 20px; }
    .infographic-footer { flex-direction: column; text-align: center; padding: 25px 20px; }
    .btn-download-pdf { width: 100%; justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Ekspercka Infografika: Zestawienie parametrów ogrzewania podłogowego",
    "description": "Wizualne zestawienie normatywnych długości pętli (60-100m) dla systemów płaszczyznowych. Zawiera matrycę doboru rury na podstawie metrażu pomieszczenia oraz katalog krytycznych błędów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Zalecana długość pętli",
        "value": "60 - 100 m",
        "description": "Złoty środek inżynierski chroniący przed spadkami temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Dobór pętli do powierzchni",
        "description": "Tabela korelująca wielkość pomieszczenia (np. do 10m², 15-20m²) z wymaganą długością obwodu grzewczego."
      },
      {
        "@type": "PropertyValue",
        "name": "Praktyczne wskazówki",
        "description": "Checklista dla instalatorów m.in. omijani stref stałej zabudowy oraz wymóg prób ciśnieniowych przed wylewką."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Przeglądarka Infografik Inżynierskich HVAC",
    "description": "Interaktywny moduł prezentacyjny umożliwiający analizę schematów technicznych w wysokiej rozdzielczości z opcją pobrania dokumentacji w formacie PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Dynamiczne powiększanie schematów (Lightbox)",
      "Responsywna prezentacja techniczna w formacie WEBP",
      "Bezpośredni eksport norm inżynierskich do formatu PDF"
    ]
  }
]
</script>

<div class="premium-infographic-box" id="infographic-app-container">
    <div class="infographic-header">
        <h2>Ekspercka ściąga: Ile metrów podłogówki na pętli?</h2>
        <p>Zapisz naszą autorską infografikę. To wizualne kompendium wiedzy, które uratuje Twój projekt przed najczęstszymi błędami hydraulicznymi.</p>
    </div>
    
    <div class="infographic-viewer">
        <div class="image-container" id="open-lightbox">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.webp" 
                 alt="Kompleksowa infografika inżynierska stanowiąca przewodnik po projektowaniu instalacji płaszczyznowych, skupiona na kluczowym pytaniu: ile metrów podłogówki na jednej pętli." 
                 width="800" height="auto" loading="lazy">
            <div class="image-overlay">
                <span class="zoom-icon">🔍 KLIKNIJ, ABY POWIĘKSZYĆ</span>
            </div>
        </div>
    </div>

    <div class="infographic-footer">
        <div class="footer-text">
            <h3>Zabierz te dane na budowę!</h3>
            <p>Pobierz infografikę w wysokiej jakości (PDF). Wydrukuj ją i skonsultuj z instalatorem przed wylaniem posadzki.</p>
        </div>
        <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.pdf" class="btn-download-pdf" target="_blank" rel="noopener noreferrer">
            📄 POBIERZ PDF (HD)
        </a>
    </div>

    <div class="lightbox-modal" id="lightbox">
        <span class="lightbox-close" id="close-lightbox">&times;</span>
        <img decoding="async" class="lightbox-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Infografika-Ile-metrow-podlogowki-na-jednej-petli.webp" alt="Powiększenie infografiki">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. ZABEZPIECZENIE DOMENOWE (Domain Lock)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const appContainer = document.getElementById('infographic-app-container');
        if (appContainer) {
            appContainer.innerHTML = `
                <div style="padding: 50px 20px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 20px; font-family: sans-serif;">
                    <span style="font-size: 48px; margin-bottom: 20px; display: block;">🔒</span>
                    <h3 style="margin-top:0; font-size: 24px; font-weight: 900;">Materiały Zablokowane</h3>
                    <p style="font-size: 16px; max-width: 500px; margin: 0 auto 25px auto; line-height: 1.5; color: #7f1d1d;">Ten interaktywny moduł edukacyjny jest własnością serwisu <strong>Projekt-Ogrzewania.pl</strong> i nie może być używany poza autoryzowaną domeną.</p>
                    <a href="https://projekt-ogrzewania.pl/" style="padding: 14px 28px; background: #dc2626; color: white; text-decoration: none; border-radius: 12px; font-weight: 800;">ZOBACZ ORYGINAŁ</a>
                </div>
            `;
        }
        return;
    }

    // 2. LOGIKA LIGHTBOXA (Przybliżanie obrazu)
    const openBtn = document.getElementById('open-lightbox');
    const lightbox = document.getElementById('lightbox');
    const closeBtn = document.getElementById('close-lightbox');

    if(openBtn && lightbox && closeBtn) {
        // Otwieranie
        openBtn.addEventListener('click', function() {
            lightbox.classList.add('active');
            document.body.style.overflow = 'hidden'; // Blokada scrollowania strony pod spodem
        });

        // Zamykanie krzyżykiem
        closeBtn.addEventListener('click', function() {
            lightbox.classList.remove('active');
            document.body.style.overflow = 'auto';
        });

        // Zamykanie przez kliknięcie w tło
        lightbox.addEventListener('click', function(e) {
            if (e.target === lightbox) {
                lightbox.classList.remove('active');
                document.body.style.overflow = 'auto';
            }
        });

        // Zamykanie klawiszem ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === "Escape" && lightbox.classList.contains('active')) {
                lightbox.classList.remove('active');
                document.body.style.overflow = 'auto';
            }
        });
    }
});
</script>



<style>
:root {
    --primary: #0f172a;
    --accent: #0284c7;
    --danger: #dc2626;
    --warning: #ea580c;
    --success: #16a34a;
    --bg-light: #f8fafc;
    --border-color: #e2e8f0;
}

.premium-summary-box {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--border-color);
    overflow: hidden;
    color: var(--primary);
}

.summary-header {
    background: var(--primary);
    padding: 35px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

/* Dekoracyjne tło w nagłówku */
.summary-header::before {
    content: '';
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(2, 132, 199, 0.4) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.summary-header h2 {
    margin: 0 0 15px 0;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.3;
    position: relative;
    z-index: 2;
}

.summary-text {
    padding: 35px 40px 10px 40px;
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
}

.summary-text strong {
    color: var(--primary);
    background: rgba(2, 132, 199, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Moduł interaktywny - Weryfikator */
.interactive-checklist-module {
    margin: 20px 40px 40px 40px;
    border: 1px solid var(--border-color);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.02);
}

.checklist-title {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    color: #64748b;
    letter-spacing: 1px;
    padding: 20px 25px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-light);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 200px;
}

.progress-track {
    flex: 1;
    height: 8px;
    background: #e2e8f0;
    border-radius: 4px;
    overflow: hidden;
}

.progress-fill {
    height: 100%;
    width: 0%;
    background: var(--accent);
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.progress-text {
    font-size: 12px;
    font-weight: 900;
    color: var(--primary);
    min-width: 40px;
    text-align: right;
}

.checklist-items {
    padding: 20px 25px;
    display: grid;
    gap: 12px;
}

.check-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    background: #ffffff;
}

.check-item:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.check-item.completed {
    border-color: var(--success);
    background: #f0fdf4;
}

.check-box {
    width: 24px;
    height: 24px;
    border: 2px solid #cbd5e1;
    border-radius: 6px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    background: #fff;
    margin-top: 2px;
}

.check-item.completed .check-box {
    background: var(--success);
    border-color: var(--success);
}

.check-icon {
    color: white;
    font-size: 14px;
    font-weight: 900;
    opacity: 0;
    transform: scale(0);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.check-item.completed .check-icon {
    opacity: 1;
    transform: scale(1);
}

.check-content h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--primary);
}

.check-content p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
}

/* CTA Sukcesu - ROZWIĄZANIE HYBRYDOWE */
.success-cta-box {
    padding: 30px 40px;
    background: #f8fafc; /* Neutralne tło na start */
    border-top: 1px solid var(--border-color);
    text-align: center;
    transition: all 0.4s ease;
}

.success-cta-box.is-success {
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border-top-color: #bbf7d0;
}

.success-messages {
    display: none;
    animation: fadeIn 0.5s ease;
}

.success-cta-box.is-success .success-messages {
    display: block;
}

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

.success-messages h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    color: #166534;
    font-weight: 900;
}

.success-messages p {
    font-size: 15px;
    color: #15803d;
    margin: 0 0 20px 0;
}

.success-cta-promo {
    font-size: 15px;
    color: var(--primary);
    margin-bottom: 20px;
    font-weight: 700;
    transition: color 0.4s ease;
}

.success-cta-box.is-success .success-cta-promo {
    color: #166534; /* Dopasowanie koloru w stanie sukcesu */
}

.cta-btn-blog {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #16a34a;
    color: #ffffff;
    padding: 14px 28px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(22, 163, 74, 0.3);
}

.cta-btn-blog:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(22, 163, 74, 0.4);
    color: #ffffff;
}

@media (max-width: 768px) {
    .summary-header { padding: 30px 25px; }
    .summary-text { padding: 25px 25px 10px 25px; }
    .interactive-checklist-module { margin: 20px 20px 30px 20px; }
    .checklist-title { flex-direction: column; align-items: flex-start; gap: 15px; }
    .progress-wrapper { width: 100%; }
    .success-cta-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "name": "Kluczowe parametry i wnioski z projektowania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych inżynierskich wytycznych dotyczących limitów długości pętli, zagęszczenia w strefach brzegowych oraz hydraulicznych wymagań systemu ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "variableMeasured": [
      {
        "@type": "PropertyValue",
        "name": "Limit długości pętli (16mm)",
        "value": "Max 80-100m",
        "description": "Zapobieganie zjawisku kawitacji oraz krytycznym spadkom temperatury."
      },
      {
        "@type": "PropertyValue",
        "name": "Rozstaw w strefie brzegowej",
        "value": "10 cm",
        "description": "Kompensacja zwiększonych strat cieplnych w rejonie dużych przeszkleń."
      },
      {
        "@type": "PropertyValue",
        "name": "Opór hydrauliczny w pętli",
        "value": "Max 20-30 kPa",
        "description": "Parametr gwarantujący poprawną pracę rotametrów i pompy obiegowej."
      }
    ],
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "name": "Ekspercki Weryfikator Gotowości Projektu",
    "description": "Interaktywna aplikacja w formie audytu projektowego. Pozwala inwestorom sprawdzić, czy ich układ spełnia kluczowe wymogi hydrauliczne i cieplne wg normy PN-EN 1264.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "license": "https://projekt-ogrzewania.pl/",
    "offers": {
      "@type": "Offer",
      "price": "0",
      "priceCurrency": "PLN"
    },
    "featureList": [
      "Interaktywna weryfikacja założeń projektowych",
      "Dynamiczny wskaźnik poprawności koncepcji grzewczej",
      "Przekierowanie do pogłębionej bazy wiedzy o instalacjach"
    ]
  }
]
</script>

<div class="premium-summary-box" id="summary-app-container">
    <div class="summary-header">
        <h2>Podsumowanie inżynierskie</h2>
        <p style="margin:0; font-size: 15px; color:#cbd5e1;">Odpowiedź na pytanie "ile metrów podłogówki" definiuje być albo nie być całej inwestycji.</p>
    </div>
    
    <div class="summary-text">
        <p>Projektowanie ogrzewania podłogowego to proces, w którym prawa fizyki bezlitośnie weryfikują podejście "na oko". Zbyt długie pętle (powyżej <strong>100m dla rury 16mm</strong>) to gwarancja problemów: od zjawiska kawitacji, przez potężne spadki temperatury (zimne plamy na podłodze), aż po pękanie wylewki i drastyczny spadek SCOP pompy ciepła.</p>
        <p>Prawidłowy, profesjonalny projekt nie szuka oszczędności na ilości rozdzielaczy, lecz optymalizuje rozstaw rur (np. <strong>10 cm w łazienkach</strong>, 15 cm w salonach) i dzieli układ na równe, bezpieczne sekcje o długości ok. 80 metrów, które obciążają rotametry łagodnym przepływem rzędu 1-2 l/min.</p>
    </div>

    <div class="interactive-checklist-module">
        <div class="checklist-title">
            <span>🛠️ Audyt Projektu: Czy jesteś gotowy do wylewki?</span>
            <div class="progress-wrapper">
                <div class="progress-track">
                    <div class="progress-fill" id="audit-fill"></div>
                </div>
                <span class="progress-text" id="audit-text">0%</span>
            </div>
        </div>

        <div class="checklist-items">
            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Żadna z pętli 16mm nie przekracza 90-100 metrów</h4>
                    <p>Potwierdzam, że zrezygnowałem z chęci zaoszczędzenia na rozdzielaczu kosztem bezpieczeństwa hydraulicznego układu.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Pętle mają zbliżoną do siebie długość</h4>
                    <p>Najkrótsza pętla na rozdzielaczu (oprócz łazienki) nie jest o połowę krótsza od najdłuższej. Pozwoli to zrównoważyć rotametry.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Uwzględniono strefy brzegowe przy oknach</h4>
                    <p>Zastosowano zagęszczony rozstaw rur (10 cm) w miejscach największych strat cieplnych, aby uniknąć chłodu ciągnącego od przeszkleń.</p>
                </div>
            </div>

            <div class="check-item" data-val="25">
                <div class="check-box"><span class="check-icon">✓</span></div>
                <div class="check-content">
                    <h4>Instalacja opiera się na wyliczeniach OZC</h4>
                    <p>Zapotrzebowanie na moc i przepływy zostały policzone zgodnie z normą PN-EN 12831, a nie zaczerpnięte z forów internetowych.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="success-cta-box" id="success-cta">
        
        <div class="success-messages" id="success-messages">
            <h3>Gratulacje! Twój projekt to solidny fundament.</h3>
            <p>Jesteś świadomym inwestorem. Uniknąłeś błędów, których naprawa po wylaniu betonu kosztowałaby dziesiątki tysięcy złotych.</p>
        </div>

        <p class="success-cta-promo">Chcesz wiedzieć więcej? Sprawdź naszą bazę wiedzy pełną interaktywnych wykresów, kalkulatorów i darmowych poradników inżynierskich!</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="cta-btn-blog">
            📚 PRZEJDŹ NA BLOGA I POZNAJ KOLEJNE SEKRETY ➔
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 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('summary-app-container');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 12px; font-family: sans-serif;">
                    <span style="font-size: 40px;">⚠️</span>
                    <h3 style="margin: 15px 0;">Treść Chroniona Prawem Autorskim</h3>
                    <p>Moduł audytu został skopiowany. Przejdź na stronę <strong>Projekt-Ogrzewania.pl</strong>.</p>
                </div>
            `;
            return;
        }
    }

    // Logika weryfikatora
    const checkItems = document.querySelectorAll('.check-item');
    const fill = document.getElementById('audit-fill');
    const text = document.getElementById('audit-text');
    const ctaBox = document.getElementById('success-cta');
    
    let currentProgress = 0;

    checkItems.forEach(item => {
        item.addEventListener('click', function() {
            const value = parseInt(this.getAttribute('data-val'));
            
            if (this.classList.contains('completed')) {
                this.classList.remove('completed');
                currentProgress -= value;
            } else {
                this.classList.add('completed');
                currentProgress += value;
            }

            // Aktualizacja UI paska postępu
            fill.style.width = currentProgress + '%';
            text.textContent = currentProgress + '%';

            // Zmiana zachowania CTA Boxa na tryb sukcesu
            if (currentProgress === 100) {
                fill.style.background = 'var(--success)';
                text.style.color = 'var(--success)';
                ctaBox.classList.add('is-success');
            } else {
                fill.style.background = 'var(--accent)';
                text.style.color = 'var(--primary)';
                ctaBox.classList.remove('is-success');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">Ile metrów podłogówki na jednej pętli?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Darmowy projekt ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 15 Dec 2024 19:47:00 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Projekty techniczne]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[darmowy projekt]]></category>
		<category><![CDATA[energooszczędne systemy]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[instalacje techniczne]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1764</guid>

					<description><![CDATA[<p>Zastanawiasz się nad instalacją ogrzewania podłogowego? Oferujemy darmowy projekt, który pomoże Ci zaoszczędzić czas i pieniądze. Dowiedz się, jak skorzystać z naszej oferty i zyskać profesjonalnie zaprojektowaną instalację, dostosowaną do Twoich potrzeb. Przygotowujemy szczegółowe rysunki techniczne, obliczenia cieplne i zestawienia materiałowe. Przekonaj się, dlaczego warto wybrać nas!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">Darmowy projekt ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-darmowy-projekt {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #eafcff;
    --rk-orange: #ff7438;
    --rk-red: #e33d35;
    --rk-green: #169c68;
    --rk-green-soft: #eafaf3;
    --rk-ink: #1f2937;
    --rk-text: #465866;
    --rk-muted: #687986;
    --rk-line: #dce8ee;
    --rk-soft: #f5f9fb;
    --rk-warm: #fff4ed;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1080px;
    margin: 34px auto 70px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.78;
  }

  #rk-darmowy-projekt,
  #rk-darmowy-projekt * {
    box-sizing: border-box;
  }

  #rk-darmowy-projekt [hidden] {
    display: none !important;
  }

  #rk-darmowy-projekt img {
    max-width: 100%;
    height: auto;
  }

  #rk-darmowy-projekt button,
  #rk-darmowy-projekt a {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-darmowy-projekt a {
    color: var(--rk-blue);
    font-weight: 760;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-darmowy-projekt a:hover {
    color: var(--rk-red);
  }

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

  #rk-darmowy-projekt .rk-free-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.86);
  }

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

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

  #rk-darmowy-projekt h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.6rem);
  }

  #rk-darmowy-projekt h3 {
    margin-bottom: 12px;
    font-size: clamp(1.22rem, 2.6vw, 1.65rem);
  }

  #rk-darmowy-projekt h4 {
    margin-bottom: 8px;
    font-size: 1.03rem;
    letter-spacing: -0.015em;
  }

  #rk-darmowy-projekt p {
    margin: 0 0 1.25em;
    color: var(--rk-text);
  }

  #rk-darmowy-projekt strong {
    color: var(--rk-dark);
  }

  #rk-darmowy-projekt .rk-free-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 12%, rgba(255, 116, 56, 0.35), transparent 27%),
      radial-gradient(circle at 82% 78%, rgba(40, 201, 218, 0.24), transparent 31%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #095e78 100%);
  }

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

  #rk-darmowy-projekt .rk-free-hero::before {
    right: -115px;
    bottom: -170px;
    width: 390px;
    height: 390px;
    border: 58px solid rgba(255, 255, 255, 0.055);
  }

  #rk-darmowy-projekt .rk-free-hero::after {
    right: 115px;
    bottom: -130px;
    width: 230px;
    height: 230px;
    border: 34px solid rgba(255, 116, 56, 0.11);
  }

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

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

  #rk-darmowy-projekt .rk-free-hero h2 {
    max-width: 900px;
    margin-bottom: 24px;
    color: var(--rk-white);
    font-size: clamp(2rem, 5.4vw, 4rem);
    letter-spacing: -0.055em;
  }

  #rk-darmowy-projekt .rk-free-hero h2 span {
    color: #84edf5;
  }

  #rk-darmowy-projekt .rk-free-hook {
    max-width: 900px;
    margin: 0 0 26px;
    padding: clamp(20px, 3.6vw, 30px);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 18px 18px 0;
    background: rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(6px);
  }

  #rk-darmowy-projekt .rk-free-hook p {
    margin: 0;
    color: #f3f8fa;
    font-size: clamp(1.03rem, 2.1vw, 1.25rem);
    font-weight: 620;
    line-height: 1.72;
  }

  #rk-darmowy-projekt .rk-free-hook strong {
    color: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-hero-lead {
    max-width: 880px;
    margin-bottom: 0;
    color: #dcecf1;
    font-size: clamp(1rem, 2vw, 1.16rem);
  }

  #rk-darmowy-projekt .rk-free-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 18px;
    margin-top: 28px;
    color: #c9e0e7;
    font-size: 0.82rem;
    font-weight: 750;
  }

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

  #rk-darmowy-projekt .rk-free-hero-meta span::before {
    content: "";
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-darmowy-projekt .rk-free-author-strip {
    display: flex;
    gap: 15px;
    align-items: center;
    max-width: 790px;
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
  }

  #rk-darmowy-projekt .rk-free-author-strip img {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    object-fit: cover;
    border: 3px solid rgba(255, 255, 255, 0.92);
    border-radius: 50%;
  }

  #rk-darmowy-projekt .rk-free-author-strip b,
  #rk-darmowy-projekt .rk-free-author-strip small {
    display: block;
  }

  #rk-darmowy-projekt .rk-free-author-strip b {
    color: var(--rk-white);
    font-size: 0.94rem;
  }

  #rk-darmowy-projekt .rk-free-author-strip small {
    margin-top: 2px;
    color: #c9dbe1;
    font-size: 0.75rem;
    font-weight: 650;
    line-height: 1.45;
  }

  #rk-darmowy-projekt .rk-free-content {
    padding: clamp(28px, 5.7vw, 68px);
  }

  #rk-darmowy-projekt .rk-free-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
    gap: 22px;
    margin: 0 0 38px;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid #bfe8ee;
    border-radius: 24px;
    background: linear-gradient(135deg, #f9feff, #eafaff);
  }

  #rk-darmowy-projekt .rk-free-answer-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-answer-main {
    display: block;
    font-size: clamp(1.27rem, 3vw, 2rem);
    letter-spacing: -0.035em;
    line-height: 1.28;
  }

  #rk-darmowy-projekt .rk-free-answer p {
    margin: 13px 0 0;
  }

  #rk-darmowy-projekt .rk-free-answer-badge {
    display: grid;
    align-content: center;
    padding: 22px;
    border-radius: 20px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-green), #087e58);
    text-align: center;
    box-shadow: 0 16px 34px rgba(22, 156, 104, 0.2);
  }

  #rk-darmowy-projekt .rk-free-answer-badge b,
  #rk-darmowy-projekt .rk-free-answer-badge span {
    color: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-answer-badge b {
    display: block;
    font-size: 2.25rem;
    letter-spacing: -0.05em;
    line-height: 1;
  }

  #rk-darmowy-projekt .rk-free-answer-badge span {
    display: block;
    margin-top: 9px;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.45;
  }

  #rk-darmowy-projekt .rk-free-learn {
    margin: 0 0 42px;
  }

  #rk-darmowy-projekt .rk-free-learn-title {
    display: flex;
    gap: 11px;
    align-items: center;
    margin-bottom: 20px;
    font-size: 1.18rem;
  }

  #rk-darmowy-projekt .rk-free-learn-title svg {
    flex: 0 0 25px;
    color: var(--rk-orange);
  }

  #rk-darmowy-projekt .rk-free-learn-grid,
  #rk-darmowy-projekt .rk-free-process-grid,
  #rk-darmowy-projekt .rk-free-scope-grid,
  #rk-darmowy-projekt .rk-free-material-grid,
  #rk-darmowy-projekt .rk-free-program-grid,
  #rk-darmowy-projekt .rk-free-bio-stats {
    display: grid;
    gap: 16px;
  }

  #rk-darmowy-projekt .rk-free-learn-grid,
  #rk-darmowy-projekt .rk-free-program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-darmowy-projekt .rk-free-learn-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 21px;
    border: 1px solid #bfe9ef;
    border-radius: 18px;
    background: linear-gradient(145deg, #f8feff, var(--rk-cyan-soft));
  }

  #rk-darmowy-projekt .rk-free-learn-icon {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 13px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
    box-shadow: 0 10px 22px rgba(7, 143, 190, 0.18);
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-darmowy-projekt .rk-free-learn-card p {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-darmowy-projekt .rk-free-nav {
    margin: 0 0 48px;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-soft);
  }

  #rk-darmowy-projekt .rk-free-nav strong {
    display: block;
    margin-bottom: 13px;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  #rk-darmowy-projekt .rk-free-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 12px;
    border: 1px solid #ccdde5;
    border-radius: 999px;
    color: var(--rk-navy);
    background: var(--rk-white);
    font-size: 0.77rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-darmowy-projekt .rk-free-nav a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-darmowy-projekt .rk-free-section {
    margin: 0 0 64px;
    scroll-margin-top: 24px;
  }

  #rk-darmowy-projekt .rk-free-section-head {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 24px;
  }

  #rk-darmowy-projekt .rk-free-section-no {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 16px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-dark), var(--rk-navy));
    font-weight: 900;
    line-height: 1;
    box-shadow: inset 0 -4px 0 rgba(40, 201, 218, 0.55);
  }

  #rk-darmowy-projekt .rk-free-section-head h2 {
    margin-bottom: 7px;
  }

  #rk-darmowy-projekt .rk-free-section-head p {
    margin: 0;
  }

  #rk-darmowy-projekt .rk-free-note,
  #rk-darmowy-projekt .rk-free-warning,
  #rk-darmowy-projekt .rk-free-truth {
    margin: 25px 0;
    padding: 22px 24px;
    border-radius: 18px;
  }

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

  #rk-darmowy-projekt .rk-free-warning {
    border: 1px solid #f2c7ad;
    background: var(--rk-warm);
  }

  #rk-darmowy-projekt .rk-free-truth {
    color: #edf7fa;
    background:
      radial-gradient(circle at 94% 8%, rgba(40, 201, 218, 0.18), transparent 31%),
      linear-gradient(135deg, var(--rk-dark), #24485c);
  }

  #rk-darmowy-projekt .rk-free-truth p,
  #rk-darmowy-projekt .rk-free-truth strong {
    color: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-truth p:last-child,
  #rk-darmowy-projekt .rk-free-note p:last-child,
  #rk-darmowy-projekt .rk-free-warning p:last-child {
    margin-bottom: 0;
  }

  #rk-darmowy-projekt .rk-free-process-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 26px 0 30px;
  }

  #rk-darmowy-projekt .rk-free-process-card {
    position: relative;
    min-width: 0;
    padding: 24px 20px 22px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, 0.065);
  }

  #rk-darmowy-projekt .rk-free-process-card::after {
    content: "→";
    position: absolute;
    z-index: 2;
    top: 31px;
    right: -14px;
    color: var(--rk-orange);
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-darmowy-projekt .rk-free-process-card:last-child::after {
    display: none;
  }

  #rk-darmowy-projekt .rk-free-process-no {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    margin-bottom: 15px;
    border-radius: 11px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-darmowy-projekt .rk-free-process-card p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  #rk-darmowy-projekt .rk-free-scope-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 26px 0 30px;
  }

  #rk-darmowy-projekt .rk-free-scope-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-scope-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    margin-bottom: 14px;
    border-radius: 12px;
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-darmowy-projekt .rk-free-scope-card p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  #rk-darmowy-projekt .rk-free-material-box {
    margin: 27px 0 32px;
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid #c8e8d9;
    border-radius: 24px;
    background: linear-gradient(145deg, #fbfffd, var(--rk-green-soft));
  }

  #rk-darmowy-projekt .rk-free-material-box h3 {
    margin-bottom: 8px;
  }

  #rk-darmowy-projekt .rk-free-material-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 22px;
  }

  #rk-darmowy-projekt .rk-free-material-card {
    min-width: 0;
    padding: 18px 16px;
    border: 1px solid rgba(22, 156, 104, 0.22);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.82);
  }

  #rk-darmowy-projekt .rk-free-material-card b {
    display: block;
    margin-bottom: 5px;
    color: #0d7d56;
    font-size: 0.86rem;
  }

  #rk-darmowy-projekt .rk-free-material-card span {
    display: block;
    color: var(--rk-muted);
    font-size: 0.73rem;
    font-weight: 680;
    line-height: 1.5;
  }

  #rk-darmowy-projekt .rk-free-table-wrap {
    width: 100%;
    margin: 25px 0 31px;
    overflow-x: auto;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
  }

  #rk-darmowy-projekt table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    background: var(--rk-white);
    font-size: 0.83rem;
    line-height: 1.52;
  }

  #rk-darmowy-projekt th,
  #rk-darmowy-projekt td {
    padding: 14px 15px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    text-align: left;
    vertical-align: top;
  }

  #rk-darmowy-projekt th {
    color: var(--rk-white);
    background: var(--rk-dark);
    font-weight: 850;
  }

  #rk-darmowy-projekt tbody tr:nth-child(even) td {
    background: #f8fbfc;
  }

  #rk-darmowy-projekt tbody tr:last-child td,
  #rk-darmowy-projekt tbody tr:last-child th {
    border-bottom: 0;
  }

  #rk-darmowy-projekt .rk-free-list {
    margin: 20px 0 28px;
    padding: 0;
    list-style: none;
  }

  #rk-darmowy-projekt .rk-free-list li {
    position: relative;
    margin: 0 0 12px;
    padding-left: 31px;
    color: var(--rk-text);
  }

  #rk-darmowy-projekt .rk-free-list li::before {
    content: "";
    position: absolute;
    top: 0.63em;
    left: 3px;
    width: 12px;
    height: 7px;
    transform: rotate(-45deg);
    border-bottom: 3px solid var(--rk-blue);
    border-left: 3px solid var(--rk-blue);
  }

  #rk-darmowy-projekt .rk-free-program-card {
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-program-card:first-child {
    border-top: 5px solid var(--rk-orange);
  }

  #rk-darmowy-projekt .rk-free-program-card:last-child {
    border-top: 5px solid var(--rk-green);
    background: #fbfffd;
  }

  #rk-darmowy-projekt .rk-free-program-card p:last-child {
    margin-bottom: 0;
  }

  #rk-darmowy-projekt .rk-free-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin: 38px 0 64px;
    padding: clamp(28px, 5vw, 48px);
    border-radius: 25px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 18%, rgba(255, 116, 56, 0.38), transparent 28%),
      linear-gradient(135deg, #102536, #095d79);
    box-shadow: 0 20px 48px rgba(16, 37, 54, 0.18);
  }

  #rk-darmowy-projekt .rk-free-cta::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: -90px;
    bottom: -120px;
    width: 270px;
    height: 270px;
    border: 40px solid rgba(255, 255, 255, 0.07);
    border-radius: 50%;
  }

  #rk-darmowy-projekt .rk-free-cta-label {
    display: inline-block;
    margin-bottom: 12px;
    color: #8cf2f8;
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-cta h2,
  #rk-darmowy-projekt .rk-free-cta p,
  #rk-darmowy-projekt .rk-free-cta strong {
    color: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-cta h2 {
    max-width: 800px;
    margin-bottom: 14px;
  }

  #rk-darmowy-projekt .rk-free-cta p {
    max-width: 820px;
  }

  #rk-darmowy-projekt .rk-free-cta-points {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 22px 0 25px;
  }

  #rk-darmowy-projekt .rk-free-cta-points span {
    display: inline-flex;
    align-items: center;
    min-height: 35px;
    padding: 6px 11px;
    border: 1px solid rgba(255, 255, 255, 0.19);
    border-radius: 999px;
    color: #ecf8fa;
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.73rem;
    font-weight: 780;
  }

  #rk-darmowy-projekt .rk-free-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
  }

  #rk-darmowy-projekt .rk-free-cta-button,
  #rk-darmowy-projekt .rk-free-cta-secondary {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 12px 20px;
    border-radius: 13px;
    font-size: 0.9rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
  }

  #rk-darmowy-projekt .rk-free-cta-button {
    color: var(--rk-white);
    background: linear-gradient(145deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 12px 28px rgba(227, 61, 53, 0.28);
  }

  #rk-darmowy-projekt .rk-free-cta-button::after {
    content: "→";
    font-size: 1.1rem;
  }

  #rk-darmowy-projekt .rk-free-cta-secondary {
    color: var(--rk-white);
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
  }

  #rk-darmowy-projekt .rk-free-cta-button:hover,
  #rk-darmowy-projekt .rk-free-cta-secondary:hover {
    color: var(--rk-white);
    transform: translateY(-2px);
  }

  #rk-darmowy-projekt .rk-free-cta-button:hover {
    box-shadow: 0 16px 34px rgba(227, 61, 53, 0.36);
  }

  #rk-darmowy-projekt .rk-free-faq {
    display: grid;
    gap: 12px;
  }

  #rk-darmowy-projekt .rk-free-faq details {
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-faq details[open] {
    border-color: #abdce5;
    box-shadow: 0 10px 26px rgba(16, 37, 54, 0.065);
  }

  #rk-darmowy-projekt .rk-free-faq summary {
    position: relative;
    padding: 18px 54px 18px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 850;
    line-height: 1.45;
    list-style: none;
  }

  #rk-darmowy-projekt .rk-free-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-darmowy-projekt .rk-free-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: grid;
    width: 29px;
    height: 29px;
    transform: translateY(-50%);
    place-items: center;
    border-radius: 9px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 1.1rem;
    line-height: 1;
  }

  #rk-darmowy-projekt .rk-free-faq details[open] summary::after {
    content: "−";
    background: var(--rk-orange);
  }

  #rk-darmowy-projekt .rk-free-faq details p {
    margin: 0;
    padding: 0 20px 20px;
  }

  #rk-darmowy-projekt .rk-free-summary {
    margin: 5px 0 34px;
    padding: clamp(28px, 4.7vw, 44px);
    border-radius: 24px;
    color: #eef8fa;
    background:
      radial-gradient(circle at 90% 15%, rgba(255, 116, 56, 0.25), transparent 31%),
      linear-gradient(135deg, #0f2534, #224b60);
  }

  #rk-darmowy-projekt .rk-free-summary h2,
  #rk-darmowy-projekt .rk-free-summary p,
  #rk-darmowy-projekt .rk-free-summary strong {
    color: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-summary p:last-child {
    margin-bottom: 0;
  }

  #rk-darmowy-projekt .rk-free-conditions {
    margin: 33px 0;
    padding: 22px 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.8rem;
    line-height: 1.68;
  }

  #rk-darmowy-projekt .rk-free-conditions strong {
    display: block;
    margin-bottom: 5px;
  }

  #rk-darmowy-projekt .rk-free-author-bio {
    overflow: hidden;
    margin-top: 40px;
    border: 1px solid var(--rk-line);
    border-radius: 25px;
    background: var(--rk-white);
    box-shadow: 0 18px 44px rgba(16, 37, 54, 0.1);
  }

  #rk-darmowy-projekt .rk-free-bio-head {
    display: flex;
    gap: 22px;
    align-items: center;
    justify-content: space-between;
    padding: 28px clamp(24px, 4.5vw, 42px);
    border-bottom: 4px solid var(--rk-cyan);
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-darmowy-projekt .rk-free-bio-head h2 {
    margin-bottom: 6px;
    color: var(--rk-white);
    font-size: clamp(1.35rem, 2.9vw, 2rem);
  }

  #rk-darmowy-projekt .rk-free-bio-head p {
    margin: 0;
    color: #cfe3e9;
    font-size: 0.84rem;
  }

  #rk-darmowy-projekt .rk-free-bio-badge {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(40, 201, 218, 0.3);
    border-radius: 12px;
    color: #92f2f8;
    background: rgba(40, 201, 218, 0.1);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-bio-grid {
    display: grid;
    grid-template-columns: 285px minmax(0, 1fr);
  }

  #rk-darmowy-projekt .rk-free-bio-profile {
    padding: 34px 26px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-darmowy-projekt .rk-free-bio-photo {
    display: block;
    width: 142px;
    height: 142px;
    margin: 0 auto 20px;
    object-fit: cover;
    border: 5px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 12px 28px rgba(7, 143, 190, 0.18);
  }

  #rk-darmowy-projekt .rk-free-bio-name {
    margin-bottom: 4px;
    font-size: 1.28rem;
  }

  #rk-darmowy-projekt .rk-free-bio-title {
    margin-bottom: 19px;
    color: var(--rk-blue);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-bio-links {
    display: grid;
    gap: 8px;
  }

  #rk-darmowy-projekt .rk-free-bio-links a {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 11px;
    border: 1px solid #ccdde4;
    border-radius: 11px;
    color: var(--rk-navy);
    background: var(--rk-white);
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-darmowy-projekt .rk-free-bio-links a:hover {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-darmowy-projekt .rk-free-bio-content {
    min-width: 0;
  }

  #rk-darmowy-projekt .rk-free-bio-quote {
    padding: 30px clamp(24px, 4vw, 38px) 24px;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-darmowy-projekt .rk-free-bio-quote-mark {
    display: block;
    height: 29px;
    color: var(--rk-cyan);
    font-family: Georgia, serif;
    font-size: 3.5rem;
    line-height: 0.75;
    opacity: 0.75;
  }

  #rk-darmowy-projekt .rk-free-bio-quote p {
    margin: 0;
    color: var(--rk-dark);
    font-size: clamp(1rem, 2vw, 1.12rem);
    font-style: italic;
    font-weight: 760;
    line-height: 1.65;
  }

  #rk-darmowy-projekt .rk-free-bio-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-darmowy-projekt .rk-free-bio-tab {
    appearance: none;
    flex: 1;
    min-height: 50px;
    padding: 10px 8px;
    border: 0;
    border-bottom: 3px solid transparent;
    color: var(--rk-muted);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-bio-tab[aria-selected="true"] {
    color: var(--rk-blue);
    border-bottom-color: var(--rk-blue);
    background: var(--rk-white);
  }

  #rk-darmowy-projekt .rk-free-bio-panel {
    padding: 28px clamp(24px, 4vw, 38px) 33px;
  }

  #rk-darmowy-projekt .rk-free-bio-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-darmowy-projekt .rk-free-bio-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 18px;
  }

  #rk-darmowy-projekt .rk-free-bio-stat {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }

  #rk-darmowy-projekt .rk-free-bio-stat b {
    display: block;
    color: var(--rk-blue);
    font-size: 1.45rem;
    line-height: 1.1;
  }

  #rk-darmowy-projekt .rk-free-bio-stat span {
    display: block;
    margin-top: 5px;
    color: var(--rk-muted);
    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-darmowy-projekt .rk-free-bio-tab:focus-visible,
  #rk-darmowy-projekt .rk-free-cta-button:focus-visible,
  #rk-darmowy-projekt .rk-free-cta-secondary:focus-visible,
  #rk-darmowy-projekt .rk-free-nav a:focus-visible,
  #rk-darmowy-projekt .rk-free-bio-links a:focus-visible,
  #rk-darmowy-projekt summary:focus-visible {
    outline: 3px solid rgba(255, 116, 56, 0.35);
    outline-offset: 3px;
  }

  @media (max-width: 940px) {
    #rk-darmowy-projekt .rk-free-process-grid,
    #rk-darmowy-projekt .rk-free-scope-grid,
    #rk-darmowy-projekt .rk-free-material-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-darmowy-projekt .rk-free-process-card::after {
      display: none;
    }
  }

  @media (max-width: 780px) {
    #rk-darmowy-projekt {
      font-size: 16px;
    }

    #rk-darmowy-projekt .rk-free-shell {
      border-radius: 21px;
    }

    #rk-darmowy-projekt .rk-free-answer,
    #rk-darmowy-projekt .rk-free-bio-grid {
      grid-template-columns: 1fr;
    }

    #rk-darmowy-projekt .rk-free-table-wrap {
      overflow: visible;
      border: 0;
      border-radius: 0;
    }

    #rk-darmowy-projekt .rk-free-table-wrap table {
      display: block;
      min-width: 0;
      border-collapse: separate;
      border-spacing: 0;
      background: transparent;
    }

    #rk-darmowy-projekt .rk-free-table-wrap thead {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody {
      display: grid;
      gap: 16px;
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody tr {
      display: block;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 18px;
      background: var(--rk-white);
      box-shadow: 0 10px 26px rgba(16, 37, 54, 0.065);
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody th[scope="row"] {
      display: block;
      width: 100%;
      padding: 15px 17px;
      border: 0;
      color: var(--rk-white);
      background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
      font-size: 0.92rem;
      line-height: 1.4;
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody td {
      display: block;
      width: 100%;
      padding: 14px 17px 15px;
      border: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody tr:nth-child(even) td,
    #rk-darmowy-projekt .rk-free-table-wrap tbody tr:nth-child(odd) td {
      background: var(--rk-white);
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody tr td:last-child {
      border-bottom: 0;
    }

    #rk-darmowy-projekt .rk-free-table-wrap tbody td::before {
      content: attr(data-label);
      display: block;
      margin-bottom: 5px;
      color: var(--rk-blue);
      font-size: 0.67rem;
      font-weight: 900;
      letter-spacing: 0.055em;
      line-height: 1.4;
      text-transform: uppercase;
    }

    #rk-darmowy-projekt .rk-free-bio-profile {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-darmowy-projekt .rk-free-bio-links {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 580px) {
    #rk-darmowy-projekt {
      margin-top: 22px;
    }

    #rk-darmowy-projekt .rk-free-hero,
    #rk-darmowy-projekt .rk-free-content {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-darmowy-projekt .rk-free-learn-grid,
    #rk-darmowy-projekt .rk-free-process-grid,
    #rk-darmowy-projekt .rk-free-scope-grid,
    #rk-darmowy-projekt .rk-free-material-grid,
    #rk-darmowy-projekt .rk-free-program-grid,
    #rk-darmowy-projekt .rk-free-bio-stats {
      grid-template-columns: 1fr;
    }

    #rk-darmowy-projekt .rk-free-learn-card {
      padding: 18px;
    }

    #rk-darmowy-projekt .rk-free-section-head {
      grid-template-columns: 43px minmax(0, 1fr);
      gap: 13px;
    }

    #rk-darmowy-projekt .rk-free-section-no {
      width: 43px;
      height: 43px;
      border-radius: 12px;
    }

    #rk-darmowy-projekt .rk-free-cta-actions {
      display: grid;
      grid-template-columns: 1fr;
    }

    #rk-darmowy-projekt .rk-free-cta-button,
    #rk-darmowy-projekt .rk-free-cta-secondary {
      width: 100%;
    }

    #rk-darmowy-projekt .rk-free-bio-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-darmowy-projekt .rk-free-bio-tabs {
      flex-direction: column;
    }

    #rk-darmowy-projekt .rk-free-bio-tab {
      border-bottom: 0;
      border-left: 4px solid transparent;
      text-align: left;
    }

    #rk-darmowy-projekt .rk-free-bio-tab[aria-selected="true"] {
      border-left-color: var(--rk-blue);
    }

    #rk-darmowy-projekt .rk-free-bio-links {
      grid-template-columns: 1fr;
    }
  }

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

<article id="rk-darmowy-projekt" itemscope itemtype="https://schema.org/BlogPosting">
  <div class="rk-free-shell">
    <div class="rk-free-progress-track" aria-hidden="true"><div class="rk-free-progress"></div></div>

    <header class="rk-free-hero">
      <div class="rk-free-badge">Zwrot do 100% kosztu projektu</div>
      <h2>Najpierw otrzymujesz pełny projekt. Po zakupie materiałów <span>jego koszt zostaje odliczony</span></h2>

      <div class="rk-free-hook">
        <p><strong>Darmowy projekt ogrzewania podłogowego nie oznacza przypadkowego schematu wygenerowanego automatycznie.</strong> Zamawiasz indywidualną dokumentację z obliczeniami OZC, rysunkiem pętli i zestawieniem materiałowym. Pełną wartość projektu odliczamy przy zakupie kompletu podstawowego wynikającego z dokumentacji: rur, rozdzielaczy oraz szafek instalacyjnych. Przy zakupie częściowego zakresu zwrot obliczamy proporcjonalnie do jego wielkości.</p>
      </div>

      <p class="rk-free-hero-lead">Najpierw projektujemy instalację pod konkretny budynek, źródło ciepła i rodzaj posadzki. Dopiero na podstawie gotowej dokumentacji powstaje rzeczywista lista materiałów. Dzięki temu nie kupujesz elementów „na zapas”, a instalator otrzymuje dane potrzebne do poprawnego wykonania i regulacji systemu.</p>

      <div class="rk-free-hero-meta">
        <span>Obliczenia OZC</span>
        <span>Rysunek wszystkich pętli</span>
        <span>Zestawienie materiałowe</span>
        <span>Obsługa inwestycji w całej Polsce</span>
      </div>

      <div class="rk-free-author-strip" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – specjalista systemów HVAC i ogrzewania podłogowego" width="52" height="52" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">Specjalista systemów HVAC i ogrzewania podłogowego • autor Projekt-Ogrzewania.pl</small>
        </div>
      </div>
    </header>

    <div class="rk-free-content" itemprop="articleBody">
      <section class="rk-free-answer" aria-label="Najkrótsze wyjaśnienie zasad darmowego projektu ogrzewania podłogowego">
        <div>
          <span class="rk-free-answer-label">Najkrócej: jak działa oferta?</span>
          <strong class="rk-free-answer-main">Opłacasz projekt, otrzymujesz dokumentację, a następnie odzyskujesz do 100% jej wartości w rozliczeniu materiałów.</strong>
          <p>Jeżeli nie zdecydujesz się na zakup materiałów, dokumentacja pozostaje pełnoprawną, opłaconą usługą i możesz zrealizować ją z dowolnym instalatorem oraz dowolnie wybranymi materiałami spełniającymi parametry projektu.</p>
        </div>
        <div class="rk-free-answer-badge">
          <b>do 100%</b>
          <span>pełny zwrot za rury, rozdzielacze i szafki; częściowy zwrot za część zakresu</span>
        </div>
      </section>

      <section class="rk-free-learn" aria-labelledby="rk-free-learn-title">
        <h3 class="rk-free-learn-title" id="rk-free-learn-title">
          <svg width="25" height="25" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><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>
          Z tej strony dowiesz się:
        </h3>

        <div class="rk-free-learn-grid">
          <div class="rk-free-learn-card">
            <div class="rk-free-learn-icon" aria-hidden="true">01</div>
            <div><h4>Kiedy projekt jest darmowy?</h4><p>Na jakim etapie następuje odliczenie kosztu projektu i co dzieje się, jeśli nie kupisz materiałów.</p></div>
          </div>
          <div class="rk-free-learn-card">
            <div class="rk-free-learn-icon" aria-hidden="true">02</div>
            <div><h4>Co zawiera dokumentacja?</h4><p>Jakie obliczenia, rysunki, parametry hydrauliczne i zestawienia otrzymuje inwestor.</p></div>
          </div>
          <div class="rk-free-learn-card">
            <div class="rk-free-learn-icon" aria-hidden="true">03</div>
            <div><h4>Jak powstaje wycena?</h4><p>Dlaczego materiały dobieramy dopiero po policzeniu budynku i rozrysowaniu instalacji.</p></div>
          </div>
          <div class="rk-free-learn-card">
            <div class="rk-free-learn-icon" aria-hidden="true">04</div>
            <div><h4>Czy to darmowy program?</h4><p>Czym indywidualny projekt różni się od kalkulatora liczącego orientacyjną długość rury.</p></div>
          </div>
        </div>
      </section>

      <nav class="rk-free-nav" aria-label="Spis treści strony">
        <strong>Na skróty</strong>
        <div class="rk-free-nav-links">
          <a href="#rk-free-zasady">Zasady oferty</a>
          <a href="#rk-free-proces">Jak to działa?</a>
          <a href="#rk-free-zakres">Zakres projektu</a>
          <a href="#rk-free-materialy">Materiały</a>
          <a href="#rk-free-porownanie">Porównanie</a>
          <a href="#rk-free-program">Projekt a program</a>
          <a href="#rk-free-faq">FAQ</a>
        </div>
      </nav>

      <section class="rk-free-section" id="rk-free-zasady" aria-labelledby="rk-free-s1">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">1</div>
          <div>
            <h2 id="rk-free-s1">Kiedy darmowy projekt ogrzewania podłogowego rzeczywiście kosztuje 0 zł?</h2>
            <p>Projekt jest najpierw normalnie zamawiany i opłacany. Zwrot jego wartości następuje w rozliczeniu zakupu materiałów.</p>
          </div>
        </div>

        <p>Dokumentacja techniczna powstaje przed zakupem materiałów, ponieważ dopiero obliczenia pokazują, ile rur potrzeba, jaki rozdzielacz należy zastosować, ile obiegów będzie miała instalacja oraz jakie przepływy powinny zostać ustawione. Dzięki temu przygotowana oferta materiałowa wynika z projektu, a nie z orientacyjnego przelicznika powierzchni domu.</p>

        <p>Po otrzymaniu projektu przygotowujemy wycenę elementów potrzebnych do jego realizacji. Jeżeli zaakceptujesz ofertę i zamówisz wszystkie rury, rozdzielacze oraz szafki instalacyjne przewidziane w dokumentacji, od końcowej należności odejmujemy pełną kwotę wcześniej zapłaconą za projekt. Właśnie dlatego mówimy o <strong>darmowym projekcie ogrzewania podłogowego przy zakupie materiałów</strong>.</p>

        <p>Jeżeli zamówienie obejmie tylko część instalacji, rozliczamy koszt projektu wprost proporcjonalnie do wielkości zakupionego zakresu. Przykładowo: przy projekcie obejmującym 200 m² i zakupie kompletnego podstawowego zestawu dla 100 m² odliczeniu podlega 50% wartości projektu.</p>

        <div class="rk-free-truth">
          <p><strong>Najważniejsza zasada przejrzystości:</strong> nie musisz kupować materiałów, aby otrzymać dokumentację. Zakup jest Twoją decyzją. Jeżeli wybierzesz innego dostawcę, projekt pozostaje opłaconą usługą, którą możesz przekazać swojemu instalatorowi.</p>
        </div>

        <div class="rk-free-warning">
          <strong>Zwrot nie polega na wypłacie gotówki po samym wykonaniu projektu.</strong> Wartość dokumentacji jest odliczana w rozliczeniu materiałów zakupionych z przygotowanej oferty. Komplet rur, rozdzielaczy i szafek wynikających z projektu oznacza zwrot 100%; mniejszy zakres oznacza zwrot proporcjonalny do jego wielkości.
        </div>
      </section>

      <section class="rk-free-section" id="rk-free-proces" aria-labelledby="rk-free-s2">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">2</div>
          <div>
            <h2 id="rk-free-s2">Jak otrzymać projekt ogrzewania podłogowego za darmo?</h2>
            <p>Cztery czytelne etapy — od zamówienia dokumentacji do odliczenia jej wartości.</p>
          </div>
        </div>

        <div class="rk-free-process-grid" aria-label="Proces uzyskania darmowego projektu ogrzewania podłogowego">
          <div class="rk-free-process-card">
            <span class="rk-free-process-no">01</span>
            <h4>Zamów projekt</h4>
            <p>Wybierasz powierzchnię budynku, liczbę kondygnacji i standardowy albo ekspresowy czas realizacji.</p>
          </div>
          <div class="rk-free-process-card">
            <span class="rk-free-process-no">02</span>
            <h4>Prześlij dane</h4>
            <p>Po zakupie otrzymujesz ankietę. Podajesz informacje o izolacji, oknach, posadzkach i źródle ciepła oraz wgrywasz rzuty.</p>
          </div>
          <div class="rk-free-process-card">
            <span class="rk-free-process-no">03</span>
            <h4>Odbierz dokumentację</h4>
            <p>Przygotowujemy obliczenia cieplne, hydraulikę, przebieg pętli, nastawy i zestawienie potrzebnych elementów.</p>
          </div>
          <div class="rk-free-process-card">
            <span class="rk-free-process-no">04</span>
            <h4>Rozlicz materiały</h4>
            <p>Za pełny komplet rur, rozdzielaczy i szafek odliczamy 100% wartości projektu; za część zakresu — odpowiednią część tej wartości.</p>
          </div>
        </div>

        <p>Całość może zostać przeprowadzona zdalnie. Rzuty przyjmujemy w formatach PDF, JPG lub DWG, a gotową dokumentację przekazujemy elektronicznie. Jeżeli chcesz poznać dokładny przebieg takiej współpracy, zobacz również poradnik wyjaśniający, <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-online/">jak realizujemy projektowanie zdalne</a>.</p>

        <div class="rk-free-note"><strong>Nie masz idealnych rzutów?</strong> Czytelny skan, plik PDF albo zdjęcie papierowego projektu zwykle wystarczą do wstępnej weryfikacji. Kluczowe są wymiary pomieszczeń i informacje o przegrodach budynku.</div>
      </section>

      <aside class="rk-free-cta" aria-labelledby="rk-free-cta-1-title">
        <span class="rk-free-cta-label">Pierwszy krok: dokumentacja</span>
        <h2 id="rk-free-cta-1-title">Zamów projekt i odzyskaj do 100% jego wartości przy zakupie materiałów</h2>
        <p>Na stronie produktu wybierzesz powierzchnię budynku, liczbę kondygnacji oraz termin realizacji. Przed zakupem zobaczysz aktualną cenę dokumentacji.</p>
        <div class="rk-free-cta-points" aria-label="Najważniejsze elementy projektu">
          <span>OZC dla pomieszczeń</span>
          <span>Rysunek pętli</span>
          <span>Hydraulika i przepływy</span>
          <span>Lista materiałów</span>
        </div>
        <div class="rk-free-cta-actions">
          <a class="rk-free-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź cenę i zamów projekt</a>
          <a class="rk-free-cta-secondary" href="tel:+48783212175">Zadzwoń: +48 783 212 175</a>
        </div>
      </aside>

      <section class="rk-free-section" id="rk-free-zakres" aria-labelledby="rk-free-s3">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">3</div>
          <div>
            <h2 id="rk-free-s3">Co dokładnie zawiera darmowy projekt podłogówki?</h2>
            <p>Zakres techniczny jest taki sam niezależnie od tego, czy później kupisz materiały w naszej ofercie.</p>
          </div>
        </div>

        <p>Nie przygotowujemy uproszczonego rysunku promocyjnego. Otrzymujesz indywidualną dokumentację opracowaną na podstawie danych konkretnego budynku. Projekt ma umożliwić wykonawcy ułożenie pętli, podłączenie rozdzielaczy i wyregulowanie przepływów zgodnie z obliczeniami. Zobacz także, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>

        <div class="rk-free-scope-grid">
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">OZC</span><h4><a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Obciążenie cieplne OZC</a></h4><p>Wyliczenie zapotrzebowania na moc dla budynku i poszczególnych pomieszczeń na podstawie przesłanych danych.</p></div>
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">CAD</span><h4>Rysunek instalacji</h4><p>Przebieg pętli grzewczych, rozstaw rur, lokalizacje rozdzielaczy oraz trasy odcinków dobiegowych.</p></div>
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">Δp</span><h4>Obliczenia hydrauliczne</h4><p>Długości obiegów, wymagane przepływy i opory pozwalające ocenić pracę rozdzielaczy oraz pompy.</p></div>
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">°C</span><h4>Parametry zasilania</h4><p>Temperatura zasilania i powrotu dopasowana do strat budynku, źródła ciepła oraz wykończenia posadzek.</p></div>
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">l/min</span><h4>Nastawy przepływów</h4><p>Wartości potrzebne do wyregulowania pętli na rotametrach i uzyskania projektowego podziału mocy.</p></div>
          <div class="rk-free-scope-card"><span class="rk-free-scope-icon">BOM</span><h4>Zestawienie materiałowe</h4><p>Lista podstawowych elementów wynikająca z liczby pętli, długości rur oraz przyjętego sposobu wykonania instalacji.</p></div>
        </div>

        <div class="rk-free-note"><strong>Dokumentacja ma wartość niezależną od późniejszego zakupu.</strong> Jeżeli zrezygnujesz z naszej wyceny materiałów, nadal otrzymujesz kompletny projekt i możesz wykonać instalację na jego podstawie.</div>

        <p>Pełny zakres usługi, aktualne warianty powierzchni i czas realizacji znajdziesz na stronie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektu instalacji ogrzewania podłogowego z OZC</a>.</p>
      </section>

      <section class="rk-free-section" id="rk-free-materialy" aria-labelledby="rk-free-s4">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">4</div>
          <div>
            <h2 id="rk-free-s4">Jakie materiały można dobrać na podstawie projektu?</h2>
            <p>Wycenę przygotowujemy dopiero wtedy, gdy znamy rzeczywistą liczbę pętli, ich długości i wyposażenie rozdzielaczy.</p>
          </div>
        </div>

        <div class="rk-free-material-box">
          <h3>Warunek pełnego zwrotu: trzy podstawowe grupy materiałów</h3>
          <p>Pełne odliczenie wartości projektu następuje po zakupie wszystkich rur, rozdzielaczy oraz szafek instalacyjnych wynikających z dokumentacji. Dobór tych elementów opisuje również poradnik <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">jakie materiały są potrzebne do instalacji ogrzewania podłogowego</a>.</p>
          <div class="rk-free-material-grid">
            <div class="rk-free-material-card"><b><a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury grzewcze</a></b><span>Wszystkie rury przewidziane w projekcie — warunek pełnego zwrotu.</span></div>
            <div class="rk-free-material-card"><b><a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">Rozdzielacze</a></b><span>Wszystkie rozdzielacze i liczby sekcji wynikające z liczby obiegów — warunek pełnego zwrotu.</span></div>
            <div class="rk-free-material-card"><b>Szafki instalacyjne</b><span>Szafki dobrane do wszystkich projektowanych rozdzielaczy — warunek pełnego zwrotu.</span></div>
            <div class="rk-free-material-card"><b>Częściowy zakres</b><span>Zakup materiałów dla części instalacji oznacza proporcjonalne odliczenie wartości projektu.</span></div>
          </div>
        </div>

        <p>W zależności od przyjętego rozwiązania wycena może obejmować również automatykę, siłowniki, termostaty, złączki, izolację brzegową, elementy dylatacyjne albo wyposażenie uzupełniające. Te elementy nie zastępują jednak trzech podstawowych grup wymaganych do pełnego zwrotu: rur, rozdzielaczy i szafek. Nie sprzedajemy jednego identycznego „pakietu na metr kwadratowy”, ponieważ dwa domy o tej samej powierzchni mogą mieć inną liczbę pomieszczeń, różne straty ciepła i zupełnie inną hydraulikę.</p>

        <div class="rk-free-note"><strong>Przykład częściowego rozliczenia:</strong> projekt obejmuje 200 m², a inwestor kupuje wszystkie rury, rozdzielacz i szafkę dla wydzielonego zakresu 100 m². Zakup obejmuje 50% projektowanej instalacji, dlatego od ceny materiałów odliczamy 50% wcześniej opłaconej wartości projektu.</div>

        <div class="rk-free-warning"><strong>Pełny zwrot wymaga zakupu kompletu rur, rozdzielaczy i szafek wynikających z projektu.</strong> Jeżeli kupujesz materiały tylko dla części instalacji, zwrot obliczamy proporcjonalnie do wielkości tego zakresu. Wszystkie wartości potwierdzamy w indywidualnej wycenie przed złożeniem zamówienia.</div>
      </section>

      <section class="rk-free-section" id="rk-free-porownanie" aria-labelledby="rk-free-s5">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">5</div>
          <div>
            <h2 id="rk-free-s5">Sam projekt czy projekt wraz z materiałami?</h2>
            <p>W obu wariantach otrzymujesz tę samą dokumentację. Różnica dotyczy wyłącznie późniejszego rozliczenia jej kosztu.</p>
          </div>
        </div>

        <div class="rk-free-table-wrap" role="region" aria-label="Porównanie samego projektu z projektem rozliczanym przy zakupie materiałów" tabindex="0">
          <table>
            <thead>
              <tr><th scope="col">Element</th><th scope="col">Sam projekt</th><th scope="col">Projekt + zakup materiałów</th></tr>
            </thead>
            <tbody>
              <tr><th scope="row">Jakość dokumentacji</th><td data-label="Sam projekt">Pełna dokumentacja techniczna przygotowana indywidualnie.</td><td data-label="Projekt + zakup materiałów">Dokładnie ta sama pełna dokumentacja techniczna.</td></tr>
              <tr><th scope="row">Obliczenia OZC i hydraulika</th><td data-label="Sam projekt">Wliczone w zakres zamówionej usługi.</td><td data-label="Projekt + zakup materiałów">Wliczone w zakres zamówionej usługi.</td></tr>
              <tr><th scope="row">Zestawienie materiałowe</th><td data-label="Sam projekt">Otrzymujesz listę elementów potrzebnych do realizacji.</td><td data-label="Projekt + zakup materiałów">Na podstawie listy otrzymujesz dodatkowo konkretną wycenę dostawy.</td></tr>
              <tr><th scope="row">Wybór dostawcy</th><td data-label="Sam projekt">Kupujesz materiały w dowolnie wybranym miejscu.</td><td data-label="Projekt + zakup materiałów">Akceptujesz przygotowaną ofertę materiałową Projekt-Ogrzewania.pl.</td></tr>
              <tr><th scope="row">Koszt projektu</th><td data-label="Sam projekt">Pozostaje ceną wykonanej dokumentacji.</td><td data-label="Projekt + zakup materiałów">100% wartości odliczamy za pełny komplet rur, rozdzielaczy i szafek; przy częściowym zakresie odliczenie jest proporcjonalne.</td></tr>
              <tr><th scope="row">Obowiązek zakupu</th><td data-label="Sam projekt">Brak.</td><td data-label="Projekt + zakup materiałów">Decyzję podejmujesz dopiero po otrzymaniu i zaakceptowaniu wyceny.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-free-truth"><p><strong>W obu wariantach najpierw liczymy instalację.</strong> Nie obniżamy jakości projektu dlatego, że jego wartość może zostać później zwrócona. Rozliczenie materiałów jest osobnym etapem handlowym, a nie zamiennikiem obliczeń technicznych.</p></div>
      </section>

      <section class="rk-free-section" aria-labelledby="rk-free-s6">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">6</div>
          <div>
            <h2 id="rk-free-s6">Dlaczego najpierw projektujemy, a dopiero później sprzedajemy materiały?</h2>
            <p>W prawidłowej kolejności lista zakupów jest wynikiem obliczeń, a nie punktem wyjścia.</p>
          </div>
        </div>

        <p>Orientacyjne przeliczenie metrów rury na powierzchnię nie określa liczby pętli, przepływów ani mocy możliwej do uzyskania z podłogi. Nie uwzględnia także długości odcinków dobiegowych, stref brzegowych, oporu paneli i płytek, lokalizacji rozdzielaczy czy temperatury źródła ciepła.</p>

        <ul class="rk-free-list">
          <li><strong>Najpierw obliczamy straty ciepła</strong> każdego pomieszczenia oraz całego budynku.</li>
          <li><strong>Następnie dobieramy rozstaw i długości pętli</strong> do wymaganej mocy i konstrukcji podłogi.</li>
          <li><strong>Sprawdzamy hydraulikę</strong>, aby przez każdy obieg można było uzyskać wymagany przepływ.</li>
          <li><strong>Dopiero wtedy zliczamy materiały</strong> i przygotowujemy ofertę odpowiadającą dokumentacji.</li>
        </ul>

        <p>Taka kolejność chroni przed kupieniem zbyt małego rozdzielacza, niepotrzebnego nadmiaru rury albo przypadkowego osprzętu, który później nie pasuje do zaprojektowanego systemu. Darmowy projekt podłogówki ma sens tylko wtedy, gdy pozostaje rzeczywistym projektem, a nie dodatkiem marketingowym do gotowego pakietu. Pokazujemy to również w analizie <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt „z głowy” kontra projekt z obliczeniami</a>.</p>
      </section>

      <section class="rk-free-section" id="rk-free-program" aria-labelledby="rk-free-s7">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">7</div>
          <div>
            <h2 id="rk-free-s7">Darmowy projekt a darmowy program do projektowania podłogówki</h2>
            <p>Kalkulator może pomóc we wstępnym oszacowaniu. Nie zna jednak rzeczywistych strat i hydrauliki Twojego budynku.</p>
          </div>
        </div>

        <div class="rk-free-program-grid">
          <div class="rk-free-program-card">
            <h3>Darmowy kalkulator lub program</h3>
            <p>Najczęściej wykorzystuje powierzchnię i wybrany rozstaw rur. Może oszacować orientacyjną długość przewodu, ale wynik nie jest kompletną dokumentacją wykonawczą.</p>
            <ul class="rk-free-list">
              <li>Wynik orientacyjny</li>
              <li>Brak analizy wszystkich przegród</li>
              <li>Brak indywidualnej hydrauliki pętli</li>
              <li>Brak odpowiedzialności projektowej</li>
            </ul>
            <p>Do wstępnego sprawdzenia parametrów możesz wykorzystać nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">kompleksowy kalkulator ogrzewania podłogowego</a>.</p>
          </div>
          <div class="rk-free-program-card">
            <h3>Indywidualny projekt instalacji</h3>
            <p>Powstaje na podstawie rzutów, izolacji, stolarki, lokalizacji budynku, rodzaju wentylacji, posadzek i planowanego źródła ciepła.</p>
            <ul class="rk-free-list">
              <li>Obliczenia dla konkretnych pomieszczeń</li>
              <li>Rzeczywiste pętle i rozdzielacze</li>
              <li>Przepływy oraz opory hydrauliczne</li>
              <li>Dokumentacja dla instalatora</li>
            </ul>
            <p><strong>To właśnie ten wariant obejmuje oferta zwrotu do 100% wartości projektu przy zakupie materiałów.</strong></p>
          </div>
        </div>
      </section>

      <aside class="rk-free-cta" aria-labelledby="rk-free-cta-2-title">
        <span class="rk-free-cta-label">Projekt dopasowany do Twojego domu</span>
        <h2 id="rk-free-cta-2-title">Najpierw zobacz cenę dokumentacji — decyzję o materiałach podejmiesz później</h2>
        <p>Zamówienie projektu nie zobowiązuje Cię do zakupu materiałów. Gotowa dokumentacja będzie miała pełną wartość techniczną niezależnie od tego, którego dostawcę wybierzesz.</p>
        <div class="rk-free-cta-actions">
          <a class="rk-free-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Wybierz powierzchnię i zamów</a>
          <a class="rk-free-cta-secondary" href="https://wa.me/48794358367">WhatsApp: +48 794 358 367</a>
        </div>
      </aside>

      <section class="rk-free-section" id="rk-free-faq" aria-labelledby="rk-free-s8">
        <div class="rk-free-section-head">
          <div class="rk-free-section-no">8</div>
          <div>
            <h2 id="rk-free-s8">Darmowy projekt ogrzewania podłogowego – FAQ</h2>
            <p>Najważniejsze odpowiedzi dotyczące płatności, zwrotu, zakresu dokumentacji i zakupu materiałów.</p>
          </div>
        </div>

        <div class="rk-free-faq">
          <details id="rk-free-faq-1"><summary>Czy projekt ogrzewania podłogowego jest naprawdę darmowy?</summary><p>Tak, pełne 100% wartości projektu odliczamy po zakupie wszystkich rur, rozdzielaczy i szafek instalacyjnych wynikających z dokumentacji. Projekt jest najpierw opłacany, a jego wartość zostaje następnie odjęta od należności za materiały. Jeżeli nie kupisz materiałów, projekt pozostaje standardowo opłaconą usługą.</p></details>
          <details id="rk-free-faq-2"><summary>Czy muszę kupić materiały przed wykonaniem projektu?</summary><p>Nie. Najpierw zamawiasz projekt i przekazujesz dane budynku. Dopiero po wykonaniu obliczeń oraz zestawienia materiałowego możemy przygotować rzeczywistą wycenę elementów potrzebnych do realizacji instalacji.</p></details>
          <details id="rk-free-faq-3"><summary>Czy zamówienie projektu zobowiązuje mnie do zakupu materiałów?</summary><p>Nie. Możesz odebrać dokumentację i kupić materiały w dowolnie wybranym miejscu. W takim przypadku nie następuje odliczenie wartości projektu, ponieważ pozostaje on samodzielną, wykonaną usługą.</p></details>
          <details id="rk-free-faq-4"><summary>Jak następuje zwrot kosztu projektu?</summary><p>Po zaakceptowaniu przygotowanej wyceny i zakupie kompletu rur, rozdzielaczy oraz szafek instalacyjnych wartość wcześniej opłaconego projektu jest odejmowana od kwoty należnej za materiały. Nie jest to wypłata gotówki za sam fakt zamówienia dokumentacji.</p></details>
          <details id="rk-free-faq-5"><summary>Jakie materiały muszę kupić, aby otrzymać pełny zwrot?</summary><p>Pełny zwrot 100% wymaga zakupu wszystkich rur ogrzewania podłogowego, rozdzielaczy oraz szafek instalacyjnych wynikających z projektu. Pozostały osprzęt może być ujęty w wycenie, ale nie zastępuje tych trzech podstawowych grup.</p></details>
          <details id="rk-free-faq-11"><summary>Co się stanie, jeśli kupię tylko część materiałów?</summary><p>Wartość zwrotu obliczamy wprost proporcjonalnie do wielkości zakupionego zakresu instalacji. Jeżeli materiały obejmują 50% projektowanego zakresu, odliczamy 50% wcześniej opłaconej wartości projektu. Dokładny udział potwierdzamy w indywidualnej wycenie.</p></details>
          <details id="rk-free-faq-6"><summary>Czy darmowy projekt ma mniejszy zakres niż projekt płatny?</summary><p>Nie. Dokumentacja ma ten sam zakres techniczny niezależnie od późniejszej decyzji o zakupie materiałów. Obejmuje obliczenia cieplne, projekt pętli, parametry hydrauliczne oraz zestawienie materiałowe zgodne z zamówionym wariantem usługi.</p></details>
          <details id="rk-free-faq-7"><summary>Czy projekt zawiera obliczenia OZC?</summary><p>Tak. Obliczenia zapotrzebowania na ciepło dla budynku i pomieszczeń są podstawą doboru rozstawów rur, temperatury zasilania, przepływów oraz mocy instalacji.</p></details>
          <details id="rk-free-faq-8"><summary>Czy jest to darmowy program do projektowania ogrzewania podłogowego?</summary><p>Nie. Jest to indywidualna usługa projektowa wykonywana na podstawie danych konkretnego budynku. Program lub kalkulator może wykonać obliczenie orientacyjne, ale nie zastępuje analizy cieplnej, hydrauliki i rysunków wykonawczych.</p></details>
          <details id="rk-free-faq-9"><summary>Czy mogę samodzielnie wykonać instalację na podstawie projektu?</summary><p>Dokumentacja podaje przebieg pętli, ich długości, rozstawy oraz wymagane przepływy, dlatego może być podstawą do samodzielnego ułożenia rur. Podłączenia hydrauliczne, próbę szczelności, regulację i uruchomienie warto jednak powierzyć osobie posiadającej odpowiednie doświadczenie.</p></details>
          <details id="rk-free-faq-10"><summary>Czy otrzymuję projekt budowlany z pieczątkami?</summary><p>Standardowa usługa obejmuje techniczną koncepcję wykonawczą instalacji i nie jest projektem budowlanym wymaganym do uzyskania pozwolenia na budowę. Wersję papierową z wymaganymi podpisami lub pieczątkami wyceniamy indywidualnie po wcześniejszym kontakcie.</p></details>
        </div>
      </section>

      <section class="rk-free-summary" aria-labelledby="rk-free-summary-title">
        <h2 id="rk-free-summary-title">Projekt najpierw zabezpiecza instalację, a później może zwrócić swój koszt</h2>
        <p><strong>Największą wartością tej oferty nie jest samo słowo „darmowy”, lecz prawidłowa kolejność decyzji.</strong> Najpierw poznajesz zapotrzebowanie cieplne budynku, układ pętli i rzeczywistą ilość materiałów. Dopiero potem oceniasz przygotowaną wycenę.</p>
        <p>Jeżeli kupisz komplet rur, rozdzielaczy i szafek wynikających z projektu, odliczymy 100% jego wartości. Przy zakupie materiałów dla części instalacji odliczenie będzie proporcjonalne do wielkości tego zakresu. Jeżeli wybierzesz innego dostawcę, zachowujesz pełną dokumentację techniczną i swobodę realizacji. W każdym wariancie instalacja nie powstaje „na oko”.</p>
      </section>

      <div class="rk-free-conditions" aria-label="Warunki i szczegóły zwrotu kosztu projektu">
        <strong>Warunki oferty i sposób rozliczenia</strong>
        Szczegóły dotyczące procesu zakupu materiałów i odliczenia wartości dokumentacji opisaliśmy na stronie
        <a href="https://projekt-ogrzewania.pl/zwrot-kaucji-za-zakupiony-projekt-ogrzewania-podlogowego/">zwrotu kaucji za zakupiony projekt ogrzewania podłogowego</a>.
        Przed podjęciem decyzji otrzymujesz indywidualną wycenę materiałów. W razie pytań skontaktuj się z nami pod numerem
        <a href="tel:+48783212175">+48 783 212 175</a>. Kontakt przez WhatsApp jest dostępny pod numerem
        <a href="https://wa.me/48794358367">+48 794 358 367</a>.
      </div>

      <aside class="rk-free-author-bio" aria-labelledby="rk-free-author-title" itemprop="author" itemscope itemtype="https://schema.org/Person">
        <div class="rk-free-bio-head">
          <div><h2 id="rk-free-author-title">Autor opracowania</h2><p>Praktyka projektowa, obliczenia techniczne i odpowiedzialność za dokumentację.</p></div>
          <div class="rk-free-bio-badge">E‑E‑A‑T • HVAC</div>
        </div>

        <div class="rk-free-bio-grid">
          <div class="rk-free-bio-profile">
            <img decoding="async" class="rk-free-bio-photo" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – specjalista systemów HVAC i ogrzewania podłogowego" width="300" height="300" loading="lazy" itemprop="image">
            <h3 class="rk-free-bio-name" itemprop="name">Robert Kucharski</h3>
            <div class="rk-free-bio-title" itemprop="jobTitle">Specjalista systemów HVAC i ogrzewania podłogowego</div>
            <div class="rk-free-bio-links">
              <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="me nofollow noopener">Facebook</a>
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="me nofollow noopener">LinkedIn</a>
              <a href="https://projekt-ogrzewania.pl/author/admin3399/" rel="author">Profil autora</a>
            </div>
          </div>

          <div class="rk-free-bio-content">
            <div class="rk-free-bio-quote">
              <span class="rk-free-bio-quote-mark" aria-hidden="true">“</span>
              <p>Darmowy projekt ma sens tylko wtedy, gdy pozostaje prawdziwym projektem. Najpierw liczę budynek, pętle i przepływy, a dopiero później z dokumentacji powstaje lista zakupów. Odwrócenie tej kolejności oznaczałoby dopasowywanie instalacji do paczki materiałów, zamiast do domu.</p>
            </div>

            <div class="rk-free-bio-tabs" role="tablist" aria-label="Informacje o autorze">
              <button class="rk-free-bio-tab" id="rk-free-bio-tab-about" type="button" role="tab" aria-selected="true" aria-controls="rk-free-bio-about">O autorze</button>
              <button class="rk-free-bio-tab" id="rk-free-bio-tab-exp" type="button" role="tab" aria-selected="false" aria-controls="rk-free-bio-exp" tabindex="-1">Doświadczenie</button>
              <button class="rk-free-bio-tab" id="rk-free-bio-tab-portals" type="button" role="tab" aria-selected="false" aria-controls="rk-free-bio-portals" tabindex="-1">Portale</button>
            </div>

            <div class="rk-free-bio-panel" id="rk-free-bio-about" role="tabpanel" aria-labelledby="rk-free-bio-tab-about">
              <p itemprop="description">Specjalizuję się w projektowaniu systemów HVAC, ze szczególnym uwzględnieniem wodnego ogrzewania podłogowego, obliczeń obciążenia cieplnego oraz hydrauliki instalacji. Dokumentacja ma być nie tylko poprawna obliczeniowo, lecz również czytelna dla inwestora i możliwa do wykonania na budowie.</p>
            </div>
            <div class="rk-free-bio-panel" id="rk-free-bio-exp" role="tabpanel" aria-labelledby="rk-free-bio-tab-exp" hidden>
              <p>W pracy wykorzystuję doświadczenie z dokumentacji projektowej, analiz OZC, doboru temperatur zasilania, przepływów, rozdzielaczy i źródeł ciepła. Każdy budynek analizuję indywidualnie, ponieważ sama powierzchnia nie wystarcza do poprawnego zaprojektowania instalacji.</p>
              <div class="rk-free-bio-stats">
                <div class="rk-free-bio-stat"><b>1000+</b><span>projektów i analiz OZC</span></div>
                <div class="rk-free-bio-stat"><b>Cała Polska</b><span>projekty realizowane zdalnie</span></div>
              </div>
            </div>
            <div class="rk-free-bio-panel" id="rk-free-bio-portals" role="tabpanel" aria-labelledby="rk-free-bio-tab-portals" hidden>
              <p>Tworzę i rozwijam serwisy, w których wiedza techniczna pomaga podejmować lepsze decyzje budowlane: <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>, <a href="https://remont.biz.pl/" target="_blank" rel="me nofollow noopener">Remont.biz.pl</a> oraz <a href="https://sobir.pl/" target="_blank" rel="me nofollow noopener">Sobir.pl</a>. Publikuję również na <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="me nofollow noopener">Facebooku</a> i <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="me nofollow noopener">LinkedInie</a>.</p>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script>
  (function () {
    "use strict";

    var root = document.getElementById("rk-darmowy-projekt");
    if (!root) return;

    function createTabs(buttonSelector, panelSelector) {
      var buttons = Array.prototype.slice.call(root.querySelectorAll(buttonSelector));
      var panels = Array.prototype.slice.call(root.querySelectorAll(panelSelector));
      if (!buttons.length || buttons.length !== panels.length) return;

      function activate(index, moveFocus) {
        buttons.forEach(function (button, buttonIndex) {
          var selected = buttonIndex === index;
          button.setAttribute("aria-selected", selected ? "true" : "false");
          button.tabIndex = selected ? 0 : -1;
          panels[buttonIndex].hidden = !selected;
        });
        if (moveFocus) buttons[index].focus();
      }

      buttons.forEach(function (button, index) {
        button.addEventListener("click", function () {
          activate(index, false);
        });

        button.addEventListener("keydown", function (event) {
          var nextIndex = index;
          if (event.key === "ArrowRight" || event.key === "ArrowDown") nextIndex = (index + 1) % buttons.length;
          if (event.key === "ArrowLeft" || event.key === "ArrowUp") nextIndex = (index - 1 + buttons.length) % buttons.length;
          if (event.key === "Home") nextIndex = 0;
          if (event.key === "End") nextIndex = buttons.length - 1;
          if (nextIndex !== index) {
            event.preventDefault();
            activate(nextIndex, true);
          }
        });
      });
    }

    createTabs(".rk-free-bio-tab", ".rk-free-bio-panel");

    var progress = root.querySelector(".rk-free-progress");
    var ticking = false;

    function updateProgress() {
      if (!progress) return;
      var rootTop = root.getBoundingClientRect().top + window.pageYOffset;
      var travel = Math.max(root.offsetHeight - window.innerHeight, 1);
      var value = Math.min(Math.max((window.pageYOffset - rootTop) / travel, 0), 1);
      progress.style.width = (value * 100).toFixed(2) + "%";
      ticking = false;
    }

    function requestProgressUpdate() {
      if (ticking) return;
      ticking = true;
      window.requestAnimationFrame(updateProgress);
    }

    window.addEventListener("scroll", requestProgressUpdate, { passive: true });
    window.addEventListener("resize", requestProgressUpdate, { passive: true });
    updateProgress();
  }());
</script>

<!--
  Yoast generuje dane Article, WebPage, Person, Organization i BreadcrumbList.
  Poniższy blok dodaje wyłącznie pytania widoczne w treści i nie tworzy
  konkurencyjnej encji Product ani Offer.
-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Czy projekt ogrzewania podłogowego jest naprawdę darmowy?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tak, pełne 100% wartości projektu odliczamy po zakupie wszystkich rur, rozdzielaczy i szafek instalacyjnych wynikających z dokumentacji. Projekt jest najpierw opłacany, a jego wartość zostaje następnie odjęta od należności za materiały. Jeżeli nie kupisz materiałów, projekt pozostaje standardowo opłaconą usługą."
      }
    },
    {
      "@type": "Question",
      "name": "Czy muszę kupić materiały przed wykonaniem projektu?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. Najpierw zamawiasz projekt i przekazujesz dane budynku. Dopiero po wykonaniu obliczeń oraz zestawienia materiałowego możemy przygotować rzeczywistą wycenę elementów potrzebnych do realizacji instalacji."
      }
    },
    {
      "@type": "Question",
      "name": "Czy zamówienie projektu zobowiązuje mnie do zakupu materiałów?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. Możesz odebrać dokumentację i kupić materiały w dowolnie wybranym miejscu. W takim przypadku nie następuje odliczenie wartości projektu, ponieważ pozostaje on samodzielną, wykonaną usługą."
      }
    },
    {
      "@type": "Question",
      "name": "Jak następuje zwrot kosztu projektu?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Po zaakceptowaniu przygotowanej wyceny i zakupie kompletu rur, rozdzielaczy oraz szafek instalacyjnych wartość wcześniej opłaconego projektu jest odejmowana od kwoty należnej za materiały. Nie jest to wypłata gotówki za sam fakt zamówienia dokumentacji."
      }
    },
    {
      "@type": "Question",
      "name": "Jakie materiały muszę kupić, aby otrzymać pełny zwrot?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Pełny zwrot 100% wymaga zakupu wszystkich rur ogrzewania podłogowego, rozdzielaczy oraz szafek instalacyjnych wynikających z projektu. Pozostały osprzęt może być ujęty w wycenie, ale nie zastępuje tych trzech podstawowych grup."
      }
    },
    {
      "@type": "Question",
      "name": "Co się stanie, jeśli kupię tylko część materiałów?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Wartość zwrotu obliczamy wprost proporcjonalnie do wielkości zakupionego zakresu instalacji. Jeżeli materiały obejmują 50% projektowanego zakresu, odliczamy 50% wcześniej opłaconej wartości projektu. Dokładny udział potwierdzamy w indywidualnej wycenie."
      }
    },
    {
      "@type": "Question",
      "name": "Czy darmowy projekt ma mniejszy zakres niż projekt płatny?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. Dokumentacja ma ten sam zakres techniczny niezależnie od późniejszej decyzji o zakupie materiałów. Obejmuje obliczenia cieplne, projekt pętli, parametry hydrauliczne oraz zestawienie materiałowe zgodne z zamówionym wariantem usługi."
      }
    },
    {
      "@type": "Question",
      "name": "Czy projekt zawiera obliczenia OZC?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tak. Obliczenia zapotrzebowania na ciepło dla budynku i pomieszczeń są podstawą doboru rozstawów rur, temperatury zasilania, przepływów oraz mocy instalacji."
      }
    },
    {
      "@type": "Question",
      "name": "Czy jest to darmowy program do projektowania ogrzewania podłogowego?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nie. Jest to indywidualna usługa projektowa wykonywana na podstawie danych konkretnego budynku. Program lub kalkulator może wykonać obliczenie orientacyjne, ale nie zastępuje analizy cieplnej, hydrauliki i rysunków wykonawczych."
      }
    },
    {
      "@type": "Question",
      "name": "Czy mogę samodzielnie wykonać instalację na podstawie projektu?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Dokumentacja podaje przebieg pętli, ich długości, rozstawy oraz wymagane przepływy, dlatego może być podstawą do samodzielnego ułożenia rur. Podłączenia hydrauliczne, próbę szczelności, regulację i uruchomienie warto jednak powierzyć osobie posiadającej odpowiednie doświadczenie."
      }
    },
    {
      "@type": "Question",
      "name": "Czy otrzymuję projekt budowlany z pieczątkami?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Standardowa usługa obejmuje techniczną koncepcję wykonawczą instalacji i nie jest projektem budowlanym wymaganym do uzyskania pozwolenia na budowę. Wersję papierową z wymaganymi podpisami lub pieczątkami wyceniamy indywidualnie po wcześniejszym kontakcie."
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/darmowy-projekt-ogrzewania-podlogowego/">Darmowy projekt 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/darmowy-projekt-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
