<?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 bezwładność cieplna - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 02 Aug 2026 10:59:24 +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 bezwładność cieplna - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/bezwladnosc-cieplna/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 10:11:32 +0000</pubDate>
				<category><![CDATA[Błędy budowlane]]></category>
		<category><![CDATA[Błędy instalacyjne]]></category>
		<category><![CDATA[Domy drewniane]]></category>
		<category><![CDATA[Domy szkieletowe]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty budowy domu]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Systemy zabudowy suchej]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[błędy instalacyjne]]></category>
		<category><![CDATA[dom drewniany]]></category>
		<category><![CDATA[dom szkieletowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[lamele aluminiowe]]></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]]></category>
		<category><![CDATA[projekt ozc]]></category>
		<category><![CDATA[system suchy]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4030</guid>

					<description><![CDATA[<p>Planowanie instalacji grzewczej w budynku o lekkiej konstrukcji drewnianej wymaga zupełnie innego podejścia niż w tradycyjnym budownictwie murowanym. Niska bezwładność cieplna, brak ciężkich ścian akumulujących energię oraz ryzyko przeciążenia stropów sprawiają, że standardowe schematy instalatorów często tutaj zawodzą. W tym artykule bierzemy pod lupę temat, jakim jest ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki, na które najczęściej wpadają inwestorzy. Dowiesz się, dlaczego system suchy deklasuje ciężką wylewkę, jak uniknąć kosztownego przewymiarowania rur, dlaczego optymalizacja temperatury zasilania jest kluczowa dla żywotności pompy ciepła, oraz o co dokładnie zapytać wykonawcę przed podpisaniem umowy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</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: #e0f2fe;
    --rk-intro-gold: #eab308;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-red: #ef4444;
}

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

/* Górna część - Hook i Szybka odpowiedź */
.rk-intro-header {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
}

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

.rk-intro-hook {
    font-size: 18px;
    font-weight: 600;
    color: #cbd5e1;
    margin: 0 0 30px 0;
    line-height: 1.6;
    border-left: 4px solid var(--rk-intro-gold);
    padding-left: 20px;
}

/* Moduł "Szybka Odpowiedź" */
.rk-quick-answer {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 25px 30px;
}

.rk-qa-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 900;
    color: var(--rk-intro-gold);
    margin: 0 0 15px 0;
    letter-spacing: 1px;
}

.rk-quick-answer p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: #f8fafc;
}

.rk-quick-answer strong {
    color: #38bdf8;
    font-weight: 800;
}

/* Dolna część - Mapa Artykułu (Interaktywna) */
.rk-intro-nav-wrapper {
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-intro-border);
}

.rk-intro-nav-title {
    padding: 25px 50px 0 50px;
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

.rk-intro-nav {
    display: flex;
    padding: 20px 50px;
    gap: 15px;
}

.rk-intro-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 800;
    font-size: 15px;
    color: #64748b;
    text-align: left;
    /* BRAK ANIMACJI - natychmiastowa zmiana stanu */
}

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

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

.rk-intro-btn svg {
    flex-shrink: 0;
}

/* Obszar paneli informacyjnych */
.rk-intro-content {
    padding: 35px 50px;
    background: #ffffff;
}

.rk-intro-panel {
    display: none;
    /* BRAK ANIMACJI */
}

.rk-intro-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-intro-features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-top: 25px;
}

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

.rk-feature-icon {
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    flex-shrink: 0;
}

.rk-feature-text h4 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-intro-dark);
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-nav-title, .rk-intro-nav, .rk-intro-content { padding: 25px 20px; }
    .rk-intro-nav { flex-direction: column; gap: 10px; }
    .rk-intro-btn { width: 100%; padding: 15px 20px; }
    .rk-intro-features { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki",
    "description": "Kompendium wiedzy: dlaczego lekki szkielet drewniany wymaga zasilania 28-32°C oraz systemów suchych. Sprawdź, jak unikać błędów niszczących COP 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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wstep",
    "name": "Kluczowe Parametry Ogrzewania Podłogowego w Lekkim Szkielecie",
    "description": "Zestawienie wytycznych brzegowych dotyczących temperatur, mocy jednostkowej oraz zaleceń statycznych dla drewnianych konstrukcji domów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w domu szkieletowym",
      "niska bezwładność cieplna budynku",
      "temperatura zasilania podłogówki 30 stopni",
      "spadek efektywności cop pompy ciepła",
      "system suchy ogrzewania podłogowego wady i zalety"
    ],
    "measurementTechnique": "Określenie brzegowych parametrów wydajnościowych (zakres 28-32 C) i obciążeniowych (40-60 W/m2) na bazie fizyki cieplnej konstrukcji lekkich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagana temperatura zasilania czynnika grzewczego: 28 do 32 stopni Celsjusza.",
        "Maksymalne bezpieczne obciążenie jednostkowe posadzki: od 40 do 60 W/m2.",
        "Współczynnik przenikania ciepła ścian U w szkielecie: poniżej 0,12 W/m2K.",
        "Brak zrównoważenia OZC skutkuje drastycznym spadkiem sprawności (COP) pompy ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wstep",
    "name": "Interaktywny Przewodnik Inwestora HVAC",
    "description": "Narzędzie wprowadzające inwestora w tematykę artykułu, agregujące dostęp do kalkulatorów obciążeń, symulatorów hydrauliki i diagramów strat ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-article-intro">
    
    <!-- Hook i Szybka Odpowiedź -->
    <div class="rk-intro-header">
        <h2>Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki</h2>
        
        <div class="rk-intro-hook">
            Większość wykonawców przenosi nawyki z budownictwa murowanego na lekkie konstrukcje drewniane. To najszybsza droga do pękania posadzek, przegrzewania wnętrz i uszkodzenia pompy ciepła. Poznaj inną fizykę budowli.
        </div>
        
        <div class="rk-quick-answer">
            <div class="rk-qa-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                Szybka odpowiedź eksperta
            </div>
            <p>Ogrzewanie podłogowe w domu szkieletowym to ultra-niskotemperaturowy system płaszczyznowy. Wymaga on drastycznej redukcji temperatury zasilania do zakresu <strong>28–32°C</strong> oraz precyzyjnego ograniczenia obciążenia jednostkowego do <strong>40–60 W/m²</strong>. Kluczem do sukcesu jest rezygnacja z ciężkich betonowych wylewek na rzecz systemów suchych oraz projektowanie przepływów na twardych liczbach, a nie na tzw. &#8222;oku&#8221; instalatora.</p>
        </div>
    </div>

    <!-- Mapa Artykułu / Teaser Narzędzi -->
    <div class="rk-intro-nav-wrapper">
        <h3 class="rk-intro-nav-title">Co znajdziesz w tym kompendium? Wybierz sekcję:</h3>
        <div class="rk-intro-nav">
            <button class="rk-intro-btn active" onclick="switchIntroPanel('introTheory', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"></path><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"></path></svg>
                Fizyka Szkieletu
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introTools', this)">
                <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>
                Kalkulatory i Symulatory
            </button>
            <button class="rk-intro-btn" onclick="switchIntroPanel('introErrors', this)">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                Diagnoza Błędów
            </button>
        </div>
    </div>

    <!-- Panele informacyjne -->
    <div class="rk-intro-content">
        
        <!-- Panel 1: Fizyka -->
        <div class="rk-intro-panel" id="introTheory" style="display: block;">
            <h3>Lekki szkielet to inna gra</h3>
            <p>W przeciwieństwie do tradycyjnego budownictwa murowanego, lekki szkielet drewniany charakteryzuje się niemal zerową bezwładnością cieplną oraz skrajnie niskim oporem cieplnym przegród (współczynnik przenikania U wynosi często poniżej 0,12 W/m²·K). Zrozumienie, <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">czym jest bezwładność cieplna w ogrzewaniu podłogowym</a>, pozwoli Ci uniknąć zjawiska uciążliwego &#8222;przegrzewania&#8221; domu przy pierwszych promieniach słonecznych.</p>
        </div>

        <!-- Panel 2: Narzędzia -->
        <div class="rk-intro-panel" id="introTools">
            <h3>Sprawdź parametry swojego domu na żywo</h3>
            <p>Ten artykuł to nie tylko sucha teoria. Przewijając w dół, uzyskasz dostęp do wbudowanych interaktywnych narzędzi, dzięki którym samodzielnie wykonasz podstawowy audyt planowanej inwestycji.</p>
            <div class="rk-intro-features">
                <div class="rk-feature-card">
                    <div class="rk-feature-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="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-feature-text">
                        <h4>Symulator OZC</h4>
                        <p>Dowiedz się dokładnie, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a> i przelicz moc dla swojego metrażu.</p>
                    </div>
                </div>
                <div class="rk-feature-card">
                    <div class="rk-feature-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>
                    <div class="rk-feature-text">
                        <h4>Kalkulator Parametrów</h4>
                        <p>Zoptymalizuj rozstaw rur, aby <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niska temperatura zasilania pompy ciepła (do 35 stopni)</a> stała się faktem.</p>
                    </div>
                </div>
            </div>
        </div>

        <!-- Panel 3: Błędy -->
        <div class="rk-intro-panel" id="introErrors">
            <h3>Wyeliminuj patologie wykonawcze</h3>
            <p>Zastosowanie klasycznych, ciężkich jastrychów cementowych bez uprzedniej analizy statycznej belek, oraz brak hydraulicznego zrównoważenia pętli, to najczęstsze błędy &#8222;fachowców&#8221;. Prowadzą one bezpośrednio do pękania wykończenia posadzek, braku sterowalności oraz drastycznego spadku efektywności (COP) pompy ciepła. W tym materiale obalamy mity i pokazujemy rozwiązania ratujące portfel.</p>
        </div>

    </div>
</div>

<script>
function switchIntroPanel(panelId, btnElement) {
    // 1. Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-intro-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // 3. Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-intro-content');
    var allPanels = contentArea.getElementsByClassName('rk-intro-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie celu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-wgt-dark: #0f172a;
    --rk-wgt-blue: #0284c7;
    --rk-wgt-blue-light: #f0f9ff;
    --rk-wgt-gold: #eab308;
    --rk-wgt-bg: #ffffff;
    --rk-wgt-border: #e2e8f0;
    --rk-wgt-text: #475569;
    --rk-wgt-red: #ef4444;
    --rk-wgt-red-bg: #fef2f2;
    --rk-wgt-green: #10b981;
    --rk-wgt-green-bg: #f0fdf4;
}

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

/* Header */
.rk-wgt-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-wgt-border);
}

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

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

/* Interaktywny Panel Wyboru (Poziomo na desktop, pionowo na mobile) */
.rk-wgt-nav {
    display: flex;
    flex-direction: row;
    background: #f8fafc;
    padding: 25px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-wgt-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 20px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-wgt-border);
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-tech-btn:hover {
    background: var(--rk-wgt-blue-light);
    border-color: #cbd5e1;
}

.rk-tech-btn.active {
    border-color: var(--rk-wgt-blue);
    background: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
    transform: translateY(-3px);
}

.rk-tech-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 12px;
    transition: all 0.3s;
}

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

.rk-tech-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

.rk-tech-btn.active .rk-tech-title {
    color: var(--rk-wgt-dark);
}

/* Wizualizator Metryk (Kafelki) */
.rk-wgt-dashboard {
    padding: 40px 50px 0 50px;
    background: #ffffff;
}

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

.rk-metric-card {
    padding: 25px 20px;
    border-radius: 16px;
    border: 2px solid;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all 0.4s ease;
}

.rk-metric-card svg {
    margin-bottom: 12px;
}

.rk-metric-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    letter-spacing: 0.5px;
    margin-bottom: 5px;
}

.rk-metric-val {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
}

/* Dynamiczne stany kafelków */
.state-good {
    background: var(--rk-wgt-green-bg);
    border-color: rgba(16, 185, 129, 0.3);
}
.state-good svg { color: var(--rk-wgt-green); }
.state-good .rk-metric-val { color: var(--rk-wgt-green); }

.state-warn {
    background: #fef9c3;
    border-color: rgba(234, 179, 8, 0.4);
}
.state-warn svg { color: var(--rk-wgt-gold); }
.state-warn .rk-metric-val { color: #ca8a04; }

.state-bad {
    background: var(--rk-wgt-red-bg);
    border-color: rgba(239, 68, 68, 0.3);
}
.state-bad svg { color: var(--rk-wgt-red); }
.state-bad .rk-metric-val { color: var(--rk-wgt-red); }

/* Treść inżynieryjna - Układ jednokolumnowy */
.rk-wgt-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-wgt-section {
    margin-bottom: 40px;
}

.rk-wgt-section:last-child {
    margin-bottom: 0;
}

.rk-wgt-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-wgt-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-wgt-section h3 svg {
    color: var(--rk-wgt-blue);
}

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

.rk-wgt-section ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
    color: var(--rk-wgt-text);
}

.rk-wgt-section li {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 10px;
}

.rk-wgt-section li strong {
    color: var(--rk-wgt-dark);
}

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

.rk-wgt-alert {
    background: var(--rk-wgt-red-bg);
    border-left: 4px solid var(--rk-wgt-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

.rk-wgt-alert p {
    margin: 0;
    color: #991b1b;
}

.rk-wgt-info {
    background: #f8fafc;
    border-left: 4px solid var(--rk-wgt-blue);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 20px 0;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-wgt-header, .rk-wgt-nav, .rk-wgt-dashboard, .rk-wgt-content { padding: 25px 20px; }
    
    /* Na mobile nawigacja układa się w pionie (jeden pod drugim) */
    .rk-wgt-nav { flex-direction: column; gap: 12px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-title { font-size: 16px; }
    
    /* Na mobile kafelki również jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-metric-card { flex-direction: row; justify-content: flex-start; gap: 15px; padding: 15px 20px; text-align: left; }
    .rk-metric-card svg { margin-bottom: 0; width: 32px; height: 32px; }
    .rk-metric-label { margin-bottom: 0; }
    
    .rk-wgt-section h3 { font-size: 20px; align-items: flex-start; }
    .rk-wgt-section h3 svg { flex-shrink: 0; margin-top: 3px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-wylewka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?",
    "description": "Zestawienie obciążeń stropowych i wilgoci technologicznej. Sprawdź, dlaczego wylewka cementowa to zagrożenie dla drewna C24, a system suchy to konieczność.",
    "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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-wylewki",
    "name": "Obciążenia Statyczne i Wilgotnościowe Stropów Drewnianych",
    "description": "Baza danych parametrów granicznych dla drewnianych konstrukcji stropowych w odniesieniu do wylewek i suchych systemów ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka na ogrzewanie podłogowe w domu szkieletowym",
      "system suchy ogrzewania podłogowego waga",
      "ile waży jastrych cementowy",
      "wilgoć technologiczna w drewnie C24",
      "ogrzewanie na drewnianym stropie"
    ],
    "measurementTechnique": "Porównanie parametrów obciążeniowych (kg/m2) i objętości wody technologicznej w oparciu o normy PN-EN 1995-1-1 oraz PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Waga ~30 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych Anhydrytowy (40 mm): Waga ~100 kg/m2, Wilgoć ok. 1000 litrów, Reakcja 2-3 godz.",
        "Jastrych Cementowy (65 mm): Waga ~150 kg/m2, Wilgoć 1000-2500 litrów, Reakcja 4-6 godz."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-wylewki",
    "name": "Wizualizator Obciążeń i Wilgoci Stropu Drewnianego",
    "description": "Interaktywne narzędzie prezentujące w czasie rzeczywistym ryzyka statyczne oraz poziomy wilgoci wprowadzanej do budynku zależnie od dobranej wylewki.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wgt-container" id="rk-floor-analyzer">
    
    <div class="rk-wgt-header">
        <h2>Czy ogrzewanie podłogowe w domu szkieletowym wymaga wylewki i jaka technologia posadzki jest dopuszczalna?</h2>
        <p>Bezpośrednia odpowiedź: <strong>Nie, dom szkieletowy nie wymaga klasycznej, ciężkiej wylewki cementowej.</strong> Najbardziej rekomendowaną technologią jest ultra-lekki system suchy zgodny z normą PN-EN 1264-4, który całkowicie eliminuje nadmierne obciążenie drewnianego stropu.</p>
    </div>

    <!-- Interaktywny Selektor -->
    <div class="rk-wgt-nav">
        <button class="rk-tech-btn active" onclick="updateFloorData('dry', this)">
            <div class="rk-tech-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>
            <span class="rk-tech-title">System Suchy<br>(Lamele Aluminiowe)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('anh', this)">
            <div class="rk-tech-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 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
            </div>
            <span class="rk-tech-title">Jastrych Anhydryt.<br>(Płynny, 40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateFloorData('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" 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>
            <span class="rk-tech-title">Jastrych Cement.<br>(Tradycyjny, 65 mm)</span>
        </button>
    </div>

    <!-- Dashboard Parametrów -->
    <div class="rk-wgt-dashboard">
        <div class="rk-dash-grid">
            <div class="rk-metric-card state-good" id="cardWeight">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                <div class="rk-metric-label">Masa / Obciążenie</div>
                <div class="rk-metric-val" id="txtWeight">~30 kg/m²</div>
            </div>
            <div class="rk-metric-card state-good" id="cardMoist">
                <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                <div class="rk-metric-label">Wilgoć do budynku</div>
                <div class="rk-metric-val" id="txtMoist">0 litrów</div>
            </div>
            <div class="rk-metric-card state-good" id="cardReact">
                <svg width="32" height="32" 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 class="rk-metric-label">Czas reakcji</div>
                <div class="rk-metric-val" id="txtReact">30 - 60 min</div>
            </div>
        </div>
    </div>

    <!-- Treść Inżynieryjna -->
    <div class="rk-wgt-content">
        
        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                Charakterystyka techniczna systemu suchego
            </h3>
            <p>W systemie suchym (np. KISAN Comfort Floor Dry) rury grzewcze układane są w profilowanych płytach styropianowych (EPS 200–300 o wytrzymałości na ściskanie przy 10% odkształceniu równym 200–300 kPa). Ciepło z rury przekazywane jest do aluminiowych lameli transmisyjnych, które pokrywają do 80-90% powierzchni. Dzięki temu rozkład temperatury na posadzce jest równomierny, mimo całkowitego braku betonowej warstwy akumulacyjnej. Jeśli zastanawiasz się, <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy w wodnym ogrzewaniu podłogowym</a>, to wiedz, że to obecnie najbezpieczniejsza metoda dla drewna.</p>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Dlaczego jastrych cementowy to zagrożenie?
            </h3>
            
            <div class="rk-wgt-alert">
                <p><strong>Woda technologiczna (wilgoć budowlana):</strong> Wykonanie mokrej wylewki wiąże się z wprowadzeniem do wnętrza domu szkieletowego od 1000 do nawet 2500 litrów wody!</p>
            </div>
            
            <ul>
                <li>Elementem nośnym jest tu certyfikowane drewno C24 o wilgotności maksymalnej 16-18% (zgodnie z normą PN-EN 1995-1-1).</li>
                <li>Tak gwałtowny wzrost wilgotności powietrza grozi potężnym pęcznieniem drewna i utratą parametrów wełny mineralnej w ścianach. Przeczytaj dokładnie, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wpływa na wilgotność powietrza w domu</a>.</li>
                <li><strong>Przeciążenie statyczne:</strong> Drewniane belki są projektowane na obciążenia 1,5 do 2,0 kN/m². Dodanie 150 kg/m² wylewki cementowej o grubości 65 mm konsumuje niemal cały zapas nośności stropu! Poznaj zasady, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>.</li>
            </ul>
        </div>

        <div class="rk-wgt-section">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
                Alternatywa: Cienka wylewka anhydrytowa
            </h3>
            <div class="rk-wgt-info">
                <p>Jeśli inwestor mimo wszystko decyduje się na wylewkę płynną, dopuszczalny jest wyłącznie jastrych anhydrytowy (samopoziomujący) o bardzo wysokim współczynniku przewodzenia ciepła lambda powyżej 1,6 W/(mK).</p>
            </div>
            <p>Dzięki wysokiej wytrzymałości na zginanie (klasa F5/F7 według PN-EN 13813), minimalna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki betonowej na ogrzewanie podłogowe</a> nad samą rurką grzewczą może wynosić zaledwie 30 mm. Zmniejsza to masę metra kwadratowego posadzki do około 100 kg/m² i znacząco skraca czas schnięcia w porównaniu do cementu.</p>
        </div>

    </div>
</div>

<script>
function updateFloorData(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Elementy DOM
    var cardWeight = document.getElementById('cardWeight');
    var cardMoist = document.getElementById('cardMoist');
    var cardReact = document.getElementById('cardReact');
    
    var txtWeight = document.getElementById('txtWeight');
    var txtMoist = document.getElementById('txtMoist');
    var txtReact = document.getElementById('txtReact');

    // 3. Logika zmiany danych (bez ampersandów)
    if (techId === 'dry') {
        txtWeight.textContent = '~30 kg/m²';
        cardWeight.className = 'rk-metric-card state-good';
        
        txtMoist.textContent = '0 litrów';
        cardMoist.className = 'rk-metric-card state-good';
        
        txtReact.textContent = '30 - 60 min';
        cardReact.className = 'rk-metric-card state-good';
    }
    
    if (techId === 'anh') {
        txtWeight.textContent = '~100 kg/m²';
        cardWeight.className = 'rk-metric-card state-warn';
        
        txtMoist.textContent = '~1000 litrów';
        cardMoist.className = 'rk-metric-card state-warn';
        
        txtReact.textContent = '2 - 3 godz.';
        cardReact.className = 'rk-metric-card state-warn';
    }
    
    if (techId === 'cem') {
        txtWeight.textContent = '>150 kg/m²';
        cardWeight.className = 'rk-metric-card state-bad';
        
        txtMoist.textContent = 'Nawet 2500 L';
        cardMoist.className = 'rk-metric-card state-bad';
        
        txtReact.textContent = '4 - 6 godz.';
        cardReact.className = 'rk-metric-card state-bad';
    }
}
</script>



<style>
:root {
    --rk-ins-dark: #0f172a;
    --rk-ins-blue: #0284c7;
    --rk-ins-blue-light: #e0f2fe;
    --rk-ins-gold: #eab308;
    --rk-ins-bg: #ffffff;
    --rk-ins-border: #e2e8f0;
    --rk-ins-text: #475569;
    --rk-ins-red: #ef4444;
    --rk-ins-green: #10b981;
}

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

/* Header */
.rk-ins-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border-bottom: 1px solid var(--rk-ins-border);
}

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

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

.rk-ins-header strong {
    color: var(--rk-ins-dark);
}

/* Panel Suwaków - Symulator */
.rk-ins-simulator {
    background: var(--rk-ins-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-ins-gold);
}

.rk-sim-title {
    font-size: 18px;
    font-weight: 800;
    color: #f8fafc;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-sim-title svg { color: #38bdf8; }

.rk-sim-control {
    background: rgba(255,255,255,0.05);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid rgba(255,255,255,0.1);
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 15px;
}

.rk-slider-val-badge {
    background: #38bdf8;
    color: var(--rk-ins-dark);
    padding: 6px 14px;
    border-radius: 8px;
    font-weight: 900;
    font-size: 18px;
}

/* Suwak stylizowany */
.rk-ins-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-ins-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-ins-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-ins-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Dashboard Wyników na żywo */
.rk-ins-dashboard {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-ins-red);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Treść inżynieryjna (Rozwinięcie) */
.rk-ins-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-ins-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-ins-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-ins-content h3 svg { color: var(--rk-ins-blue); }

.rk-ins-math-box {
    background: #f8fafc;
    border-left: 4px solid var(--rk-ins-blue);
    padding: 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
}

.rk-ins-math-line {
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-ins-dark);
    margin: 0 0 10px 0;
    background: #e2e8f0;
    padding: 5px 10px;
    display: inline-block;
    border-radius: 6px;
}

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

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

.rk-ins-consequences {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 30px;
}

.rk-cons-box {
    padding: 25px;
    border-radius: 16px;
    background: #fef2f2;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.rk-cons-box h4 {
    color: var(--rk-ins-red);
    font-size: 17px;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-cons-box p {
    font-size: 15px;
    margin: 0;
    color: var(--rk-ins-text);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-ins-header, .rk-ins-simulator, .rk-ins-content { padding: 30px 20px; }
    .rk-ins-dashboard { grid-template-columns: 1fr; gap: 10px; }
    .rk-ins-consequences { grid-template-columns: 1fr; }
    .rk-dash-val { font-size: 22px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-izolacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?",
    "description": "Kalkulator izolacji podłoża. Sprawdź, dlaczego 18-20 cm styropianu to absolutne minimum, aby uniknąć 25% strat ciepła do gruntu i obniżenia COP 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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-izolacja",
    "name": "Parametry Izolacyjności Termicznej EPS pod Ogrzewanie Podłogowe",
    "description": "Baza parametrów fizycznych określających opór cieplny (R) i spadek efektywności cieplnej w zależności od grubości styropianu aplikowanego na gruncie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość styropianu pod podłogówkę",
      "opór cieplny izolacji fundamentu",
      "straty ciepła do gruntu",
      "współczynnik przewodzenia ciepła styropianu",
      "ogrzewanie podłogowe na gruncie"
    ],
    "measurementTechnique": "Modelowanie utraty ciepła z wykorzystaniem wzoru na opór cieplny R = d/lambda w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymagany opór cieplny R podłogi na gruncie przy pompie ciepła: powyżej 4,5 (m2*K)/W.",
        "Straty ciepła do gruntu przy grubości izolacji 10 cm osiągają poziom od 18% do 25%.",
        "Zalecana grubość EPS 100 lambda 0,031: 18 cm do 20 cm.",
        "Zastosowanie cieńszej izolacji wymusza podbicie temperatury zasilania do 40°C, co obniża współczynnik SCOP pompy o około 15%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-izolacja",
    "name": "Symulator Strat Ciepła do Gruntu",
    "description": "Interaktywny kalkulator szacujący ucieczkę energii grzewczej do fundamentu w zależności od dobranej grubości izolacji styropianowej EPS.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ins-container" id="rk-insulation-sim">
    <div class="rk-ins-header">
        <h2>Ile styropianu na gruncie pod ogrzewanie podłogowe w domu drewnianym należy zastosować?</h2>
        <p>Bezpośrednia odpowiedź: Na płycie fundamentowej lub stropie nad gruntem należy zastosować izolację termiczną o łącznym oporze cieplnym <strong>R rzędu 4,5 (m²·K)/W</strong> lub więcej. W praktyce oznacza to montaż minimum <strong>18–20 cm twardego styropianu</strong> klasy EPS 100-035 lub EPS 100-031 (grafitowego), co gwarantuje ograniczenie strat ciepła do gruntu do bezpiecznego poziomu 5–8% mocy instalacji.</p>
    </div>

    <!-- Symulator Na Żywo -->
    <div class="rk-ins-simulator">
        <h3 class="rk-sim-title">
            <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>
            Symulator ucieczki ciepła do gruntu
        </h3>
        
        <div class="rk-sim-control">
            <div class="rk-slider-label">
                <span>Wybierz grubość układanego styropianu (EPS grafit λ=0,031):</span>
                <span class="rk-slider-val-badge" id="insVal">20 cm</span>
            </div>
            <input type="range" class="rk-ins-range" id="insSlider" min="5" max="25" step="1" value="20" oninput="runInsSim()">
        </div>

        <div class="rk-ins-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Opór Cieplny (R)</div>
                <div class="rk-dash-val" id="resR" style="color: #38bdf8;">6.45</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Straty w dół (%)</div>
                <div class="rk-dash-val" id="resLoss" style="color: #10b981;">~6%</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wydajność pompy (COP)</div>
                <div class="rk-dash-val" id="resCop" style="color: #10b981;">Optymalna</div>
            </div>
            <div class="rk-dash-alert" id="insAlert">
                ⚠️ KRYTYCZNY BŁĄD IZOLACJI: Ucieczka energii do fundamentu jest gigantyczna. Płacisz za ogrzewanie ziemi pod budynkiem, a nie pokoju!
            </div>
        </div>
    </div>

    <!-- Wyjaśnienie inżynierskie i linki SEO -->
    <div class="rk-ins-content">
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
            Wyliczenie strat ciepła z fizyki budowli
        </h3>
        
        <p>Zgodnie z normą PN-EN 1264-4, dla stropów graniczących z gruntem lub przestrzenią nieogrzewaną, minimalny opór cieplny izolacji wynosi R = 2,25 (m²·K)/W. Jednak przy dzisiejszych standardach i pompach ciepła dążymy do maksymalizacji efektywności, co stawia to wymaganie o wiele wyżej.</p>
        
        <div class="rk-ins-math-box">
            <div class="rk-ins-math-line">Wzór: R = Grubość (d) / Lambda (λ)</div>
            <div class="rk-ins-math-line">R = 0,18 m / 0,031 W/(m·K) = 5,80 (m²·K)/W</div>
            <p style="margin: 15px 0 0 0; font-size: 14px;">Dodając opory przejmowania ciepła posadzki, osiągamy znakomity współczynnik przenikania ciepła podłogi na gruncie U = 0,15 W/(m²·K).</p>
        </div>

        <p>Chcesz mieć pewność, że wykonawca nie zaniża norm? Dokładnie ten sam mechanizm fizyki stosuje się przy bardzo popularnych rozwiązaniach wylewanych wprost na ziemi – poznaj detale sprawdzając <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">ogrzewanie podłogowe w płycie fundamentowej</a>.</p>

        <div class="rk-ins-consequences">
            <div class="rk-cons-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"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                    Wzrost strat w grunt o 18–25%
                </h4>
                <p>Ciepło generowane przez rury migruje zawsze w kierunku o najmniejszym oporze termicznym. Zamiast iść w górę do pokoju, przy zbyt cienkim materiale izolacyjnym ogrzewasz beton pod budynkiem. Koniecznie sprawdź pełen zbiór zasad dotyczących tego, <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> rekomendują inżynierowie.</p>
            </div>
            <div class="rk-cons-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>
                    Zapaść efektywności (SCOP)
                </h4>
                <p>Aby nadrobić ucieczkę energii w dół i zachować 20°C w pokoju, instalator podniesie Ci temperaturę zasilania z 30°C do np. 38°C. Pamiętaj, że ostateczny <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R (m²K)/W to klucz do efektywności</a>, a jego obniżenie powoduje roczny spadek sprawności pompy (COP) nawet o 15–20%.</p>
            </div>
        </div>
        
        <p style="margin-top: 25px;">Chcesz zobaczyć, jak decyzje o dociepleniu i precyzyjnych rozstawach wpływają bezpośrednio na Twoje portfele przez kolejne dekady? Przeanalizujmy <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rzeczywiste oszczędności na kosztach ogrzewania w skali roku</a> na przykładzie prawdziwego domu.</p>

    </div>
</div>

<script>
function runInsSim() {
    // 1. Pobranie danych wejściowych
    var thicknessCm = parseFloat(document.getElementById('insSlider').value);
    
    // 2. Aktualizacja labela nad suwakiem
    document.getElementById('insVal').textContent = thicknessCm + ' cm';
    
    // 3. Model matematyczny
    var thicknessM = thicknessCm / 100;
    var lambda = 0.031; // EPS 100 Grafit
    var resistance = thicknessM / lambda;
    
    // Uproszczony model strat ciepła w dół do celów demonstracyjnych
    // Założenie: 5 cm to ~35% strat, 10 cm to ~22%, 18 cm to ~7%, 25 cm to ~4%.
    var lossPercent = 0;
    var copStatus = "";
    var alertDisplay = "none";
    var lossColor = "";
    var copColor = "";

    // Logika warunkowa bez podwójnych ampersandów
    if (thicknessCm < 10) {
        lossPercent = 35 - (thicknessCm - 5) * 2; 
        copStatus = "Spadek -25%";
        alertDisplay = "block";
        lossColor = "#ef4444"; // Czerwony
        copColor = "#ef4444";
    } else {
        if (thicknessCm < 15) {
            lossPercent = 25 - (thicknessCm - 10) * 1.5;
            copStatus = "Spadek -15%";
            alertDisplay = "block";
            lossColor = "#eab308"; // Zółty/Gold
            copColor = "#eab308";
        } else {
            if (thicknessCm < 18) {
                lossPercent = 17 - (thicknessCm - 15) * 1.5;
                copStatus = "Dopuszczalna";
                alertDisplay = "none";
                lossColor = "#eab308"; 
                copColor = "#10b981"; // Zielony
            } else {
                lossPercent = 12 - (thicknessCm - 18) * 1;
                copStatus = "Optymalna";
                alertDisplay = "none";
                lossColor = "#10b981"; 
                copColor = "#10b981";
            }
        }
    }
    
    // Zabezpieczenie minimalnej wartości utraty (zawsze jakieś straty są)
    if (lossPercent < 4) {
        lossPercent = 4;
    }

    // 4. Aktualizacja Dashboardu
    document.getElementById('resR').textContent = resistance.toFixed(2);
    
    var elLoss = document.getElementById('resLoss');
    elLoss.textContent = '~' + Math.round(lossPercent) + '%';
    elLoss.style.color = lossColor;
    
    var elCop = document.getElementById('resCop');
    elCop.textContent = copStatus;
    elCop.style.color = copColor;
    
    document.getElementById('insAlert').style.display = alertDisplay;
}

// Inicjalizacja przy ładowaniu strony (ustawia domyślne 20 cm)
runInsSim();
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #f0f9ff;
    --rk-flow-gold: #eab308;
    --rk-flow-bg: #ffffff;
    --rk-flow-border: #e2e8f0;
    --rk-flow-text: #475569;
    --rk-flow-accent: #38bdf8;
    --rk-flow-green: #10b981;
}

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

/* Header Section */
.rk-flow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-flow-border);
}

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

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

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

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

/* Interaktywny Kalkulator - Panel Sterowania */
.rk-flow-calc-box {
    display: flex;
    flex-direction: column;
    background: var(--rk-flow-dark);
}

.rk-flow-controls {
    padding: 35px 50px;
    border-bottom: 2px dashed rgba(255,255,255,0.15);
}

.rk-flow-controls h3 {
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-flow-controls h3 svg { color: var(--rk-flow-accent); }

.rk-slider-stack {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #94a3b8;
    font-size: 15px;
    font-weight: 700;
}

.rk-slider-val {
    background: var(--rk-flow-accent);
    color: var(--rk-flow-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Custom Sliders */
.rk-flow-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
}
.rk-flow-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-flow-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 12px rgba(234, 179, 8, 0.5);
    transition: transform 0.1s;
}
.rk-flow-range::-webkit-slider-thumb:hover { transform: scale(1.15); }

/* Wyniki (Dashboard hydrauliczny) */
.rk-flow-results {
    padding: 35px 50px;
    background: #1e293b;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-result-card {
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-result-title {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 8px;
    letter-spacing: 0.5px;
}

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

.rk-result-value span {
    font-size: 16px;
    color: var(--rk-flow-accent);
    margin-left: 5px;
}

.rk-result-highlight { color: var(--rk-flow-green); }
.rk-result-warn { color: var(--rk-flow-gold); }

/* Tłumaczenie inżynierskie */
.rk-flow-explanation {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-flow-explanation h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-flow-dark);
    margin: 0 0 20px 0;
}

.rk-flow-step {
    background: #f8fafc;
    border-left: 4px solid var(--rk-flow-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 20px;
}

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

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

.rk-flow-math {
    display: inline-block;
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: monospace;
    font-weight: 700;
    color: #0f172a;
}

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

@media (max-width: 768px) {
    .rk-flow-header, .rk-flow-controls, .rk-flow-results, .rk-flow-explanation { padding: 30px 20px; }
    .rk-flow-results { grid-template-columns: 1fr; gap: 15px; }
    .rk-slider-stack { gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-hydraulika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?",
    "description": "Zasady doboru rozstawu rur (10-15 cm) pod zasilanie 30/25°C. Obliczenia przepływów masowych, oporów i długości pętli PEX dla 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://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": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-hydraulika",
    "name": "Parametry Hydrauliczne Pętli Grzewczych PEX 16x2",
    "description": "Modele obliczeniowe dla przepływów masowych wody oraz długości pętli ogrzewania podłogowego przy zadanym spadku temperatury dT 5K.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli dla rury 16x2",
      "zakres pracy rotametrów rozdzielacza",
      "spadek temperatury zasilania a powrotu",
      "na ile pętli podzielić salon",
      "przepływ masowy wody wzór"
    ],
    "measurementTechnique": "Przeliczanie mocy cieplnej (W) na przepływ (l/min) przy użyciu ciepła właściwego wody 4186 J/(kgK) oraz algorytmu dzielenia długości rur pow. 100mb.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Przepływ masowy m = Q / (1,163 * dT).",
        "Zapotrzebowanie na rurę: 6,67 mb/m2 dla rozstawu 15 cm.",
        "Maksymalna długość pojedynczej pętli: 100-120 mb dla zachowania oporów < 20 kPa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-hydraulika",
    "name": "Symulator Przepływów i Długości Pętli PEX",
    "description": "Kalkulator interaktywny wyliczający w czasie rzeczywistym wymaganą długość rur, ilość pętli oraz nastawy rotametrów na rozdzielaczu dla danego pomieszczenia.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-hydraulic-simulator">
    
    <div class="rk-flow-header">
        <h2>Jak dobrać rozstaw rur ogrzewania podłogowego pod pompę ciepła w lekkiej konstrukcji?</h2>
        <p>W lekkiej konstrukcji szkieletowej o jednostkowym zapotrzebowaniu rzędu <strong>25–40 W/m²</strong>, optymalny rozstaw rur to <strong>15 cm w pokojach</strong> oraz <strong>10 cm w łazienkach</strong>. Taki dobór gwarantuje możliwość pracy pompy ciepła na niskich parametrach zasilania 30/25°C, co jest kluczem do energooszczędności.</p>
        <p>Im mniejszy rozstaw rur (gęstsze ułożenie), tym większa powierzchnia wymiany i niższa wymagana temperatura wody. A musisz wiedzieć, że <strong>każde obniżenie temperatury zasilania o 1°C to wzrost sprawności COP pompy ciepła o 2,5–3%.</strong></p>
    </div>

    <!-- Symulator na żywo -->
    <div class="rk-flow-calc-box">
        
        <div class="rk-flow-controls">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg>
                Symulator Przepływów i Długości Pętli (dT = 5K)
            </h3>
            <div class="rk-slider-stack">
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Powierzchnia salonu (A)</span>
                        <span class="rk-slider-val" id="fValArea">25 m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlArea" min="10" max="50" step="1" value="25" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Zapotrzebowanie (q)</span>
                        <span class="rk-slider-val" id="fValQ">35 W/m²</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlQ" min="20" max="60" step="1" value="35" oninput="runFlowSim()">
                </div>
                <div class="rk-slider-item">
                    <div class="rk-slider-top">
                        <span>Rozstaw rur (W)</span>
                        <span class="rk-slider-val" id="fValSpacing">15 cm</span>
                    </div>
                    <input type="range" class="rk-flow-range" id="fSlSpacing" min="10" max="25" step="5" value="15" oninput="runFlowSim()">
                </div>
            </div>
        </div>

        <div class="rk-flow-results">
            <div class="rk-result-card">
                <div class="rk-result-title">Moc do dostarczenia</div>
                <div class="rk-result-value" id="resTotalQ">875<span>W</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Całkowity metraż rury</div>
                <div class="rk-result-value" id="resLength">167<span>mb</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Ilość niezależnych pętli</div>
                <div class="rk-result-value rk-result-warn" id="resLoops">2<span>pętle</span></div>
            </div>
            <div class="rk-result-card">
                <div class="rk-result-title">Nastawa rotametru (na pętlę)</div>
                <div class="rk-result-value rk-result-highlight" id="resFlow">1.25<span>l/min</span></div>
            </div>
        </div>

    </div>

    <!-- Tłumaczenie inżynierskie z linkami SEO -->
    <div class="rk-flow-explanation">
        <h3>Skąd wzięły się te wyniki? Przykład obliczeniowy</h3>
        
        <div class="rk-flow-step">
            <h4>1. Obliczenie przepływu masowego wody</h4>
            <p>Zapotrzebowanie salonu wynosi <span class="rk-flow-math" id="txtTotalQ">875 W</span>. Zakładamy rurę PEX 16x2 oraz <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadek temperatury zasilania a powrotu</a> (tzw. delta T) na poziomie 5K. Dzielimy moc przez ciepło właściwe wody (1,163 Wh/kgK) i deltę T. Otrzymujemy całkowity przepływ rzędu <span class="rk-flow-math" id="txtTotalFlow">2.5 l/min</span>.</p>
        </div>

        <div class="rk-flow-step">
            <h4>2. Długość rury i dławienie hydrauliczne</h4>
            <p>Przy wybranym rozstawie całkowita rura wynosi <span class="rk-flow-math" id="txtLength">167 mb</span>. Ponieważ <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli dla rury 16x2</a> nie powinna przekraczać 100–120 mb (aby opory nie przekroczyły 20 kPa), musimy zaplanować, <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">na ile pętli podzielić salon</a>. Dzielimy pokój na <span class="rk-flow-math" id="txtLoops">2</span> równe obwody.</p>
        </div>

        <div class="rk-flow-step">
            <h4>3. Nastawa na rozdzielaczu</h4>
            <p>Dzieląc całkowity przepływ przez ilość pętli, otrzymujemy wymaganą nastawę wynoszącą <span class="rk-flow-math" id="txtLoopFlow">1.25 l/min</span>. Taka wartość idealnie trafia w optymalny <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zakres pracy rotametrów rozdzielacza</a> (które zazwyczaj precyzyjnie operują w widełkach 1,0 do 2,5 l/min).</p>
        </div>
    </div>

</div>

<script>
function runFlowSim() {
    // 1. Pobranie danych wejściowych
    var area = parseFloat(document.getElementById('fSlArea').value);
    var qUnit = parseFloat(document.getElementById('fSlQ').value);
    var spacingCm = parseFloat(document.getElementById('fSlSpacing').value);

    // 2. Aktualizacja labeli
    document.getElementById('fValArea').textContent = area + ' m²';
    document.getElementById('fValQ').textContent = qUnit + ' W/m²';
    document.getElementById('fValSpacing').textContent = spacingCm + ' cm';

    // 3. Obliczenia hydrauliczne
    var totalQ = Math.round(area * qUnit);
    
    // Przepływ = Q / (1.163 * dT). Zakładamy dT = 5K.
    // Wynik to kg/h. Dzielimy przez 60 by otrzymać l/min.
    var massFlowKgH = totalQ / (1.163 * 5);
    var totalFlowLMin = massFlowKgH / 60;
    
    // Długość rury: dla 10cm to 10 mb/m2, dla 15cm to ~6.67 mb/m2, dla 20cm to 5 mb/m2, dla 25cm to 4 mb/m2.
    var multiplier = 100 / spacingCm;
    var totalLength = Math.round(area * multiplier);
    
    // Ustalanie ilości pętli (nie przekraczamy ~100m na pętlę bezwzględnie)
    var loops = 1;
    if (totalLength > 100) {
        if (totalLength <= 200) {
            loops = 2;
        } else {
            if (totalLength <= 300) {
                loops = 3;
            } else {
                if (totalLength <= 400) {
                    loops = 4;
                } else {
                    loops = 5;
                }
            }
        }
    }
    
    // Przepływ na rotametr
    var flowPerLoop = totalFlowLMin / loops;

    // 4. Aktualizacja Dashboardu
    document.getElementById('resTotalQ').innerHTML = totalQ + '<span>W</span>';
    document.getElementById('resLength').innerHTML = totalLength + '<span>mb</span>';
    
    var elLoops = document.getElementById('resLoops');
    elLoops.innerHTML = loops + '<span>' + (loops === 1 ? 'pętla' : 'pętle') + '</span>';
    if(loops > 1) {
        elLoops.className = 'rk-result-value rk-result-warn';
    } else {
        elLoops.className = 'rk-result-value';
    }
    
    document.getElementById('resFlow').innerHTML = flowPerLoop.toFixed(2) + '<span>l/min</span>';

    // 5. Aktualizacja wartości w tekście (Dowód Inżynierski)
    document.getElementById('txtTotalQ').textContent = totalQ + ' W';
    document.getElementById('txtTotalFlow').textContent = totalFlowLMin.toFixed(2) + ' l/min';
    document.getElementById('txtLength').textContent = totalLength + ' mb';
    document.getElementById('txtLoops').textContent = loops;
    document.getElementById('txtLoopFlow').textContent = flowPerLoop.toFixed(2) + ' l/min';
}

// Uruchomienie na start (25 m2, 35 W/m2, 15 cm daje równe 875W, 167m rury, 2 pętle, 1.25 l/min)
runFlowSim();
</script>



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-blue: #0284c7;
    --rk-comp-blue-light: #f0f9ff;
    --rk-comp-gold: #eab308;
    --rk-comp-bg: #ffffff;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #475569;
    --rk-comp-green: #10b981;
    --rk-comp-red: #ef4444;
}

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

/* Sekcja nagłówkowa */
.rk-comp-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-comp-border);
}

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

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

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

/* Interaktywny selektor technologii */
.rk-comp-selector {
    display: flex;
    flex-direction: row;
    background: #f1f5f9;
    padding: 20px 50px;
    gap: 15px;
    border-bottom: 1px solid var(--rk-comp-border);
}

.rk-tech-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    padding: 15px 10px;
    background: #ffffff;
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-tech-btn:hover {
    background: var(--rk-comp-blue-light);
}

.rk-tech-btn.active {
    border-color: var(--rk-comp-blue);
    background: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.2);
    transform: translateY(-2px);
}

.rk-tech-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    border-radius: 10px;
    transition: all 0.3s;
}

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

.rk-tech-name {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    transition: color 0.3s;
}

.rk-tech-btn.active .rk-tech-name {
    color: var(--rk-comp-dark);
}

/* Dashboard wyników (Kafelki) */
.rk-comp-dashboard {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-dash-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    animation: fadeInDash 0.3s ease-in-out;
}

@keyframes fadeInDash {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

.rk-param-card {
    background: #f8fafc;
    border: 1px solid var(--rk-comp-border);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all 0.3s;
}

.rk-param-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 10px;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-param-label svg {
    color: var(--rk-comp-blue);
}

.rk-param-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-comp-dark);
    margin: 0;
    line-height: 1.2;
}

/* Modyfikatory kolorystyczne dla wartości */
.val-good { color: var(--rk-comp-green); }
.val-warn { color: var(--rk-comp-gold); }
.val-bad { color: var(--rk-comp-red); }

/* Dolna sekcja opisowa */
.rk-comp-footer {
    padding: 0 50px 40px 50px;
    background: #ffffff;
}

.rk-comp-footer p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-comp-text);
    margin: 0;
    padding-top: 25px;
    border-top: 1px dashed var(--rk-comp-border);
}

.rk-comp-footer a {
    color: var(--rk-comp-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-comp-footer a:hover {
    border-bottom-color: var(--rk-comp-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-comp-header, .rk-comp-dashboard, .rk-comp-footer { padding: 30px 20px; }
    
    /* Układ PIONOWY przycisków na mobile (żadnego scrolowania bocznego) */
    .rk-comp-selector { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tech-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: 15px 20px; }
    .rk-tech-name { font-size: 15px; }
    
    /* Kafelki na mobile - jeden pod drugim */
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-param-card { flex-direction: row; align-items: center; padding: 15px 20px; }
    .rk-param-label { margin-bottom: 0; }
    .rk-param-val { font-size: 18px; text-align: right; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów technicznych i kosztów",
    "description": "Zestawienie technologii posadzkowych pod kątem nośności stropu, czasu schnięcia, wilgoci technologicznej i kosztów robocizny.",
    "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": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-komparator",
    "name": "Porównanie Technologii Posadzkowych Ogrzewania Podłogowego",
    "description": "Baza danych parametrów fizycznych i kosztowych systemów grzewczych stosowanych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym",
      "czym jest system mokry w wodnym ogrzewaniu podłogowym",
      "wylewka betonowa na ogrzewanie podłogowe",
      "ile trwa montaż ogrzewania podłogowego",
      "podłogówka cena za m2 robocizny"
    ],
    "measurementTechnique": "Zestawienie inżynieryjne parametrów fizyko-chemicznych materiałów budowlanych oraz uśrednionych rynkowych kosztów wykonawstwa na 2026 rok.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System suchy EPS: Masa 25-35 kg/m2, Wilgoć 0 litrów, Reakcja 30-60 min.",
        "Jastrych anhydrytowy: Masa 95-110 kg/m2, Wilgoć ok. 10 litrów, Reakcja 120-180 min.",
        "Jastrych cementowy: Masa 145-165 kg/m2, Wilgoć ok. 22 litrów, Reakcja 240-360 min.",
        "System suchy maty Alu: Masa 12-15 kg/m2, Wilgoć 0 litrów, Reakcja 15-30 min."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-komparator",
    "name": "Interaktywny Komparator Technologii Podłogówki",
    "description": "Aplikacja webowa pozwalająca błyskawicznie przełączać i porównywać obciążenia stropów, koszty oraz bezwładność cieplną poszczególnych systemów posadzkowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comp-container" id="rk-tech-comparator">
    <div class="rk-comp-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego – porównanie parametrów</h2>
        <p>Wybór systemu rzutuje bezpośrednio na nośność konstrukcji stropu oraz dynamikę grzewczą. Przetestuj interaktywny komparator, aby zrozumieć wady i zalety tradycyjnych wylewek w zestawieniu z ultralekkimi zabudowami suchymi.</p>
    </div>

    <!-- Nawigacja / Przyciski wyboru -->
    <div class="rk-comp-selector">
        <button class="rk-tech-btn active" onclick="updateDashboard('eps', this)">
            <div class="rk-tech-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>
            <span class="rk-tech-name">System Suchy (Płyta EPS + Al)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('anh', this)">
            <div class="rk-tech-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 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
            </div>
            <span class="rk-tech-name">Jastrych Anhydrytowy (40 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('cem', this)">
            <div class="rk-tech-icon">
                <svg width="24" height="24" 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>
            <span class="rk-tech-name">Jastrych Cementowy (65 mm)</span>
        </button>
        <button class="rk-tech-btn" onclick="updateDashboard('mat', this)">
            <div class="rk-tech-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>
            <span class="rk-tech-name">System Suchy (Maty Alu)</span>
        </button>
    </div>

    <!-- Dashboard (Kafelki z wynikami) -->
    <div class="rk-comp-dashboard" id="dashContainer">
        <div class="rk-dash-grid">
            
            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="8" width="18" height="8" rx="1" ry="1"></rect><path d="M12 8v8"></path></svg>
                    Grubość const.
                </div>
                <div class="rk-param-val" id="valThick">25–30 mm</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path></svg>
                    Obciążenie stropu
                </div>
                <div class="rk-param-val val-good" id="valWeight">25–35 kg/m²</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                    Przewodność cieplna
                </div>
                <div class="rk-param-val" id="valLambda">Bezpośrednia (Al)</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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><polyline points="12 6 12 12 16 14"></polyline></svg>
                    Czas reakcji
                </div>
                <div class="rk-param-val val-good" id="valReact">30–60 min</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                    Wilgoć technolog.
                </div>
                <div class="rk-param-val val-good" id="valMoist">0 litrów</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-label">
                    <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="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>
                    Czas schnięcia
                </div>
                <div class="rk-param-val val-good" id="valDry">0 dni</div>
            </div>

        </div>
    </div>

    <!-- Stopka informacyjna SEO z max 4 naturalnymi linkami -->
    <div class="rk-comp-footer">
        <p>Analizując powyższe dane inżynieryjne, odwieczny dylemat <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy w wodnym ogrzewaniu podłogowym</a> w przypadku domu z drewna rozwiązuje się sam. Decydując się na tradycyjną <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewkę na ogrzewanie podłogowe</a>, musimy zaakceptować drastyczny spadek sterowalności temperaturą. Dodatkowo, przy planowaniu budżetu inwestycji, należy zawsze uwzględniać bieżącą <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">cenę robocizny za m²</a> instalacji oraz fizyczny fakt, <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">ile trwa montaż ogrzewania podłogowego</a>, aby uniknąć kilkutygodniowych przestojów związanych ze schnięciem betonowego jastrychu.</p>
    </div>
</div>

<script>
function updateDashboard(techId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-tech-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');

    // 2. Pobranie referencji do elementów DOM
    var valThick = document.getElementById('valThick');
    var valWeight = document.getElementById('valWeight');
    var valLambda = document.getElementById('valLambda');
    var valReact = document.getElementById('valReact');
    var valMoist = document.getElementById('valMoist');
    var valDry = document.getElementById('valDry');
    
    // Animacja przeładowania (restart animacji CSS)
    var grid = document.querySelector('.rk-dash-grid');
    grid.style.animation = 'none';
    grid.offsetHeight; // wyzwolenie reflow
    grid.style.animation = null;

    // 3. Logika przypisywania wartości (bez znaków ampersand/or)
    if (techId === 'eps') {
        valThick.textContent = '25–30 mm';
        
        valWeight.textContent = '25–35 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '30–60 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
    
    if (techId === 'anh') {
        valThick.textContent = '45–50 mm';
        
        valWeight.textContent = '95–110 kg/m²';
        valWeight.className = 'rk-param-val val-warn';
        
        valLambda.textContent = '1,6–1,8 W/(mK)';
        
        valReact.textContent = '120–180 min';
        valReact.className = 'rk-param-val val-warn';
        
        valMoist.textContent = 'Ok. 10 litrów/m²';
        valMoist.className = 'rk-param-val val-warn';
        
        valDry.textContent = '7–14 dni';
        valDry.className = 'rk-param-val val-warn';
    }
    
    if (techId === 'cem') {
        valThick.textContent = '65–75 mm';
        
        valWeight.textContent = '145–165 kg/m²';
        valWeight.className = 'rk-param-val val-bad';
        
        valLambda.textContent = '1,1–1,3 W/(mK)';
        
        valReact.textContent = '240–360 min';
        valReact.className = 'rk-param-val val-bad';
        
        valMoist.textContent = 'Ok. 22 litrów/m²';
        valMoist.className = 'rk-param-val val-bad';
        
        valDry.textContent = '28–42 dni';
        valDry.className = 'rk-param-val val-bad';
    }
    
    if (techId === 'mat') {
        valThick.textContent = '15–18 mm';
        
        valWeight.textContent = '12–15 kg/m²';
        valWeight.className = 'rk-param-val val-good';
        
        valLambda.textContent = 'Bezpośrednia (Al)';
        
        valReact.textContent = '15–30 min';
        valReact.className = 'rk-param-val val-good';
        
        valMoist.textContent = '0 litrów';
        valMoist.className = 'rk-param-val val-good';
        
        valDry.textContent = '0 dni';
        valDry.className = 'rk-param-val val-good';
    }
}
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #f0f9ff;
    --rk-calc-gold: #eab308;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-code: #1e293b;
    --rk-calc-accent: #38bdf8;
    --rk-calc-alert: #ef4444;
}

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

/* Header */
.rk-calc-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-calc-border);
    text-align: center;
}

.rk-calc-header h2 {
    font-size: 28px;
    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);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 800px;
}

/* Interaktywny Panel Główny (Ciemny) */
.rk-live-panel {
    background: var(--rk-calc-dark);
    padding: 35px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-gold);
}

.rk-live-title {
    font-size: 18px;
    font-weight: 800;
    color: #e2e8f0;
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-live-title svg { color: var(--rk-calc-accent); }

/* Suwaki - Układ Pionowy */
.rk-sliders-wrapper {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 700;
    color: #94a3b8;
}

.rk-slider-val-badge {
    background: var(--rk-calc-accent);
    color: var(--rk-calc-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 900;
    font-size: 16px;
}

/* Suwaki stylizowane */
.rk-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 5px;
    outline: none;
    margin-top: 5px;
}
.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-calc-gold);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(234, 179, 8, 0.6);
    transition: transform 0.1s;
}
.rk-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* DASHBOARD WYNIKÓW NA ŻYWO (Nowość) */
.rk-dashboard {
    margin-top: 35px;
    padding-top: 30px;
    border-top: 1px dashed rgba(255, 255, 255, 0.15);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-dash-card {
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-dash-label {
    font-size: 12px;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.rk-dash-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-accent);
}

.rk-dash-alert {
    display: none;
    grid-column: 1 / -1;
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid var(--rk-calc-alert);
    color: #fca5a5;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    margin-top: 5px;
}

/* Nawigacja kroków - układ pionowy */
.rk-calc-nav {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    padding: 30px 50px;
    gap: 12px;
    border-bottom: 1px solid var(--rk-calc-border);
}

.rk-calc-nav-title {
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin: 0 0 5px 0;
}

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

.rk-step-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.rk-step-btn.active { border-color: var(--rk-calc-blue); background: var(--rk-calc-blue-light); box-shadow: 0 4px 12px rgba(2, 132, 199, 0.15); }

.rk-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 15px;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num { background: var(--rk-calc-blue); }
.rk-step-label { font-size: 16px; font-weight: 800; color: #64748b; transition: color 0.3s; }
.rk-step-btn.active .rk-step-label { color: var(--rk-calc-dark); }

/* Obszar zawartości (Wzory) */
.rk-calc-content {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-algo-panel {
    display: none;
    animation: fadeInStep 0.4s ease-out;
}

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

.rk-algo-panel h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-algo-panel h3 svg { color: var(--rk-calc-blue); }

.rk-math-box {
    background: var(--rk-calc-code);
    border-radius: 12px;
    padding: 25px;
    margin-bottom: 25px;
    border-left: 4px solid var(--rk-calc-gold);
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}

.rk-math-formula {
    font-family: 'Courier New', Courier, monospace;
    font-size: 17px;
    color: #38bdf8;
    font-weight: 700;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.rk-math-live-result {
    display: inline-block;
    background: rgba(16, 185, 129, 0.2);
    color: #10b981;
    padding: 4px 10px;
    border-radius: 6px;
    border: 1px solid rgba(16, 185, 129, 0.3);
    font-size: 18px;
    margin-top: 10px;
}

.rk-math-desc {
    font-size: 14px;
    color: #94a3b8;
    margin: 0;
    font-style: italic;
}

.rk-algo-panel p { font-size: 16px; line-height: 1.7; color: var(--rk-calc-text); }
.rk-algo-panel a { color: var(--rk-calc-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Potężne CTA */
.rk-calc-cta {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid #334155;
}
.rk-calc-cta h3 { color: #ffffff; font-size: 26px; font-weight: 900; margin: 0 0 15px 0; }
.rk-calc-cta p { color: #94a3b8; font-size: 16px; line-height: 1.6; margin: 0 auto 30px auto; max-width: 650px; }

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: #eab308;
    color: #0f172a;
    font-size: 15px;
    font-weight: 900;
    padding: 20px 30px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(234, 179, 8, 0.3);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-live-panel, .rk-calc-content, .rk-calc-cta { padding: 25px 20px; }
    .rk-dashboard { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .rk-dash-val { font-size: 20px; }
    .rk-calc-nav { padding: 20px; gap: 10px; }
    .rk-step-btn { padding: 15px 20px; flex-direction: column; align-items: flex-start; gap: 10px; }
    .rk-math-formula { font-size: 14px; }
    .rk-btn-massive { width: 100%; text-align: center; flex-direction: column; padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-symulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Algorytm obliczeniowy do projektowania ogrzewania w domu szkieletowym na żywo",
    "description": "Interaktywny kalkulator inżynierski OZC. Przesuwaj wskaźniki powierzchni i izolacji, aby na żywo śledzić zmiany parametrów rur, temperatury posadzki i mocy.",
    "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": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-kalkulator",
    "name": "Wzory Fizyki Budowli – Dynamiczna Termodynamika Ogrzewania",
    "description": "Zbiór inżynieryjnych wzorów obliczeniowych, z dynamicznym przeliczaniem gęstości strumienia cieplnego, temperatury powierzchni oraz rozstawu rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator strat ciepła budynku na żywo",
      "obliczenie rozstawu rur podłogówki m2",
      "wzór na temperaturę posadzki",
      "koszt ogrzewania domu szkieletowego",
      "obliczenia OZC norma PN-EN 12831"
    ],
    "measurementTechnique": "Dynamiczne obliczenia JavaScript na bazie norm PN-EN 1264 i PN-EN 12831 (symulacja parametrów wejściowych inwestora).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Obliczenie OZC w oparciu o suwak metrażu (A_pos) i izolacji budynku.",
        "Krok 2: Korekta na zyski solarne dla domów drewnianych (współczynnik 0,95).",
        "Krok 3: Wyznaczenie q (W/m2).",
        "Krok 4: Ustalenie fizjologicznej temperatury posadzki (max 29 stopni).",
        "Krok 5: Obliczenie potrzebnego metrażu rur PEX/PERT zależnie od suwaka rozstawu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-kalkulator",
    "name": "Live Symulator OZC i Hydrauliki Podłogowej",
    "description": "Interaktywna aplikacja webowa z suwakami czasu rzeczywistego, wizualizująca wpływ wielkości pomieszczenia i izolacji na parametry pracy pompy ciepła.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-interactive-wizard">
    <div class="rk-calc-header">
        <h2>Algorytm obliczeniowy OZC (Live Symulator)</h2>
        <p>Nie czytaj suchych wzorów – przelicz swój dom w czasie rzeczywistym. Zmień parametry suwakami poniżej i natychmiast zobacz wyniki na tablicy wskaźników. Poznaj fizykę swojego budynku.</p>
    </div>

    <!-- Panel Sterowania Na Żywo z Wbudowanym Dashboardem -->
    <div class="rk-live-panel">
        <h3 class="rk-live-title">
            <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="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
            Krok 1: Wprowadź parametry pokoju
        </h3>
        
        <div class="rk-sliders-wrapper">
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Powierzchnia posadzki netto</span>
                    <span class="rk-slider-val-badge" id="valArea">20 m²</span>
                </div>
                <input type="range" class="rk-range" id="slArea" min="10" max="50" step="1" value="20" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Projektowe zapotrzebowanie (izolacja)</span>
                    <span class="rk-slider-val-badge" id="valQ">40 W/m²</span>
                </div>
                <input type="range" class="rk-range" id="slQ" min="20" max="80" step="5" value="40" oninput="runSim()">
            </div>
            <div class="rk-slider-group">
                <div class="rk-slider-label">
                    <span>Rozstaw rur PEX/PERT</span>
                    <span class="rk-slider-val-badge" id="valSpacing">15 cm</span>
                </div>
                <input type="range" class="rk-range" id="slSpacing" min="10" max="25" step="5" value="15" oninput="runSim()">
            </div>
        </div>

        <!-- Nowość: DASHBOARD NA ŻYWO -->
        <div class="rk-dashboard">
            <div class="rk-dash-card">
                <div class="rk-dash-label">Moc całkowita</div>
                <div class="rk-dash-val" id="dashTotalQ">800 W</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Wymagany Strumień</div>
                <div class="rk-dash-val" id="dashStrumien">38 W/m²</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Temp. Posadzki</div>
                <div class="rk-dash-val" id="dashTemp">23.5 °C</div>
            </div>
            <div class="rk-dash-card">
                <div class="rk-dash-label">Potrzebna Rura</div>
                <div class="rk-dash-val" id="dashRury">133 mb</div>
            </div>
            <div class="rk-dash-alert" id="dashAlert">
                ⚠️ BŁĄD PROJEKTOWY: Temperatura podłogi przekracza normatywne 29°C. Pomieszczenie będzie niekomfortowo gorące. Popraw izolację (Zapotrzebowanie)!
            </div>
        </div>
    </div>

    <!-- Nawigacja kroków (Jak to policzyliśmy?) -->
    <div class="rk-calc-nav">
        <p class="rk-calc-nav-title">Krok 2: Poznaj Inżynieryjne Obliczenia (Kliknij)</p>
        <button class="rk-step-btn active" onclick="showLiveStep('stOZC', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-label">Wyznaczenie straty ciepła pomieszczenia (Q_obl)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stKorekta', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-label">Korekta o zyski i bezwładność w szkielecie</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stStrumien', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-label">Obliczenie gęstości strumienia cieplnego (q)</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stTemp', this)">
            <span class="rk-step-num">4</span>
            <span class="rk-step-label">Sprawdzenie granicznej temperatury posadzki</span>
        </button>
        <button class="rk-step-btn" onclick="showLiveStep('stRury', this)">
            <span class="rk-step-num">5</span>
            <span class="rk-step-label">Zapotrzebowanie na rurę grzewczą (L_rury)</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-calc-content">
        
        <!-- Krok 1: OZC -->
        <div class="rk-algo-panel" id="stOZC" style="display: block;">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                Wyznaczenie straty ciepła pomieszczenia (Q_obl)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_obl = <span id="dynArea1">20</span> m² * <span id="dynQ1">40</span> W/m²</div>
                <div class="rk-math-live-result">= <span id="dynTotalQ">800</span> W</div>
                <p class="rk-math-desc" style="margin-top: 15px;">Uproszczony model przenikania (Norma PN-EN 12831).</p>
            </div>
            <p>To absolutny fundament. Im lepiej ocieplony jest Twój dom szkieletowy (wyższa jakość wełny), tym niższe zapotrzebowanie. Sprawdź, jak <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a> w duecie obniżają ten parametr poprzez eliminację start wentylacyjnych.</p>
        </div>

        <!-- Krok 2: Korekta -->
        <div class="rk-algo-panel" id="stKorekta">
            <h3>
                <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="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>
                Korekta o zyski i bezwładność
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">Q_proj = <span id="dynTotalQ2">800</span> W * 0.95 (współcz. f_reg)</div>
                <div class="rk-math-live-result">= <span id="dynQproj">760</span> W</div>
            </div>
            <p>W domu szkieletowym ze względu na niską akumulacyjność ścian nie stosuje się "mocy na zapas". Taki zoptymalizowany <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszt ogrzewania domu</a> na etapie projektu pozwala dobrać znacznie tańszą pompę ciepła o niższej mocy nominalnej.</p>
        </div>

        <!-- Krok 3: Strumień -->
        <div class="rk-algo-panel" id="stStrumien">
            <h3>
                <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="2" x2="12" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                Gęstość strumienia cieplnego (q)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">q = <span id="dynQproj2">760</span> W / <span id="dynArea2">20</span> m²</div>
                <div class="rk-math-live-result">= <span id="dynStrumien">38</span> W/m²</div>
            </div>
            <p>To wartość mocy, jaką faktycznie musimy wycisnąć z każdego metra kwadratowego podłogi. Jeśli wartość przekroczy 80 W/m², oznacza to, że sam system podłogowy może nie podołać w największe mrozy.</p>
        </div>

        <!-- Krok 4: Temp Posadzki -->
        <div class="rk-algo-panel" id="stTemp">
            <h3>
                <svg width="28" height="28" 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>
                Graniczna temperatura posadzki
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">t_f = 20°C (wnętrze) + ( <span id="dynStrumien2">38</span> / 10.8 alpha )</div>
                <div class="rk-math-live-result">= <span id="dynTemp">23.5</span> °C</div>
            </div>
            <p>Zgodnie z fizyką (norma PN-EN 1264), fizjologiczna granica komfortu wynosi 29°C.</p>
        </div>

        <!-- Krok 5: Rury -->
        <div class="rk-algo-panel" id="stRury">
            <h3>
                <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 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>
                Zapotrzebowanie na rurę grzewczą (L_rury)
            </h3>
            <div class="rk-math-box">
                <div class="rk-math-formula">L_rury = <span id="dynArea3">20</span> m² / <span id="dynSpacingM">0.15</span> m (rozstaw)</div>
                <div class="rk-math-live-result">= <span id="dynRura">133</span> mb rury</div>
            </div>
            <p>Znając dokładną długość pętli, unikniesz dławienia przepływów. Jeśli wynik przekracza 100 metrów bieżących, pokój bezwzględnie wymaga podziału na dwie niezależne pętle. Zobacz jak to wpływa na <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a> w całej kotłowni.</p>
        </div>
    </div>

    <!-- Mocne CTA pod długi ogon na koniec -->
    <div class="rk-calc-cta">
        <h3>Nie ryzykuj własnych pieniędzy przez instalatorów "zgadywaczy"</h3>
        <p>Inwestycja w lekki dom szkieletowy wymaga żelaznych obliczeń inżynierskich. Wyeliminuj błędy, taktowanie pompy i duszne sypialnie opierając się na normatywnych wyliczeniach OZC i pełnej dokumentacji technicznej zawartej w profesjonalnym projekcie.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            <span>ZAMÓW INŻYNIERSKI PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC ORAZ HYDRAULIKĄ</span>
            <svg width="28" height="28" 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>
        </a>
    </div>
</div>

<script>
function showLiveStep(panelId, btnElement) {
    // Bezpieczne odwołanie do kontenera przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    btnElement.classList.add('active');
    
    // Obsługa paneli
    var contentArea = document.querySelector('.rk-calc-content');
    var allPanels = contentArea.getElementsByClassName('rk-algo-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function runSim() {
    // 1. Pobranie wartości z suwaków
    var area = parseFloat(document.getElementById('slArea').value);
    var qUnit = parseFloat(document.getElementById('slQ').value);
    var spacing = parseFloat(document.getElementById('slSpacing').value);
    
    // 2. Aktualizacja labeli nad suwakami
    document.getElementById('valArea').textContent = area + ' m²';
    document.getElementById('valQ').textContent = qUnit + ' W/m²';
    document.getElementById('valSpacing').textContent = spacing + ' cm';
    
    // 3. Obliczenia fizyki
    var qObl = area * qUnit;
    var qProj = Math.round(qObl * 0.95);
    var strumien = Math.round(qProj / area);
    var temp = (20 + (strumien / 10.8)).toFixed(1);
    var spacingM = spacing / 100;
    var rury = Math.round(area / spacingM);
    
    // 4. Aktualizacja Głównego Dashboardu
    document.getElementById('dashTotalQ').textContent = qObl + ' W';
    document.getElementById('dashStrumien').textContent = strumien + ' W/m²';
    
    var dashTempEl = document.getElementById('dashTemp');
    var dashAlert = document.getElementById('dashAlert');
    dashTempEl.textContent = temp + ' °C';
    
    if (parseFloat(temp) > 29) {
        dashTempEl.style.color = '#ef4444'; // Red alert
        dashAlert.style.display = 'block';
    } else {
        dashTempEl.style.color = '#38bdf8'; // Accent blue
        dashAlert.style.display = 'none';
    }
    
    document.getElementById('dashRury').textContent = rury + ' mb';

    // 5. Aktualizacja wzorów w zakładkach (Inżynieryjny dowód)
    document.getElementById('dynArea1').textContent = area;
    document.getElementById('dynQ1').textContent = qUnit;
    document.getElementById('dynTotalQ').textContent = qObl;
    
    document.getElementById('dynTotalQ2').textContent = qObl;
    document.getElementById('dynQproj').textContent = qProj;
    
    document.getElementById('dynQproj2').textContent = qProj;
    document.getElementById('dynArea2').textContent = area;
    document.getElementById('dynStrumien').textContent = strumien;
    
    document.getElementById('dynStrumien2').textContent = strumien;
    document.getElementById('dynTemp').textContent = temp;
    
    var spanTempEl = document.getElementById('dynTemp');
    if (parseFloat(temp) > 29) {
        spanTempEl.className = 'rk-dyn-warn';
    } else {
        spanTempEl.className = 'rk-dyn-text';
    }
    
    document.getElementById('dynArea3').textContent = area;
    document.getElementById('dynSpacingM').textContent = spacingM.toFixed(2);
    document.getElementById('dynRura').textContent = rury;
}

// Inicjalizacja przy ładowaniu
runSim();
</script>



<style>
:root {
    --rk-diag-dark: #0f172a;
    --rk-diag-blue: #0284c7;
    --rk-diag-red: #ef4444;
    --rk-diag-red-bg: #fef2f2;
    --rk-diag-green: #10b981;
    --rk-diag-green-bg: #f0fdf4;
    --rk-diag-bg: #ffffff;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #475569;
}

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

.rk-diag-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-diag-border);
    text-align: center;
}

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

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

/* Zakładki (Jedna kolumna, układ poziomy) */
.rk-diag-tabs {
    display: flex;
    flex-direction: row;
    padding: 20px 50px;
    gap: 15px;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-diag-border);
    justify-content: space-between;
}

.rk-tab-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 15px 10px;
    background: var(--rk-diag-bg);
    border: 2px solid transparent;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    text-align: center;
}

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

.rk-tab-btn.active {
    border-color: var(--rk-diag-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

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

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

.rk-tab-title {
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
    transition: color 0.3s;
}

.rk-tab-btn.active .rk-tab-title {
    color: var(--rk-diag-dark);
}

/* Panele z treścią (Układ 1-kolumnowy) */
.rk-diag-content-area {
    padding: 40px 50px;
}

.rk-diag-panel {
    display: none;
    animation: slideDown 0.4s ease-out;
}

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

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

/* Karty jedna pod drugą */
.rk-info-stack {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-info-card {
    padding: 30px;
    border-radius: 16px;
    border: 1px solid;
    position: relative;
}

.rk-card-bad {
    background: var(--rk-diag-red-bg);
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-card-good {
    background: var(--rk-diag-green-bg);
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.rk-card-header svg {
    width: 28px;
    height: 28px;
}

.rk-card-bad .rk-card-header svg { color: var(--rk-diag-red); }
.rk-card-good .rk-card-header svg { color: var(--rk-diag-green); }

.rk-card-header h4 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-card-bad h4 { color: var(--rk-diag-red); }
.rk-card-good h4 { color: var(--rk-diag-green); }

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-content-area { padding: 30px 20px; }
    .rk-diag-tabs { flex-direction: column; padding: 20px; gap: 10px; }
    .rk-tab-btn { flex-direction: row; justify-content: flex-start; padding: 15px; }
    .rk-tab-title { font-size: 15px; }
    .rk-diag-panel h3 { font-size: 20px; }
    .rk-info-card { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?",
    "description": "Interaktywne zestawienie najgroźniejszych błędów przy montażu ogrzewania w technologii szkieletowej: taktowanie pompy ciepła, brak strefowania i uszkodzenia paroizolacji.",
    "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": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-diagnoza",
    "name": "Katalog Błędów Instalacyjnych w Konstrukcji Szkieletowej",
    "description": "Baza danych inżynieryjnych zestawiająca błędy montażowe z normatywnymi rozwiązaniami technicznymi dedykowanymi dla budownictwa drewnianego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przewymiarowanie instalacji",
      "taktowanie pompy ciepła",
      "uszkodzenie paroizolacji",
      "brak strefowania",
      "najczęstsze błędy instalatora podłogówki"
    ],
    "measurementTechnique": "Analiza defektów montażowych w oparciu o fizykę cieplną budynków drewnianych i wytyczne układów pompowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Problem: Brak strefowania prowadzący do przegrzewania wnętrz od południa. Rozwiązanie: Termostaty z algorytmem TPI.",
        "Problem: Przewymiarowanie i zbyt gęsty rozstaw rur powodujące taktowanie sprężarki. Rozwiązanie: Zwiększenie rozstawu do 20 cm przy niskim OZC.",
        "Problem: Przebijanie folii paroizolacyjnej spinkami Tacker. Rozwiązanie: Klejenie systemowe i rezygnacja z mechanicznych uszkodzeń folii PE."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-diagnoza",
    "name": "Jednokolumnowy Interaktywny Diagnozer Błędów",
    "description": "Aplikacja pozwalająca inwestorowi na identyfikację patologii montażowych na budowie oraz poznanie poprawnej, inżynierskiej alternatywy.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-error-viewer">
    <div class="rk-diag-header">
        <h2>Najczęstsze błędy instalacyjne i projektowe – jak ich unikać?</h2>
        <p>Lata praktyki weryfikują radosną twórczość instalatorów. W domach o lekkiej konstrukcji szkieletowej konsekwencje powielania nawyków z murowanych budów są natychmiastowe i bardzo kosztowne. Zdiagnozuj i wyeliminuj problem przed wylaniem posadzki.</p>
    </div>

    <!-- Zakładki górne (Jedna kolumna na treści poniżej) -->
    <div class="rk-diag-tabs">
        <button class="rk-tab-btn active" onclick="showDiagPanel('diag1', this)">
            <span class="rk-tab-num">1</span>
            <span class="rk-tab-title">Brak strefowania</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag2', this)">
            <span class="rk-tab-num">2</span>
            <span class="rk-tab-title">Taktowanie pompy</span>
        </button>
        <button class="rk-tab-btn" onclick="showDiagPanel('diag3', this)">
            <span class="rk-tab-num">3</span>
            <span class="rk-tab-title">Dziurawienie folii</span>
        </button>
    </div>

    <!-- Obszar treści (Struktura stosu: Problem -> Rozwiązanie) -->
    <div class="rk-diag-content-area">
        
        <!-- Panel 1 -->
        <div class="rk-diag-panel" id="diag1" style="display: block;">
            <h3>Brak strefowania i sterowania pomieszczeniami</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Domy szkieletowe z dużymi przeszkleniami od południa nagrzewają się od słońca w ciągu 30–45 minut o kilka stopni. Jeśli pętle grzewcze salonu i sypialni północnej są połączone lub pracują bez termostatów pokojowych, w salonie temperatura szybko wzrośnie do dusznych 25°C, podczas gdy zacieniona sypialnia pozostanie niekomfortowo niedogrzana.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Bezwzględne stosowanie zaworów na każdej pętli rozdzielacza. Kluczem jest <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowanie strefowe ogrzewaniem</a> z wykorzystaniem <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">inteligentnych termostatów TPI</a>. Automatyka analizuje bezwładność systemu i ucina zasilanie na ułamek sekundy przed tym, zanim nastąpi przegrzanie wywołane zyskami solarnymi.</p>
                </div>
            </div>
        </div>

        <!-- Panel 2 -->
        <div class="rk-diag-panel" id="diag2">
            <h3>Przewymiarowanie instalacji (Złoty standard: "co 10 cm")</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg 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="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Zagęszczenie rur (rozstaw co 10 cm w całym domu) przy niskim zapotrzebowaniu na ciepło skutkuje brakiem możliwości zrzutu mocy. Sprężarka włącza się i wyłącza co 5 minut (taktowanie). Zjawisko to potrafi skrócić żywotność drogiej pompy ciepła o 50–70% oraz radykalnie obniżyć współczynnik COP.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Dobór oparty ściśle na obliczeniach strat ciepła (OZC). W strefach o zapotrzebowaniu poniżej 30 W/m² instalator powinien zastosować <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur w ogrzewaniu podłogowym równy 20 cm</a>, co gwarantuje długą, płynną i ekonomiczną pracę inwerterowej pompy ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Panel 3 -->
        <div class="rk-diag-panel" id="diag3">
            <h3>Uszkodzenie paroizolacji podczas montażu</h3>
            <div class="rk-info-stack">
                <div class="rk-info-card rk-card-bad">
                    <div class="rk-card-header">
                        <svg 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>
                        <h4>Anatomia Problemu</h4>
                    </div>
                    <p>Montaż rur na stropie drewnianym przy użyciu spinek wbijanych przez taker bezpośrednio w poszycie. Spinki dziurawią folią paroizolacyjną. Przez setki otworów wilgoć z pomieszczeń wnika w głąb stropu, co wywołuje zjawisko kondensacji – w efekcie izolacja z wełny przestaje działać, a drewno zaczyna gnić.</p>
                </div>
                <div class="rk-info-card rk-card-good">
                    <div class="rk-card-header">
                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        <h4>Inżynierskie Rozwiązanie</h4>
                    </div>
                    <p>Na stropach lekkich należy stosować maty z wypustkami bez mocowania mechanicznego do podłoża lub kleić płyty EPS specjalistycznymi pianoklejami o niskiej prężności. Przeczytaj koniecznie, jakie są pozostałe <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu ogrzewania podłogowego</a>, aby ochronić dom.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function showDiagPanel(panelId, btnElement) {
    // 1. Zabezpieczony reset zakładek (Tabs)
    var tabContainer = document.querySelector('.rk-diag-tabs');
    var allTabs = tabContainer.getElementsByClassName('rk-tab-btn');
    var i = 0;
    while (i < allTabs.length) {
        allTabs[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętej zakładki
    btnElement.classList.add('active');
    
    // 3. Zabezpieczony reset wszystkich paneli
    var contentArea = document.querySelector('.rk-diag-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-diag-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Płynne wyświetlenie docelowego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-step-dark: #0f172a;
    --rk-step-blue: #0284c7;
    --rk-step-blue-light: #e0f2fe;
    --rk-step-green: #10b981;
    --rk-step-bg: #ffffff;
    --rk-step-border: #e2e8f0;
    --rk-step-text: #334155;
    --rk-step-inactive: #f1f5f9;
}

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

.rk-pipeline-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to bottom, #f8fafc, #ffffff);
    border-bottom: 1px solid var(--rk-step-border);
}

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

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

/* Interaktywny Stepper Nawigacyjny */
.rk-stepper-nav {
    display: flex;
    flex-direction: row;
    background: var(--rk-step-inactive);
    padding: 10px;
    gap: 10px;
    border-bottom: 1px solid var(--rk-step-border);
}

.rk-step-btn {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
}

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

.rk-step-btn.active {
    background: var(--rk-step-bg);
    border-color: var(--rk-step-blue);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.rk-step-num {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #cbd5e1;
    color: #ffffff;
    font-weight: 900;
    font-size: 16px;
    border-radius: 50%;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-step-blue);
    box-shadow: 0 0 15px rgba(2, 132, 199, 0.4);
}

.rk-step-title {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    margin: 0;
}

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

/* Panele Treści (1-kolumnowe) */
.rk-step-content-area {
    padding: 40px 50px;
    background: var(--rk-step-bg);
}

.rk-step-panel {
    display: none;
    animation: fadeInPanel 0.4s ease-out forwards;
}

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

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

.rk-panel-top {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-panel-icon {
    width: 60px;
    height: 60px;
    background: var(--rk-step-blue-light);
    color: var(--rk-step-blue);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-panel-top h3 {
    font-size: 24px;
    font-weight: 800;
    color: var(--rk-step-dark);
    margin: 0;
}

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

.rk-panel-body ul {
    margin: 0;
    padding: 0 0 0 20px;
    color: var(--rk-step-text);
}

.rk-panel-body li {
    margin-bottom: 10px;
    line-height: 1.6;
}

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

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

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

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

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-step-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-cta-btn:hover {
    transform: translateY(-5px);
    background: #059669;
    box-shadow: 0 20px 35px -5px rgba(16, 185, 129, 0.5);
}

@media (max-width: 768px) {
    .rk-pipeline-header, .rk-step-content-area, .rk-cta-wrapper { padding: 30px 20px; }
    .rk-stepper-nav { flex-direction: column; }
    .rk-panel-top { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-cta-btn { width: 100%; font-size: 15px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-projekt-szkielet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?",
    "description": "Poznaj 3-stopniowy schemat inżynierski: od obliczeń OZC, przez hydraulikę PN-EN 1264, aż po integrację z pompą ciepła w domach szkieletowych.",
    "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": "2025-12-29",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-procedura",
    "name": "Procedura Projektowa Instalacji Płaszczyznowych w Szkielecie",
    "description": "Dokumentacja inżynierska obejmująca trzy filary projektu: OZC, hydraulikę i maszynownię (źródło ciepła).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompą ciepła",
      "obliczenia OZC dla domu szkieletowego",
      "rozstaw rur w systemie suchym",
      "przepływy w rozdzielaczu l/min",
      "bufor ciepła w lekkiej podłogówce"
    ],
    "measurementTechnique": "Algorytmy normatywne PN-EN 12831 oraz PN-EN 1264 dla konstrukcji drewnianych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Etap 1: Obliczenie OZC dla każdego pomieszczenia z uwzględnieniem szczelności wiatrowej.",
        "Etap 2: Dobór hydrauliczny - długość pętli, opory i kryzowanie na rotametrach.",
        "Etap 3: Zabezpieczenie minimalnego przepływu dla defrostu pompy ciepła (bufor szeregowy)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-pipeline",
    "name": "Interaktywny Schemat Projektowy HVAC",
    "description": "Narzędzie edukacyjne ilustrujące chronologię prac projektowych dla instalacji grzewczych w lekkich konstrukcjach szkieletowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipeline-container" id="rk-project-pipeline">
    <div class="rk-pipeline-header">
        <h2>Jak ogrzewanie podłogowe w domu szkieletowym wpływa na projekt instalacji?</h2>
        <p>Każdy profesjonalny projekt w technologii szkieletowej musi bezwzględnie bazować na trójstopniowej strukturze, całkowicie odrębnej od schematów powielanych w domach murowanych. Odkryj kolejne etapy inżynierskiego procesu.</p>
    </div>

    <!-- Stepper Navigation -->
    <div class="rk-stepper-nav">
        <button class="rk-step-btn active" onclick="showStep('step1', this)">
            <span class="rk-step-num">1</span>
            <span class="rk-step-title">Obliczenia OZC</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step2', this)">
            <span class="rk-step-num">2</span>
            <span class="rk-step-title">Hydraulika systemu</span>
        </button>
        <button class="rk-step-btn" onclick="showStep('step3', this)">
            <span class="rk-step-num">3</span>
            <span class="rk-step-title">Maszynownia</span>
        </button>
    </div>

    <!-- Content Area (Single Column) -->
    <div class="rk-step-content-area">
        
        <!-- Etap 1: OZC -->
        <div class="rk-step-panel active" id="step1">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 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>
                <h3>Obliczenie Zapotrzebowania na Ciepło (OZC)</h3>
            </div>
            <div class="rk-panel-body">
                <p>To absolutny fundament. Projektant musi wyznaczyć straty ciepła dla każdego pokoju osobno, co wprost odnosi się do <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normy PN-EN 12831</a>. Ze względu na wysoką szczelność domów szkieletowych (często wyposażonych w rekuperację), straty wentylacyjne są tu minimalne.</p>
                <ul>
                    <li>Dokładne modelowanie strat przez przegrody i wentylację mechaniczną.</li>
                    <li>Określenie szczytowej mocy dla każdego pomieszczenia wyrażonej w Watach.</li>
                    <li>Projekt wykonany bez profesjonalnego OZC to gwarancja źle działającej, przewymiarowanej instalacji.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 2: Hydraulika -->
        <div class="rk-step-panel" id="step2">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" 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 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                </div>
                <h3>Projekt Hydrauliczny (PN-EN 1264)</h3>
            </div>
            <div class="rk-panel-body">
                <p>Na podstawie OZC następuje indywidualny dobór rozstawu rur. Projekt określa dokładną długość każdej pętli oraz nastawy wstępne na <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">rozdzielaczach</a> (przepływy w l/min), co stanowi kluczowy element wymogów <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy EN 1264</a>.</p>
                <ul>
                    <li>Wybór technologii (np. system suchy o niskiej masie strukturalnej).</li>
                    <li>Odrzucenie zasady "co 10 cm wszędzie" na rzecz analitycznego doboru rozstawów.</li>
                    <li>Równoważenie ciśnień zapobiegające sytuacji, w której najdłuższa pętla jest niedogrzana z powodu oporów hydraulicznych.</li>
                </ul>
            </div>
        </div>

        <!-- Etap 3: Źródło -->
        <div class="rk-step-panel" id="step3">
            <div class="rk-panel-top">
                <div class="rk-panel-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <h3>Integracja ze Źródłem Ciepła</h3>
            </div>
            <div class="rk-panel-body">
                <p>Ponieważ lekka podłogówka posiada niewielką pojemność wodną, kluczowym wyzwaniem jest zapewnienie minimalnego przepływu wymaganego przez producenta pompy ciepła do przeprowadzenia procedury odszraniania parownika (defrost).</p>
                <ul>
                    <li>Brak konieczności instalowania stratnych układów z zaworami mieszającymi.</li>
                    <li>W systemach suchych stosuje się często dedykowany <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła wpięty szeregowo</a> (pojemność zaledwie 40–60 litrów).</li>
                    <li>Pozwala to na zachowanie bezpośredniego zasilania rozdzielaczy i maksymalnego współczynnika SCOP pompy ciepła.</li>
                </ul>
            </div>
        </div>

    </div>

    <!-- CTA do Projektów -->
    <div class="rk-cta-wrapper">
        <h3>Nie zgaduj z pompą ciepła i rurkami</h3>
        <p>Szkielet drewniany wymaga inżynierskiej precyzji, nie wykonawstwa "na oko". Zabezpiecz swój komfort i portfel już na etapie planowania, oddając obliczenia w ręce specjalistów.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
            ZAMÓW INDYWIDUALNY PROJEKT OGRZEWANIA PODŁOGOWEGO Z OBLICZENIAMI OZC
            <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>
function showStep(stepId, btnElement) {
    // 1. Zabezpieczone resetowanie przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-step-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja klikniętego przycisku
    btnElement.classList.add('active');
    
    // 3. Ukrywanie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-step-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-step-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].classList.remove('active');
        j++;
    }
    
    // 4. Wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(stepId);
    if (targetPanel !== null) {
        targetPanel.classList.add('active');
    }
}
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gold: #eab308;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-red: #ef4444;
    --rk-case-green: #10b981;
}

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

/* Nagłówek i Profil Inwestora */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-case-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-persona-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-persona-avatar {
    width: 60px;
    height: 60px;
    background: var(--rk-case-gold);
    color: var(--rk-case-dark);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 24px;
    flex-shrink: 0;
}

.rk-persona-info h3 {
    margin: 0 0 5px 0;
    font-size: 20px;
    font-weight: 800;
    color: #ffffff;
}

.rk-persona-info p {
    margin: 0;
    font-size: 15px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Interaktywna Nawigacja (Oś czasu) */
.rk-case-timeline {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-case-border);
    padding: 20px 50px;
    gap: 15px;
}

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

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

.rk-timeline-btn.active {
    border-color: var(--rk-case-blue);
    background: var(--rk-case-blue-light);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.1);
}

.rk-step-indicator {
    width: 30px;
    height: 30px;
    background: #cbd5e1;
    color: #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
}

.rk-timeline-btn.active .rk-step-indicator {
    background: var(--rk-case-blue);
}

.rk-timeline-text {
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
}

.rk-timeline-btn.active .rk-timeline-text {
    color: var(--rk-case-dark);
}

/* Obszar Treści */
.rk-case-content {
    padding: 40px 50px;
    background: #ffffff;
}

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

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

.rk-panel-header svg {
    width: 32px;
    height: 32px;
}

.rk-panel-header h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 0;
}

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

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

/* Kafelki z danymi (Zestawienia) */
.rk-data-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

.rk-data-card {
    padding: 20px;
    border-radius: 16px;
    border: 1px solid;
    background: #f8fafc;
}

.rk-data-card.bad {
    background: #fef2f2;
    border-color: rgba(239, 68, 68, 0.2);
}

.rk-data-card.good {
    background: #f0fdf4;
    border-color: rgba(16, 185, 129, 0.2);
}

.rk-data-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    color: #64748b;
    margin-bottom: 5px;
}

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

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-timeline, .rk-case-content { padding: 30px 20px; }
    .rk-case-timeline { flex-direction: column; gap: 10px; }
    .rk-timeline-btn { width: 100%; padding: 15px; }
    .rk-data-grid { grid-template-columns: 1fr; }
    .rk-persona-card { flex-direction: column; text-align: center; }
    .rk-persona-info p { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku",
    "description": "Analiza rzeczywistego przypadku inwestora z Tarnowskich Gór. Zobacz, jak zmiana amatorskiego planu na inżynierski projekt OZC uratowała nośność stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-casestudy",
    "name": "Zestawienie Zwrotu z Inwestycji (ROI) dla Projektu Ogrzewania",
    "description": "Dane analityczne pochodzące z rzeczywistego wdrożenia systemu suchego w domu szkieletowym 130m2 w Tarnowskich Górach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z pompy ciepła",
      "kompleksowa wycena ogrzewania podłogowego wodnego na co przygotować budżet",
      "zwrot z inwestycji w ogrzewanie podłogowe",
      "projekt ogrzewania podłogowego z głowy vs projekt z obliczeniami",
      "taktowanie pompy ciepła w domu szkieletowym"
    ],
    "measurementTechnique": "Analiza porównawcza parametrów statycznych (obciążenie kN/m2) oraz symulacja kosztów eksploatacyjnych po wdrożeniu audytu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plan Inwestora: Wylewka 7 cm (obciążenie ok. 165 kg/m2), rury co 10 cm, brak OZC.",
        "Plan Inżynierski: System suchy (obciążenie 30 kg/m2), rozstaw rur 15-20 cm z OZC.",
        "Wynik wdrożenia: Uratowanie nośności stropu, płynna praca pompy ciepła (brak taktowania), optymalny zwrot z inwestycji po 6 latach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-casestudy",
    "name": "Interaktywny Dziennik Inwestycji",
    "description": "Aplikacja edukacyjna pozwalająca prześledzić etapy audytu i optymalizacji projektu instalacji grzewczej dla konkretnego przypadku budowlanego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-real-case">
    
    <!-- Nagłówek i Persona -->
    <div class="rk-case-header">
        <h2 class="rk-case-title">Case Study: Ogrzewanie podłogowe w domu szkieletowym na Śląsku</h2>
        
        <div class="rk-persona-card">
            <div class="rk-persona-avatar">T</div>
            <div class="rk-persona-info">
                <h3>Tomasz, 42 lata</h3>
                <p>
                    <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>
                    Tarnowskie Góry (woj. śląskie) | Dom szkieletowy 130 m²
                </p>
            </div>
        </div>
    </div>

    <!-- Nawigacja (Oś czasu) -->
    <div class="rk-case-timeline">
        <button class="rk-timeline-btn active" onclick="switchCaseStep('caseStep1', this)">
            <div class="rk-step-indicator">1</div>
            <span class="rk-timeline-text">Pierwotny pomysł Tomka</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep2', this)">
            <div class="rk-step-indicator">2</div>
            <span class="rk-timeline-text">Nasza Diagnoza i Projekt</span>
        </button>
        <button class="rk-timeline-btn" onclick="switchCaseStep('caseStep3', this)">
            <div class="rk-step-indicator">3</div>
            <span class="rk-timeline-text">Faktyczny Efekt Inwestycji</span>
        </button>
    </div>

    <!-- Obszar treści paneli -->
    <div class="rk-case-content">
        
        <!-- Etap 1 -->
        <div class="rk-case-panel" id="caseStep1" style="display: block;">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-red);" 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>
                <h3>Problem: Wykonawstwo "na oko"</h3>
            </div>
            <p>Tomasz zgłosił się do nas w momencie, gdy lokalny hydraulik przygotowywał się do układania instalacji. Plan wykonawcy zakładał ułożenie rur co 10 cm w całym domu szkieletowym, aby "było ciepło", oraz wylanie na drewniany strop 7 cm betonu z miksokreta. Ponadto, wybrano urządzenie bez weryfikacji. Tomek szukał w sieci informacji, sprawdzając zawiłą <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">kompleksową wycenę ogrzewania podłogowego wodnego i na co przygotować budżet</a>, i intuicyjnie czuł, że ten plan zrujnuje mu portfel.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Planowane obciążenie stropu</div>
                    <div class="rk-data-val">165 kg / m²</div>
                </div>
                <div class="rk-data-card bad">
                    <div class="rk-data-label">Ryzyko dla pompy ciepła</div>
                    <div class="rk-data-val">Taktowanie (Krótkie cykle)</div>
                </div>
            </div>
        </div>

        <!-- Etap 2 -->
        <div class="rk-case-panel" id="caseStep2">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-blue);" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                <h3>Diagnoza: Ratunek statyki i hydrauliki</h3>
            </div>
            <p>Wstrzymaliśmy prace. Przedstawiliśmy Tomkowi zestawienie: <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</a>. Przeprowadziliśmy pełne OZC dla jego domu. Okazało się, że zapotrzebowanie jest tak niskie, że rozstaw co 10 cm "udusiłby" układ.</p>
            <p><strong>Decyzja inżynieryjna:</strong> Zrezygnowaliśmy z ciężkiego betonu na rzecz ultralekkiego systemu suchego na cienkich płytach EPS. Zmieniliśmy ułożenie z 10 cm na precyzyjnie wyliczone 15 cm i 20 cm, stawiając na prawidłowy <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>, który od razu przewidział zastosowanie 50-litrowego bufora dla wymuszenia defrostu.</p>
        </div>

        <!-- Etap 3 -->
        <div class="rk-case-panel" id="caseStep3">
            <div class="rk-panel-header">
                <svg style="color: var(--rk-case-green);" 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>
                <h3>Faktyczny Efekt Inwestycji</h3>
            </div>
            <p>Instalacja działa bez zarzutu. Rezygnacja z betonu na rzecz systemu suchego obniżyła obciążenie drewnianych belek na piętrze pięciokrotnie. Dom szkieletowy oddaje ciepło natychmiast, a co najważniejsze – inteligentne strefowanie odcina podłogówkę, gdy duże okna wpuszczają słońce.</p>
            <p>Tomek przekonał się, że <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji w ogrzewanie podłogowe (realne wyliczenia na 2026 rok)</a> jest możliwy tylko wtedy, gdy początkowy droższy zakup odpowiednich materiałów i projektu OZC przekłada się na lata bezawaryjnej pracy sprzętu i niskie rachunki.</p>
            
            <div class="rk-data-grid">
                <div class="rk-data-card good">
                    <div class="rk-data-label">Ostateczne obciążenie stropu</div>
                    <div class="rk-data-val">30 kg / m²</div>
                </div>
                <div class="rk-data-card good">
                    <div class="rk-data-label">Praca systemu grzewczego</div>
                    <div class="rk-data-val">Stabilna, niski pobór prądu</div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function switchCaseStep(panelId, btnElement) {
    // 1. Zabezpieczony reset przycisków na osi czasu
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-timeline-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja wybranego etapu
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie wszystkich paneli treści
    var contentArea = document.querySelector('.rk-case-content');
    var allPanels = contentArea.getElementsByClassName('rk-case-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie właściwego panelu
    var targetPanel = document.getElementById(panelId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-blue-light: #f0f9ff;
    --rk-auth-gold: #eab308;
    --rk-auth-bg: #ffffff;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #334155;
    --rk-auth-quote: #1e293b;
}

.rk-auth-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-auth-border);
    box-shadow: 0 15px 35px -5px rgba(2, 132, 199, 0.08);
    display: flex;
    flex-direction: row;
    overflow: hidden;
}

/* Lewa Kolumna - Zdjęcie i Sociale */
.rk-auth-sidebar {
    width: 320px;
    background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-right: 1px solid var(--rk-auth-border);
    text-align: center;
}

.rk-auth-avatar {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    object-fit: cover;
    border: 6px solid #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

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

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

.rk-auth-socials {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.rk-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: #ffffff;
    color: var(--rk-auth-dark);
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid var(--rk-auth-border);
    /* Brak animacji zgodnie z wytycznymi */
}

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

/* Prawa Kolumna - Treść Interaktywna */
.rk-auth-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-auth-nav {
    display: flex;
    background: #ffffff;
    border-bottom: 2px solid var(--rk-auth-border);
}

.rk-auth-tab {
    flex: 1;
    background: transparent;
    border: none;
    padding: 20px 15px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 4px solid transparent;
    /* Brak animacji */
}

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

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

.rk-auth-content-area {
    padding: 35px 40px;
    background: #ffffff;
    flex: 1;
}

.rk-auth-panel {
    display: none;
    /* Brak animacji fadeIn */
}

/* Typografia Paneli */
.rk-auth-panel h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-auth-dark);
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-auth-panel h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-auth-dark);
    margin: 0 0 15px 0;
}

/* Cytat */
.rk-quote-block {
    position: relative;
    padding: 25px 30px;
    background: var(--rk-auth-quote);
    color: #ffffff;
    border-radius: 16px;
    border-left: 6px solid var(--rk-auth-gold);
}

.rk-quote-mark {
    font-size: 60px;
    font-family: serif;
    color: rgba(255,255,255,0.1);
    line-height: 1;
    position: absolute;
    top: 10px;
    left: 20px;
}

.rk-quote-text {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.7;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* Lista Zasad */
.rk-rules-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

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

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

.rk-rule-icon {
    flex-shrink: 0;
    color: var(--rk-auth-blue);
    background: var(--rk-auth-blue-light);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
}

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

.rk-rule-text strong {
    color: var(--rk-auth-dark);
    display: block;
    margin-bottom: 4px;
}

/* Opis Eksperta */
.rk-bio-text p {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-auth-text);
    margin: 0 0 15px 0;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-auth-container { flex-direction: column; }
    .rk-auth-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-auth-border); padding: 30px 20px; }
    .rk-auth-nav { flex-direction: column; }
    .rk-auth-tab { border-bottom: none; border-left: 4px solid transparent; text-align: left; padding: 15px 25px; border-top: 1px solid var(--rk-auth-border); }
    .rk-auth-tab.active { border-left-color: var(--rk-auth-blue); border-bottom-color: transparent; }
    .rk-auth-content-area { padding: 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Zdaniem Roberta Kucharskiego - Podsumowanie inżynieryjne instalacji w domu szkieletowym",
    "description": "Stanowisko eksperckie, zestawienie żelaznych zasad projektowych oraz manifest budowlany dotyczący lekkich konstrukcji podłogowych.",
    "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://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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-zasady",
    "name": "Zbiór Zasad Inżynieryjnych Roberta Kucharskiego",
    "description": "Baza wiedzy zdefiniowana przez eksperta branżowego, obejmująca procedury postępowania przy inwestycjach w ogrzewanie płaszczyznowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego z obliczeniami",
      "czy do ogrzewania podłogowego potrzebny jest projekt",
      "budowa bez ściemy",
      "największy bloger budowlany",
      "ekspert instalacji grzewczych"
    ],
    "measurementTechnique": "Weryfikacja dobrych praktyk instalacyjnych na podstawie wytycznych autorskich Projekt-Ogrzewania.pl.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Bezwzględny wymóg dokumentacji OZC przed ułożeniem pierwszego metra rury.",
        "Zasada 2: Dopasowanie bezwładności posadzki do technologii wznoszenia budynku.",
        "Zasada 3: Weryfikacja oporów hydraulicznych i podział pętli powyżej 100 mb."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-ekspert",
    "name": "Interaktywny Profil Eksperta HVAC",
    "description": "Cyfrowa wizytówka pozwalająca na przełączanie się pomiędzy podsumowaniem merytorycznym artykułu a zbiorem żelaznych zasad projektowych autora.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-auth-container" id="rk-expert-profile">
    
    <!-- Kolumna Autora -->
    <div class="rk-auth-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-auth-avatar">
        <div class="rk-auth-role">CEO & Główny Projektant</div>
        <div class="rk-auth-name-tag">Robert Kucharski</div>
        
        <div class="rk-auth-socials">
            <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
            </a>
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" class="rk-social-link" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
            </a>
        </div>
    </div>

    <!-- Kolumna Treści Interaktywnej -->
    <div class="rk-auth-main">
        <div class="rk-auth-nav">
            <button class="rk-auth-tab active" onclick="switchAuthTab('tabCytat', this)">Podsumowanie</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabZasady', this)">Żelazne Zasady</button>
            <button class="rk-auth-tab" onclick="switchAuthTab('tabBio', this)">O Autorze</button>
        </div>

        <div class="rk-auth-content-area">
            
            <!-- Tab 1: Cytat (H2 zgodne z wytycznymi) -->
            <div class="rk-auth-panel" id="tabCytat" style="display: block;">
                <h2>Zdaniem Roberta Kucharskiego...</h2>
                <div class="rk-quote-block">
                    <div class="rk-quote-mark">"</div>
                    <p class="rk-quote-text">Budując dom o lekkiej konstrukcji szkieletowej, musisz całkowicie wymazać z pamięci nawyki stosowane w ciężkim budownictwie murowanym. Twoim największym wrogiem nie są wcale straty ciepła, lecz bezwładność betonu i brak precyzyjnego strefowania. Wybierając technologię suchą, nie inwestujesz wyłącznie w rury, lecz w bezpieczeństwo statyczne drewnianych stropów oraz sprawność Twojej pompy ciepła na lata.</p>
                </div>
            </div>

            <!-- Tab 2: Zasady -->
            <div class="rk-auth-panel" id="tabZasady">
                <h3>Inżynieryjny dekalog inwestora</h3>
                <ul class="rk-rules-list">
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Fundament Obliczeniowy</strong>
                            <p>Zanim pozwolisz ekipie rozwinąć pierwszy zwój rury, upewnij się <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">czy do ogrzewania podłogowego potrzebny jest projekt</a>. Odpowiedź brzmi: bez OZC i doboru hydraulicznego niszczysz budżet.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 22 22 22"></polygon></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Bezpieczeństwo Drewna (C24)</strong>
                            <p>Wilgoć technologiczna z mokrych jastrychów rzędu tysięcy litrów jest zabójcza dla konstrukcji szkieletu. Zawsze kieruj się w stronę zabudowy suchej.</p>
                        </div>
                    </li>
                    <li>
                        <div class="rk-rule-icon">
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                        </div>
                        <div class="rk-rule-text">
                            <strong>Szybka Reakcja</strong>
                            <p>Dom z drewna wychładza się i nagrzewa błyskawicznie. Wymusza to stosowanie cienkich posadzek o szybkiej reakcji na inteligentne termostaty pokojowe.</p>
                        </div>
                    </li>
                </ul>
            </div>

            <!-- Tab 3: Bio -->
            <div class="rk-auth-panel" id="tabBio">
                <h3>Budowa bez ściemy</h3>
                <div class="rk-bio-text">
                    <p>Jestem największym blogerem branży budowlanej i wykończeniowej w Polsce oraz głównym projektantem systemów płaszczyznowych. Na co dzień zarządzam portalem Projekt-Ogrzewania.pl, gdzie dzielę się bezkompromisową, techniczną wiedzą z inwestorami.</p>
                    <p>Założyłem inicjatywę <strong>"Robert Kucharski – Budowa bez ściemy"</strong> oraz grupę <strong>"NIEZATAPIALNI"</strong>, aby chronić budujących przed patologiami wykonawczymi powielanymi z pokolenia na pokolenie. <a href="https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/">Historia ogrzewania podłogowego</a> dowodzi, że ewolucja technologii wymaga otwartego umysłu, a nie ślepego podążania za hasłem "zawsze tak robiliśmy".</p>
                </div>
            </div>

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

<script>
function switchAuthTab(tabId, btnElement) {
    // 1. Zabezpieczony reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-auth-tab');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // 2. Aktywacja przycisku (bez animacji)
    btnElement.classList.add('active');
    
    // 3. Zabezpieczone ukrycie paneli (bez animacji)
    var contentArea = document.querySelector('.rk-auth-content-area');
    var allPanels = contentArea.getElementsByClassName('rk-auth-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // 4. Natychmiastowe wyświetlenie wybranego panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}
</script>



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

.rk-faq-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    margin-bottom: 30px;
    padding-left: 15px;
    border-left: 5px solid var(--rk-faq-blue);
}

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

.rk-faq-subtitle {
    font-size: 16px;
    color: #64748b;
    margin: 0;
}

.rk-faq-wrapper {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    transition: all 0.3s ease;
}

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

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

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

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

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-blue);
    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-content {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: #fafafa;
}

.rk-faq-item.is-open .rk-faq-content {
    opacity: 1;
}

.rk-faq-body {
    padding: 0 30px 30px 30px;
}

.rk-faq-body p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-faq-text);
    padding-top: 20px;
    border-top: 1px dashed #cbd5e1;
}

.rk-faq-body a {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(2, 132, 199, 0.2);
    transition: border-color 0.2s;
}

.rk-faq-body a:hover {
    border-bottom-color: var(--rk-faq-blue);
}

@media (max-width: 768px) {
    .rk-faq-trigger { padding: 20px; }
    .rk-faq-trigger h3 { font-size: 16px; }
    .rk-faq-body { padding: 0 20px 20px 20px; }
    .rk-faq-body p { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o podłogówkę w domu szkieletowym",
    "description": "Błyskawiczne inżynierskie odpowiedzi na pytania dotyczące głośności pracy, doboru podłogi, bezwładności i zużycia prądu przez pompę ciepła w systemach suchych.",
    "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-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur."
        }
      },
      {
        "@type": "Question",
        "name": "Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub panele laminowane/winylowe z oznaczeniem producenta o przydatności do wodnego ogrzewania podłogowego (opór cieplny R poniżej 0,15 m2K/W)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana podłogówka o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach i dostosowanie jej do profilu dobowego użytkowników bez konieczności dublowania systemów grzewczych."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się sucha podłogówka w szkielecie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Od momentu uruchomienia pompy ciepła i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach, podczas gdy klasyczny beton potrzebuje na to od 4 do 6 godzin."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, zużycie energii będzie na tym samym lub niższym poziomie, ponieważ niska bezwładność systemu suchego umożliwia precyzyjne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z przegrzewaniem mas betonowych."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-faq",
    "name": "Baza Wiedzy Interaktywnej - FAQ Systemy Suche",
    "description": "Interaktywny panel zapytań umożliwiający szybką nawigację po najczęstszych problemach instalacyjnych w budownictwie drewnianym.",
    "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">
        <h2>FAQ – Najczęściej zadawane pytania</h2>
        <p class="rk-faq-subtitle">Inżynierskie fakty i mity o ogrzewaniu w konstrukcjach lekkich.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy system suchy ogrzewania podłogowego jest głośniejszy od tradycyjnej wylewki?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, prawidłowo zamontowany system suchy z folią poślizgową PE (ułożoną między lamelami aluminiowymi a panelami posadzkowymi) nie generuje żadnych pisków ani trzasków podczas rozszerzalności termicznej rur. Zobacz również, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">jakie zasady obowiązują przy montażu instalacji na nośnym stropie drewnianym</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Jakie wykończenie podłogi wybrać na system suchy w domu szkieletowym?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Najlepsze parametry przewodzenia wykazują płytki ceramiczne lub gres (klejone elastycznym klejem klasy S1 na specjalnych płytach cementowo-włóknowych), a w drugiej kolejności trójwarstwowa deska barlinecka lub dedykowane materiały laminowane. Szukaj oznaczenia producenta o przydatności do wodnego ogrzewania (opór cieplny R poniżej 0,15 m²K/W). Przeczytaj więcej o dylemacie: <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy w domu szkieletowym z podłogówką muszę montować grzejniki w sypialniach?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie ma takiej potrzeby, ponieważ dobrze zaprojektowana instalacja płaszczyznowa o niskiej bezwładności pozwala na pełną kontrolę temperatury w sypialniach. Umożliwia precyzyjne dostosowanie krzywej grzewczej do profilu dobowego użytkowników bez konieczności dublowania kosztownych systemów. Sprawdź szczegółową <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">analizę podłogówki jako jedynego źródła ciepła</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Ile czasu nagrzewa się sucha podłogówka w szkielecie?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Od momentu uruchomienia pompy i podania czynnika grzewczego, odczuwalny wzrost temperatury powierzchniowej posadzki następuje już po 30–60 minutach. Dla porównania klasyczny zład betonowy potrzebuje na to od 4 do 6 godzin. Wynika to bezpośrednio z fizyki, co dokładnie wyjaśniam w materiale o tym <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" onclick="toggleFaq(this)">
                <h3>Czy pompa ciepła w domu szkieletowym zużyje więcej prądu przy braku wylewek akumulacyjnych?</h3>
                <div class="rk-faq-icon">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-body">
                    <p>Nie, zużycie energii elektrycznej będzie na tym samym lub niższym poziomie. Niska bezwładność systemu suchego umożliwia bardzo precyzyjne, inteligentne dopasowanie produkcji ciepła do bieżących strat budynku bez strat związanych z niekontrolowanym przegrzewaniem (i późniejszym wychładzaniem) dużych mas betonowych. Dowiedz się więcej, czy <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompa ciepła efektywnie współpracuje z samą podłogówką</a>.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function toggleFaq(btn) {
    const parent = btn.parentElement;
    const content = parent.querySelector('.rk-faq-content');
    
    // Sprawdzamy, czy aktualny element jest otwarty
    const isOpen = parent.classList.contains('is-open');
    
    // Zamykamy wszystkie inne panele
    const allItems = document.querySelectorAll('.rk-faq-item');
    for (let i = 0; i < allItems.length; i++) {
        let item = allItems[i];
        item.classList.remove('is-open');
        let itemContent = item.querySelector('.rk-faq-content');
        if (itemContent !== null) {
            itemContent.style.maxHeight = null;
        }
    }
    
    // Jeśli kliknięty element nie był otwarty, to go otwieramy
    if (isOpen === false) {
        parent.classList.add('is-open');
        // Bezpieczne przypisanie max-height dynamicznie
        content.style.maxHeight = content.scrollHeight + "px";
    }
}
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-gold: #eab308;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-gray: #f8fafc;
}

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

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

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-dl-header h2 svg {
    color: var(--rk-dl-gold);
    flex-shrink: 0;
}

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

/* Główny obszar dwukolumnowy (Desktop) */
.rk-dl-body {
    display: flex;
    flex-direction: row;
    background: #ffffff;
}

/* Lewa Kolumna - Podgląd Infografiki */
.rk-dl-preview-col {
    width: 400px;
    padding: 35px;
    background: var(--rk-dl-gray);
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-thumb-box {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 10px;
    box-shadow: 0 10px 20px rgba(0,0,0,0.05);
    margin-bottom: 20px;
}

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

.rk-dl-enlarge-btn {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: none;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    justify-content: center;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

.rk-dl-enlarge-btn:hover {
    background: #0369a1;
}

/* Prawa Kolumna - Treść i Przyciski */
.rk-dl-content-col {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Nawigacja w prawej kolumnie */
.rk-dl-tabs {
    display: flex;
    flex-direction: row;
    border-bottom: 1px solid var(--rk-dl-border);
    background: var(--rk-dl-gray);
}

.rk-dl-tab-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 18px 20px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    /* Celowy brak transition wg wytycznych */
}

.rk-dl-tab-btn:hover {
    background: #e2e8f0;
    color: var(--rk-dl-dark);
}

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

/* Obszar treści zakładek */
.rk-dl-panels {
    padding: 30px 35px;
    flex: 1;
}

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

.rk-dl-panel h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-dl-license-box {
    background: #fef9c3;
    border-left: 4px solid var(--rk-dl-gold);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    margin-bottom: 20px;
}

.rk-dl-license-box p {
    margin: 0;
    color: #854d0e;
    font-size: 14px;
    font-weight: 600;
}

/* Przyciski Pobierania */
.rk-dl-actions {
    padding: 25px 35px;
    background: var(--rk-dl-gray);
    border-top: 1px solid var(--rk-dl-border);
    display: flex;
    gap: 15px;
}

.rk-dl-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    /* Celowy brak transition wg wytycznych */
}

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

.rk-dl-btn-pdf:hover {
    background: #0369a1;
}

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

.rk-dl-btn-img:hover {
    background: #e2e8f0;
    border-color: #cbd5e1;
}

/* Stopka Prawna */
.rk-dl-footer {
    padding: 15px 35px;
    background: var(--rk-dl-dark);
    color: #94a3b8;
    font-size: 13px;
    text-align: center;
    border-top: 1px solid #1e293b;
}

/* Interaktywna Nakładka na pełne zdjęcie */
.rk-img-modal {
    display: none;
    width: 100%;
    padding: 20px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-img-modal img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
}

.rk-close-modal {
    margin-top: 15px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 25px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    text-transform: uppercase;
}

.rk-close-modal:hover {
    background: #1e293b;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-body { flex-direction: column; }
    .rk-dl-preview-col { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-dl-border); padding: 25px; }
    .rk-dl-tabs { flex-direction: column; }
    .rk-dl-tab-btn { text-align: left; border-bottom: none; border-left: 4px solid transparent; }
    .rk-dl-tab-btn.active { border-bottom-color: transparent; border-left-color: var(--rk-dl-blue); }
    .rk-dl-actions { flex-direction: column; padding: 25px; }
    .rk-dl-btn { width: 100%; }
    .rk-dl-panels { padding: 25px; }
    .rk-dl-header { padding: 30px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Kompendium w pigułce – Pobierz darmową infografikę instalacyjną",
    "description": "Profesjonalna infografika podsumowująca różnice i najczęstsze błędy w instalacjach ogrzewania podłogowego dla konstrukcji szkieletowych. Plik PDF gotowy na budowę.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.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": "2025-12-29",
    "dateModified": "2026-07-16"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-infografika",
    "name": "Zestawienie Wizualne: Błędy Instalacyjne i Dobór Posadzek",
    "description": "Graficzna reprezentacja parametrów krytycznych (OZC, wilgoć, statyka) niezbędnych podczas audytów instalacji płaszczyznowych w technologii drewnianej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego czy warto robić to samemu",
      "jakie błędy najczęściej popełniają instalatorzy ogrzewania podłogowego",
      "wodne ogrzewanie podłogowe a meble jak połączyć komfort i aranżacje",
      "jak często trzeba serwisować ogrzewanie podłogowe",
      "schemat montażu instalacji szkielet"
    ],
    "measurementTechnique": "Agregacja inżynieryjnych danych liczbowych do postaci wizualnych diagramów porównawczych formatu A4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wektorowa ilustracja obciążeń konstrukcyjnych generowanych przez jastrych betonowy.",
        "Schemat przepływów hydraulicznych i taktowania pompy ciepła.",
        "Kompendium wiedzy do wykorzystania mobilnego (Smartfon/Tablet)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-infografika",
    "name": "Interaktywne Centrum Pobierania Infografik HVAC",
    "description": "Aplikacja webowa ułatwiająca przegląd, akceptację warunków licencji oraz błyskawiczne pobieranie wektorowych materiałów szkoleniowych w formacie PDF i WEBP.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-hub">
    
    <!-- Nagłówek -->
    <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="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>
            Kompendium w pigułce – Pobierz darmową infografikę
        </h2>
        <p>Nie masz czasu czytać całego artykułu na budowie? Przygotowałem dla Ciebie czytelne, wizualne podsumowanie najważniejszych zagrożeń i parametrów.</p>
    </div>

    <!-- Moduł rozszerzonego obrazu (domyślnie ukryty) -->
    <div class="rk-img-modal" id="rkFullImage">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Pełny podgląd infografiki ogrzewania podłogowego" loading="lazy">
        <br>
        <button class="rk-close-modal" onclick="closeImage()">Zamknij Podgląd</button>
    </div>

    <!-- Główny podział na kolumny -->
    <div class="rk-dl-body" id="rkDlBody">
        
        <!-- Kolumna Lewa: Miniatura -->
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-box">
                <img decoding="async" class="rk-dl-thumbnail" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" alt="Miniatura: Ogrzewanie w szkielecie" loading="lazy">
            </div>
            <button class="rk-dl-enlarge-btn" onclick="openImage()">
                <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="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 Pełnego Zdjęcia
            </button>
        </div>

        <!-- Kolumna Prawa: Informacje i Akcje -->
        <div class="rk-dl-content-col">
            
            <!-- Nawigacja zakładek -->
            <div class="rk-dl-tabs">
                <button class="rk-dl-tab-btn active" onclick="switchInfoTab('infoDesc', this)">O Materiale</button>
                <button class="rk-dl-tab-btn" onclick="switchInfoTab('infoLicense', this)">Zasady Prawne</button>
            </div>

            <!-- Treść zakładek -->
            <div class="rk-dl-panels">
                
                <div class="rk-dl-panel" id="infoDesc" style="display: block;">
                    <h3>Co zawiera plik?</h3>
                    <p>Infografika w formacie wysokiej rozdzielczości to narzędzie stworzone dla wykonawców i inwestorów. Pokazuje wprost, dlaczego należy się zastanowić, <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">czy instalację ogrzewania podłogowego warto robić samemu</a>.</p>
                    <p>Omawiam na niej zjawisko punktu rosy, nośność stropu drewnianego oraz to, <a href="https://projekt-ogrzewania.pl/jakie-bledy-najczesciej-popelniaja-instalatorzy-ogrzewania-podlogowego/">jakie błędy najczęściej popełniają instalatorzy</a> bazując na mitach z budownictwa murowanego.</p>
                </div>

                <div class="rk-dl-panel" id="infoLicense">
                    <h3>Zasady Udostępniania</h3>
                    <div class="rk-dl-license-box">
                        <p>Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem oryginalnego logotypu portalu i bez żadnej modyfikacji pliku bazowego.</p>
                    </div>
                    <p>Zależy mi na edukacji rynku. Możesz wydrukować ten materiał na budowę, użyć go podczas konsultacji z klientem czy rozwiązywania dylematów, np. <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">jak połączyć komfort wodnej podłogówki z aranżacją mebli</a>, a także w kwestii tego, <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często trzeba serwisować cały układ</a>.</p>
                </div>

            </div>

            <!-- Przyciski akcji (Zawsze widoczne w prawej kolumnie) -->
            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-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="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="12" y1="18" x2="12" y2="12"></line><polyline points="9 15 12 18 15 15"></polyline></svg>
                    Pobierz PDF
                </a>
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/03/Infografika-Ogrzewanie-podlogowe-w-domu-szkieletowym-–-kluczowe-roznice-i-pulapki.webp" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-img">
                    <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="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>
                    Otwórz ZDJĘCIE
                </a>
            </div>

        </div>
    </div>

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

</div>

<script>
function switchInfoTab(tabId, btnElement) {
    // Natychmiastowy reset przycisków
    var navContainer = btnElement.parentElement;
    var allBtns = navContainer.getElementsByClassName('rk-dl-tab-btn');
    var i = 0;
    while (i < allBtns.length) {
        allBtns[i].classList.remove('active');
        i++;
    }
    
    // Natychmiastowa aktywacja
    btnElement.classList.add('active');
    
    // Natychmiastowe ukrycie paneli
    var contentArea = document.querySelector('.rk-dl-panels');
    var allPanels = contentArea.getElementsByClassName('rk-dl-panel');
    var j = 0;
    while (j < allPanels.length) {
        allPanels[j].style.display = 'none';
        j++;
    }
    
    // Wyświetlenie panelu
    var targetPanel = document.getElementById(tabId);
    if (targetPanel !== null) {
        targetPanel.style.display = 'block';
    }
}

function openImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'block';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'none';
    }
}

function closeImage() {
    var modal = document.getElementById('rkFullImage');
    var bodyArea = document.getElementById('rkDlBody');
    if (modal !== null) {
        modal.style.display = 'none';
    }
    if (bodyArea !== null) {
        bodyArea.style.display = 'flex';
    }
}
</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-tech-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;
}

/* Nagłówki */
.rk-tech-container h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-tech-container h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-sum-blue);
    margin: 0 0 20px 0;
}

.rk-tech-container h4 {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-sum-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 10px 0;
}

.rk-tech-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, #f8fafc 0%, #e0f2fe 100%);
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-tech-desc {
    font-size: 16px;
    color: #334155;
    line-height: 1.6;
    margin-bottom: 0;
}

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

/* Interaktywny Switcher */
.rk-interactive-module {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-toggle {
    display: flex;
    background: #f1f5f9;
    border-radius: 99px;
    padding: 6px;
    position: relative;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 30px;
    border-radius: 99px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    left: 6px;
    height: calc(100% - 12px);
    width: calc(50% - 6px);
    background: var(--rk-sum-blue);
    border-radius: 99px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    z-index: 1;
}

/* Panel Wyników (Grid / Flex) */
.rk-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.rk-stat-card {
    background: #f8fafc;
    border: 1px solid var(--rk-sum-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.3s ease;
}

.rk-stat-icon {
    width: 50px;
    height: 50px;
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
    flex-shrink: 0;
    color: var(--rk-sum-blue);
}

.rk-stat-info h4 {
    margin-bottom: 5px;
    color: #94a3b8;
    font-size: 13px;
}

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-sum-dark);
    margin: 0;
    line-height: 1.2;
}

.rk-stat-sub {
    font-size: 13px;
    color: #64748b;
    margin-top: 5px;
}

.val-green { color: var(--rk-sum-green); }
.val-red { color: var(--rk-sum-red); }

/* Tagi SEO Długi Ogon */
.rk-tags-cloud {
    padding: 0 50px 30px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    display: inline-block;
    padding: 8px 16px;
    background: #f1f5f9;
    color: #475569;
    font-size: 13px;
    font-weight: 600;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: #e2e8f0;
    color: var(--rk-sum-dark);
}

/* CTA */
.rk-tech-cta {
    padding: 40px 50px;
    background: var(--rk-sum-dark);
    text-align: center;
    border-top: 1px solid #1e293b;
}

.rk-tech-cta h3 {
    color: #ffffff;
    margin-bottom: 15px;
}

.rk-tech-cta p {
    color: #94a3b8;
    margin-bottom: 25px;
    font-size: 16px;
}

.rk-btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rk-sum-green);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.4);
}

.rk-btn-tech:hover {
    background: #059669;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(16, 185, 129, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-tech-header, .rk-interactive-module, .rk-tags-cloud, .rk-tech-cta { padding: 25px 20px; }
    .rk-tech-container h2 { font-size: 24px; }
    .rk-toggle { flex-direction: column; background: transparent; box-shadow: none; gap: 10px; padding: 0; }
    .rk-toggle-btn { background: #f1f5f9; color: #64748b; border: 1px solid var(--rk-sum-border); }
    .rk-toggle-btn.active { background: var(--rk-sum-blue); color: #ffffff; border-color: var(--rk-sum-blue); }
    .rk-toggle-bg { display: none; /* Ukrywamy animowane tło na mobile na rzecz prostych przycisków typu akordeon/stack */ }
    .rk-stats-grid { grid-template-columns: 1fr; }
    .rk-stat-card { padding: 20px; }
    .rk-btn-tech { width: 100%; font-size: 16px; padding: 15px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#article-suchy-vs-mokry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/"
    },
    "headline": "Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym",
    "description": "Techniczne porównanie parametrów: obciążenie stropu, czas reakcji oraz wilgoć technologiczna. Sprawdź, dlaczego wylewka betonowa w domu szkieletowym to błąd inżynieryjny.",
    "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-15",
    "dateModified": "2026-07-15"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#dataset-porownanie",
    "name": "Parametry Fizyczne Systemów Ogrzewania Podłogowego (Suchy vs Beton)",
    "description": "Zestawienie inżynierskie obciążeń statycznych, czasów wiązania oraz pojemności cieplnej dla posadzek grzewczych w budownictwie szkieletowym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obciążenie stropu drewnianego ogrzewaniem podłogowym",
      "czas schnięcia wylewki betonowej",
      "system suchy ogrzewania podłogowego parametry",
      "wylewka na ogrzewanie podłogowe waga",
      "wilgoć technologiczna w konstrukcji szkieletowej"
    ],
    "measurementTechnique": "Analiza numeryczna zgodnie z normą PN-EN 1264 i PN-EN 1995-1-1.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Suchy: Masa 30 kg/m2, Wilgoć 0 litrów, Czas schnięcia 0 dni.",
        "System Mokry (Jastrych): Masa 150 kg/m2, Wilgoć 20 litrów/m2, Czas schnięcia do 42 dni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/#webapp-symulator",
    "name": "Symulator Obciążeń i Wilgoci Podłogówki w Szkielecie",
    "description": "Interaktywny symulator pozwalający przełączać się między systemem suchym a mokrym w celu weryfikacji zagrożeń dla drewnianego stropu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-container" id="rk-system-comparator">
    <div class="rk-tech-header">
        <h2>Suchy vs. mokry system ogrzewania podłogowego w domu szkieletowym</h2>
        <p class="rk-tech-desc">
            Decyzja o wylaniu ton betonu na drewniany strop to punkt krytyczny inwestycji. Wybór technologii określa nie tylko bezwładność cieplną budynku, ale przede wszystkim bezpieczeństwo nośności drewna C24. Dowiedz się dokładnie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">czym jest system suchy</a> i zestaw to z ryzykiem, jakie niesie <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">klasyczna wylewka betonowa</a>.
        </p>
    </div>

    <div class="rk-interactive-module">
        <h3>Symulator wpływu technologii na konstrukcję</h3>
        
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle">
                <div class="rk-toggle-bg" id="rkToggleBg"></div>
                <button class="rk-toggle-btn active" onclick="switchTech('suchy')" id="btnSuchy">
                    <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>
                    System Suchy (Lekki)
                </button>
                <button class="rk-toggle-btn" onclick="switchTech('mokry')" id="btnMokry">
                    <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="M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z"></path></svg>
                    Wylewka Cementowa
                </button>
            </div>
        </div>

        <div class="rk-stats-grid">
            <!-- Karta 1 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>OBCIĄŻENIE STROPU / M2</h4>
                    <p class="rk-stat-val val-green" id="valWeight">~30 kg</p>
                    <p class="rk-stat-sub" id="subWeight">Całkowicie bezpieczne dla belek stropowych.</p>
                </div>
            </div>
            
            <!-- Karta 2 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>CZAS REAKCJI GRZEWCZEJ</h4>
                    <p class="rk-stat-val val-green" id="valTime">30 - 60 min</p>
                    <p class="rk-stat-sub" id="subTime">Błyskawiczne dopasowanie do zysków solarnych.</p>
                </div>
            </div>

            <!-- Karta 3 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 15v4c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2v-4M17 9l-5 5-5-5M12 12.8V2.5"></path></svg>
                </div>
                <div class="rk-stat-info">
                    <h4>WILGOĆ TECHNOLOGICZNA</h4>
                    <p class="rk-stat-val val-green" id="valMoisture">0 litrów</p>
                    <p class="rk-stat-sub" id="subMoisture">Brak ryzyka pęcznienia drewna konstrukcyjnego.</p>
                </div>
            </div>

            <!-- Karta 4 -->
            <div class="rk-stat-card">
                <div class="rk-stat-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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-stat-info">
                    <h4>GOTOWOŚĆ DO UKŁADANIA PANAELI</h4>
                    <p class="rk-stat-val val-green" id="valDrying">Natychmiast</p>
                    <p class="rk-stat-sub" id="subDrying">Oszczędzasz min. miesiąc postoju budowy.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-tags-cloud">
        <span class="rk-mat-tag"># ogrzewanie podłogowe w domu szkieletowym</span>
        <span class="rk-mat-tag"># system suchy ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># wylewka na ogrzewanie podłogowe</span>
        <span class="rk-mat-tag"># lekka podłogówka bez wylewki</span>
        <span class="rk-mat-tag"># obciążenie stropu drewnianego</span>
        <span class="rk-mat-tag"># czas schnięcia wylewki</span>
        <span class="rk-mat-tag"># frezowanie ogrzewania podłogowego</span>
        <span class="rk-mat-tag"># cena za m2 robocizny podłogówki</span>
        <span class="rk-mat-tag"># ogrzewanie podłogowe wodne bez wylewki</span>
        <span class="rk-mat-tag"># wilgoć technologiczna w domu drewnianym</span>
    </div>

    <div class="rk-tech-cta">
        <h3>Zabezpiecz budżet i uniknij błędów</h3>
        <p>Zobacz pełne analizy, wyliczenia i inżynierskie przewodniki. Przejdź do największej w Polsce bazy wiedzy o płaszczyznowych systemach grzewczych.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-tech">
            BAZA WIEDZY EKSKLUZYWNEJ
            <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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<script>
function switchTech(type) {
    const btnSuchy = document.getElementById('btnSuchy');
    const btnMokry = document.getElementById('btnMokry');
    const bg = document.getElementById('rkToggleBg');
    
    // Zmienne DOM dla wyników
    const valWeight = document.getElementById('valWeight');
    const subWeight = document.getElementById('subWeight');
    const valTime = document.getElementById('valTime');
    const subTime = document.getElementById('subTime');
    const valMoisture = document.getElementById('valMoisture');
    const subMoisture = document.getElementById('subMoisture');
    const valDrying = document.getElementById('valDrying');
    const subDrying = document.getElementById('subDrying');

    if (type === 'suchy') {
        btnSuchy.classList.add('active');
        btnMokry.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(0)';
        }

        valWeight.textContent = '~30 kg';
        valWeight.className = 'rk-stat-val val-green';
        subWeight.textContent = 'Całkowicie bezpieczne dla belek stropowych.';
        
        valTime.textContent = '30 - 60 min';
        valTime.className = 'rk-stat-val val-green';
        subTime.textContent = 'Błyskawiczne dopasowanie do zysków solarnych.';

        valMoisture.textContent = '0 litrów';
        valMoisture.className = 'rk-stat-val val-green';
        subMoisture.textContent = 'Brak ryzyka pęcznienia drewna konstrukcyjnego.';

        valDrying.textContent = 'Natychmiast';
        valDrying.className = 'rk-stat-val val-green';
        subDrying.textContent = 'Oszczędzasz min. miesiąc postoju budowy.';

    } else {
        btnMokry.classList.add('active');
        btnSuchy.classList.remove('active');
        if(window.innerWidth > 768) {
            bg.style.transform = 'translateX(100%)';
        }

        valWeight.textContent = '~150 kg';
        valWeight.className = 'rk-stat-val val-red';
        subWeight.textContent = 'Ryzyko przekroczenia nośności statycznej stropu.';
        
        valTime.textContent = '4 - 6 godzin';
        valTime.className = 'rk-stat-val val-red';
        subTime.textContent = 'Wysoka bezwładność, przegrzewanie pomieszczeń.';

        valMoisture.textContent = 'Setki litrów';
        valMoisture.className = 'rk-stat-val val-red';
        subMoisture.textContent = 'Zagrożenie pleśnią i pękaniem drewna budowlanego.';

        valDrying.textContent = '4 - 6 tygodni';
        valDrying.className = 'rk-stat-val val-red';
        subDrying.textContent = 'Blokada prac wykończeniowych na budowie.';
    }
}
</script>



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

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

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

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

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

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#article",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://projekt-ogrzewania.pl/google-preferred-sources"
      },
      "headline": "Wspieraj Projekt-Ogrzewania.pl w wynikach Google",
      "description": "Interaktywny widget umożliwiający dodanie portalu Projekt-Ogrzewania.pl do ulubionych źródeł w wyszukiwarce Google. Buduj z nami rzetelną bazę wiedzy o HVAC.",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
      "author": {
        "@type": "Person",
        "name": "Robert Kucharski",
        "url": "https://projekt-ogrzewania.pl/",
        "sameAs": [
          "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
          "https://www.facebook.com/projektogrzewaniapl/",
          "https://www.linkedin.com/in/robert-kucharski-38069b48/",
          "https://x.com/Projekt_HVAC",
          "https://remont.biz.pl/",
          "https://sobir.pl/"
        ]
      },
      "publisher": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl",
        "logo": {
          "@type": "ImageObject",
          "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
        }
      },
      "datePublished": "2026-07-09",
      "dateModified": "2026-07-09"
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#dataset",
      "name": "Preferowane Źródła Google - Statystyki i Interakcja",
      "description": "Zbiór danych i interaktywnych punktów styku pozwalających na ocenę preferencji czytelników dla treści technicznych HVAC.",
      "license": "https://projekt-ogrzewania.pl/",
      "creator": {
        "@type": "Person",
        "name": "Robert Kucharski"
      },
      "keywords": [
        "ogrzewanie podłogowe w domu szkieletowym",
        "lekka podłogówka system suchy",
        "wylewka na drewnianym stropie",
        "projekt instalacji ogrzewania podłogowego",
        "taktowanie pompy ciepła w szkielecie"
      ],
      "measurementTechnique": "Zliczanie interakcji z widgetem UI typu toggle oraz przekierowań do interfejsu preferencji Google Search",
      "mainEntity": "Optymalizacja zaangażowania użytkownika poprzez interaktywny widget dodawania domeny do preferencji Google."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/google-preferred-sources#webapplication",
      "name": "Google Preferences Toggle Widget",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "All",
      "description": "Aplikacja webowa w formie widgetu symulującego przełącznik mobilny, integrująca natywne linkowanie do ustawień preferowanych źródeł Google.",
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">Ogrzewanie podłogowe w domu szkieletowym – kluczowe różnice i pułapki.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</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>Krzywa grzewcza w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 06 Jan 2026 10:25:59 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kocioł gazowy]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Regulacja instalacji]]></category>
		<category><![CDATA[Termomodernizacja]]></category>
		<category><![CDATA[automatyka c.o.]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[regulacja ogrzewania]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3069</guid>

					<description><![CDATA[<p>Krzywa grzewcza w ogrzewaniu podłogowym to temat, który decyduje nie tylko o komforcie cieplnym, ale też o realnych kosztach eksploatacji domu. W artykule pokazujemy, dlaczego to właśnie algorytm sterujący, a nie sama instalacja, jest kluczem do efektywnego ogrzewania. Krok po kroku wyjaśniamy, jak działa krzywa grzewcza, jak dobrać jej parametry do rodzaju budynku oraz jak ją prawidłowo stroić w praktyce, aby uniknąć przegrzewania, niedogrzania i niepotrzebnych strat energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-hero-dark: #0f172a;
    --rk-hero-blue: #0284c7;
    --rk-hero-bg: #f8fafc;
    --rk-hero-border: #e2e8f0;
    --rk-hero-text: #475569;
    --rk-hero-red: #ef4444;
    --rk-hero-green: #10b981;
}

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

/* Sekcja Główna - Hook */
.rk-hero-hook {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-hero-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-hook-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

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

.rk-hero-hook h2 span {
    color: #38bdf8;
}

.rk-hook-text {
    font-size: 17px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

.rk-hook-text strong {
    color: #ffffff;
}

/* Szybka Odpowiedź (Direct Answer Box) */
.rk-quick-answer {
    margin: -20px 50px 30px 50px;
    background: #ffffff;
    border: 2px solid var(--rk-hero-blue);
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
    position: relative;
    z-index: 10;
}

.rk-qa-label {
    position: absolute;
    top: -12px;
    left: 20px;
    background: var(--rk-hero-blue);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-qa-content {
    font-size: 16px;
    color: var(--rk-hero-dark);
    line-height: 1.6;
    margin: 0;
    font-weight: 600;
}

.rk-qa-content a {
    color: var(--rk-hero-blue);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mapa Narzędzi (Interaktywna zawartość) */
.rk-tools-roadmap {
    padding: 10px 50px 40px;
}

.rk-roadmap-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-hero-dark);
    margin: 0 0 20px 0;
}

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

/* Przyciski interaktywne */
.rk-tool-btn {
    display: flex;
    align-items: center;
    gap: 15px;
    background: var(--rk-hero-bg);
    border: 1px solid var(--rk-hero-border);
    padding: 15px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    width: 100%;
}

.rk-tool-btn.active {
    background: #e0f2fe;
    border-color: var(--rk-hero-blue);
}

.rk-tool-icon {
    width: 44px;
    height: 44px;
    background: #ffffff;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-hero-blue);
    flex-shrink: 0;
    border: 1px solid var(--rk-hero-border);
}

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

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

.rk-tool-info p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-hero-text);
}

/* Dynamiczny panel podglądu */
.rk-tool-preview {
    background: var(--rk-hero-dark);
    border-radius: 12px;
    padding: 25px;
    color: #ffffff;
    display: none; /* Zmiana stanu bez animacji */
}

.rk-tool-preview.active {
    display: block;
}

.rk-preview-badge {
    color: #94a3b8;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: block;
}

.rk-preview-title {
    font-size: 18px;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 10px 0;
}

.rk-preview-desc {
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-hero-hook { padding: 30px 20px 40px; }
    .rk-hero-hook h2 { font-size: 24px; }
    .rk-quick-answer { margin: -20px 20px 30px 20px; padding: 20px; }
    .rk-tools-roadmap { padding: 10px 20px 30px; }
    .rk-roadmap-grid { grid-template-columns: 1fr; gap: 15px; } /* Układ pionowy na telefonach */
    .rk-tool-btn { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Krzywa grzewcza w ogrzewaniu podłogowym – Wprowadzenie i Szybka Odpowiedź",
    "description": "Definicja i fundamenty działania krzywej grzewczej. Jak niewłaściwa kalibracja sterownika pogodowego podnosi rachunki i niszczy 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://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wstep",
    "name": "Wpływ braku kalibracji krzywej na koszty eksploatacji",
    "description": "Dane z ponad 1000 analizowanych schematów hydraulicznych obrazujące finansowe i sprzętowe skutki błędnej konfiguracji parametru krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "koszty eksploatacji pompy ciepła",
      "współczynnik efektywności źródła ciepła cop",
      "taktowanie sprężarki pompy ciepła",
      "optymalna temperatura ogrzewania podłogowego"
    ],
    "measurementTechnique": "Szacunkowa analiza strat energii (wzrost zużycia rzędu 20 do 35 procent) wynikających ze stosowania przewymiarowanych krzywych grzewczych w nowoczesnych domach.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak kalibracji podnosi koszty eksploatacji źródła ciepła o 20 do 35% rocznie.",
        "Zbyt wysoka temperatura zasilania doprowadza do groźnego zjawiska taktowania sprężarki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-wstep-roadmap",
    "name": "Nawigator Narzędzi Interaktywnych",
    "description": "Moduł zapowiadający i opisujący funkcje inżynieryjnych kalkulatorów oraz symulatorów dostępnych w dalszej części publikacji.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hero-container">
    
    <!-- Hook (Mocne Otwarcie) -->
    <div class="rk-hero-hook">
        <div class="rk-hook-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Problem Inwestora
        </div>
        <h2>Jeden parametr, który decyduje o <span>życiu Twojej pompy ciepła</span></h2>
        <p class="rk-hook-text">
            Przez ponad 20 lat pracy jako specjalista układów hydraulicznych przeanalizowałem ponad 1000 błędnych schematów. Widziałem setki rachunków przewymiarowanych o <strong>20 do 35% rocznie</strong> oraz sprężarki uszkodzone przez tak zwane taktowanie. Powód był niemal zawsze ten sam: kompletny brak kalibracji głównego parametru automatyki.
        </p>
    </div>

    <!-- Szybka Odpowiedź -->
    <div class="rk-quick-answer">
        <div class="rk-qa-label">Szybka Odpowiedź</div>
        <p class="rk-qa-content">
            <strong>Krzywa grzewcza w ogrzewaniu podłogowym</strong> to zależność matematyczna określająca temperaturę wody zasilającej pętle grzewcze w funkcji temperatury na zewnątrz. Jej zadaniem jest płynne dopasowanie mocy instalacji do bieżących strat ciepła, co pozwala utrzymać <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalną i stałą temperaturę wewnętrzną</a> (na poziomie 20 do 22°C) przy najwyższym możliwym współczynniku COP.
        </p>
    </div>

    <!-- Zapowiedź Interaktywnych Narzędzi -->
    <div class="rk-tools-roadmap">
        <h3 class="rk-roadmap-title">Co znajdziesz w dalszej części poradnika?</h3>
        
        <div class="rk-roadmap-grid">
            
            <!-- Lista przycisków -->
            <div class="rk-roadmap-menu">
                <button class="rk-tool-btn active" data-preview="prev-calc" type="button">
                    <div class="rk-tool-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="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                    </div>
                    <div class="rk-tool-info">
                        <h4>Inżynieryjny Kalkulator OZC</h4>
                        <p>Oblicz przepływy krok po kroku</p>
                    </div>
                </button>

                <button class="rk-tool-btn" data-preview="prev-graph" type="button" style="margin-top: 10px;">
                    <div class="rk-tool-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="M3 3v18h18"></path><path d="m19 9-5 5-4-4-3 3"></path></svg>
                    </div>
                    <div class="rk-tool-info">
                        <h4>Interaktywny Wykres Live</h4>
                        <p>Zabawa parametrami sterownika</p>
                    </div>
                </button>

                <button class="rk-tool-btn" data-preview="prev-scan" type="button" style="margin-top: 10px;">
                    <div class="rk-tool-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-tool-info">
                        <h4>Skaner Błędów Instalacji</h4>
                        <p>Moduł diagnostyki problemów</p>
                    </div>
                </button>
            </div>

            <!-- Panele podglądu -->
            <div class="rk-roadmap-previews">
                
                <div class="rk-tool-preview active" id="prev-calc">
                    <span class="rk-preview-badge">Zamiast suchej teorii</span>
                    <h4 class="rk-preview-title">Aplikacja: Kalkulator Parametrów</h4>
                    <p class="rk-preview-desc">Zapomnij o skomplikowanych wzorach matematycznych. W dalszej części artykułu użyjesz prostych suwaków, aby wyliczyć dokładną temperaturę zasilania oraz zapotrzebowanie na przepływ litrów wody dla Twojego konkretnego metrażu domu.</p>
                </div>

                <div class="rk-tool-preview" id="prev-graph">
                    <span class="rk-preview-badge">Zrozumienie przez praktykę</span>
                    <h4 class="rk-preview-title">Aplikacja: Wykres Czasu Rzeczywistego</h4>
                    <p class="rk-preview-desc">Krzywa grzewcza bywa niezrozumiała. Dlatego przygotowałem symulator graficzny. Przesuwając suwaki &#8222;Nachylenia&#8221; oraz &#8222;Przesunięcia&#8221;, na własne oczy zobaczysz, jak zmienia się stromość wykresu na siatce temperatur zewnętrznych.</p>
                </div>

                <div class="rk-tool-preview" id="prev-scan">
                    <span class="rk-preview-badge">Ratunek przed awarią</span>
                    <h4 class="rk-preview-title">Skaner Diagnostyczny</h4>
                    <p class="rk-preview-desc">Masz problem z <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">kosztami ogrzewania domu</a> lub zimnymi strefami? Wykorzystaj przygotowany panel rozwiązywania problemów, który zdiagnozuje m.in. zły montaż czujnika czy blokowanie rotametrów.</p>
                </div>

            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var roadBtns = document.querySelectorAll('.rk-tool-btn');
    var roadPreviews = document.querySelectorAll('.rk-tool-preview');

    for (var i = 0; i < roadBtns.length; i++) {
        roadBtns[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-preview');
            
            // Błyskawiczne czyszczenie klas bez animacji
            for (var j = 0; j < roadBtns.length; j++) {
                roadBtns[j].classList.remove('active');
            }
            for (var k = 0; k < roadPreviews.length; k++) {
                roadPreviews[k].classList.remove('active');
            }
            
            // Błyskawiczne przypisanie nowych klas
            this.classList.add('active');
            var targetPanel = document.getElementById(targetId);
            if (targetPanel) {
                targetPanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-bg: #f8fafc;
    --rk-intro-surface: #ffffff;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #475569;
    --rk-intro-green: #10b981;
    --rk-intro-red: #ef4444;
}

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

/* Nagłówek i Treść */
.rk-intro-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to right, #ffffff, var(--rk-intro-bg));
    border-bottom: 1px solid var(--rk-intro-border);
}

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

.rk-intro-header h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-blue);
    margin: 0 0 15px 0;
}

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

.rk-intro-header p:last-child {
    margin-bottom: 0;
}

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

.rk-highlight-box {
    background: #f1f5f9;
    border-left: 4px solid var(--rk-intro-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-weight: 600;
    color: var(--rk-intro-dark);
    margin: 20px 0;
}

/* Moduł Interaktywny: Wykres i Kalkulator */
.rk-intro-interactive {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rk-intro-dark);
}

/* Sekcja Wykresu */
.rk-chart-section {
    padding: 40px 50px;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.rk-toggle-chart {
    display: flex;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    padding: 4px;
    margin-bottom: 25px;
}

.rk-tgl-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 10px 15px;
    color: #94a3b8;
    font-size: 13px;
    font-weight: 700;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.3s;
}

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

.rk-svg-wrapper {
    position: relative;
    width: 100%;
    height: 220px;
}

.rk-chart-axis {
    stroke: rgba(255, 255, 255, 0.3);
    stroke-width: 2;
}

.rk-chart-grid {
    stroke: rgba(255, 255, 255, 0.1);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}

.rk-chart-text {
    fill: #94a3b8;
    font-size: 11px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
}

/* Ścieżki wykresu */
.path-thermostat {
    stroke: var(--rk-intro-red);
    stroke-width: 3;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: opacity 0.4s;
}

.path-weather {
    stroke: var(--rk-intro-green);
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    transition: opacity 0.4s;
}

.rk-svg-wrapper[data-view="weather"] .path-thermostat { opacity: 0.1; }
.rk-svg-wrapper[data-view="thermostat"] .path-weather { opacity: 0.1; }

/* Sekcja Kalkulatora ROI */
.rk-roi-section {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-roi-title {
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 25px 0;
}

.rk-roi-slider-box {
    margin-bottom: 30px;
}

.rk-roi-label {
    display: flex;
    justify-content: space-between;
    color: #cbd5e1;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 15px;
}

.rk-roi-val {
    color: var(--rk-intro-blue-light);
    font-weight: 900;
    font-size: 18px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    outline: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-intro-blue);
    border: 4px solid #ffffff;
    cursor: pointer;
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
}

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

.rk-roi-card {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
}

.rk-roi-card-label {
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
    display: block;
    margin-bottom: 5px;
}

.rk-roi-card-value {
    color: var(--rk-intro-green);
    font-size: 24px;
    font-weight: 900;
    margin: 0;
}

.rk-roi-card-value.blue {
    color: var(--rk-intro-blue-light);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-intro-header { padding: 30px 20px; }
    .rk-intro-header h2 { font-size: 24px; }
    .rk-intro-interactive { 
        grid-template-columns: 1fr; /* Pionowy układ interaktywny */
    }
    .rk-chart-section { 
        padding: 30px 20px; 
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }
    .rk-roi-section { padding: 30px 20px; }
    .rk-toggle-chart { flex-direction: column; border-radius: 16px; padding: 6px; }
    .rk-tgl-btn { border-radius: 10px; }
    .rk-roi-results { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-definicja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Czym jest krzywa grzewcza w ogrzewaniu podłogowym i jak wpływa na koszty ogrzewania?",
    "description": "Zrozumienie definicji krzywej grzewczej, jej wpływu na efektywność pompy ciepła (SCOP) oraz znaczenia bezwładności termicznej jastrychu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wplyw-temperatury",
    "name": "Wpływ obniżenia temperatury zasilania na SCOP i koszty",
    "description": "Symulacyjne dane pokazujące oszczędności finansowe w skali roku wynikające z obniżania parametrów zasilania systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "definicja krzywej grzewczej",
      "bezwładność cieplna wylewki betonowej",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "termostat pokojowy a podłogówka",
      "norma PN-EN 1264 maksymalna temperatura zasilania"
    ],
    "measurementTechnique": "Analiza oszczędności finansowych i przyrostu SCOP (2,5% na każdy 1 stopień Celsjusza w dół) dla typowego domu energooszczędnego 150m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obniżenie temperatury zasilania o 1 stopień poprawia efektywność pompy ciepła o około 2.5%.",
        "Sterowanie proaktywne (pogodowe) kompensuje 6-godzinne opóźnienie reakcji ciężkiego jastrychu betonowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-symulator-oszczednosci",
    "name": "Symulator Oszczędności Krzywej Grzewczej",
    "description": "Narzędzie interaktywne ilustrujące różnicę między sterowaniem termostatycznym a pogodowym oraz obliczające oszczędności ze zmniejszenia temperatury zasilania.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container">
    
    <div class="rk-intro-header">
        <h2>Czym jest krzywa grzewcza i jak potężnie wpływa na Twoje rachunki?</h2>
        <p>Krzywa grzewcza to serce <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego</a>. Jest to zaprogramowany algorytm, który precyzyjnie wyznacza temperaturę wody tłoczonej do układu na podstawie tego, jak bardzo mroźnie jest na zewnątrz. Zgodnie z <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">normą PN-EN 1264</a>, absolutna maksymalna temperatura zasilania w strefach mieszkalnych to 55°C, ale w nowoczesnym budownictwie dążymy do wartości radykalnie niższych.</p>
        
        <div class="rk-highlight-box">
            Złota zasada instalatora: Obniżenie średniej temperatury zasilania zaledwie o 1°C podnosi sezonowy współczynnik efektywności (SCOP) pompy ciepła o około 2,5%.
        </div>

        <h3>Bezwładność cieplna a tradycyjny termostat</h3>
        <p>Dlaczego zwykły <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat ścienny (włącz/wyłącz)</a> to wróg podłogówki? Odpowiedzią jest <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a>. Klasyczny betonowy jastrych (grubość 6,5 cm) waży aż 130–150 kg na metr kwadratowy. Zmiana jego temperatury o 1°C zajmuje od 4 do 6 godzin. Termostat działa reaktywnie – włącza grzanie, gdy w domu jest już zimno, i wyłącza, gdy dom jest przegrzany. Sterowanie pogodowe z krzywą działa proaktywnie: zauważa mróz na zewnątrz i podnosi temperaturę wody zanim Twój salon zdąży ostygnąć.</p>
    </div>

    <!-- Moduł Interaktywny -->
    <div class="rk-intro-interactive">
        
        <!-- Wykres SVG -->
        <div class="rk-chart-section">
            <div class="rk-toggle-chart" id="rkChartToggle">
                <button class="rk-tgl-btn" data-view="thermostat" type="button">Termostat (Włącz/Wyłącz)</button>
                <button class="rk-tgl-btn active" data-view="weather" type="button">Krzywa Pogodowa (Proaktywnie)</button>
            </div>

            <div class="rk-svg-wrapper" id="rkGraphWrapper" data-view="weather">
                <svg width="100%" height="100%" viewBox="0 0 400 220" preserveAspectRatio="none">
                    <!-- Linie Siatki -->
                    <line x1="40" y1="180" x2="380" y2="180" class="rk-chart-axis" /> <!-- Oś X -->
                    <line x1="40" y1="20" x2="40" y2="180" class="rk-chart-axis" /> <!-- Oś Y -->
                    
                    <line x1="40" y1="100" x2="380" y2="100" class="rk-chart-grid" />
                    <line x1="40" y1="60" x2="380" y2="60" class="rk-chart-grid" />
                    <line x1="40" y1="140" x2="380" y2="140" class="rk-chart-grid" />

                    <!-- Etykiety -->
                    <text x="5" y="65" class="rk-chart-text">40°C</text>
                    <text x="5" y="105" class="rk-chart-text">30°C</text>
                    <text x="5" y="145" class="rk-chart-text">20°C</text>
                    
                    <text x="100" y="200" class="rk-chart-text">Rano</text>
                    <text x="200" y="200" class="rk-chart-text">Południe</text>
                    <text x="300" y="200" class="rk-chart-text">Wieczór</text>

                    <!-- Ścieżka: Termostat (Skoki) -->
                    <path d="M 40 140 L 90 140 L 100 60 L 150 60 L 160 140 L 220 140 L 230 60 L 280 60 L 290 140 L 350 140 L 360 60 L 380 60" class="path-thermostat" />

                    <!-- Ścieżka: Krzywa Pogodowa (Gładka) -->
                    <path d="M 40 110 Q 100 120 180 115 T 300 100 T 380 105" class="path-weather" />
                </svg>
            </div>
        </div>

        <!-- Kalkulator Oszczędności -->
        <div class="rk-roi-section">
            <h4 class="rk-roi-title">Symulacja Oszczędności (Dom 150m²)</h4>
            
            <div class="rk-roi-slider-box">
                <div class="rk-roi-label">
                    <span>Średnia Temperatura Zasilania</span>
                    <span class="rk-roi-val"><span id="rkZasVal">40</span>°C</span>
                </div>
                <input type="range" id="rkZasSlider" class="rk-range-input" min="30" max="40" step="1" value="40">
            </div>

            <div class="rk-roi-results">
                <div class="rk-roi-card">
                    <span class="rk-roi-card-label">Wzrost SCOP</span>
                    <p class="rk-roi-card-value blue">+<span id="rkScopRise">0.0</span>%</p>
                </div>
                <div class="rk-roi-card">
                    <span class="rk-roi-card-label">Oszczędność w sezonie</span>
                    <p class="rk-roi-card-value"><span id="rkPlnSave">0</span> PLN</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Logika Wykresu SVG
    var tglBtns = document.querySelectorAll('.rk-tgl-btn');
    var graphWrapper = document.getElementById('rkGraphWrapper');

    for (var i = 0; i < tglBtns.length; i++) {
        tglBtns[i].addEventListener('click', function() {
            var view = this.getAttribute('data-view');
            
            for (var j = 0; j < tglBtns.length; j++) {
                tglBtns[j].classList.remove('active');
            }
            this.classList.add('active');
            
            graphWrapper.setAttribute('data-view', view);
        });
    }

    // Logika Suwaka ROI
    var slider = document.getElementById('rkZasSlider');
    var valDisplay = document.getElementById('rkZasVal');
    var scopDisplay = document.getElementById('rkScopRise');
    var plnDisplay = document.getElementById('rkPlnSave');

    // Baza kosztowa: przy zasilaniu 40°C zużywamy 9000 kWh na sezon (np. 1 kWh = 1 PLN) -> Koszt 9000 PLN.
    // Każdy 1°C w dół to 2.5% lepszy SCOP (oszczędność ~150 PLN na każdy stopień w dół).

    function updateROI() {
        var currentTemp = parseFloat(slider.value);
        valDisplay.innerText = currentTemp;

        var tempDrop = 40 - currentTemp;
        
        var scopRise = tempDrop * 2.5;
        var plnSaved = tempDrop * 145; // ~145 PLN oszczędności na każdym stopniu dla domu 150m2

        scopDisplay.innerText = scopRise.toFixed(1);
        plnDisplay.innerText = plnSaved;
    }

    slider.addEventListener('input', updateROI);
    // Inicjalizacja
    updateROI();
});
</script>



<style>
:root {
    --rk-live-dark: #0f172a;
    --rk-live-blue: #0284c7;
    --rk-live-blue-light: #e0f2fe;
    --rk-live-bg: #f8fafc;
    --rk-live-surface: #ffffff;
    --rk-live-border: #e2e8f0;
    --rk-live-text: #475569;
    --rk-live-accent: #10b981;
    --rk-live-grid: #e2e8f0;
}

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

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

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

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

/* Przestrzeń Robocza (App) */
.rk-live-workspace {
    display: flex;
    flex-wrap: wrap;
    background: var(--rk-live-bg);
}

/* Sekcja Suwaków (Lewa/Góra) */
.rk-live-controls {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: #ffffff;
    border-right: 1px solid var(--rk-live-border);
}

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

.rk-live-controls h3 svg {
    color: var(--rk-live-blue);
}

.rk-ctrl-group {
    margin-bottom: 35px;
}

.rk-ctrl-group:last-child {
    margin-bottom: 0;
}

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

.rk-ctrl-label {
    font-size: 15px;
    font-weight: 700;
    color: var(--rk-live-dark);
    display: flex;
    flex-direction: column;
}

.rk-ctrl-desc {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
    margin-top: 4px;
}

.rk-ctrl-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-live-blue);
    background: var(--rk-live-blue-light);
    padding: 6px 14px;
    border-radius: 10px;
    min-width: 80px;
    text-align: center;
}

.rk-live-range {
    -webkit-appearance: none;
    width: 100%;
    height: 10px;
    border-radius: 5px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

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

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

/* Sekcja Wykresu (Prawa/Dół) */
.rk-live-graph-area {
    flex: 1.2;
    min-width: 320px;
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
}

.rk-graph-box {
    width: 100%;
    background: #ffffff;
    border: 2px solid var(--rk-live-border);
    border-radius: 16px;
    padding: 20px;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.02);
    position: relative;
}

.rk-svg-render {
    width: 100%;
    height: auto;
    overflow: visible;
}

.rk-axis-line {
    stroke: #94a3b8;
    stroke-width: 2;
}

.rk-grid-line {
    stroke: var(--rk-live-grid);
    stroke-width: 1;
    stroke-dasharray: 4 4;
}

.rk-graph-text {
    fill: #64748b;
    font-size: 11px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
}

.rk-graph-text-axis {
    fill: var(--rk-live-dark);
    font-size: 13px;
    font-weight: 800;
}

/* Dynamiczna linia krzywej */
.rk-dynamic-curve {
    stroke: var(--rk-live-blue);
    stroke-width: 4;
    fill: none;
    stroke-linecap: round;
    transition: d 0.1s ease-out;
}

/* Punkt na wykresie */
.rk-target-point {
    fill: var(--rk-live-accent);
    stroke: #ffffff;
    stroke-width: 3;
    transition: cx 0.1s ease-out, cy 0.1s ease-out;
}

.rk-target-line {
    stroke: var(--rk-live-accent);
    stroke-width: 2;
    stroke-dasharray: 4 4;
    opacity: 0.5;
    transition: x1 0.1s, y1 0.1s, x2 0.1s, y2 0.1s;
}

/* Panel Wynikowy pod wykresem */
.rk-graph-result {
    margin-top: 25px;
    background: var(--rk-live-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.rk-res-info {
    display: flex;
    flex-direction: column;
}

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

.rk-res-val-big {
    color: #ffffff;
    font-size: 24px;
    font-weight: 900;
    margin: 0;
}

.rk-res-val-big span {
    color: var(--rk-live-accent);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-live-header { padding: 30px 20px; }
    .rk-live-header h2 { font-size: 22px; }
    .rk-live-workspace { flex-direction: column; }
    .rk-live-controls { 
        padding: 30px 20px; 
        border-right: none; 
        border-bottom: 1px solid var(--rk-live-border); 
    }
    .rk-live-graph-area { padding: 30px 20px; }
    .rk-graph-box { padding: 15px; }
    .rk-graph-result { flex-direction: column; text-align: center; gap: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wykres-interaktywny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Interaktywny wykres krzywej grzewczej – sprawdź, jak działa automatyka",
    "description": "Zrozum mechanikę sterownika pogodowego. Wprowadź zmiany nachylenia i przesunięcia na żywym wykresie, aby zobaczyć reakcję systemu grzewczego na spadek temperatury na zewnątrz.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wykres-zaleznosci",
    "name": "Wektorowe współrzędne zależności temperatury zasilania od pogody",
    "description": "Dynamiczne zestawienie matematyczne przeliczające stromość krzywej grzewczej na docelową temperaturę tłoczenia dla instalacji ogrzewania płaszczyznowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak działa krzywa grzewcza wykres",
      "nastawy sterownika pogodowego podłogówki",
      "temperatura zasilania przy mrozie",
      "kalibracja ogrzewania płaszczyznowego",
      "wykres zależności temperatury"
    ],
    "measurementTechnique": "Generowanie wektorowej ścieżki SVG na podstawie algorytmu: T_zas = 20 + Nachylenie * (20 - T_zew) + Przesunięcie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzrost wartości nachylenia (stromości) powoduje agresywniejszą reakcję kotła lub pompy ciepła na mróz.",
        "Korekta przesunięcia wpływa na podniesienie bazowej temperatury zasilania na całej osi poziomej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-live-graph",
    "name": "Symulator Graficzny Krzywej Grzewczej",
    "description": "Zaawansowane narzędzie pozwalające na manipulowanie osią wykresu w czasie rzeczywistym poprzez wirtualne suwaki sterownika pogodowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-live-graph-container">
    
    <div class="rk-live-header">
        <h2>Interaktywny wykres krzywej grzewczej</h2>
        <p>Zamiast czytać suche wzory, przesuń suwaki i zobacz na własne oczy, jak automatyka wylicza temperaturę. Tak właśnie zachowuje się oprogramowanie wewnątrz Twojej pompy ciepła lub nowoczesnego kotła gazowego.</p>
    </div>

    <div class="rk-live-workspace">
        
        <!-- Panel Kontrolny -->
        <div class="rk-live-controls">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
                Skonfiguruj nastawy
            </h3>

            <!-- Suwak Nachylenia -->
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-top">
                    <div class="rk-ctrl-label">
                        Nachylenie (Slope)
                        <span class="rk-ctrl-desc">Decyduje o reakcji na siłę mrozu</span>
                    </div>
                    <div class="rk-ctrl-val" id="rkValSlope">0.40</div>
                </div>
                <input type="range" id="rkRangeSlope" class="rk-live-range" min="0.1" max="1.5" step="0.05" value="0.40">
            </div>

            <!-- Suwak Przesunięcia -->
            <div class="rk-ctrl-group">
                <div class="rk-ctrl-top">
                    <div class="rk-ctrl-label">
                        Przesunięcie (Offset)
                        <span class="rk-ctrl-desc">Podnosi lub obniża całą krzywą</span>
                    </div>
                    <div class="rk-ctrl-val" id="rkValOffset">0 K</div>
                </div>
                <input type="range" id="rkRangeOffset" class="rk-live-range" min="-5" max="5" step="1" value="0">
            </div>
            
            <div style="margin-top: 30px; padding: 15px; background: #eff6ff; border-radius: 12px; font-size: 13px; color: #1e293b; font-weight: 600; line-height: 1.5;">
                <strong style="color: #0284c7;">Wskazówka inżyniera:</strong> Zauważ, że zmiana przesunięcia przesuwa linię równolegle, podczas gdy zmiana nachylenia podnosi ją tym mocniej, im zimniej jest na zewnątrz.
            </div>
        </div>

        <!-- Renderowanie Wykresu -->
        <div class="rk-live-graph-area">
            
            <div class="rk-graph-box">
                <!-- ViewBox o stalych proporcjach, by pozycjonowanie dzialalo matematycznie -->
                <svg class="rk-svg-render" viewBox="0 0 500 320" preserveAspectRatio="xMidYMid meet">
                    
                    <!-- Siatka Tła (Pionowe: temp zewn) -->
                    <!-- +10, 0, -10, -20 -->
                    <line x1="100" y1="20" x2="100" y2="280" class="rk-grid-line" />
                    <line x1="220" y1="20" x2="220" y2="280" class="rk-grid-line" />
                    <line x1="340" y1="20" x2="340" y2="280" class="rk-grid-line" />
                    <line x1="460" y1="20" x2="460" y2="280" class="rk-grid-line" />

                    <!-- Siatka Tła (Poziome: temp zasilania) -->
                    <!-- 20, 30, 40, 50, 60 -->
                    <line x1="40" y1="280" x2="480" y2="280" class="rk-grid-line" />
                    <line x1="40" y1="215" x2="480" y2="215" class="rk-grid-line" />
                    <line x1="40" y1="150" x2="480" y2="150" class="rk-grid-line" />
                    <line x1="40" y1="85" x2="480" y2="85" class="rk-grid-line" />
                    <line x1="40" y1="20" x2="480" y2="20" class="rk-grid-line" />

                    <!-- Osie -->
                    <!-- Oś X (Dół) -->
                    <line x1="40" y1="280" x2="480" y2="280" class="rk-axis-line" />
                    <!-- Oś Y (Lewa) -->
                    <line x1="40" y1="20" x2="40" y2="280" class="rk-axis-line" />

                    <!-- Podpisy Osi X (Temp zewn: 40px to +15, 460px to -20) -->
                    <!-- Zakres: od +15 do -20, czyli 35 stopni = 420 px szerokosci. 1 stopien = 12 px -->
                    <text x="100" y="305" class="rk-graph-text" text-anchor="middle">+10°C</text>
                    <text x="220" y="305" class="rk-graph-text" text-anchor="middle">0°C</text>
                    <text x="340" y="305" class="rk-graph-text" text-anchor="middle">-10°C</text>
                    <text x="460" y="305" class="rk-graph-text" text-anchor="middle">-20°C</text>

                    <!-- Podpisy Osi Y (Temp zas: 280px to 20, 20px to 60) -->
                    <!-- Zakres: od 20 do 60, czyli 40 stopni = 260 px wysokosci. 1 stopien = 6.5 px -->
                    <text x="30" y="284" class="rk-graph-text" text-anchor="end">20°C</text>
                    <text x="30" y="219" class="rk-graph-text" text-anchor="end">30°C</text>
                    <text x="30" y="154" class="rk-graph-text" text-anchor="end">40°C</text>
                    <text x="30" y="89" class="rk-graph-text" text-anchor="end">50°C</text>
                    <text x="30" y="24" class="rk-graph-text" text-anchor="end">60°C</text>

                    <!-- Tytuły osi -->
                    <text x="260" y="320" class="rk-graph-text-axis" text-anchor="middle">Zewnętrzna temperatura pogodowa</text>
                    
                    <!-- Dynamiczna Krzywa -->
                    <path id="rkMainCurve" class="rk-dynamic-curve" d="M 40 280 L 460 100" />
                    
                    <!-- Celownik (Przecięcie dla -10 st C, x=340) -->
                    <line id="rkTargetX" x1="40" y1="150" x2="340" y2="150" class="rk-target-line" />
                    <line id="rkTargetY" x1="340" y1="280" x2="340" y2="150" class="rk-target-line" />
                    <circle id="rkTargetDot" cx="340" cy="150" r="6" class="rk-target-point" />

                </svg>
            </div>

            <!-- Prezentacja Wyniku -->
            <div class="rk-graph-result">
                <div class="rk-res-info">
                    <span class="rk-res-label">Temperatura zasilania przy mrozie -10°C</span>
                    <p class="rk-res-val-big" id="rkResultText"><span>32.0</span> °C</p>
                </div>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Suwaki i etykiety
    var slideSlope = document.getElementById('rkRangeSlope');
    var slideOffset = document.getElementById('rkRangeOffset');
    var valSlope = document.getElementById('rkValSlope');
    var valOffset = document.getElementById('rkValOffset');
    var resultText = document.getElementById('rkResultText');

    // Elementy SVG
    var pathCurve = document.getElementById('rkMainCurve');
    var dot = document.getElementById('rkTargetDot');
    var lineX = document.getElementById('rkTargetX');
    var lineY = document.getElementById('rkTargetY');

    // Funkcje Mapujące (Matematyka SVG)
    // Os X: T_zewn od +15 do -20. Szerokość 420px (od 40 do 460).
    // T_zewn = +15 -> X = 40. T_zewn = -20 -> X = 460.
    // 35 stopni = 420 px. Współczynnik: 12 px na stopień.
    function mapX(tzewn) {
        var diffFrom15 = 15 - tzewn; // jesli tzewn = 10, diff = 5. 
        return 40 + (diffFrom15 * 12);
    }

    // Os Y: T_zas od 20 do 60. Wysokość 260px (od 280 do 20).
    // T_zas = 20 -> Y = 280. T_zas = 60 -> Y = 20.
    // 40 stopni = 260 px. Współczynnik: 6.5 px na stopień.
    function mapY(tzas) {
        // Zabezpieczenie przed wychodzeniem poza ramy
        var safeTemp = tzas;
        if (safeTemp < 20) { safeTemp = 20; }
        if (safeTemp > 65) { safeTemp = 65; } // Pozwalamy lekko wyjsc górą

        var diffFrom20 = safeTemp - 20; // jesli tzas = 30, diff = 10
        return 280 - (diffFrom20 * 6.5);
    }

    function renderGraph() {
        var slope = parseFloat(slideSlope.value);
        var offset = parseFloat(slideOffset.value);

        // Aktualizacja tekstów na suwakach
        valSlope.innerText = slope.toFixed(2);
        
        var offsetText = offset.toString() + " K";
        if (offset > 0) { offsetText = "+" + offset.toString() + " K"; }
        valOffset.innerText = offsetText;

        // Baza algorytmu: T_zas = 20 + nachylenie * (20 - T_zewn) + przesunięcie
        
        // Punkt 1: Poczatek wykresu (T_zewn = +15)
        var tZas15 = 20 + slope * (20 - 15) + offset;
        var y1 = mapY(tZas15);
        var x1 = mapX(15);

        // Punkt 2: Koniec wykresu (T_zewn = -20)
        var tZasMinus20 = 20 + slope * (20 - (-20)) + offset;
        var y2 = mapY(tZasMinus20);
        var x2 = mapX(-20);

        // Aktualizacja Scieżki
        pathCurve.setAttribute('d', 'M ' + x1 + ' ' + y1 + ' L ' + x2 + ' ' + y2);

        // Obliczenie dla punktu referencyjnego (T_zewn = -10)
        var tZasTarget = 20 + slope * (20 - (-10)) + offset;
        
        var targetX = mapX(-10); // Powinno byc 340
        var targetY = mapY(tZasTarget);

        // Aktualizacja Kropki Celownika i Linii
        dot.setAttribute('cx', targetX);
        dot.setAttribute('cy', targetY);

        lineX.setAttribute('x1', 40);
        lineX.setAttribute('y1', targetY);
        lineX.setAttribute('x2', targetX);
        lineX.setAttribute('y2', targetY);

        lineY.setAttribute('x1', targetX);
        lineY.setAttribute('y1', 280);
        lineY.setAttribute('x2', targetX);
        lineY.setAttribute('y2', targetY);

        // Aktualizacja tekstu wyniku z kolorowaniem znacznikow span
        resultText.innerHTML = "<span>" + tZasTarget.toFixed(1) + "</span> °C";
    }

    // Nasłuchiwanie
    slideSlope.addEventListener('input', renderGraph);
    slideOffset.addEventListener('input', renderGraph);

    // Render startowy
    renderGraph();
});
</script>



<style>
:root {
    --rk-sel-dark: #0f172a;
    --rk-sel-blue: #0ea5e9;
    --rk-sel-blue-dark: #0369a1;
    --rk-sel-bg: #f8fafc;
    --rk-sel-surface: #ffffff;
    --rk-sel-border: #e2e8f0;
    --rk-sel-text: #475569;
    --rk-sel-green: #10b981;
    --rk-sel-orange: #f59e0b;
    --rk-sel-red: #ef4444;
}

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

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

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

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

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

/* Interaktywny Selektor Budynku */
.rk-sel-app {
    padding: 40px 50px;
}

.rk-sel-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-bld-btn {
    background: var(--rk-sel-surface);
    border: 2px solid var(--rk-sel-border);
    padding: 16px 10px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

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

.rk-bld-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #64748b;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.rk-bld-btn span {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-sel-text);
    line-height: 1.2;
}

/* Stan Aktywny Przycisków */
.rk-bld-btn.active {
    border-color: var(--rk-sel-blue);
    background: #f0f9ff;
    box-shadow: 0 8px 15px -5px rgba(14, 165, 233, 0.2);
}

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

.rk-bld-btn.active span {
    color: var(--rk-sel-dark);
}

/* Panel Wynikowy z Parametrami */
.rk-sel-dashboard {
    background: var(--rk-sel-dark);
    border-radius: 20px;
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.3);
}

.rk-param-box {
    display: flex;
    flex-direction: column;
    gap: 8px;
    position: relative;
}

.rk-param-box:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -10px;
    top: 10%;
    height: 80%;
    width: 1px;
    background: rgba(255, 255, 255, 0.1);
}

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

.rk-param-val {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin: 0;
}

.rk-param-val.highlight {
    color: var(--rk-sel-green);
}

/* Wyjaśnienia Pojęć (Diagnostyka) */
.rk-concepts-wrapper {
    padding: 0 50px 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-concept-card {
    background: var(--rk-sel-surface);
    border: 1px solid var(--rk-sel-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-concept-card h3 {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sel-dark);
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-concept-desc {
    font-size: 15px;
    color: var(--rk-sel-text);
    line-height: 1.6;
    margin: 0 0 20px 0;
}

.rk-concept-symptoms {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-symptom-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #f1f5f9;
    padding: 12px 15px;
    border-radius: 10px;
}

.rk-symptom-row.alert-red { background: #fef2f2; border: 1px solid #fecaca; }
.rk-symptom-row.alert-blue { background: #eff6ff; border: 1px solid #bfdbfe; }
.rk-symptom-row.alert-orange { background: #fffbeb; border: 1px solid #fde68a; }

.rk-sym-icon { margin-top: 2px; }
.rk-symptom-row.alert-red .rk-sym-icon { color: var(--rk-sel-red); }
.rk-symptom-row.alert-blue .rk-sym-icon { color: var(--rk-sel-blue); }
.rk-symptom-row.alert-orange .rk-sym-icon { color: var(--rk-sel-orange); }

.rk-sym-text {
    font-size: 14px;
    color: var(--rk-sel-dark);
    line-height: 1.5;
    margin: 0;
}

.rk-sym-text strong {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-sel-header { padding: 30px 20px; }
    .rk-sel-app { padding: 30px 20px; }
    .rk-sel-nav { 
        grid-template-columns: 1fr 1fr; /* 2 kolumny na przyciski na mobile */
        gap: 10px;
    }
    .rk-sel-dashboard {
        grid-template-columns: 1fr; /* Pionowy układ parametrów */
        gap: 15px;
        padding: 25px 20px;
    }
    .rk-param-box:not(:last-child)::after {
        right: 0; top: auto; bottom: -8px; height: 1px; width: 100%;
    }
    .rk-concepts-wrapper { 
        grid-template-columns: 1fr; /* Pionowy układ kart pojęć */
        padding: 0 20px 30px; 
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jakie nachylenie i przesunięcie krzywej grzewczej wybrać dla domu jednorodzinnego?",
    "description": "Przewodnik po doborze parametrów krzywej pogodowej (nachylenia i przesunięcia) w zależności od standardu izolacyjnego budynku, z uwzględnieniem wytycznych WT2021.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wskazniki",
    "name": "Zalecane nastawy krzywej grzewczej a standard energetyczny",
    "description": "Zestawienie korelujące wskaźnik EU budynku, zalecane nachylenie krzywej, przesunięcie początkowe i wymaganą temperaturę zasilania przy -10°C.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "nachylenie krzywej grzewczej",
      "przesunięcie krzywej pogodowej",
      "temperatura zasilania podłogówki przy mrozie",
      "wskaźnik EU a ogrzewanie podłogowe",
      "standard WT2021 dom energooszczędny"
    ],
    "measurementTechnique": "Określanie parametrów sterowania na bazie normy cieplnej budynku (od pasywnego do nieocieplonego) przy referencyjnej temperaturze minus 10 stopni Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dom energooszczędny WT2021 (EU 40-55) wymaga nachylenia 0.30 - 0.45.",
        "Budynek nieocieplony wymusza nachylenie powyżej 0.80 i wysoką temperaturę zasilania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-selekcjoner",
    "name": "Asystent Doboru Parametrów Krzywej Grzewczej",
    "description": "Narzędzie pozwalające inwestorowi dobrać początkowe parametry sterownika na podstawie klasy energetycznej wybudowanego obiektu.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-selector-container">
    
    <div class="rk-sel-header">
        <h2>Jakie nachylenie i przesunięcie wybrać dla swojego domu?</h2>
        <p>Współczynnik nachylenia krzywej grzewczej dla niskotemperaturowego ogrzewania podłogowego w standardzie energooszczędnym (WT2021) wynosi od 0,2 do 0,5, a przesunięcie początkowe ustala się na 0 Kelwinów. Zgodnie z wytycznymi PORT PC (Część 5), dla ujemnej projektowej temperatury zewnętrznej równej 20 stopni, <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">temperatura zasilania nie powinna przekraczać 35°C</a>.</p>
    </div>

    <!-- Interaktywny Wybór Domu -->
    <div class="rk-sel-app">
        <div class="rk-sel-nav" id="rkBldNav">
            <button class="rk-bld-btn" data-bld="passive" type="button">
                <div class="rk-bld-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 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>
                </div>
                <span>Dom Pasywny (NF15)</span>
            </button>
            <button class="rk-bld-btn active" data-bld="wt2021" type="button">
                <div class="rk-bld-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <span>Nowy Dom (WT2021)</span>
            </button>
            <button class="rk-bld-btn" data-bld="retro" type="button">
                <div class="rk-bld-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="2" width="16" height="20" rx="2" ry="2"></rect><circle cx="12" cy="14" r="4"></circle><line x1="12" y1="6" x2="12.01" y2="6"></line></svg>
                </div>
                <span>Po Termo- modernizacji</span>
            </button>
            <button class="rk-bld-btn" data-bld="old" type="button">
                <div class="rk-bld-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 22h20"></path><path d="M17 2v20"></path><path d="M7 2v20"></path><path d="M12 22v-4"></path><path d="M7 12h10"></path></svg>
                </div>
                <span>Budynek Nieocieplony</span>
            </button>
        </div>

        <!-- Tabela Wyników Zamieniona na Dashboard -->
        <div class="rk-sel-dashboard">
            <div class="rk-param-box">
                <span class="rk-param-label">Wskaźnik EU</span>
                <p class="rk-param-val" id="val-eu">40 - 55 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span></p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Zalecane Nachylenie</span>
                <p class="rk-param-val highlight" id="val-slope">0.30 - 0.45</p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Startowe Przesunięcie</span>
                <p class="rk-param-val" id="val-offset">0 K</p>
            </div>
            <div class="rk-param-box">
                <span class="rk-param-label">Zasilanie (przy mrozie 10°C)</span>
                <p class="rk-param-val" id="val-temp">31 - 34°C</p>
            </div>
        </div>
    </div>

    <!-- Definicje i Objawy (Zamiast suchego tekstu) -->
    <div class="rk-concepts-wrapper">
        
        <!-- Nachylenie -->
        <div class="rk-concept-card">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0ea5e9" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Nachylenie Krzywej (Slope)
            </h3>
            <p class="rk-concept-desc">Określa stromość reakcji automatyki na spadek temperatury na zewnątrz. Im lepsza izolacja budynku i niższe <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">zapotrzebowanie na moc</a>, tym niższe nachylenie jest wymagane.</p>
            
            <div class="rk-concept-symptoms">
                <div class="rk-symptom-row alert-red">
                    <div class="rk-sym-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 2v20"></path><path d="m17 7-5-5-5 5"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Zbyt wysokie nachylenie:</strong> Przy zerowej temperaturze w domu jest komfortowo, ale podczas silnych mrozów (minus 15 stopni) robi się stanowczo za gorąco.</p>
                </div>
                <div class="rk-symptom-row alert-blue">
                    <div class="rk-sym-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 22V2"></path><path d="m17 17-5 5-5-5"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Zbyt niskie nachylenie:</strong> Przy łagodnej zimie i temperaturach dodatnich wewnątrz jest idealnie, ale gdy chwyta mróz, instalacja nie nadąża z dostarczaniem ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Przesunięcie -->
        <div class="rk-concept-card">
            <h3>
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="8 17 12 21 16 17"></polyline><line x1="12" y1="12" x2="12" y2="21"></line><polyline points="8 7 12 3 16 7"></polyline><line x1="12" y1="12" x2="12" y2="3"></line></svg>
                Przesunięcie (Offset)
            </h3>
            <p class="rk-concept-desc">Podnosi lub obniża całą charakterystykę o stałą wartość wyrażoną w Kelwinach (K). Modyfikuje temperaturę zasilania równomiernie, niezależnie od warunków zewnętrznych.</p>
            
            <div class="rk-concept-symptoms">
                <div class="rk-symptom-row alert-orange">
                    <div class="rk-sym-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 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>
                    </div>
                    <p class="rk-sym-text"><strong>Kiedy stosować?</strong> Rozwiązuje problem jednolitego odchylenia od komfortu. Jeśli przez całą zimę, bez względu na mróz czy odwilż, brakuje Ci w salonie dokładnie 1,5 stopnia, po prostu podnieś przesunięcie o +2 K.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-bld-btn');
    
    // Elementy do aktualizacji
    var elEu = document.getElementById('val-eu');
    var elSlope = document.getElementById('val-slope');
    var elOffset = document.getElementById('val-offset');
    var elTemp = document.getElementById('val-temp');

    // Baza Danych (zastępuje tabelę HTML)
    var db = {
        'passive': {
            eu: '< 15 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.15 - 0.25',
            offset: '0 K',
            temp: '26 - 28°C'
        },
        'wt2021': {
            eu: '40 - 55 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.30 - 0.45',
            offset: '0 K',
            temp: '31 - 34°C'
        },
        'retro': {
            eu: '70 - 90 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.50 - 0.70',
            offset: '+2 K',
            temp: '38 - 42°C'
        },
        'old': {
            eu: '> 120 <span style="font-size:14px; color:#cbd5e1; font-weight:600;">kWh/(m²rok)</span>',
            slope: '0.80 - 1.10',
            offset: '+4 K',
            temp: '46 - 52°C'
        }
    };

    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var bldType = this.getAttribute('data-bld');
            
            // Reset klas
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja
            this.classList.add('active');

            // Aktualizacja UI (bezpieczny sposób bez używania &#038;&#038;)
            var targetData = null;
            if (bldType === 'passive') { targetData = db['passive']; }
            else if (bldType === 'wt2021') { targetData = db['wt2021']; }
            else if (bldType === 'retro') { targetData = db['retro']; }
            else if (bldType === 'old') { targetData = db['old']; }

            if (targetData !== null) {
                elEu.innerHTML = targetData.eu;
                elSlope.innerHTML = targetData.slope;
                elOffset.innerHTML = targetData.offset;
                elTemp.innerHTML = targetData.temp;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-bg: #f8fafc;
    --rk-calc-surface: #ffffff;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #475569;
    --rk-calc-accent: #10b981;
}

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

/* Nagłówek */
.rk-calc-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: linear-gradient(to bottom, #ffffff, var(--rk-calc-bg));
    border-bottom: 1px solid var(--rk-calc-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 auto;
    max-width: 750px;
    line-height: 1.6;
}

/* Interfejs Kalkulatora */
.rk-calc-app {
    display: flex;
    flex-wrap: wrap;
}

.rk-calc-controls {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: var(--rk-calc-surface);
}

.rk-calc-results {
    flex: 1;
    min-width: 320px;
    padding: 40px 50px;
    background: var(--rk-calc-dark);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Suwaki (Sliders) */
.rk-slider-group {
    margin-bottom: 30px;
}

.rk-slider-group:last-child {
    margin-bottom: 0;
}

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

.rk-slider-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-dark);
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-slider-value-box {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: #e0f2fe;
    padding: 4px 12px;
    border-radius: 8px;
}

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

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

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

/* Tablica Wyników */
.rk-result-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin: 0 0 25px 0;
}

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

.rk-res-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 20px;
    border-radius: 16px;
}

.rk-res-label {
    font-size: 13px;
    color: #cbd5e1;
    margin-bottom: 8px;
    display: block;
}

.rk-res-val {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin: 0;
}

.rk-res-val.highlight {
    color: var(--rk-calc-accent);
}

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

/* Opis algorytmu */
.rk-algo-description {
    padding: 0 50px 40px 50px;
    background: var(--rk-calc-surface);
}

.rk-algo-step {
    background: var(--rk-calc-bg);
    border-left: 4px solid var(--rk-calc-blue);
    padding: 20px 25px;
    margin-top: 20px;
    border-radius: 0 12px 12px 0;
}

.rk-algo-step h3 {
    margin: 0 0 8px 0;
    font-size: 16px;
    color: var(--rk-calc-dark);
    font-weight: 800;
}

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

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

@media (max-width: 768px) {
    .rk-calc-header { padding: 30px 20px; }
    .rk-calc-controls { padding: 30px 20px; }
    .rk-calc-results { padding: 35px 20px; }
    .rk-result-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy układ kafelków */
    .rk-algo-description { padding: 0 20px 30px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak obliczyć optymalne parametry krzywej grzewczej krok po kroku?",
    "description": "Interaktywny algorytm wyznaczania punktów charakterystyki pogodowej oparty na bilansie cieplnym budynku (PN-EN 12831) oraz równaniu wymiany ciepła dla podłogi grzejnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wzory",
    "name": "Zmienne algorytmu wyznaczania krzywej grzewczej",
    "description": "Zbiór wartości wejściowych oraz stałych oporu cieplnego używanych do obliczenia wymaganej temperatury zasilania i strumienia masowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator ogrzewania podłogowego",
      "projektowe obciążenie cieplne ozc",
      "zapotrzebowanie na ciepło budynku",
      "temperatura zasilania podłogówki",
      "rotametr przepływ litry na minutę"
    ],
    "measurementTechnique": "Wyliczenia w czasie rzeczywistym bazujące na relacji gęstości strumienia cieplnego do zadanej delty temperatur instalacji (zasilanie vs powrót).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Wyznaczenie Projektowych Strat Ciepła w kilowatach.",
        "Krok 2: Ustalenie stromości linii względem temperatury bazowej i warunków skrajnych (-20 st. C)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-kalkulator-krzywej",
    "name": "Kalkulator Krzywej Grzewczej i Przepływów OZC",
    "description": "Aplikacja webowa pozwalająca inwestorom na symulację wymaganej temperatury zasilania oraz nachylenia krzywej pogodowej na podstawie powierzchni i strat ciepła domu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calculator-wrapper">
    
    <div class="rk-calc-header">
        <h2>Jak obliczyć optymalne parametry krzywej grzewczej krok po kroku?</h2>
        <p>Algorytm wyznaczania punktów charakterystyki pogodowej opiera się na bilansie cieplnym budynku (norma <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264</a>). Zmień parametry swojego domu na suwakach, aby na żywo zobaczyć, jak automatyka powinna dobrać temperatury i przepływy.</p>
    </div>

    <div class="rk-calc-app">
        
        <!-- Panel Sterowania -->
        <div class="rk-calc-controls">
            
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <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="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                        Powierzchnia podłogówki
                    </span>
                    <span class="rk-slider-value-box"><span id="val-area">140</span> m²</span>
                </div>
                <input type="range" id="slider-area" class="rk-range" min="50" max="300" step="5" value="140">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <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>
                        Straty ciepła (OZC)
                    </span>
                    <span class="rk-slider-value-box"><span id="val-power">5.6</span> kW</span>
                </div>
                <input type="range" id="slider-power" class="rk-range" min="2.0" max="20.0" step="0.2" value="5.6">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">
                        <svg width="18" height="18" 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>
                        Różnica temp. (Zasilanie-Powrót)
                    </span>
                    <span class="rk-slider-value-box"><span id="val-delta">5</span> K</span>
                </div>
                <input type="range" id="slider-delta" class="rk-range" min="3" max="8" step="1" value="5">
            </div>

        </div>

        <!-- Panel Wynikowy -->
        <div class="rk-calc-results">
            <h3 class="rk-result-title">Wymagane parametry instalacji:</h3>
            
            <div class="rk-result-grid">
                
                <div class="rk-res-box">
                    <span class="rk-res-label">Temperatura Zasilania</span>
                    <p class="rk-res-val highlight"><span id="res-temp">28.2</span><span class="rk-res-unit">°C</span></p>
                </div>
                
                <div class="rk-res-box">
                    <span class="rk-res-label">Nachylenie Krzywej (n)</span>
                    <p class="rk-res-val"><span id="res-slope">0.21</span></p>
                </div>

                <div class="rk-res-box">
                    <span class="rk-res-label">Całkowity Przepływ Wody</span>
                    <p class="rk-res-val"><span id="res-flow-total">16.1</span><span class="rk-res-unit"> l/min</span></p>
                </div>

                <div class="rk-res-box">
                    <span class="rk-res-label">Średni Przepływ na Pętlę</span>
                    <p class="rk-res-val"><span id="res-flow-loop">1.34</span><span class="rk-res-unit"> l/min</span></p>
                </div>

            </div>
        </div>

    </div>

    <!-- Opis kroków inżynieryjnych -->
    <div class="rk-algo-description">
        <div class="rk-algo-step">
            <h3>Krok 1: Wyznacz Projektowe Straty Ciepła</h3>
            <p>Odczytujemy wartość strat ciepła z <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora OZC</a> dla zewnętrznej temperatury projektowej (przyjęto minus 20 stopni Celsjusza) oraz pożądanej temperatury wewnętrznej (plus 20 stopni).</p>
        </div>
        
        <div class="rk-algo-step">
            <h3>Krok 2: Oblicz Projektową Temperaturę Zasilania</h3>
            <p>Dzieląc moc w watach przez metraż otrzymujemy gęstość strumienia cieplnego. Dodając opór cieplny posadzki (np. dla paneli to 0,05 m2K/W) wyliczamy średnią wymaganą temperaturę czynnika, a dodając połowę Delty T – projektową temperaturę zasilania kotła.</p>
        </div>

        <div class="rk-algo-step">
            <h3>Krok 3: Wyznacz Współczynnik Nachylenia</h3>
            <p>Mając wyznaczoną temperaturę zasilania, podstawiamy ją do wzoru określającego stromość linii pogodowej. Jest to różnica między zasilaniem a temperaturą wewnętrzną, podzielona przez różnicę temperatur wewnętrznej i skrajnej zewnętrznej (np. amplituda 40 Kelwinów).</p>
        </div>

        <div class="rk-algo-step">
            <h3>Krok 4: Weryfikacja Przepływu Masowego</h3>
            <p>Wiedząc jaką dysponujemy mocą i przy założonej różnicy temperatur zasilania i powrotu, <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">obliczamy całkowitą objętość wody krążącej w układzie</a>. Dzieląc to przez przybliżoną ilość obiegów (przyjmując 1 pętlę na 12 metrów kwadratowych), ustalamy wymaganą nastawę na rotametrach.</p>
        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Referencje do suwaków
    var sArea = document.getElementById('slider-area');
    var sPower = document.getElementById('slider-power');
    var sDelta = document.getElementById('slider-delta');

    // Referencje do etykiet suwaków
    var vArea = document.getElementById('val-area');
    var vPower = document.getElementById('val-power');
    var vDelta = document.getElementById('val-delta');

    // Referencje do wyników
    var rTemp = document.getElementById('res-temp');
    var rSlope = document.getElementById('res-slope');
    var rFlowTotal = document.getElementById('res-flow-total');
    var rFlowLoop = document.getElementById('res-flow-loop');

    // Funkcja licząca
    function calculateCurve() {
        var area = parseFloat(sArea.value);
        var powerKW = parseFloat(sPower.value);
        var delta = parseFloat(sDelta.value);

        // Aktualizacja etykiet suwaków
        vArea.innerText = area;
        vPower.innerText = powerKW.toFixed(1);
        vDelta.innerText = delta;

        // KROK 2: Obliczenia temperatury zasilania
        var powerW = powerKW * 1000;
        var q = powerW / area; // Gęstość strumienia [W/m2]
        // Wzór na srednią temp: T_m = 20 + q * ( (1/10.8) + 0.05 )
        // 1/10.8 = 0.0925. 0.0925 + 0.05 = 0.1425
        var Tm = 20 + (q * 0.1425);
        var Tzas = Tm + (delta / 2);

        // KROK 3: Nachylenie krzywej
        // Zalozenie T_zew = -20, T_wew = 20 -> różnica to 40
        var slope = (Tzas - 20) / 40;

        // KROK 4: Przepływy
        // V [m3/h] = Q[W] * 3600 / (998 * 4.187 * 1000 * delta)
        // Dla uproszczenia: Q[kW] / (1.163 * delta) -> m3/h
        var flowM3H = powerKW / (1.163 * delta);
        var flowLMinTotal = flowM3H * 16.666; // Przeliczenie z m3/h na l/min

        // Ilość pętli (zakładamy pętle co ~12m2)
        var loops = Math.ceil(area / 12);
        var flowPerLoop = flowLMinTotal / loops;

        // Zabezpieczenie przed błędem logicznym i aktualizacja DOM
        if (Tzas > 0) {
            rTemp.innerText = Tzas.toFixed(1);
        }
        if (slope > 0) {
            rSlope.innerText = slope.toFixed(2);
        }
        if (flowLMinTotal > 0) {
            rFlowTotal.innerText = flowLMinTotal.toFixed(1);
        }
        if (flowPerLoop > 0) {
            rFlowLoop.innerText = flowPerLoop.toFixed(2);
        }
    }

    // Nasłuchiwanie zmian
    sArea.addEventListener('input', calculateCurve);
    sPower.addEventListener('input', calculateCurve);
    sDelta.addEventListener('input', calculateCurve);

    // Inicjalne wywołanie
    calculateCurve();
});
</script>



<style>
:root {
    --rk-sim-dark: #0f172a;
    --rk-sim-text: #475569;
    --rk-sim-bg: #f8fafc;
    --rk-sim-border: #e2e8f0;
    --rk-sim-opt: #10b981; /* Zielony dla optymalnego */
    --rk-sim-over: #ef4444; /* Czerwony dla przewymiarowania */
    --rk-sim-under: #3b82f6; /* Niebieski (chłodny) dla niedowymiarowania */
}

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

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

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

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

.rk-params-header a {
    color: #0284c7;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Przełącznik Wariantów */
.rk-sim-controls {
    padding: 30px 50px;
    background: var(--rk-sim-bg);
    display: flex;
    gap: 15px;
    justify-content: center;
}

.rk-sim-btn {
    flex: 1;
    background: #ffffff;
    border: 2px solid var(--rk-sim-border);
    padding: 20px;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 280px;
}

.rk-sim-btn:hover {
    border-color: #cbd5e1;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

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

.rk-sim-btn-val {
    font-size: 14px;
    color: var(--rk-sim-text);
    font-weight: 600;
}

/* Aktywne Stany Przycisków */
.rk-sim-btn.active[data-mode="opt"] {
    border-color: var(--rk-sim-opt);
    background: #ecfdf5;
    box-shadow: 0 8px 15px -5px rgba(16, 185, 129, 0.2);
}

.rk-sim-btn.active[data-mode="over"] {
    border-color: var(--rk-sim-over);
    background: #fef2f2;
    box-shadow: 0 8px 15px -5px rgba(239, 68, 68, 0.2);
}

.rk-sim-btn.active[data-mode="under"] {
    border-color: var(--rk-sim-under);
    background: #eff6ff;
    box-shadow: 0 8px 15px -5px rgba(59, 130, 246, 0.2);
}

/* Tablica Wyników (Kafelki) */
.rk-sim-dashboard {
    padding: 0 50px 40px;
    background: var(--rk-sim-bg);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.rk-dash-card {
    background: #ffffff;
    border: 1px solid var(--rk-sim-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

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

.rk-dash-content {
    flex: 1;
}

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

.rk-dash-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-sim-dark);
    margin: 0;
    line-height: 1.3;
}

/* Kolorowanie Dashboardu zależnie od wybranego trybu */
.rk-params-container[data-current="opt"] .rk-dash-icon { background: #d1fae5; color: var(--rk-sim-opt); }
.rk-params-container[data-current="over"] .rk-dash-icon { background: #fee2e2; color: var(--rk-sim-over); }
.rk-params-container[data-current="under"] .rk-dash-icon { background: #dbeafe; color: var(--rk-sim-under); }

@media (max-width: 768px) {
    .rk-params-header { padding: 30px 20px; }
    .rk-params-header h2 { font-size: 22px; }
    .rk-sim-controls { 
        padding: 20px; 
        flex-direction: column; 
    }
    .rk-sim-btn { max-width: 100%; padding: 15px 20px; flex-direction: row; align-items: center; justify-content: space-between; }
    .rk-sim-dashboard { 
        padding: 0 20px 30px; 
        grid-template-columns: 1fr; /* Pionowy układ kafelków bez poziomego scrolla */
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Porównanie parametrów pracy instalacji przy różnych ustawieniach krzywej grzewczej",
    "description": "Zestawienie analityczne wpływu nachylenia krzywej grzewczej na efektywność COP, taktowanie sprężarki oraz realne koszty zużycia energii cieplnej w budynku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-porownanie",
    "name": "Zestawienie parametrów pracy pompy ciepła dla różnych krzywych grzewczych",
    "description": "Dane pomiarowe obrazujące zużycie energii elektrycznej przez pompę ciepła, taktowanie sprężarki oraz temperatury posadzki w zależności od krzywej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zużycie energii elektrycznej przez pompę ciepła",
      "maksymalna temperatura zasilania podłogówki",
      "wylewka betonowa na ogrzewanie podłogowe",
      "porównanie parametrów pracy instalacji",
      "częstotliwość włączeń sprężarki taktowanie"
    ],
    "measurementTechnique": "Symulacyjne zestawienie wartości wyjściowych pompy ciepła dla domu 150m2 przy trzech profilach nachylenia krzywej (0.15, 0.35, 0.80) w referencyjnej temperaturze zewnętrznej -7 stopni Celsjusza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant przewymiarowany drastycznie obniża COP i wywołuje ryzyko pękania jastrychu.",
        "Wariant optymalny zapewnia średni COP na poziomie 4.2 przy stabilnej pracy 4-6 cykli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-porownanie",
    "name": "Symulator Wpływu Krzywej Grzewczej na COP i Zużycie Energii",
    "description": "Narzędzie interaktywne zastępujące statyczną tabelę, demonstrujące na żywo zmiany parametrów eksploatacyjnych systemu grzewczego pod wpływem manipulacji sterownikiem.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-params-container" id="rkParamsSim" data-current="opt">
    
    <div class="rk-params-header">
        <h2>Porównanie parametrów pracy instalacji przy różnych ustawieniach krzywej</h2>
        <p>Wybór rzędnych i nachylenia krzywej pogodowej bezpośrednio determinuje zużycie energii elektrycznej, wydajność układu oraz bezpieczeństwo całej płaszczyzny grzewczej. Jak zachowa się instalacja dla domu o powierzchni 150 metrów kwadratowych?</p>
    </div>

    <!-- Przełączniki Wariantów -->
    <div class="rk-sim-controls">
        <button class="rk-sim-btn active" data-mode="opt" type="button">
            <span class="rk-sim-btn-title">Krzywa Optymalna</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.35</span>
        </button>
        <button class="rk-sim-btn" data-mode="over" type="button">
            <span class="rk-sim-btn-title">Przewymiarowana</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.80</span>
        </button>
        <button class="rk-sim-btn" data-mode="under" type="button">
            <span class="rk-sim-btn-title">Niedowymiarowana</span>
            <span class="rk-sim-btn-val">Nachylenie: 0.15</span>
        </button>
    </div>

    <!-- Kafelki Wyników (Zastępują Tabelę) -->
    <div class="rk-sim-dashboard">
        
        <div class="rk-dash-card">
            <div class="rk-dash-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 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-dash-content">
                <p class="rk-dash-label">Temperatura zasilania (przy -7°C)</p>
                <h3 class="rk-dash-value" id="val-temp">31,5°C</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Średni COP pompy ciepła</p>
                <h3 class="rk-dash-value" id="val-cop">4,2</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Cykle sprężarki (24h)</p>
                <h3 class="rk-dash-value" id="val-cycles">4–6 cykli (Stabilnie)</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Temperatura posadzki (salon)</p>
                <h3 class="rk-dash-value" id="val-floor">24,2°C</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Główne ryzyko technologiczne</p>
                <h3 class="rk-dash-value" id="val-risk">Brak (Prawidłowa <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka</a>)</h3>
            </div>
        </div>

        <div class="rk-dash-card">
            <div class="rk-dash-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="2" y="6" width="20" height="12" rx="2"></rect><circle cx="12" cy="12" r="2"></circle><path d="M6 12h.01M18 12h.01"></path></svg>
            </div>
            <div class="rk-dash-content">
                <p class="rk-dash-label">Szacowane zużycie energii (sezon)</p>
                <h3 class="rk-dash-value" id="val-energy">~2100 kWh</h3>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var container = document.getElementById('rkParamsSim');
    var btns = document.querySelectorAll('.rk-sim-btn');
    
    // Obiekty DOM do podmiany tekstu
    var elTemp = document.getElementById('val-temp');
    var elCop = document.getElementById('val-cop');
    var elCycles = document.getElementById('val-cycles');
    var elFloor = document.getElementById('val-floor');
    var elRisk = document.getElementById('val-risk');
    var elEnergy = document.getElementById('val-energy');

    // Baza danych dla 3 stanów (zamiennik tabeli)
    var dataBank = {
        'opt': {
            temp: '31,5°C',
            cop: '4,2',
            cycles: '4–6 cykli (Płynnie)',
            floor: '24,2°C',
            risk: 'Brak (Bezpieczna wylewka)',
            energy: '~2100 kWh'
        },
        'over': {
            temp: '43,0°C',
            cop: '2,8',
            cycles: '22–35 cykli (Taktowanie!)',
            floor: '28,9°C',
            risk: 'Pękanie jastrychu, skrzypienie paneli',
            energy: '~3150 kWh (+50% kosztów)'
        },
        'under': {
            temp: '25,5°C',
            cop: '4,8',
            cycles: '1–2 cykle (Brak mocy)',
            floor: '20,8°C',
            risk: 'Przewlekłe niedogrzanie budynku',
            energy: '~1750 kWh (Brak komfortu)'
        }
    };

    for (var i = 0; i < btns.length; i++) {
        btns[i].addEventListener('click', function() {
            var mode = this.getAttribute('data-mode');
            
            // Usunięcie aktywnej klasy ze wszystkich przycisków
            for (var j = 0; j < btns.length; j++) {
                btns[j].classList.remove('active');
            }
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            // Aktualizacja zmiennej CSS kontenera dla kolorystyki
            container.setAttribute('data-current', mode);

            // Pobranie odpowiednich danych korzystając z bezpiecznej instrukcji
            var safeData = null;
            if (mode === 'opt') { safeData = dataBank['opt']; }
            else if (mode === 'over') { safeData = dataBank['over']; }
            else if (mode === 'under') { safeData = dataBank['under']; }

            if (safeData !== null) {
                elTemp.innerHTML = safeData.temp;
                elCop.innerHTML = safeData.cop;
                elCycles.innerHTML = safeData.cycles;
                elFloor.innerHTML = safeData.floor;
                elRisk.innerHTML = safeData.risk;
                elEnergy.innerHTML = safeData.energy;
            }
        });
    }
});
</script>



<style>
:root {
    --rk-step-dark: #1e293b;
    --rk-step-blue: #0284c7;
    --rk-step-blue-light: #e0f2fe;
    --rk-step-bg: #ffffff;
    --rk-step-gray-light: #f8fafc;
    --rk-step-border: #e2e8f0;
    --rk-step-text: #475569;
    --rk-step-accent: #38bdf8;
    --rk-step-warning: #f59e0b;
}

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

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

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

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

.rk-highlight-badge {
    display: inline-block;
    background: rgba(245, 158, 11, 0.2);
    color: #fbbf24;
    padding: 4px 12px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 14px;
    margin-top: 15px;
    border: 1px solid rgba(245, 158, 11, 0.3);
}

/* Przewodnik Krokowy */
.rk-stepper-body {
    padding: 40px 50px;
    background: var(--rk-step-bg);
}

.rk-step-item {
    position: relative;
    padding-left: 60px;
    padding-bottom: 30px;
}

/* Linia łącząca */
.rk-step-item::before {
    content: '';
    position: absolute;
    left: 23px;
    top: 45px;
    bottom: -5px;
    width: 2px;
    background: var(--rk-step-border);
    transition: background 0.3s;
}

.rk-step-item:last-child::before {
    display: none;
}

.rk-step-item.active::before {
    background: var(--rk-step-blue);
}

/* Kółko z numerem */
.rk-step-marker {
    position: absolute;
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rk-step-gray-light);
    border: 2px solid var(--rk-step-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    color: #94a3b8;
    z-index: 2;
    transition: all 0.3s ease;
    cursor: pointer;
}

.rk-step-item.active .rk-step-marker {
    background: var(--rk-step-blue);
    border-color: var(--rk-step-blue);
    color: #ffffff;
    box-shadow: 0 0 0 6px var(--rk-step-blue-light);
}

/* Nagłówek kroku */
.rk-step-trigger {
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    padding: 12px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    outline: none;
}

.rk-step-trigger h3 {
    margin: 0;
    font-size: 19px;
    font-weight: 800;
    color: var(--rk-step-dark);
    transition: color 0.3s;
}

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

.rk-step-chevron {
    color: #cbd5e1;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-step-item.active .rk-step-chevron {
    transform: rotate(180deg);
    color: var(--rk-step-blue);
}

/* Treść kroku */
.rk-step-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
}

.rk-step-item.active .rk-step-content {
    opacity: 1;
}

.rk-step-content-inner {
    padding: 10px 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-step-text);
}

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

/* Interaktywny Algorytm w Kroku 5 */
.rk-decision-matrix {
    margin-top: 20px;
    background: var(--rk-step-gray-light);
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--rk-step-border);
}

.rk-matrix-title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--rk-step-dark);
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.rk-matrix-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 20px;
}

.rk-matrix-btn {
    background: #ffffff;
    border: 1px solid var(--rk-step-border);
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-step-text);
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-matrix-btn:hover {
    border-color: var(--rk-step-blue);
    background: var(--rk-step-blue-light);
}

.rk-matrix-btn.selected {
    background: var(--rk-step-dark);
    color: #ffffff;
    border-color: var(--rk-step-dark);
}

.rk-matrix-result {
    background: #ffffff;
    border-left: 4px solid var(--rk-step-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-step-dark);
    min-height: 54px;
    display: flex;
    align-items: center;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-stepper-header { padding: 35px 25px 25px; }
    .rk-stepper-body { padding: 30px 20px; }
    .rk-step-item { padding-left: 50px; }
    .rk-step-marker { width: 38px; height: 38px; font-size: 16px; }
    .rk-step-item::before { left: 18px; top: 38px; }
    .rk-step-trigger h3 { font-size: 16px; }
    .rk-matrix-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-proces-strojenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak przebiega proces strojenia krzywej grzewczej w praktyce?",
    "description": "Zrozum profesjonalny, 6-krokowy proces regulacji parametrów pogodowych instalacji płaszczyznowej przy wykorzystaniu rotametrów i siłowników strefowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-algorytm-strojenia",
    "name": "Algorytm Strojenia Krzywej Grzewczej (Decyzyjny)",
    "description": "Macierz decyzyjna określająca wpływ zmian przesunięcia i nachylenia krzywej grzewczej na temperatury wewnętrzne z uwzględnieniem warunków pogodowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strojenie krzywej grzewczej",
      "siłowniki termoelektryczne na rozdzielaczach",
      "rotametry i przepływy nominalne",
      "sterowanie strefowe ogrzewaniem",
      "temperatura referencyjna podłogówki"
    ],
    "measurementTechnique": "Algorytm oparty na iteracyjnej analizie zmian temperatur w pomieszczeniach w odstępach 48-godzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Podniesienie przesunięcia o 1.5K koryguje chłód przy dodatnich temperaturach na zewnątrz.",
        "Zwiększenie nachylenia o 0.05 ratuje sytuację przy drastycznych spadkach temperatury."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-kreator-strojenia",
    "name": "Interaktywny Asystent Kalibracji Pogodowej",
    "description": "Kreator krok-po-kroku z wbudowanym panelem diagnostycznym pomagającym instalatorom i inwestorom poprawnie wyregulować automatykę cieplną.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-stepper-container">
    
    <div class="rk-stepper-header">
        <h2>Jak przebiega proces strojenia krzywej grzewczej w praktyce?</h2>
        <p>Proces kalibracji to precyzyjna inżynieria. Wykonuje się go wyłącznie metodą kolejnych kroków, dając wylewce czas na akumulację ciepła.</p>
        <div class="rk-highlight-badge">Wymóg: Temperatura na zewnątrz poniżej 5°C. Odstępy 48-godzinne.</div>
    </div>

    <div class="rk-stepper-body" id="rkStepperWrapper">
        
        <!-- KROK 1 -->
        <div class="rk-step-item active">
            <div class="rk-step-marker">1</div>
            <button class="rk-step-trigger" type="button">
                <h3>Wyloguj układy automatyki strefowej</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Otwórz całkowicie wszystkie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowniki termoelektryczne na rozdzielaczach</a> (zdejmij je mechanicznie z zaworów lub ustaw w systemie tryb manualnie otwarty NO/NC). W tej fazie decydujemy się na sterowanie instalacją wyłącznie z zewnętrznego czujnika pogodowego, omijając wpływ lokalnych termostatów pokojowych.
                </div>
            </div>
        </div>

        <!-- KROK 2 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">2</div>
            <button class="rk-step-trigger" type="button">
                <h3>Ustaw przepływy nominalne</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Wykorzystując <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry na belce rozdzielacza</a>, ustaw przepływy cieczy zgodnie z wartościami wyliczonymi w Twoim projekcie wykonawczym. Zazwyczaj prawidłowe wartości oscylują w granicach od 1,0 do 2,5 litra na minutę na jedną pętlę grzewczą.
                </div>
            </div>
        </div>

        <!-- KROK 3 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">3</div>
            <button class="rk-step-trigger" type="button">
                <h3>Ustal bazową krzywą startową</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Dla nowego budynku mieszkalnego z <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">izolacją grubości 15–20 cm</a> na gruncie (najlepiej EPS 100) oraz 20 cm izolacji na ścianach zewnętrznych (o współczynniku przewodzenia 0,038 W/mK), ustaw bezpieczne parametry początkowe: nachylenie na poziomie 0,35 oraz przesunięcie równoległe równe 0 Kelwinów.
                </div>
            </div>
        </div>

        <!-- KROK 4 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">4</div>
            <button class="rk-step-trigger" type="button">
                <h3>Mierz temperaturę referencyjną</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Wybierz najchłodniejsze pomieszczenie w budynku (zazwyczaj od strony północnej, pozbawione pasywnych zysków słonecznych). Umieść tam dokładny rejestrator temperatury na wysokości około 1,5 metra nad posadzką, aby unikać bezpośredniego wpływu promieniowania podłogi.
                </div>
            </div>
        </div>

        <!-- KROK 5 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">5</div>
            <button class="rk-step-trigger" type="button">
                <h3>Koryguj wg algorytmu decyzyjnego</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Na podstawie obserwacji po 48 godzinach, wybierz z poniższego panelu objaw, który występuje w Twoim budynku, aby otrzymać precyzyjną instrukcję zmiany parametrów:
                    
                    <div class="rk-decision-matrix">
                        <div class="rk-matrix-title">Wybierz zaobserwowany objaw:</div>
                        <div class="rk-matrix-grid">
                            <button class="rk-matrix-btn" data-diag="cold-plus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                                Zimno przy +5°C do +15°C
                            </button>
                            <button class="rk-matrix-btn" data-diag="cold-minus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#2563eb" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                                Zimno poniżej -5°C (Mróz)
                            </button>
                            <button class="rk-matrix-btn" data-diag="hot-plus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                                Za gorąco na plusie
                            </button>
                            <button class="rk-matrix-btn" data-diag="hot-minus" type="button">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#b91c1c" stroke-width="2"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
                                Za gorąco przy mrozie
                            </button>
                        </div>
                        <div class="rk-matrix-result" id="rkDiagResult">
                            Wybierz jeden z powyższych objawów, aby wyświetlić zalecenie.
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- KROK 6 -->
        <div class="rk-step-item">
            <div class="rk-step-marker">6</div>
            <button class="rk-step-trigger" type="button">
                <h3>Zamknij pętlę sprzężenia</h3>
                <svg class="rk-step-chevron" width="24" height="24" 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-step-content">
                <div class="rk-step-content-inner">
                    Gdy wreszcie uzyskasz pożądaną, stabilną temperaturę wewnętrzną (na przykład idealne 21 stopni Celsjusza we wszystkich obiegach), możesz przejść do włączenia <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego ogrzewaniem</a>. Załóż z powrotem siłowniki. Od teraz ich zadaniem będzie wyłącznie obcinanie przepływu, gdy pojawi się dodatkowe darmowe ciepło (kominek, sprzęt AGD, nasłonecznienie z południa), co zapobiegnie lokalnemu przegrzaniu.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Logika Steppera (Akordeon kroków)
    var stepItems = document.querySelectorAll('.rk-step-item');
    
    for (var i = 0; i < stepItems.length; i++) {
        var trigger = stepItems[i].querySelector('.rk-step-trigger');
        var marker = stepItems[i].querySelector('.rk-step-marker');
        
        function toggleStep(item) {
            var isActive = item.classList.contains('active');
            var content = item.querySelector('.rk-step-content');
            
            // Zamknij wszystkie pozostałe kroki
            for (var j = 0; j < stepItems.length; j++) {
                if (stepItems[j] !== item) {
                    stepItems[j].classList.remove('active');
                    var otherContent = stepItems[j].querySelector('.rk-step-content');
                    otherContent.style.maxHeight = null;
                }
            }
            
            // Obsługa bieżącego kliknięcia
            if (isActive) {
                item.classList.remove('active');
                content.style.maxHeight = null;
            } else {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        }
        
        trigger.addEventListener('click', function() {
            toggleStep(this.parentElement);
        });
        
        marker.addEventListener('click', function() {
            toggleStep(this.parentElement);
        });
    }

    // Zainicjowanie poprawnej wysokości dla pierwszego (otwartego) kroku
    var firstContent = stepItems[0].querySelector('.rk-step-content');
    if (firstContent) {
        firstContent.style.maxHeight = firstContent.scrollHeight + "px";
    }

    // 2. Logika Panelu Diagnostycznego (Krok 5)
    var diagBtns = document.querySelectorAll('.rk-matrix-btn');
    var diagResult = document.getElementById('rkDiagResult');

    var diagMessages = {
        'cold-plus': '<strong>Rozwiązanie:</strong> Podnieś Przesunięcie krzywej o +1,5 K lub +2 K. Zostaw parametr nachylenia bez zmian.',
        'cold-minus': '<strong>Rozwiązanie:</strong> Zwiększ Nachylenie krzywej o +0,05 lub +0,1. System nie reaguje wystarczająco na mróz.',
        'hot-plus': '<strong>Rozwiązanie:</strong> Obniż Przesunięcie krzywej o -1,5 K. Baza startowa grzania jest ustawiona zbyt wysoko.',
        'hot-minus': '<strong>Rozwiązanie:</strong> Obniż Nachylenie krzywej o -0,05. Woda rośnie zbyt gwałtownie wraz ze spadkiem temperatury zewnętrznej.'
    };

    for (var d = 0; d < diagBtns.length; d++) {
        diagBtns[d].addEventListener('click', function() {
            // Usunięcie zaznaczenia ze wszystkich
            for (var b = 0; b < diagBtns.length; b++) {
                diagBtns[b].classList.remove('selected');
            }
            // Zaznaczenie bieżącego
            this.classList.add('selected');
            
            // Pobranie klucza i wstawienie odpowiedzi
            var key = this.getAttribute('data-diag');
            diagResult.innerHTML = diagMessages[key];

            // Przeliczenie wysokości akordeonu po zmianie zawartości (żeby tekst nie ucinał się w kroku 5)
            var activeContent = this.closest('.rk-step-content');
            if (activeContent) {
                activeContent.style.maxHeight = 'none'; // Tymczasowo by obliczyć nową przestrzeń
                var newHeight = activeContent.scrollHeight;
                activeContent.style.maxHeight = newHeight + "px";
            }
        });
    }
});
</script>



<style>
:root {
    --rk-scan-dark: #1e293b;
    --rk-scan-bg: #f8fafc;
    --rk-scan-border: #e2e8f0;
    --rk-scan-text: #475569;
    --rk-scan-red: #ef4444;
    --rk-scan-red-light: #fef2f2;
    --rk-scan-green: #10b981;
    --rk-scan-green-light: #ecfdf5;
}

.rk-scanner-container {
    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(15, 23, 42, 0.08);
    border: 1px solid var(--rk-scan-border);
    overflow: hidden;
    transition: all 0.4s ease;
}

/* Stan Zielony - Globalny */
.rk-scanner-container.mode-solution {
    border-color: #a7f3d0;
    box-shadow: 0 15px 35px -10px rgba(16, 185, 129, 0.15);
}

/* Nagłówek */
.rk-scanner-header {
    padding: 40px 50px 20px;
    text-align: center;
}

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

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

/* Główny Przełącznik */
.rk-scanner-toggle-box {
    padding: 0 50px 30px;
    display: flex;
    justify-content: center;
}

.rk-master-toggle {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 999px;
    position: relative;
    width: 100%;
    max-width: 450px;
}

.rk-toggle-option {
    flex: 1;
    padding: 14px 20px;
    text-align: center;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s;
    border: none;
    background: transparent;
}

.rk-toggle-pill {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-scan-red);
    border-radius: 999px;
    z-index: 1;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

/* Stany Przełącznika */
.rk-scanner-container.mode-error .rk-btn-error { color: #ffffff; }
.rk-scanner-container.mode-solution .rk-btn-solution { color: #ffffff; }

.rk-scanner-container.mode-solution .rk-toggle-pill {
    transform: translateX(100%);
    background: var(--rk-scan-green);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3);
}

/* Lista Kart */
.rk-cards-list {
    padding: 0 50px 40px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-diag-card {
    background: var(--rk-scan-bg);
    border: 2px solid var(--rk-scan-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: all 0.4s ease;
}

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

/* Typografia w karcie */
.rk-card-content {
    flex: 1;
}

.rk-card-content h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-scan-dark);
}

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

.rk-card-text a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Mechanizm przełączania widoku (CSS Only Content Toggle) */
.text-solution { display: none; }

.rk-scanner-container.mode-error .rk-diag-card {
    border-color: #fca5a5;
    background: var(--rk-scan-red-light);
}
.rk-scanner-container.mode-error .rk-card-icon {
    background: #fee2e2;
    color: var(--rk-scan-red);
}

.rk-scanner-container.mode-solution .rk-diag-card {
    border-color: #6ee7b7;
    background: var(--rk-scan-green-light);
}
.rk-scanner-container.mode-solution .rk-card-icon {
    background: #d1fae5;
    color: var(--rk-scan-green);
}
.rk-scanner-container.mode-solution .text-error { display: none; }
.rk-scanner-container.mode-solution .text-solution { display: block; }

/* SVG Icon states */
.icon-solution { display: none; }
.rk-scanner-container.mode-solution .icon-error { display: none; }
.rk-scanner-container.mode-solution .icon-solution { display: block; }

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-scanner-header { padding: 30px 20px 20px; }
    .rk-scanner-header h2 { font-size: 22px; }
    .rk-scanner-toggle-box { padding: 0 20px 25px; }
    .rk-cards-list { padding: 0 20px 30px; }
    .rk-diag-card { padding: 20px; flex-direction: column; gap: 15px; }
    .rk-card-icon { width: 44px; height: 44px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jakie są najczęstsze błędy przy ustawianiu krzywej grzewczej i jak ich unikać?",
    "description": "Zdiagnozuj 4 krytyczne błędy konfiguracyjne instalatorów: od złego montażu czujnika pogodowego, po dławienie rotametrów i ignorowanie bezwładności jastrychu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-diagnostyka",
    "name": "Diagnostyka Błędów Konfiguracyjnych Krzywej Grzewczej",
    "description": "Zestawienie technologicznych pomyłek w sterowaniu instalacją płaszczyznową wraz ze sprawdzonymi inżynierskimi rozwiązaniami.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż czujnika pogodowego na ścianie",
      "dławienie przepływu pompy ciepła siłownikami",
      "brak zrównoważenia hydraulicznego rotametrami",
      "bezwładność cieplna wylewki betonowej",
      "błąd wysokiego ciśnienia instalacji"
    ],
    "measurementTechnique": "Identyfikacja przyczyn spadku efektywności instalacji w wyniku błędnych nastaw sterownika oraz przymykania pętli na rozdzielaczu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Słońce nagrzewa czujnik południowy przekłamując odczyt o 5–12°C.",
        "Zbyt częste zmiany nastaw zaburzają ocenę ze względu na 48h cykl równowagi betonu."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-skaner",
    "name": "Interaktywny Skaner Błędów Instalacyjnych",
    "description": "Cyfrowe narzędzie pozwalające na dynamiczne przełączanie się między objawami błędów instalacyjnych a poprawną metodyką ich usuwania.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-scanner-container mode-error" id="rkDiagScanner">
    
    <div class="rk-scanner-header">
        <h2>Jakie są najczęstsze błędy przy ustawianiu krzywej grzewczej?</h2>
        <p>Błędy w konfiguracji sterowania pogodowego wynikają najczęściej z próby przeniesienia nawyków z wysoko-parametrowych instalacji grzejnikowych na systemy płaszczyznowe.</p>
    </div>

    <div class="rk-scanner-toggle-box">
        <div class="rk-master-toggle">
            <div class="rk-toggle-pill"></div>
            <button class="rk-toggle-option rk-btn-error" id="btn-show-errors" type="button">Objawy Błędów</button>
            <button class="rk-toggle-option rk-btn-solution" id="btn-show-solutions" type="button">Jak To Naprawić</button>
        </div>
    </div>

    <div class="rk-cards-list">
        
        <!-- Błąd 1 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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>
                <svg class="icon-solution" 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-card-content">
                <h3>1. Zła lokalizacja czujnika pogodowego</h3>
                <p class="rk-card-text text-error">Czujnik na ścianie południowej nagrzewa się od słońca, przekłamując odczyt o 5–12°C. <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterownik pogodowy</a> gwałtownie obniża temperaturę zasilania, a dom szybko się wychładza.</p>
                <p class="rk-card-text text-solution">Montuj element pomiarowy wyłącznie na ścianie północnej lub północno-zachodniej, minimum 2 metry nad gruntem, bezwzględnie z dala od wyrzutni powietrza i dużych okien.</p>
            </div>
        </div>

        <!-- Błąd 2 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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>
                <svg class="icon-solution" 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-card-content">
                <h3>2. Dławienie przepływu siłownikami</h3>
                <p class="rk-card-text text-error">Gdy jest za gorąco, użytkownik zamiast obniżyć krzywą, odcina <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowniki termoelektryczne</a>. Przepływ spada poniżej wymaganego (ok. 12-15 l/min), pompa ciepła taktuje i zgłasza błąd wysokiego ciśnienia (HP).</p>
                <p class="rk-card-text text-solution">Na czas regulacji otwórz wszystkie siłowniki (tryb manualny). Obniżaj całą krzywą grzewczą na sterowniku głównym, pozwalając na pełny, swobodny obieg wody w instalacji.</p>
            </div>
        </div>

        <!-- Błąd 3 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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>
                <svg class="icon-solution" 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-card-content">
                <h3>3. Brak zrównoważenia na rotametrach</h3>
                <p class="rk-card-text text-error">Regulacja krzywej bez wstępnego ustawienia przepływów nie działa. Krótkie pętle (np. 30 m) przegrzewają toaletę, a długie (110 m) są zimne. Inwestor sztucznie zawyża nachylenie krzywej pod najsłabszą strefę.</p>
                <p class="rk-card-text text-solution">Przed analizą krzywej ustaw <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametry</a> zgodnie z danymi z projektu. Krótkie pętle należy zdławić, a na najdłuższych wymusić przepływ rzędu 2.0 - 2.5 l/min.</p>
            </div>
        </div>

        <!-- Błąd 4 -->
        <div class="rk-diag-card">
            <div class="rk-card-icon">
                <svg class="icon-error" 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>
                <svg class="icon-solution" 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-card-content">
                <h3>4. Zbyt częste zmiany nastaw</h3>
                <p class="rk-card-text text-error">Użytkownik modyfikuje nachylenie co kilka godzin. Wyciąga błędne wnioski, ponieważ masywna wylewka betonowa nie zdążyła zareagować na poprzednią korektę temperatury.</p>
                <p class="rk-card-text text-solution">Uszanuj <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną wylewki</a> (pojemność cieplna to około 1,0 kJ/kgK). Nowy stan równowagi w domu odczujesz po upływie minimum 24 do 48 godzin od zmiany parametru.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var scanner = document.getElementById('rkDiagScanner');
    var btnErrors = document.getElementById('btn-show-errors');
    var btnSolutions = document.getElementById('btn-show-solutions');

    if (btnErrors) {
        btnErrors.addEventListener('click', function() {
            scanner.classList.remove('mode-solution');
            scanner.classList.add('mode-error');
        });
    }

    if (btnSolutions) {
        btnSolutions.addEventListener('click', function() {
            scanner.classList.remove('mode-error');
            scanner.classList.add('mode-solution');
        });
    }
});
</script>



<style>
:root {
    --rk-tab-dark: #0f172a;
    --rk-tab-blue: #0284c7;
    --rk-tab-blue-hover: #0369a1;
    --rk-tab-light: #f8fafc;
    --rk-tab-border: #cbd5e1;
    --rk-tab-text: #334155;
    --rk-tab-active-bg: #e0f2fe;
}

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

/* Nagłówek */
.rk-project-header {
    padding: 40px 50px 30px;
    text-align: center;
    background: #ffffff;
}

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

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

/* Nawigacja Zakładek (Tabs) */
.rk-tabs-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 0 50px 20px 50px;
    border-bottom: 2px solid var(--rk-tab-light);
}

.rk-tab-btn {
    flex: 1;
    min-width: 140px;
    background: var(--rk-tab-light);
    border: 1px solid var(--rk-tab-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    color: var(--rk-tab-text);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.rk-tab-btn svg {
    color: #64748b;
    transition: color 0.3s;
}

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

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

.rk-tab-btn.active svg {
    color: var(--rk-tab-blue);
}

/* Kontenery Treści */
.rk-tab-content-wrapper {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-tab-pane {
    display: none;
    animation: fadeInTab 0.4s ease forwards;
}

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

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

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

.rk-pane-title::before {
    content: '';
    display: block;
    width: 6px;
    height: 24px;
    background: var(--rk-tab-blue);
    border-radius: 4px;
}

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

.rk-pane-text a {
    color: var(--rk-tab-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid rgba(2, 132, 199, 0.3);
}

.rk-pane-text a:hover {
    border-bottom-color: var(--rk-tab-blue);
}

.rk-tech-box {
    background: var(--rk-tab-light);
    border-left: 4px solid var(--rk-tab-blue);
    padding: 15px 20px;
    border-radius: 0 8px 8px 0;
    font-size: 15px;
    color: var(--rk-tab-dark);
    font-weight: 600;
}

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

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

.rk-project-cta p {
    color: #cbd5e1;
    font-size: 16px;
    margin: 0 auto 30px auto;
    max-width: 650px;
    line-height: 1.6;
}

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

.rk-btn-sell:hover {
    background: var(--rk-tab-blue-hover);
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-project-header, .rk-tab-content-wrapper, .rk-project-cta { padding: 30px 20px; }
    .rk-tabs-nav { 
        padding: 0 20px 20px 20px; 
        flex-direction: column; /* Pionowy układ na mobile, brak przewijania poziomego */
    }
    .rk-tab-btn {
        flex-direction: row;
        justify-content: flex-start;
        padding: 16px 20px;
        min-width: 100%;
    }
    .rk-btn-sell { width: 100%; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Jak krzywa grzewcza wpływa na projekt ogrzewania podłogowego i OZC?",
    "description": "Dokładna analiza zależności między parametrami krzywej grzewczej, grubością izolacji, buforem ciepła i rekuperacją na etapie projektowania hydraulicznego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-zaleznosci-projektowe",
    "name": "Zależności hydrauliczne i izolacyjne w projektowaniu krzywej grzewczej",
    "description": "Zestawienie parametrów inżynieryjnych łączących obliczenia OZC z rozstawem rur i doborem armatury kotłowni.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zmniejszenie rozstawu rur ogrzewania podłogowego",
      "dobór pompy obiegowej do podłogówki",
      "obliczanie strat ciepła budynku ozc",
      "wpływ rekuperacji na ogrzewanie",
      "grubość styropianu pod ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Algorytm badający wpływ zmiany gęstości rur i oporu cieplnego izolacji na wymaganą maksymalną temperaturę zasilania pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dogęszczenie rur w strefach brzegowych eliminuje konieczność podnoszenia krzywej globalnej.",
        "Zastosowanie bufora jako sprzęgła hydraulicznego stabilizuje przepływy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-zaleznosci",
    "name": "Symulator Wpływu Komponentów na Krzywą Grzewczą",
    "description": "Narzędzie interaktywne prezentujące relacje między poszczególnymi etapami projektowania HVAC a finalnym ustawieniem sterownika pogodowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container">
    
    <div class="rk-project-header">
        <h2>Jak krzywa grzewcza wpływa na projekt i OZC?</h2>
        <p>Ustawienie optymalnej, niezwykle płaskiej krzywej grzewczej (o nachyleniu mniejszym lub równym 0.3) jest możliwe wyłącznie wtedy, gdy etap wykonawczy został poprzedzony precyzyjnymi obliczeniami inżynieryjnymi. Poznaj 4 filary profesjonalnego przygotowania.</p>
    </div>

    <!-- Zakładki -->
    <div class="rk-tabs-nav" id="rkTabNav">
        <button class="rk-tab-btn active" data-target="tab-ozc" type="button">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="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>
            Projekt OZC
        </button>
        <button class="rk-tab-btn" data-target="tab-rury" type="button">
            <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="M4 22h14a2 2 0 0 0 2-2V7.5L14.5 2H6a2 2 0 0 0-2 2v4"></path><polyline points="14 2 14 8 20 8"></polyline><path d="M2 15h10"></path><path d="M9 18v-6"></path></svg>
            Gęstość Rur
        </button>
        <button class="rk-tab-btn" data-target="tab-izolacja" type="button">
            <svg width="24" height="24" 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>
            Izolacja
        </button>
        <button class="rk-tab-btn" data-target="tab-hydraulika" type="button">
            <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>
            Pompa i Bufor
        </button>
    </div>

    <!-- Treść Zakładek -->
    <div class="rk-tab-content-wrapper">
        
        <!-- Tab 1: OZC -->
        <div class="rk-tab-pane active" id="tab-ozc">
            <h3 class="rk-pane-title">Bilans Cieplny (PN-EN 12831)</h3>
            <p class="rk-pane-text">
                Profesjonalne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczanie strat ciepła budynku OZC</a> to absolutny fundament. Wyznaczenie dokładnego zapotrzebowania na moc (Q_i) dla każdego pojedynczego pomieszczenia pozwala na idealne dopasowanie parametrów zasilania. Co więcej, <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">wpływ rekuperacji na ogrzewanie</a> (wentylacja mechaniczna ze sprawnością odzysku powyżej 85%) drastycznie spłaszcza krzywą, pozwalając obniżyć jej nachylenie o 0,05–0,08 w skali całego obiektu.
            </p>
            <div class="rk-tech-box">
                Efekt: Obniżenie punktu bazowego krzywej grzewczej dla całego systemu.
            </div>
        </div>

        <!-- Tab 2: Rury -->
        <div class="rk-tab-pane" id="tab-rury">
            <h3 class="rk-pane-title">Rozstaw i Strefy Brzegowe</h3>
            <p class="rk-pane-text">
                Opracowany <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt hydrauliczny instalacji</a> pozwala strategicznie zarządzać mocą. Świadome <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">zmniejszenie rozstawu rur ogrzewania podłogowego</a> z VA 15 cm na VA 10 cm podnosi lokalną moc grzewczą o 18% bez konieczności podnoszenia temperatury zasilania na kotle. Zastosowanie zagęszczenia w obszarach takich jak <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefy brzegowe przy oknach</a> kompensuje chłód od przeszkleń, umożliwiając pracę na bardzo niskich parametrach.
            </p>
            <div class="rk-tech-box">
                Efekt: Wyrównanie niedoborów mocy bez podnoszenia temperatury zasilania.
            </div>
        </div>

        <!-- Tab 3: Izolacja -->
        <div class="rk-tab-pane" id="tab-izolacja">
            <h3 class="rk-pane-title">Opór Cieplny Przegród</h3>
            <p class="rk-pane-text">
                Odpowiednia <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">grubość styropianu pod ogrzewanie podłogowe</a> decyduje o tym, czy grzejesz dom, czy grunt pod nim. Zgodnie z normą PN-EN 1264-4, <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny izolacji posadzki</a> na gruncie musi być równy lub większy niż 3.5 m2K/W. Gwarantuje to, że strumień energii kierowany jest w 95% ku górze. To właśnie doskonała izolacja podłogi i ścian sprawia, że możliwa jest do zastosowania wysoce energooszczędna, płaska krzywa grzewcza.
            </p>
            <div class="rk-tech-box">
                Wymóg: U mniejsze lub równe 0.15 W/m²K dla podłogi na gruncie.
            </div>
        </div>

        <!-- Tab 4: Hydraulika -->
        <div class="rk-tab-pane" id="tab-hydraulika">
            <h3 class="rk-pane-title">Zarządzanie Zładem Wody</h3>
            <p class="rk-pane-text">
                Przy systemach pracujących na ekstremalnie niskich parametrach (np. temperatura zasilania maksymalna na poziomie 32°C), kluczowy jest prawidłowy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">dobór pompy obiegowej do podłogówki</a> zapewniający odpowiedni strumień masy. W układach ze strefowymi termostatami niezbędny okazuje się <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła jako sprzęgło hydrauliczne</a> w konfiguracji 4-rurowej, który chroni pompę przed brakiem odbioru zładu i uniemożliwia taktowanie sprężarki.
            </p>
            <div class="rk-tech-box">
                Bezpieczeństwo: Stały i stabilny przepływ wymuszony niezależnie od siłowników.
            </div>
        </div>

    </div>

    <!-- Wezwanie do akcji (CTA) -->
    <div class="rk-project-cta">
        <h3>Nie ryzykuj błędów na etapie wylewki</h3>
        <p>Tylko pełna dokumentacja inżynierska gwarantuje, że podłoga będzie oddawać ciepło równomiernie, a rachunki spadną do absolutnego minimum. Zamów projekt u ekspertów.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-sell">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-tab-btn');
    var panes = document.querySelectorAll('.rk-tab-pane');

    for (var i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Usunięcie klasy active ze wszystkich przycisków
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            
            // Usunięcie klasy active ze wszystkich paneli
            for (var k = 0; k < panes.length; k++) {
                panes[k].classList.remove('active');
            }
            
            // Dodanie klasy active do klikniętego przycisku
            this.classList.add('active');
            
            // Dodanie klasy active do odpowiedniego panelu za pomocą if
            var targetPane = document.getElementById(targetId);
            if (targetPane) {
                targetPane.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-bg: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #475569;
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #ecfdf5;
}

.rk-casestudy-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.rk-casestudy-container[data-status="before"] {
    border-color: #fca5a5;
    box-shadow: 0 20px 40px -10px rgba(239, 68, 68, 0.1);
}

.rk-casestudy-container[data-status="after"] {
    border-color: #6ee7b7;
    box-shadow: 0 20px 40px -10px rgba(16, 185, 129, 0.1);
}

/* Nagłówek i Opis */
.rk-case-header {
    padding: 40px 50px 30px;
    background: #ffffff;
}

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

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

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

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

/* Informacje o Inwestycji */
.rk-case-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    padding: 0 50px 30px;
}

.rk-meta-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--rk-case-bg);
    padding: 10px 18px;
    border-radius: 12px;
    border: 1px solid var(--rk-case-border);
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-case-dark);
}

.rk-meta-icon {
    color: var(--rk-case-blue);
}

/* Przełącznik Interaktywny */
.rk-case-switch-area {
    padding: 0 50px 30px;
}

.rk-case-toggle {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 16px;
    position: relative;
    max-width: 600px;
    margin: 0 auto;
}

.rk-case-btn {
    flex: 1;
    padding: 16px 20px;
    text-align: center;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    z-index: 2;
    border: none;
    background: transparent;
    transition: color 0.3s;
    border-radius: 10px;
}

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    border-radius: 10px;
    z-index: 1;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Kolorystyka i Stany Przełącznika */
.rk-casestudy-container[data-status="before"] .rk-btn-before { color: var(--rk-case-red); }
.rk-casestudy-container[data-status="before"] .rk-toggle-bg {
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
    border: 1px solid #fca5a5;
}

.rk-casestudy-container[data-status="after"] .rk-btn-after { color: var(--rk-case-green); }
.rk-casestudy-container[data-status="after"] .rk-toggle-bg {
    transform: translateX(100%);
    background: #ffffff;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
    border: 1px solid #6ee7b7;
}

/* Panel Danych (Dashboard) */
.rk-case-dashboard {
    padding: 30px 50px 40px;
    background: var(--rk-case-bg);
    border-top: 1px solid var(--rk-case-border);
    transition: background 0.4s;
}

.rk-casestudy-container[data-status="before"] .rk-case-dashboard { background: var(--rk-case-red-bg); }
.rk-casestudy-container[data-status="after"] .rk-case-dashboard { background: var(--rk-case-green-bg); }

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

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

.rk-stat-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 4px;
}

.rk-casestudy-container[data-status="before"] .rk-stat-card::before { background: var(--rk-case-red); }
.rk-casestudy-container[data-status="after"] .rk-stat-card::before { background: var(--rk-case-green); }

.rk-stat-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: #94a3b8;
    margin-bottom: 10px;
    display: block;
    letter-spacing: 0.5px;
}

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

.rk-stat-desc {
    font-size: 13px;
    color: var(--rk-case-text);
    margin: 0;
}

/* Notatka Diagnostyczna */
.rk-case-note {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    gap: 15px;
    align-items: flex-start;
}

.rk-note-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    margin-top: 2px;
}

.rk-casestudy-container[data-status="before"] .rk-note-icon { color: var(--rk-case-red); }
.rk-casestudy-container[data-status="after"] .rk-note-icon { color: var(--rk-case-green); }

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-case-header { padding: 30px 20px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    .rk-case-meta { padding: 0 20px 20px; flex-direction: column; gap: 10px; }
    .rk-meta-item { width: 100%; justify-content: center; }
    .rk-case-switch-area { padding: 0 20px 25px; }
    .rk-case-toggle { flex-direction: column; }
    .rk-toggle-bg { width: calc(100% - 12px); height: calc(50% - 6px); bottom: auto; }
    .rk-casestudy-container[data-status="after"] .rk-toggle-bg { transform: translateY(100%); }
    .rk-case-dashboard { padding: 25px 20px; }
    .rk-dash-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy układ kafelków na smartfony */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Studium Przypadku (Case Study): Rzeczywiste koszty błędnie ustawionej krzywej",
    "description": "Zestawienie danych przed i po optymalizacji automatyki pogodowej na przykładzie domu jednorodzinnego 160 metrów kwadratowych w okolicach Rzeszowa.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wyniki-optymalizacji",
    "name": "Wyniki zysku energetycznego po kalibracji sterowania",
    "description": "Pomiary zużycia energii, taktowania sprężarki oraz COP zestawione na przykładzie realnego wdrożenia optymalizacji krzywej pogodowej w domu WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rzeczywiste oszczędności na kosztach ogrzewania w skali roku",
      "czy pompa ciepła ogrzeje dom z podłogówką",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "optymalizacja krzywej grzewczej 0.35",
      "taktowanie pompy ciepła podłogówka"
    ],
    "measurementTechnique": "Porównanie danych liczbowych (rachunki za energię elektryczną, średnia temperatura wody zasilającej, cykle pracy jednostki zewnętrznej) zarejestrowanych przed i po wykonanej usłudze audytu hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan przed: Krzywa ustawiona na wartość 0.8 doprowadziła do taktowania i wysokich kosztów ogrzewania rzędu 3800 PLN.",
        "Stan po: Obniżenie krzywej do 0.35 oraz prawidłowe wyrównanie na belkach obniżyło rachunek do 2450 PLN w sezonie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-case-study",
    "name": "Interaktywny Przegląd Studium Przypadku",
    "description": "Moduł aplikacyjny pozwalający czytelnikowi dynamicznie przełączać i analizować parametry diagnostyczne systemu przed i po interwencji inżynierskiej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-casestudy-container" id="rkCaseApp" data-status="before">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="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>
            Case Study (Studium Przypadku)
        </div>
        <h2>Ile kosztuje "ustawienie fabryczne" instalatora?</h2>
        <p>Pan Tomasz przez pierwszy rok zamieszkiwania w nowym domu borykał się z chłodem od dużych okien oraz rachunkami za prąd, które nie przystawały do nowoczesnego budownictwa. Sprawdź, dlaczego <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy uruchamianiu podłogówki</a> potrafią zrujnować portfel.</p>
    </div>

    <div class="rk-case-meta">
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" 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="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"></path><circle cx="12" cy="10" r="3"></circle></svg>
            Okolice Rzeszowa (woj. podkarpackie)
        </div>
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" 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="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>
            Dom WT2021, 160 mkw
        </div>
        <div class="rk-meta-item">
            <svg class="rk-meta-icon" 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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
            Pompa Ciepła 8 kW
        </div>
    </div>

    <div class="rk-case-switch-area">
        <div class="rk-case-toggle">
            <div class="rk-toggle-bg"></div>
            <button class="rk-case-btn rk-btn-before" id="btnCaseBefore" type="button">Sezon 1: Błędy</button>
            <button class="rk-case-btn rk-btn-after" id="btnCaseAfter" type="button">Sezon 2: Optymalizacja</button>
        </div>
    </div>

    <div class="rk-case-dashboard">
        
        <div class="rk-dash-grid">
            <div class="rk-stat-card">
                <span class="rk-stat-label">Krzywa Grzewcza</span>
                <p class="rk-stat-val" id="valCaseCurve">0.80</p>
                <p class="rk-stat-desc" id="descCaseCurve">Nastawa fabryczna (zbyt wysoka)</p>
            </div>
            
            <div class="rk-stat-card">
                <span class="rk-stat-label">Praca Sprężarki</span>
                <p class="rk-stat-val" id="valCaseCompressor">32 cykle</p>
                <p class="rk-stat-desc" id="descCaseCompressor">Na dobę (Ekstremalne taktowanie)</p>
            </div>
            
            <div class="rk-stat-card">
                <span class="rk-stat-label">Koszt Sezonu</span>
                <p class="rk-stat-val" id="valCaseCost">3800 PLN</p>
                <p class="rk-stat-desc" id="descCaseCost">Płacone za zaniżony wskaźnik COP</p>
            </div>
        </div>

        <div class="rk-case-note">
            <svg class="rk-note-icon" id="iconCaseNote" 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>
            <p class="rk-note-text" id="textCaseNote">
                <strong>Diagnoza początkowa:</strong> Instalator pozostawił strome nachylenie krzywej, dedykowane dla grzejników w starym budownictwie. Gdy w domu robiło się nieznośnie gorąco, Pan Tomasz zamykał przepływy termostatami ściennymi. Efekt? Pompa ciepła dusiła się na zamkniętym obiegu i ulegała przedwczesnemu zużyciu.
            </p>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var container = document.getElementById('rkCaseApp');
    var btnBefore = document.getElementById('btnCaseBefore');
    var btnAfter = document.getElementById('btnCaseAfter');

    // Elementy do aktualizacji tekstu
    var valCurve = document.getElementById('valCaseCurve');
    var descCurve = document.getElementById('descCaseCurve');
    var valCompress = document.getElementById('valCaseCompressor');
    var descCompress = document.getElementById('descCaseCompressor');
    var valCost = document.getElementById('valCaseCost');
    var descCost = document.getElementById('descCaseCost');
    
    var iconNote = document.getElementById('iconCaseNote');
    var textNote = document.getElementById('textCaseNote');

    // Funkcje aktualizujące (Bez użycia &&)
    function setBeforeState() {
        container.setAttribute('data-status', 'before');
        
        valCurve.innerText = '0.80';
        descCurve.innerText = 'Nastawa fabryczna (zbyt wysoka)';
        
        valCompress.innerText = '32 cykle';
        descCompress.innerText = 'Na dobę (Ekstremalne taktowanie)';
        
        valCost.innerText = '3800 PLN';
        descCost.innerText = 'Płacone za zaniżony wskaźnik COP';

        iconNote.innerHTML = '<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>';
        textNote.innerHTML = '<strong>Diagnoza początkowa:</strong> Instalator pozostawił strome nachylenie krzywej, dedykowane dla starych instalacji. Gdy w domu robiło się nieznośnie gorąco, Pan Tomasz zamykał przepływy termostatami ściennymi. Efekt? <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">Pompa ciepła</a> dusiła się na zamkniętym zładzie wody.';
    }

    function setAfterState() {
        container.setAttribute('data-status', 'after');
        
        valCurve.innerText = '0.35';
        descCurve.innerText = 'Płaska charakterystyka WT2021';
        
        valCompress.innerText = '5 cykli';
        descCompress.innerText = 'Stabilna, płynna praca na niskich obrotach';
        
        valCost.innerText = '2450 PLN';
        descCost.innerText = 'Rzeczywiste oszczędności finansowe';

        iconNote.innerHTML = '<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>';
        textNote.innerHTML = '<strong>Korekta Inżynierska:</strong> Otworzyliśmy wszystkie pętle, wymuszając pełny zład instalacji. Krzywa grzewcza została spłaszczona do poziomu 0.35 i podniesiona delikatnym przesunięciem. Osiągnęliśmy <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/">rzeczywiste oszczędności na kosztach ogrzewania</a> oraz ciepłą podłogę przez 24 godziny na dobę.';
    }

    // Podpięcie zdarzeń
    if (btnBefore) {
        btnBefore.addEventListener('click', setBeforeState);
    }
    
    if (btnAfter) {
        btnAfter.addEventListener('click', setAfterState);
    }
});
</script>



<style>
:root {
    --rk-auth-dark: #0f172a;
    --rk-auth-blue: #0284c7;
    --rk-auth-bg: #f8fafc;
    --rk-auth-border: #e2e8f0;
    --rk-auth-text: #475569;
    --rk-auth-social: #f1f5f9;
}

.rk-author-container {
    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(15, 23, 42, 0.08);
    border: 1px solid var(--rk-auth-border);
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
}

/* Lewa Kolumna: Profil */
.rk-author-profile {
    flex: 1;
    min-width: 300px;
    background: var(--rk-auth-bg);
    padding: 40px;
    border-right: 1px solid var(--rk-auth-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-author-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #ffffff;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}

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

.rk-author-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

/* Social Media */
.rk-social-links {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}

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

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

/* Prawa Kolumna: Treść i Interakcja */
.rk-author-content {
    flex: 2;
    min-width: 320px;
    padding: 40px 50px;
    background: #ffffff;
}

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

/* Interaktywne menu opinii */
.rk-auth-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    border-bottom: 2px solid var(--rk-auth-border);
    padding-bottom: 15px;
}

.rk-auth-tab-btn {
    background: var(--rk-auth-social);
    border: 1px solid var(--rk-auth-border);
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-auth-text);
    cursor: pointer;
}

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

/* Cytat */
.rk-quote-box {
    position: relative;
    padding: 25px 30px;
    background: #f0f9ff;
    border-left: 4px solid var(--rk-auth-blue);
    border-radius: 0 12px 12px 0;
    margin-bottom: 20px;
}

.rk-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: #ffffff;
    padding: 0 10px;
    color: var(--rk-auth-blue);
}

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

/* Zwykły tekst rozwinięcia */
.rk-auth-desc {
    font-size: 15px;
    color: var(--rk-auth-text);
    line-height: 1.7;
    margin: 0;
}

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

/* Ukrywanie zakładek - bez animacji */
.rk-auth-panel {
    display: none;
}

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

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-author-profile { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-auth-border); }
    .rk-author-content { padding: 30px 20px; }
    .rk-author-h2 { font-size: 22px; }
    .rk-auth-tabs { flex-direction: column; border-bottom: none; gap: 8px; padding-bottom: 0; }
    .rk-auth-tab-btn { width: 100%; text-align: center; padding: 14px; }
    .rk-quote-box { padding: 20px; }
    .rk-quote-text { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-podsumowanie-autorskie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Krzywa grzewcza zdaniem Roberta Kucharskiego",
    "description": "Autorskie podsumowanie tematyki optymalizacji krzywej grzewczej i projektowania układów hydraulicznych przez eksperta HVAC, Roberta Kucharskiego.",
    "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/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-wiedza-ekspercka",
    "name": "Baza Wiedzy Eksperckiej: Robert Kucharski",
    "description": "Zbiór autorskich opinii, doświadczeń i rozwiązań instalacyjnych związanych ze sterowaniem pogodowym w domach jednorodzinnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ekspert pomp ciepła",
      "projektowanie instalacji grzewczych",
      "optymalizacja krzywej grzewczej",
      "autorytet branży hvac",
      "koszty eksploatacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Weryfikacja założeń projektowych na podstawie doświadczenia z setek zrealizowanych inwestycji grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalizacja automatyki pogodowej wymaga kompleksowego podejścia inżynieryjnego.",
        "Kluczem do niezawodności jest pełna zgodność rozstawu rur i izolacji z projektem OZC."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-panel-ekspercki",
    "name": "Panel Konsultacji Eksperckiej",
    "description": "Moduł umożliwiający interaktywne zapoznanie się z opiniami głównego inżyniera w kluczowych aspektach działania instalacji: ekonomii, komforcie i automatyce.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-author-container">
    
    <!-- Kolumna Lewa: Wizytówka Autora -->
    <div class="rk-author-profile">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-author-photo" />
        <h3 class="rk-author-name">Robert Kucharski</h3>
        <p class="rk-author-title">Główny Projektant HVAC</p>
        
        <div class="rk-social-links">
            <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Facebook">
                <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-social-btn" aria-label="LinkedIn">
                <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>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="X Twitter">
                <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="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>
            </a>
        </div>

        <p style="font-size: 13px; color: #64748b; line-height: 1.5; margin: 0;">
            Specjalista z ponad 15-letnim doświadczeniem. Twórca setek bezbłędnych instalacji płaszczyznowych w Polsce.
        </p>
    </div>

    <!-- Kolumna Prawa: Interaktywne Opinie -->
    <div class="rk-author-content">
        <h2 class="rk-author-h2">Krzywa grzewcza zdaniem Roberta Kucharskiego</h2>
        
        <div class="rk-auth-tabs" id="rkOpinionTabs">
            <button class="rk-auth-tab-btn active" data-target="opin-ekonomia" type="button">O Ekonomii</button>
            <button class="rk-auth-tab-btn" data-target="opin-bledy" type="button">O Błędach Instalatorów</button>
            <button class="rk-auth-tab-btn" data-target="opin-projekt" type="button">O Projektowaniu</button>
        </div>

        <!-- Panel 1 -->
        <div class="rk-auth-panel active" id="opin-ekonomia">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                </div>
                <p class="rk-quote-text">
                    Nigdy nie traktuj krzywej grzewczej jak magicznego przycisku, który sam naprawi wadliwą instalację. To tylko oprogramowanie. Jeśli fizyka budynku się nie spina, żadna elektronika tego nie oszuka.
                </p>
            </div>
            <p class="rk-auth-desc">
                Z mojego doświadczenia wynika, że aż 8 na 10 inwestorów płaci zawyżone rachunki za prąd do pompy ciepła, ponieważ ich system jest dławiony lokalnymi termostatami. Świadome zarządzanie <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-w-ogrzewaniu-podlogowym-dlaczego-to-najlepszy-wybor-zamiast-zwyklej-wody-z-kranu/">zładem wody grzewczej</a> i otwarcie przepływów na rotametrach to jedyna droga do prawdziwych oszczędności.
            </p>
        </div>

        <!-- Panel 2 -->
        <div class="rk-auth-panel" id="opin-bledy">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                </div>
                <p class="rk-quote-text">
                    Najgorsze co możesz zrobić, to korygować nachylenie krzywej codziennie rano. Beton ma gigantyczną bezwładność. Reaguje dopiero po dwóch dobach.
                </p>
            </div>
            <p class="rk-auth-desc">
                Instalatorzy, którzy konfigurują automatykę "na oko" i opuszczają kotłownię, zostawiają klienta z ogromnym problemem. Brak świadomości, jak <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzina podłogowa</a> opóźnia oddawanie ciepła, prowadzi do ciągłego przegrzewania i wychładzania pomieszczeń.
            </p>
        </div>

        <!-- Panel 3 -->
        <div class="rk-auth-panel" id="opin-projekt">
            <div class="rk-quote-box">
                <div class="rk-quote-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                </div>
                <p class="rk-quote-text">
                    Prawidłowa krzywa grzewcza rodzi się na papierze milimetrowym inżyniera, a nie w menu sterownika w gotowej kotłowni.
                </p>
            </div>
            <p class="rk-auth-desc">
                Złota zasada jest brutalnie prosta. Bez rzetelnych <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">obliczeń strat cieplnych</a> dla poszczególnych pokoi oraz bez indywidualnego dopasowania gęstości rur, Twój dom nigdy nie osiągnie standardu energetycznego, za który zapłaciłeś. Zadbaj o inżynieryjne fundamenty.
            </p>
        </div>

    </div>
</div>

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

    for (var i = 0; i < tabs.length; i++) {
        tabs[i].addEventListener('click', function() {
            var targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych
            for (var j = 0; j < tabs.length; j++) {
                tabs[j].classList.remove('active');
            }
            for (var k = 0; k < panels.length; k++) {
                panels[k].classList.remove('active');
            }
            
            // Ustawienie aktywnych (bez animacji, instant)
            this.classList.add('active');
            var activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('active');
            }
        });
    }
});
</script>



<style>
:root {
    --rk-faq-dark: #1e293b;
    --rk-faq-blue: #0284c7;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
    --rk-faq-hover: #f1f5f9;
    --rk-faq-accent: #38bdf8;
}

.rk-faq-container {
    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(15, 23, 42, 0.08);
    border: 1px solid var(--rk-faq-border);
    overflow: hidden;
}

/* Nagłówek Sekcji */
.rk-faq-header {
    padding: 40px 50px 30px;
    background: linear-gradient(to right, var(--rk-faq-dark), #0f172a);
    color: #ffffff;
    text-align: center;
}

.rk-faq-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0;
    letter-spacing: -0.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-faq-header h2 svg {
    color: var(--rk-faq-accent);
}

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

/* Moduł Akordeonu */
.rk-faq-wrapper {
    padding: 30px 50px 40px;
    background: var(--rk-faq-bg);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

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

/* Przycisk Pytania */
.rk-faq-btn {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: background 0.3s;
}

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

.rk-faq-icon-box {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #e0f2fe;
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.3s;
}

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

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

.rk-faq-chevron {
    color: #94a3b8;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

.rk-faq-content-inner {
    padding: 0 25px 25px 84px; /* Wcięcie wyrównane z tekstem h3 */
}

.rk-faq-content-inner p {
    margin: 0;
    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 rgba(2, 132, 199, 0.3);
    transition: all 0.2s;
}

.rk-faq-content-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
}

/* Wyróżnienia danych technicznych */
.rk-data-highlight {
    font-weight: 800;
    color: var(--rk-faq-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
}

@media (max-width: 768px) {
    .rk-faq-header { padding: 30px 20px; }
    .rk-faq-header h2 { font-size: 22px; }
    .rk-faq-wrapper { padding: 25px 15px; }
    .rk-faq-btn { padding: 18px 15px; gap: 12px; }
    .rk-faq-btn h3 { font-size: 15px; }
    .rk-faq-content-inner { padding: 0 15px 20px 15px; } /* Usunięto duże wcięcie na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Często zadawane pytania (FAQ) – Parametry krzywej grzewczej",
    "description": "Zbiór najważniejszych pytań i odpowiedzi technicznych dotyczących konfiguracji krzywej grzewczej, wykończenia podłóg 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://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Jakie nachylenie krzywej grzewczej ustawić dla pompy ciepła i podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Dla nowoczesnego, dobrze izolowanego domu jednorodzinnego (standard WT2021) optymalne nachylenie krzywej grzewczej dla pompy ciepła połączonej z ogrzewaniem podłogowym wynosi od 0,3 do 0,4. W budynkach pasywnych wartość ta może spaść do 0,15–0,25, natomiast w starym budownictwie po termomodernizacji oscyluje w granicach 0,5–0,6."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różni się nachylenie krzywej grzewczej od jej przesunięcia?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nachylenie (slope) decyduje o stromości wykresu i zmienia temperaturę zasilania proporcjonalnie do spadku temperatury zewnętrznej (reakcja na mróz), natomiast przesunięcie (offset) podnosi lub obniża całą krzywą o stałą wartość stopni w całym zakresie temperatur. Nachylenie reguluje dynamikę przy mrozach, a przesunięcie koryguje temperaturę bazową w ciągu całego sezonu."
        }
      },
      {
        "@type": "Question",
        "name": "Czy ustawiać osobną krzywą grzewczą dla łazienki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie stosuje się osobnej krzywej grzewczej dla pojedynczego pomieszczenia na jednym rozdzielaczu, lecz projektuje się w łazience gęstszy rozstaw rur (np. VA 7,5 cm zamiast VA 15 cm) lub instaluje dodatkowy grzejnik elektryczny/drabinkowy. Alternatywą jest zastosowanie modułu mieszającego dla wyodrębnionej strefy wysokotemperaturowej, co jednak obniża sprawność skraplania pompy ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego podłoga jest zimna, mimo że w domu jest ciepło?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "W dobrze ocieplonym domu pracującym na optymalnej krzywej grzewczej, wysoka temperatura wody zasilającej nie jest wymagana – woda ma często 26–28°C. Ponieważ temperatura ciała człowieka to około 36,6°C, posadzka o temperaturze 24°C będzie w dotyku subiektywnie chłodna, co jest zjawiskiem całkowicie prawidłowym i świadczy o wysokiej efektywności energetycznej obiektu."
        }
      },
      {
        "@type": "Question",
        "name": "Jak zmiana wykończenia podłogi z płytek na panele wpływa na krzywą grzewczą?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Panele podłogowe cechują się wyższym oporem cieplnym (R około 0,05 - 0,10 m2K/W) niż płytki ceramiczne (R około 0,01 m2K/W), co utrudnia przekazywanie ciepła z wylewki do pomieszczenia. Zmiana okładziny na panele wymaga podniesienia temperatury zasilania o około 2–4°C, co oznacza konieczność podbicia przesunięcia krzywej o +2 K do +3 K lub nieznacznego zwiększenia nachylenia."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-parametry-faq",
    "name": "Wskaźniki termiczne i parametry konfiguracyjne krzywej grzewczej",
    "description": "Zestawienie wytycznych dotyczących optymalnego nachylenia, przesunięcia oraz wpływu oporu cieplnego materiałów na temperaturę zasilania systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "nachylenie krzywej grzewczej",
      "przesunięcie krzywej pogodowej",
      "opór cieplny paneli podłogowych",
      "temperatura zasilania podłogówki",
      "sprawność skraplania pompy ciepła"
    ],
    "measurementTechnique": "Parametry określone na podstawie norm izolacyjności budynków (WT2021) oraz wartości oporu cieplnego materiałów wykończeniowych posadzek.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalne nachylenie krzywej (WT2021): 0.3 - 0.4.",
        "Korekta temperatury dla paneli podłogowych: przesunięcie o +2K do +3K."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-faq",
    "name": "Interaktywny Panel FAQ Krzywej Grzewczej",
    "description": "Moduł aplikacyjny wyświetlający kluczowe pytania inwestorów i techniczne odpowiedzi w formie dynamicznego, rozwijanego interfejsu (akordeon).",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container">
    <div class="rk-faq-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"><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>
            Często zadawane pytania (FAQ)
        </h2>
        <p>Rozwiewamy inżynieryjne wątpliwości dotyczące nastaw automatyki pogodowej.</p>
    </div>

    <div class="rk-faq-wrapper">
        
        <!-- Pytanie 1 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Jakie nachylenie krzywej grzewczej ustawić dla pompy ciepła i podłogówki?</h3>
                <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">
                    <p>Dla nowoczesnego, dobrze izolowanego domu jednorodzinnego (standard WT2021) optymalne nachylenie krzywej grzewczej dla <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a> połączonej z ogrzewaniem podłogowym wynosi <span class="rk-data-highlight">od 0,3 do 0,4</span>. W budynkach pasywnych wartość ta może spaść do <span class="rk-data-highlight">0,15–0,25</span>, natomiast w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">starym budownictwie po termomodernizacji</a> oscyluje w granicach <span class="rk-data-highlight">0,5–0,6</span>.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 2 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Czym różni się nachylenie krzywej grzewczej od jej przesunięcia?</h3>
                <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">
                    <p><strong>Nachylenie (slope)</strong> decyduje o stromości wykresu i zmienia temperaturę zasilania proporcjonalnie do spadku temperatury zewnętrznej (reakcja na mróz), natomiast <strong>przesunięcie (offset)</strong> podnosi lub obniża całą krzywą o stałą wartość stopni w całym zakresie temperatur. Nachylenie reguluje dynamikę przy mrozach, a przesunięcie koryguje temperaturę bazową w ciągu całego sezonu.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 3 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Czy ustawiać osobną krzywą grzewczą dla łazienki?</h3>
                <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">
                    <p>Nie stosuje się osobnej krzywej grzewczej dla pojedynczego pomieszczenia na jednym <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu</a>, lecz projektuje się w łazience gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/">rozstaw rur</a> (np. <span class="rk-data-highlight">VA 7,5 cm</span> zamiast VA 15 cm) lub instaluje dodatkowy grzejnik elektryczny. Alternatywą jest zastosowanie modułu mieszającego dla wyodrębnionej strefy wysokotemperaturowej, co jednak obniża sprawność skraplania pompy ciepła.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 4 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>
                <h3>Dlaczego podłoga jest zimna, mimo że w domu jest ciepło?</h3>
                <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">
                    <p>W dobrze ocieplonym domu pracującym na optymalnej krzywej grzewczej, wysoka temperatura wody zasilającej nie jest wymagana – woda ma często <span class="rk-data-highlight">26–28°C</span>. Ponieważ temperatura ciała człowieka to około 36,6°C, posadzka o temperaturze 24°C będzie w dotyku subiektywnie chłodna, co jest zjawiskiem całkowicie prawidłowym i świadczy o wysokiej efektywności energetycznej obiektu.</p>
                </div>
            </div>
        </div>

        <!-- Pytanie 5 -->
        <div class="rk-faq-item">
            <button class="rk-faq-btn" type="button">
                <div class="rk-faq-icon-box">
                    <svg width="22" height="22" 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>Jak zmiana wykończenia podłogi z płytek na panele wpływa na krzywą grzewczą?</h3>
                <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">
                    <p>Panele podłogowe cechują się wyższym oporem cieplnym (<span class="rk-data-highlight">R około 0,05 - 0,10 m2K/W</span>) niż płytki ceramiczne (<span class="rk-data-highlight">R około 0,01 m2K/W</span>), co utrudnia przekazywanie ciepła z wylewki do pomieszczenia. Zmiana <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">płytek na panele</a> wymaga podniesienia temperatury zasilania o około 2–4°C, co oznacza konieczność podbicia przesunięcia krzywej o +2 K do +3 K lub nieznacznego zwiększenia nachylenia.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var faqBtns = document.querySelectorAll('.rk-faq-btn');
    
    for (var i = 0; i < faqBtns.length; i++) {
        faqBtns[i].addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            var isActive = item.classList.contains('active');
            
            // Zamknij wszystkie inne otwarte panele dla zachowania czystości interfejsu
            for (var j = 0; j < faqBtns.length; j++) {
                var otherItem = faqBtns[j].parentElement;
                var otherContent = faqBtns[j].nextElementSibling;
                if (otherItem !== item) {
                    otherItem.classList.remove('active');
                    otherContent.style.maxHeight = null;
                }
            }
            
            // Przełącz kliknięty panel
            if (isActive) {
                item.classList.remove('active');
                content.style.maxHeight = null;
            } else {
                item.classList.add('active');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-blue: #0284c7;
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #475569;
    --rk-dl-red: #ef4444;
}

.rk-download-container {
    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(15, 23, 42, 0.08);
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
}

/* Układ główny karty */
.rk-dl-grid {
    display: flex;
    flex-wrap: wrap;
}

/* Lewa sekcja - Miniatura */
.rk-dl-visual {
    flex: 1;
    min-width: 300px;
    background: var(--rk-dl-bg);
    padding: 40px;
    border-right: 1px solid var(--rk-dl-border);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.rk-dl-thumbnail-wrapper {
    position: relative;
    width: 100%;
    max-width: 280px;
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    background: #ffffff;
    padding: 10px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
}

.rk-dl-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    cursor: pointer;
}

.rk-dl-badge {
    position: absolute;
    top: -12px;
    right: -12px;
    background: var(--rk-dl-red);
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
    padding: 6px 12px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

/* Prawa sekcja - Treść i Przyciski */
.rk-dl-content {
    flex: 1.5;
    min-width: 320px;
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

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

.rk-dl-content h3 {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-dl-blue);
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-desc {
    font-size: 15px;
    color: var(--rk-dl-text);
    line-height: 1.6;
    margin: 0 0 25px 0;
}

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

/* Grupa Przycisków */
.rk-dl-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 30px;
}

.rk-btn-pdf, .rk-btn-img {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    border: none;
}

.rk-btn-pdf {
    background: var(--rk-dl-dark);
    color: #ffffff;
}

.rk-btn-pdf:hover {
    background: #1e293b;
}

.rk-btn-img {
    background: #e0f2fe;
    color: var(--rk-dl-blue);
    border: 1px solid #bae6fd;
}

.rk-btn-img:hover {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border-color: var(--rk-dl-blue);
}

/* Stopka z Prawami Autorskimi */
.rk-dl-copyright {
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.5;
}

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

/* Lightbox (Pełny ekran dla obrazka) - Błyskawiczne pojawianie */
.rk-lightbox {
    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;
}

.rk-lightbox.active {
    display: flex;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
}

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.5);
    display: block;
}

.rk-lightbox-close {
    position: absolute;
    top: -20px;
    right: -20px;
    background: var(--rk-dl-red);
    color: #ffffff;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 4px solid #1e293b;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-lightbox-close:hover {
    background: #b91c1c;
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dl-grid { flex-direction: column; }
    .rk-dl-visual { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-dl-border); }
    .rk-dl-content { padding: 30px 20px; }
    .rk-dl-actions { flex-direction: column; }
    .rk-btn-pdf, .rk-btn-img { width: 100%; justify-content: center; }
    .rk-lightbox-close { top: -10px; right: -10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Pobierz darmową infografikę: Krzywa grzewcza w pigułce",
    "description": "Zestawienie parametrów, objawów błędów i metod strojenia krzywej pogodowej w formie czytelnej, autorskiej infografiki do pobrania w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-infografika-pdf",
    "name": "Schemat instalacji i ustawienia pompy ciepła (Infografika)",
    "description": "Zestawienie wizualne prawidłowych parametrów zasilania rozdzielacza ogrzewania podłogowego w oparciu o aktualne normy WT2021.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "schemat instalacji ogrzewania",
      "ustawienia pompy ciepła tabela",
      "parametry zasilania rozdzielacza",
      "kompleksowa wycena ogrzewania podłogowego"
    ],
    "measurementTechnique": "Przedstawienie skondensowanej wiedzy inżynieryjnej dotyczącej przesunięcia i nachylenia krzywej pogodowej w formie plików WEBP oraz PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szybka ściągawka ułatwiająca identyfikację problemów z przegrzewaniem lub niedogrzewaniem budynku.",
        "Dokument PDF przeznaczony dla instalatorów oraz inwestorów do wykorzystania bezpośrednio w kotłowni."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-przegladarka",
    "name": "Interaktywna Przeglądarka Infografik HVAC",
    "description": "Moduł umożliwiający błyskawiczne wyświetlenie podglądu schematów hydraulicznych na pełnym ekranie oraz bezpieczne pobranie zautoryzowanego pliku PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-container">
    <div class="rk-dl-grid">
        
        <!-- Podgląd Wizualny -->
        <div class="rk-dl-visual">
            <div class="rk-dl-thumbnail-wrapper">
                <div class="rk-dl-badge">Darmowy PDF</div>
                <img decoding="async" 
                    src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp" 
                    alt="Miniatura infografiki: Krzywa grzewcza w ogrzewaniu podłogowym" 
                    class="rk-dl-image" 
                    id="rkThumbTrigger"
                />
            </div>
        </div>

        <!-- Treść i Przyciski -->
        <div class="rk-dl-content">
            <h3>Narzędzie dla Inwestora i Instalatora</h3>
            <h2>Pobierz infografikę: Krzywa grzewcza w pigułce</h2>
            
            <p class="rk-dl-desc">
                Wiedza, którą przedstawiłem w tym artykule, to techniczny fundament. Aby ułatwić Ci pracę bezpośrednio w kotłowni, przygotowałem kompleksowy <strong>schemat instalacji ogrzewania</strong> oraz <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">zestawienie parametrów zasilania rozdzielacza</a> w formie czytelnej infografiki. Zabierz te dane ze sobą, gdy tylko zauważysz, że Twój system wymaga interwencji.
            </p>

            <div class="rk-dl-actions">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.pdf" target="_blank" rel="noopener noreferrer" class="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-img" id="rkBtnView">
                    <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="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    Powiększ obraz
                </button>
            </div>

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

    </div>
</div>

<!-- Modal / Lightbox (Brak animacji, błyskawiczny popup) -->
<div class="rk-lightbox" id="rkLightboxPopup">
    <div class="rk-lightbox-content">
        <button type="button" class="rk-lightbox-close" id="rkLightboxClose" aria-label="Zamknij podgląd">
            <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="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
        </button>
        <img decoding="async" 
            src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/08/Infografika-Krzywa-grzewcza-w-ogrzewaniu-podlogowym.webp" 
            alt="Powiększona infografika krzywej grzewczej" 
            class="rk-lightbox-img"
        />
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var lightbox = document.getElementById('rkLightboxPopup');
    var btnView = document.getElementById('rkBtnView');
    var thumbTrigger = document.getElementById('rkThumbTrigger');
    var btnClose = document.getElementById('rkLightboxClose');

    // Funkcja otwierająca (bezpieczna bez operatorów &&)
    function openLightbox() {
        if (lightbox !== null) {
            lightbox.classList.add('active');
            // Zablokowanie scrollowania strony
            document.body.style.overflow = 'hidden';
        }
    }

    // Funkcja zamykająca
    function closeLightbox() {
        if (lightbox !== null) {
            lightbox.classList.remove('active');
            // Odblokowanie scrollowania strony
            document.body.style.overflow = '';
        }
    }

    // Podpięcie zdarzeń
    if (btnView !== null) {
        btnView.addEventListener('click', openLightbox);
    }
    
    if (thumbTrigger !== null) {
        thumbTrigger.addEventListener('click', openLightbox);
    }

    if (btnClose !== null) {
        btnClose.addEventListener('click', closeLightbox);
    }

    // Zamknięcie po kliknięciu w ciemne tło (poza obrazkiem)
    if (lightbox !== null) {
        lightbox.addEventListener('click', function(event) {
            if (event.target === lightbox) {
                closeLightbox();
            }
        });
    }
});
</script>



<style>
:root {
    --rk-dash-dark: #0f172a;
    --rk-dash-blue: #0284c7;
    --rk-dash-blue-hover: #0369a1;
    --rk-dash-light: #f8fafc;
    --rk-dash-green: #059669;
    --rk-dash-red: #dc2626;
    --rk-dash-border: #e2e8f0;
    --rk-dash-tag-bg: #f1f5f9;
    --rk-dash-tag-text: #475569;
}

.rk-summary-dashboard {
    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.1);
    border: 1px solid var(--rk-dash-border);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-dash-header {
    padding: 40px 50px 20px;
}

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

.rk-dash-header h3 {
    font-size: 20px;
    font-weight: 700;
    color: var(--rk-dash-blue);
    margin: 30px 0 15px 0;
}

.rk-dash-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 15px;
}

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

/* Przełącznik App-Style */
.rk-app-toggle-container {
    background: var(--rk-dash-light);
    padding: 30px 50px;
    border-top: 1px solid var(--rk-dash-border);
    border-bottom: 1px solid var(--rk-dash-border);
}

.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 6px;
    position: relative;
    max-width: 500px;
    margin: 0 auto 30px auto;
}

.rk-toggle-btn {
    flex: 1;
    padding: 14px 20px;
    border: none;
    background: transparent;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 2;
    position: relative;
    text-align: center;
}

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

.rk-toggle-indicator {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-dash-blue);
    border-radius: 999px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
    z-index: 1;
}

.rk-toggle-wrapper[data-state="bad"] .rk-toggle-indicator {
    transform: translateX(100%);
    background: var(--rk-dash-red);
    box-shadow: 0 4px 10px rgba(220, 38, 38, 0.3);
}

/* Karty Wyników */
.rk-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-result-card {
    background: #ffffff;
    border: 2px solid var(--rk-dash-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: border-color 0.3s ease;
}

.rk-result-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rk-result-content h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
}

.rk-result-content .rk-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-dash-dark);
    margin: 0 0 5px 0;
}

.rk-result-content .rk-desc {
    font-size: 13px;
    color: #64748b;
    margin: 0;
    line-height: 1.4;
}

/* Stan: Dobry (Projekt) */
.state-good .card-cop { border-color: #a7f3d0; }
.state-good .card-cop .rk-result-icon { background: #d1fae5; color: var(--rk-dash-green); }
.state-good .card-bill { border-color: #bae6fd; }
.state-good .card-bill .rk-result-icon { background: #e0f2fe; color: var(--rk-dash-blue); }

/* Stan: Zły (Na oko) */
.state-bad .card-cop { border-color: #fecaca; }
.state-bad .card-cop .rk-result-icon { background: #fee2e2; color: var(--rk-dash-red); }
.state-bad .card-bill { border-color: #fef08a; }
.state-bad .card-bill .rk-result-icon { background: #fef9c3; color: #ca8a04; }

/* Tagi Długi Ogon */
.rk-tags-container {
    padding: 30px 50px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-dash-tag-bg);
    color: var(--rk-dash-tag-text);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid #cbd5e1;
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: #e2e8f0;
    color: var(--rk-dash-dark);
}

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

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

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

.rk-massive-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-dash-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
}

.rk-massive-link:hover {
    background: var(--rk-dash-blue-hover);
}

/* RWD Mobile */
@media (max-width: 768px) {
    .rk-dash-header, .rk-app-toggle-container, .rk-tags-container, .rk-final-cta {
        padding: 30px 20px;
    }
    .rk-results-grid {
        grid-template-columns: 1fr; /* Pionowy układ na mobile */
        gap: 15px;
    }
    .rk-toggle-wrapper {
        flex-direction: column; /* Akordeonowy przełącznik */
        border-radius: 16px;
    }
    .rk-toggle-indicator {
        width: calc(100% - 12px);
        height: calc(50% - 6px);
        bottom: auto;
    }
    .rk-toggle-wrapper[data-state="bad"] .rk-toggle-indicator {
        transform: translateY(100%);
    }
    .rk-massive-link {
        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/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/"
    },
    "headline": "Podsumowanie: Optymalizacja Krzywej Grzewczej a Projekt OZC",
    "description": "Zakończenie analizy konfiguracji krzywej grzewczej. Poznaj realny wpływ profesjonalnego projektu obciążenia cieplnego na współczynnik COP pompy ciepła i koszty eksploatacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-08-02",
    "dateModified": "2026-08-02"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#dataset-cop",
    "name": "Wpływ Projektu OZC na SCOP Pompy Ciepła",
    "description": "Dane pomiarowe i szacunkowe porównujące koszty eksploatacji oraz wydajność systemu grzewczego w zależności od precyzji obliczeń inżynierskich.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalizacja krzywej grzewczej",
      "cop pompy ciepła a podłogówka",
      "projektowe obciążenie cieplne ozc",
      "zrównoważenie hydrauliczne rotametrów",
      "bezwładność jastrychu betonowego"
    ],
    "measurementTechnique": "Porównanie parametrów pracy pompy ciepła z poprawnie dobranym rozstawem rur (na bazie OZC) z instalacją wykonaną intuicyjnie.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System zoptymalizowany: Wymaga zrównoważenia przepływów i precyzyjnego przesunięcia krzywej.",
        "System bez projektu: Wymusza podniesienie temperatury zasilania, drastycznie obniżając SCOP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/#webapp-symulator",
    "name": "Symulator Efektywności Krzywej Grzewczej",
    "description": "Interaktywna aplikacja webowa demonstrująca wpływ błędów projektowych na efektywność instalacji płaszczyznowej.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-dashboard">
    <!-- Część tekstowa -->
    <div class="rk-dash-header">
        <h2>Podsumowanie: Inżynieria vs Intuicja</h2>
        <p>
            Optymalnie skonfigurowana krzywa grzewcza w ogrzewaniu podłogowym stanowi warunek konieczny do uzyskania wysokiego współczynnika COP pompy ciepła lub niskiego zużycia paliwa przez kocioł kondensacyjny. Proces jej regulacji wymaga cierpliwości, wyłączenia agresywnego sterowania strefowego na czas kalibracji oraz zrozumienia <strong>bezwładności jastrychu betonowego</strong>.
        </p>

        <h3>Dlaczego projekt to fundament?</h3>
        <p>
            Bez usunięcia błędów projektowych – takich jak brak wyznaczenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a>, niewłaściwy rozstaw rur czy brak <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">zrównoważenia hydraulicznego na rozdzielaczu</a> – sama regulacja sterownika pogodowego nie rozwiąże problemów z niedogrzaniem lub wysokimi rachunkami. Jeśli planujesz budowę lub modernizację instalacji, dopilnuj wykonania pełnego <a href="https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/">projektu wykonawczego HVAC</a>. To jedyna droga do uzyskania stabilnego komfortu cieplnego przy minimalnych kosztach eksploatacji.
        </p>
    </div>

    <!-- Przełącznik aplikacji -->
    <div class="rk-app-toggle-container">
        <div class="rk-toggle-wrapper" id="rkToggleUI" data-state="good">
            <div class="rk-toggle-indicator"></div>
            <button class="rk-toggle-btn active" id="btn-pro" type="button">Z projektem OZC</button>
            <button class="rk-toggle-btn" id="btn-amateur" type="button">Montaż "na oko"</button>
        </div>

        <div class="rk-results-grid state-good" id="rkResultsGrid">
            <!-- Karta COP -->
            <div class="rk-result-card card-cop">
                <div class="rk-result-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-result-content">
                    <h4>Wydajność (COP)</h4>
                    <div class="rk-value" id="val-cop">4.6 - 5.0</div>
                    <p class="rk-desc" id="desc-cop">Sprężarka pracuje płynnie. Zasilanie rzędu 28-32°C.</p>
                </div>
            </div>
            
            <!-- Karta Kosztów -->
            <div class="rk-result-card card-bill">
                <div class="rk-result-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="6" width="20" height="12" rx="2"></rect><circle cx="12" cy="12" r="2"></circle><path d="M6 12h.01M18 12h.01"></path></svg>
                </div>
                <div class="rk-result-content">
                    <h4>Rachunki za prąd</h4>
                    <div class="rk-value" id="val-bill">Niskie</div>
                    <p class="rk-desc" id="desc-bill">Zrównoważone pętle oddają pełną moc do pomieszczeń.</p>
                </div>
            </div>
        </div>
    </div>

    <!-- Tagi długiego ogona -->
    <div class="rk-tags-container">
        <span class="rk-mat-tag"># optymalizacja krzywej grzewczej</span>
        <span class="rk-mat-tag"># cop pompy ciepła a podłogówka</span>
        <span class="rk-mat-tag"># ustawienie sterownika pogodowego</span>
        <span class="rk-mat-tag"># bezwładność jastrychu betonowego</span>
        <span class="rk-mat-tag"># projektowe obciążenie cieplne ozc</span>
        <span class="rk-mat-tag"># zrównoważenie hydrauliczne rotametrów</span>
        <span class="rk-mat-tag"># prawidłowy rozstaw rur ogrzewania</span>
        <span class="rk-mat-tag"># koszty eksploatacji ogrzewania</span>
        <span class="rk-mat-tag"># pełny projekt wykonawczy hvac</span>
        <span class="rk-mat-tag"># stabilny komfort cieplny w domu</span>
    </div>

    <!-- Mocne CTA - brak animacji -->
    <div class="rk-final-cta">
        <h3>Nie zgaduj przy budowie domu. Projektuj.</h3>
        <p>Błędy hydrauliczne zamarzają w betonie na zawsze. Zdobądź wiedzę, która uchroni Twój system grzewczy przed błędami instalacyjnymi.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-massive-link">
            CZYTAJ BAZĘ WIEDZY PREMIUM
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnPro = document.getElementById('btn-pro');
    const btnAmateur = document.getElementById('btn-amateur');
    const toggleUI = document.getElementById('rkToggleUI');
    const resultsGrid = document.getElementById('rkResultsGrid');
    
    // Elementy tekstowe do podmiany
    const valCop = document.getElementById('val-cop');
    const descCop = document.getElementById('desc-cop');
    const valBill = document.getElementById('val-bill');
    const descBill = document.getElementById('desc-bill');

    function setGoodState() {
        // UI logic
        btnAmateur.classList.remove('active');
        btnPro.classList.add('active');
        toggleUI.setAttribute('data-state', 'good');
        
        resultsGrid.classList.remove('state-bad');
        resultsGrid.classList.add('state-good');
        
        // Data logic
        valCop.innerText = "4.6 - 5.0";
        descCop.innerText = "Sprężarka pracuje płynnie. Zasilanie rzędu 28-32°C.";
        valBill.innerText = "Zoptymalizowane";
        descBill.innerText = "Zrównoważone pętle oddają pełną moc cieplną do pomieszczeń.";
    }

    function setBadState() {
        // UI logic
        btnPro.classList.remove('active');
        btnAmateur.classList.add('active');
        toggleUI.setAttribute('data-state', 'bad');
        
        resultsGrid.classList.remove('state-good');
        resultsGrid.classList.add('state-bad');
        
        // Data logic
        valCop.innerText = "2.8 - 3.2";
        descCop.innerText = "Taktowanie pompy. Sztuczne podbijanie zasilania do 45°C.";
        valBill.innerText = "+40% Kosztów";
        descBill.innerText = "Pompa ciepła zużywa prąd na nadrabianie strat hydraulicznych.";
    }

    if (btnPro) {
        btnPro.addEventListener('click', setGoodState);
    }
    
    if (btnAmateur) {
        btnAmateur.addEventListener('click', setBadState);
    }
});
</script>



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

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

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

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

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

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


<p>Artykuł <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe a pasywne zyski ciepła.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 30 Dec 2025 11:28:18 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Budownictwo energooszczędne]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[HVAC]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technologie budowlane]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[energia słoneczna]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pasywne zyski ciepła]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[pompy ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3004</guid>

					<description><![CDATA[<p>Nowoczesne budownictwo coraz częściej wykorzystuje darmową energię słoneczną, ale jej niewłaściwe połączenie z instalacją grzewczą potrafi przynieść więcej szkód niż korzyści. Ogrzewanie podłogowe a pasywne zyski ciepła to temat kluczowy dla komfortu i efektywności energetycznej budynku. W artykule pokazujemy, jak promieniowanie słoneczne wpływa na bezwładną wylewkę, dlaczego dochodzi do przegrzewania pomieszczeń oraz jak dzięki świadomemu projektowi i inteligentnemu sterowaniu zamienić słońce w realne wsparcie systemu grzewczego, a nie jego wroga.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Właściwe zarządzanie <strong>pasywnymi zyskami ciepła</strong> stanowi jeden z najważniejszych, a często niedocenianych, aspektów projektowania i eksploatacji <strong>wodnego ogrzewania podłogowego</strong>. System ten, charakteryzujący się dużą bezwładnością termiczną i niskotemperaturowym źródłem, w wyjątkowy sposób reaguje na dodatkowe, darmowe dopływy energii, takie jak <strong>promieniowanie słoneczne</strong> przez przeszklenia od strony południowej. </p>



<p class="wp-block-paragraph">Ignorowanie tego zjawiska prowadzi nie tylko do dyskomfortu i przegrzewania pomieszczeń, lecz także do znaczącego spadku efektywności energetycznej całego systemu grzewczego. Niniejszy artykuł stanowi techniczne i praktyczne kompendium wiedzy na temat harmonijnej integracji <strong><a href="https://projekt-ogrzewania.pl">ogrzewania podłogowego</a></strong> z <strong>pasywnymi zyskami słonecznymi</strong>.</p>



<h2 class="wp-block-heading">Fizyka zjawiska: Dlaczego słońce ma tak istotny wpływ na podłogówkę?</h2>



<p class="wp-block-paragraph">Aby zrozumieć skalę wyzwania, należy wniknąć w samą istotę działania obu systemów: pasywnego pozyskiwania energii i aktywnego ogrzewania płaszczyznowego.</p>



<p class="wp-block-paragraph"><strong>Wodne ogrzewanie podłogowe</strong> to system o wysokiej mocy akumulacyjnej. Ciepło transportowane przez wodę w pętlach rur oddawane jest do masywnej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej</a> (jastrychu), która pełni rolę grzejnika i – co kluczowe – <strong>akumulatora ciepła</strong>. Typowa wylewka o grubości 6-8 cm i gęstości ok. 2100 kg/m³ magazynuje ogromne ilości energii, co zapewnia równomierny rozkład temperatury i dużą bezwładność. System reaguje z opóźnieniem na zmiany zapotrzebowania.</p>



<p class="wp-block-paragraph"><strong>Pasywne zyski ciepła od południa</strong>&nbsp;to w głównej mierze energia promieniowania słonecznego krótkofalowego, które przenika przez przeszklenia. Padając na podłogę, ściany i meble, zamienia się w promieniowanie długofalowe (cieplne), ogrzewając masywną konstrukcję budynku. W przypadku podłogi z ogrzewaniem płaszczyznowym, mamy do czynienia z&nbsp;<strong>superpozycją dwóch strumieni cieplnych</strong>:</p>



<ol start="1" class="wp-block-list">
<li>Strumienia od <strong>systemu aktywnego</strong> (rura → jastrych).</li>



<li>Strumienia od <strong>systemu pasywnego</strong> (słońce → jastrych).</li>
</ol>



<p class="wp-block-paragraph">Efektem jest wzrost&nbsp;<strong>temperatury efektywnej jastrychu</strong>&nbsp;ponad wartość projektową, co natychmiast przekłada się na wzrost temperatury powietrza w pomieszczeniu. Bezwładność systemu sprawia, że nawet po zachodzie słońca, nagrzana wylewka będzie oddawać ciepło przez wiele godzin, potencjalnie prowadząc do&nbsp;<strong>przegrzania nocnego</strong>.</p>



<h2 class="wp-block-heading">Zapotrzebowanie na moc cieplną –  wzór.</h2>



<p class="wp-block-paragraph">Przedstawiony wzór pokazuje, że <strong>zapotrzebowanie na moc cieplną</strong> nie wynika wyłącznie ze strat budynku, ale jest zawsze pomniejszane o <strong>pasywne i wewnętrzne zyski ciepła</strong>. W praktyce oznacza to, że im większe zyski od słońca, urządzeń czy obecności ludzi, tym mniejsza moc musi być dostarczona przez instalację grzewczą. To właśnie na tej zasadzie projektuje się nowoczesne ogrzewanie podłogowe – nie „na zapas”, lecz w oparciu o realny bilans energetyczny, zgodny z normą <strong>PN-EN 12831</strong>, co bezpośrednio przekłada się na komfort i niższe koszty eksploatacji.</p>



<div style="
  border-left: 6px solid #1e73be;
  background: #f4f8fc;
  padding: 20px;
  margin: 30px 0;
  border-radius: 6px;
">

  <h3 style="margin-top:0;">
    Zapotrzebowanie na moc cieplną – wzór
  </h3>

  <p style="font-size:18px; font-weight:bold;">
    &Phi;<sub>ogrz</sub> = &Phi;<sub>straty</sub> − &Phi;<sub>zyski</sub>
  </p>

  <p>
    Wzór określa <strong>zapotrzebowanie na moc cieplną netto</strong>
    (strumień cieplny) potrzebną do ogrzania budynku lub konkretnego pomieszczenia.
  </p>

  <ul>
    <li>
      <strong>&Phi;<sub>ogrz</sub></strong> – projektowe obciążenie cieplne
      [W] / [kW]
    </li>
    <li>
      <strong>&Phi;<sub>straty</sub></strong> – straty przez przenikanie
      i wentylację
    </li>
    <li>
      <strong>&Phi;<sub>zyski</sub></strong> – zyski wewnętrzne i zewnętrzne
      (ludzie, urządzenia, słońce)
    </li>
  </ul>

  <p style="margin-bottom:0;">
    Podstawa do doboru źródła ciepła zgodnie z
    <strong>PN-EN 12831</strong>.
  </p>

</div>



<h2 class="wp-block-heading">Bilans cieplny pomieszczenia: Jak obliczyć i uwzględnić zyski pasywne?</h2>



<p class="wp-block-paragraph">Projektowanie systemu grzewczego bez rzetelnego bilansu cieplnego jest jak żeglowanie bez mapy. W kontekście&nbsp;<strong>zysków słonecznych</strong>&nbsp;kluczowe jest ich kwantyfikowanie.</p>



<p class="wp-block-paragraph"><strong>Podstawowy bilans mocy cieplnej dla pomieszczenia wyraża się wzorem:</strong><br><code>Φ_ogrz = Φ_straty - Φ_zyski</code><br>Gdzie:</p>



<ul class="wp-block-list">
<li><code>Φ_ogrz</code> – wymagana moc grzewcza systemu aktywnego [W]</li>



<li><code>Φ_straty</code> – straty ciepła przez przenikanie i wentylację [W]</li>



<li><code>Φ_zyski</code> – zyski ciepła (słoneczne, bytowe, od urządzeń) [W]</li>
</ul>



<p class="wp-block-paragraph"><strong>Zyski słoneczne (Φ_zyski,słoneczne)</strong>&nbsp;oblicza się ze wzoru:<br><code>Φ_zyski,słoneczne = A_szkła * g * I * F_sh</code></p>



<ul class="wp-block-list">
<li><code>A_szkła</code> – powierzchnia przeszklenia odbiorczego (południowego) [m²]</li>



<li><code>g</code> – współczynnik przepuszczalności energii całkowitej szyby (dla szyb niskoemisyjnych ≈ 0.5)</li>



<li><code>I</code> – średnie miesięczne nasłonecznienie na płaszczyznę pionową od strony południowej [W/m²] (dane klimatologiczne, np. dla Warszawy w styczniu to ok. 60-80 W/m², w marcu już 120-150 W/m²)</li>



<li><code>F_sh</code> – współczynnik redukcji dla zacienień (żaluzje, okapy, drzewa) [0-1]</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład obliczeniowy:</strong><br>Pomieszczenie o stratach&nbsp;<code>Φ_straty = 1200 W</code>&nbsp;ma duże okno południowe o powierzchni&nbsp;<code>A_szkła = 8 m²</code>. Dla słonecznego dnia w marcu (<code>I = 140 W/m²</code>), szyby o&nbsp;<code>g = 0.5</code>&nbsp;i braku zacienień (<code>F_sh = 1</code>) otrzymujemy:<br><code>Φ_zyski,słoneczne = 8 * 0.5 * 140 * 1 = 560 W</code><br>Wymagana moc systemu grzewczego w tym momencie spada do:<br><code>Φ_ogrz = 1200 W - 560 W = 640 W</code></p>



<p class="wp-block-paragraph"><strong>Wniosek praktyczny:</strong> W tym konkretnym momencie system grzewczy musi być zdolny do <strong>redukcji swojej mocy o ponad 46%</strong>. Dla systemu podłogowego sterowanego jedynie czujnikiem temperatury podłogi (ogranicznikiem) jest to niemożliwe do osiągnięcia bez przegrzania.</p>



<h2 class="wp-block-heading">Zaawansowane strategie sterowania: Serce optymalnego systemu.</h2>



<p class="wp-block-paragraph">Klasyczne, statyczne sterowanie temperaturą zasilania w funkcji temperatury zewnętrznej (kompensacja pogodowa) jest niewystarczające. Niezbędne jest wdrożenie&nbsp;<strong>inteligentnego, wielowymiarowego sterowania z pętlą sprzężenia zwrotnego z pomieszczenia</strong>.</p>



<h3 class="wp-block-heading">1. Indywidualne sterowanie strefowe z czujnikami powietrznymi.</h3>



<p class="wp-block-paragraph">Podstawą jest podział instalacji na&nbsp;<strong>strefy termiczne</strong>&nbsp;pokrywające się z pomieszczeniami lub grupami pomieszczeń o podobnej charakterystyce (ekspozycja, funkcja). Każda strefa musi posiadać:</p>



<ul class="wp-block-list">
<li><strong>Własny zawór mieszający lub elektrozawór</strong> na rozdzielaczu.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Sterownik pokojowy</a></strong> z czujnikiem temperatury powietrza, umieszczonym w reprezentatywnym miejscu, z dala od bezpośredniego nasłonecznienia i przeciągów.</li>



<li><strong>Czujnik temperatury podłogi</strong> jako zabezpieczenie przed przekroczeniem maksymalnej dopuszczalnej temperatury powierzchni (zwykle 29°C w strefie stałego pobytu, 35°C w łazience).</li>
</ul>



<p class="wp-block-paragraph">Algorytm pracy: Gdy&nbsp;<strong>promieniowanie słoneczne</strong>&nbsp;podniesie temperaturę powietrza powyżej wartości zadanej, sterownik zamyka zawór dla danej strefy,&nbsp;<strong>całkowicie wyłączając dopływ ciepłej wody</strong>&nbsp;do pętli podłogowej. System wykorzystuje wyłącznie&nbsp;<strong>darmową energię słoneczną</strong>.</p>



<h3 class="wp-block-heading">2. Kompensacja pogodowa z korektą słoneczną (Solar Gain Compensation).</h3>



<p class="wp-block-paragraph">To zaawansowana ewolucja standardowej krzywej grzewczej. Oprócz temperatury zewnętrznej, regulator centralny (np. sterownik <a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">pompy ciepła</a> lub kotła) przyjmuje sygnał z <strong>zewnętrznego czujnika nasłonecznienia (pyranometru)</strong>.</p>



<ul class="wp-block-list">
<li><strong>Zasada działania:</strong> Pyranometr mierzy natężenie promieniowania słonecznego padającego na płaszczyznę poziomą lub pionową [W/m²]. Gdy wartość przekroczy ustalony próg, sterownik <strong>obniża zadaną temperaturę zasilania</strong> dla wszystkich lub wybranych (południowych) obiegów, <strong>wyprzedzając</strong> wzrost temperatury w pomieszczeniach. Jest to działanie <strong>prognostyczne</strong>, a nie reaktywne.</li>
</ul>



<h3 class="wp-block-heading">3. Regulatory z algorytmami adaptacyjnymi (PID z adaptacją).</h3>



<p class="wp-block-paragraph">Najbardziej wyrafinowane rozwiązanie. Sterownik nie tylko reaguje na aktualne odchylenie temperatury, ale analizuje jej trendy w czasie, uwzględniając&nbsp;<strong>bezwładność systemu</strong>&nbsp;i&nbsp;<strong>charakterystykę budynku</strong>. Na podstawie historii cykli grzania (np. jak szybko rośnie temperatura po otwarciu zaworu) regulator „uczy się”, jak wcześniej zareagować na przewidywane&nbsp;<strong>zyski ciepła</strong>, minimalizując wahania temperatury. Działa to w obie strony – zarówno przy nagrzewaniu, jak i przy wykorzystaniu&nbsp;<strong>zysków pasywnych</strong>.</p>



<h2 class="wp-block-heading">Projektowanie instalacji  z myślą o zyskach pasywnych.</h2>



<p class="wp-block-paragraph">Samoregulujące właściwości&nbsp;<strong>ogrzewania podłogowego</strong>&nbsp;są wspomagane przez poprawnie zaprojektowaną i zrównoważoną instalację hydrauliczną.</p>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">Rozdzielacze</a> z przepływomierzami:</strong> Konieczność dla każdej strefy. Umożliwiają precyzyjne ustawienie i odczyt przepływu wody, co jest kluczowe dla zapewnienia wymaganej mocy grzewczej i poprawnej pracy zaworów termostatycznych podczas ich modulacji.</li>



<li><strong>Zawory RTL (Return Temperature Limiter) vs. zawory mieszające z siłownikiem:</strong> W małych strefach (np. łazienka) czasem stosuje się zawory RTL, regulujące przepływ w celu utrzymania zadanej temperatury powrotu. Są one <strong>niewystarczające dla stref z dużymi zyskami</strong>, gdyż nie reagują na temperaturę powietrza. <strong>Zawór mieszający z siłownikiem sterowanym pokojowym regulatorem</strong> to jedyne poprawne rozwiązanie.</li>



<li><strong>Układy kaskadowe i buforowe:</strong> W systemach z pompą ciepła szczególnie ważne jest zastosowanie zasobnika buforowego. Gdy <strong>zyski słoneczne</strong> wyłączają ogrzewanie w południowych strefach, pompa ciepła może nadal pracować z optymalną wydajnością, ładując bufor, z którego ciepło pobiorą strefy północne. Zapobiega to niekorzystnej pracy z częstymi startami/stopami.</li>
</ul>



<h3 class="wp-block-heading">Krytyczny element: Projekt ogrzewania podłogowego w kontekście zysków pasywnych.</h3>



<p class="wp-block-paragraph">Na etapie <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektowania ogrzewania podłogowego</a></strong> uwzględnienie <strong>pasywnych zysków ciepła</strong> nie jest opcją, a <strong>obowiązkiem</strong> inżyniera. Błąd na tym etapie jest później bardzo kosztowny lub trudny do skorygowania.</p>



<ol start="1" class="wp-block-list">
<li><strong>Symulacja dynamiczna:</strong> Zaawansowane projekty powinny opierać się nie na uproszczonych obliczeniach miesięcznych, a na <strong>symulacji dynamicznej budynku</strong> (np. w programie typu ENERGIS, TRNSYS). Pozwala ona przeanalizować zachowanie systemu w cyklu dobowym i rocznym, modelując zmienne <strong>nasłonecznienie</strong>, zachmurzenie, użytkowanie. Daje odpowiedź na pytania: jak często występuje ryzyko przegrzania? Jaka jest optymalna bezwładność termiczna podłogi w tym konkretnym budynku?</li>



<li><strong>Ścisła współpraca z architektem:</strong> Projektant instalacji <strong>musi</strong> współpracować z architektem nad:
<ul class="wp-block-list">
<li><strong>Współczynnikiem przeszklenia:</strong> Optymalny stosunek powierzchni okien do podłogi od strony południowej.</li>



<li><strong>Parametrami szyb:</strong> Wybór pakietów o odpowiednim współczynniku <code>g</code> (przepuszczalności energii) i niskim współczynniku przenikania ciepła <code>U</code>. Czasem celowo dobiera się szyby o nieco niższym <code>g</code>, aby zredukować skrajne <strong>zyski letnie</strong>, akceptując nieco niższe <strong>zyski zimowe</strong>.</li>



<li><strong>Elementów zacieniających:</strong> Projekt stałych (okapy, daszki) lub zewnętrznych (żaluzje, markizy) systemów zacieniających, które redukują <strong>zyski słoneczne</strong> latem, a pozwalają na nie zimą pod niskim kątem.</li>
</ul>
</li>



<li><strong>Dobór mocy i rozstawu pętli:</strong> W strefach południowych, po odjęciu obliczeniowych <strong>zysków pasywnych</strong>, zapotrzebowanie na moc aktywnego ogrzewania może być znacznie niższe. Może to pozwolić na <strong>zwiększenie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawu rur</a></strong> (np. z 15 cm do 20 cm) lub obniżenie projektowej temperatury zasilania, co zwiększa sprawność źródła ciepła (pompy ciepła, kondensacyjnego kotła gazowego).</li>
</ol>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767087543630"><strong class="schema-faq-question"><strong>Czy pasywne zyski ciepła mogą powodować przegrzewanie przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak. Duża bezwładność jastrychu sprawia, że dodatkowe zyski słoneczne kumulują się w podłodze i mogą podnosić temperaturę jeszcze długo po zachodzie słońca.</p> </div> <div class="schema-faq-section" id="faq-question-1767087563068"><strong class="schema-faq-question"><strong>Czy sama krzywa grzewcza wystarczy do kontroli zysków słonecznych?</strong></strong> <p class="schema-faq-answer">Nie. Kompensacja pogodowa bez informacji z pomieszczeń nie reaguje na promieniowanie słoneczne, dlatego konieczne jest sterowanie strefowe lub adaptacyjne.</p> </div> <div class="schema-faq-section" id="faq-question-1767087580754"><strong class="schema-faq-question"><strong>Jakie sterowanie najlepiej współpracuje z pasywnymi zyskami ciepła?</strong></strong> <p class="schema-faq-answer">Najlepsze efekty dają systemy strefowe z czujnikami temperatury powietrza oraz regulatory adaptacyjne, które „uczą się” reakcji budynku.</p> </div> <div class="schema-faq-section" id="faq-question-1767087619827"><strong class="schema-faq-question"><strong>Czy projekt ogrzewania podłogowego powinien uwzględniać orientację budynku?</strong></strong> <p class="schema-faq-answer">Zdecydowanie tak. Strefy południowe wymagają innego doboru mocy, rozstawu rur i strategii sterowania niż północne.</p> </div> <div class="schema-faq-section" id="faq-question-1767087639266"><strong class="schema-faq-question"><strong>Czy pasywne zyski ciepła zawsze są korzystne zimą?</strong></strong> <p class="schema-faq-answer">Tak, pod warunkiem że są kontrolowane. Przy dobrze zaprojektowanym systemie obniżają zużycie energii i koszty ogrzewania, zamiast powodować dyskomfort.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Synergia zamiast konkurencji.</h2>



<p class="wp-block-paragraph"><strong>Pasywne zyski ciepła</strong>&nbsp;od strony południowej nie są wrogiem&nbsp;<strong>wodnego ogrzewania podłogowego</strong>&nbsp;– są jego&nbsp;<strong>darmowym uzupełnieniem</strong>. Kluczem do sukcesu jest uznanie tego zjawiska za&nbsp;<strong>równoprawny element systemu grzewczego</strong>&nbsp;już na etapie koncepcji budynku i projektu instalacji.</p>



<p class="wp-block-paragraph">Finalna efektywność zależy od połączenia trzech filarów:</p>



<ol start="1" class="wp-block-list">
<li><strong>Świadomej architektury</strong> pasywnej, kontrolującej dopływ energii słonecznej.</li>



<li><strong>Precyzyjnego projektu instalacji</strong>, z podziałem na strefy i odpowiednio dobranymi parametrami.</li>



<li><strong>Zaawansowanego, wieloparametrowego sterowania</strong>, które potrafi w czasie rzeczywistym integrować pracę aktywnego źródła ciepła z kaprysami pogody.</li>
</ol>



<p class="wp-block-paragraph">System tak zaprojektowany nie tylko gwarantuje najwyższy komfort termiczny, pozbawiony przegrzewania i wychłodzeń, ale też osiąga najniższe możliwe koszty eksploatacji, maksymalnie wykorzystując <strong>bezpłatną energię słońca</strong> i minimalizując pracę konwencjonalnych źródeł ciepła. To inwestycja w inteligentną, przyszłościową i odpowiedzialną technologię grzewczą.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="GhiiEpqj7Y"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=gFK2odfV0b#?secret=GhiiEpqj7Y" data-secret="GhiiEpqj7Y" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">Ogrzewanie podłogowe a pasywne zyski ciepła.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Ile czasu nagrzewa się podłogówka?</title>
		<link>https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 24 Dec 2025 12:29:39 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Komfort cieplny w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Ogrzewanie wodne]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[czas nagrzewania]]></category>
		<category><![CDATA[ile czasu nagrzewa się podłogówka]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka wodna]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2975</guid>

					<description><![CDATA[<p>Ile czasu nagrzewa się podłogówka i dlaczego nie działa tak jak tradycyjny grzejnik? Wodne ogrzewanie podłogowe to system, który oferuje wyjątkowy komfort cieplny, ale wymaga zrozumienia jego specyfiki. Kluczową rolę odgrywa bezwładność cieplna jastrychu, parametry instalacji oraz sposób sterowania. W artykule szczegółowo wyjaśniamy, od czego zależy czas nagrzewania podłogówki, jak wygląda to w praktyce podczas rozruchu, codziennej eksploatacji i nagłych zmian pogody oraz dlaczego prawidłowy projekt instalacji ma decydujący wpływ na dynamikę pracy systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</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-accent: #38bdf8;
    --rk-intro-bg: #ffffff;
    --rk-intro-gray: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-highlight: #fef3c7;
    --rk-intro-gold: #b45309;
}

.rk-intro-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-intro-dark);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.15);
    overflow: hidden;
    /* CELOWO BRAK ANIMACJI ZGODNIE Z WYTYCZNYMI */
}

/* Sekcja Hook / Tytułowa */
.rk-intro-hero {
    background: var(--rk-intro-dark);
    padding: 45px 50px 40px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
    position: relative;
}

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

.rk-intro-hero p.rk-hook-text {
    font-size: 17px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Szybka Odpowiedź (Featured Snippet Box) */
.rk-qa-box {
    background: var(--rk-intro-blue-light);
    border: 1px solid #bae6fd;
    border-left: 6px solid var(--rk-intro-blue);
    margin: -20px 50px 30px;
    padding: 25px 35px;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 25px;
    box-shadow: 0 10px 15px -3px rgba(2, 132, 199, 0.1);
}

.rk-qa-icon {
    background: var(--rk-intro-blue);
    color: #ffffff;
    width: 60px;
    height: 60px;
    border-radius: 14px;
    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: 1px;
}

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

.rk-qa-highlight {
    color: var(--rk-intro-blue);
    font-size: 18px;
    font-weight: 900;
}

/* Główny Tekst Wstępu */
.rk-intro-body {
    padding: 10px 50px 30px;
}

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

/* Interaktywny Nawigator (Agenda) */
.rk-agenda-wrapper {
    background: var(--rk-intro-gray);
    padding: 35px 50px;
    border-top: 1px solid var(--rk-intro-border);
}

.rk-agenda-title {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-agenda-btn {
    background: #ffffff;
    border: 2px solid var(--rk-intro-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-agenda-btn:hover {
    border-color: #cbd5e1;
    background: #f1f5f9;
}

.rk-agenda-btn.active {
    border-color: var(--rk-intro-blue);
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
}

.rk-agenda-icon {
    width: 36px;
    height: 36px;
    background: #e2e8f0;
    color: var(--rk-intro-text);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

/* Treść Agendy (Natychmiastowe pokazanie) */
.rk-agenda-content {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-intro-blue);
    border-radius: 12px;
    padding: 20px 25px;
    margin-top: 15px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--rk-intro-text);
    grid-column: 1 / -1;
}

.rk-agenda-content.active {
    display: block;
}

/* Pasek z narzędziami */
.rk-tools-banner {
    background: var(--rk-intro-highlight);
    border-top: 1px solid #fde68a;
    padding: 20px 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    color: var(--rk-intro-gold);
    font-weight: 800;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-inline-link {
    color: var(--rk-intro-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-intro-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-intro-hero { padding: 35px 20px; }
    .rk-qa-box { margin: -15px 20px 25px; padding: 20px; flex-direction: column; text-align: center; gap: 15px; }
    .rk-intro-body, .rk-agenda-wrapper, .rk-tools-banner { padding: 25px 20px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
    .rk-tools-banner { flex-direction: column; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile czasu nagrzewa się podłogówka? Szybka odpowiedź i inżynierskie fakty",
    "description": "Zrozumienie bezwładności cieplnej instalacji ogrzewania podłogowego. Szybka odpowiedź na temat czasu nagrzewania jastrychu i rezygnacja z nawyków z grzejników.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wstep",
    "name": "Bazowe czasy nagrzewania i stabilizacji instalacji podłogowej",
    "description": "Referencyjne wskaźniki czasowe określające dynamikę układu wodnego ogrzewania płaszczyznowego oparte na wytycznych normy PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile czasu nagrzewa się podłogówka",
      "czym jest bezwładność cieplna w ogrzewaniu podłogowym",
      "norma obliczeń ogrzewania podłogowego en 1264",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "wodne ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Szacunkowe przedziały czasowe osiągania komfortu cieplnego w relacji do normatywnych limitów temperatur (max 29°C na posadzce).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Czas do pierwszej odczuwalnej zmiany temperatury: 2 do 3 godzin.",
        "Czas do pełnej stabilizacji termicznej (jastrych 7cm): 6 do 10 godzin."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-wstep",
    "name": "Interaktywny Nawigator Artykułu",
    "description": "Zestawienie najważniejszych bloków merytorycznych z możliwością natychmiastowego podejrzenia kluczowych wniosków z poszczególnych sekcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-module" id="wstep-podlogowka-app">
    
    <div class="rk-intro-hero">
        <h2>Ile czasu nagrzewa się podłogówka? Baza inżynierskich faktów</h2>
        <p class="rk-hook-text">Wybór wodnego ogrzewania podłogowego to rezygnacja z natychmiastowej reakcji znanej z grzejników. Brak ciepła &#8222;na żądanie&#8221; po przestawieniu termostatu często wywołuje ból, niepokój i frustrację inwestorów. Czas poznać fizykę budowli.</p>
    </div>

    <div class="rk-qa-box">
        <div class="rk-qa-icon">
            <svg width="32" height="32" 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-qa-content">
            <h3>Szybka Odpowiedź:</h3>
            <p>Czas nagrzewania standardowej podłogówki (jastrych cementowy 7 cm) wynosi od <span class="rk-qa-highlight">2 do 3 godzin</span> do momentu uzyskania pierwszej odczuwalnej zmiany, oraz od <span class="rk-qa-highlight">6 do 10 godzin</span> do pełnej stabilizacji termicznej pomieszczenia.</p>
        </div>
    </div>

    <div class="rk-intro-body">
        <p>Wpływ na ten czas reakcji mają cztery główne zmienne: <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-inline-link">bezwładność cieplna</a> samej płyty grzewczej, opór cieplny dobranej okładziny wierzchniej (tzw. parametr R wyrażany w W/m²K), zoptymalizowany rozstaw rur oraz precyzyjna temperatura zasilania medium. Precyzyjne wyznaczenie dynamiki całego rozruchu instalacji bezwzględnie definiuje <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">norma PN-EN 1264</a>, która określa m.in. graniczne, zdrowe temperatury powierzchni podłogi (np. 29°C dla strefy stałego przebywania ludzi).</p>
        
        <p>Zrozumienie mechaniki przepływu ciepła pozwala zoptymalizować <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-inline-link">krzywą grzewczą</a>, drastycznie obniżyć koszty eksploatacji <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-inline-link">pompy ciepła</a> lub <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" class="rk-inline-link">nowoczesnego kotła gazowego</a>, oraz uniknąć niedogrzania budynku podczas nagłych, silnych zmian pogodowych.</p>
    </div>

    <div class="rk-agenda-wrapper">
        <h3 class="rk-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
            Co znajdziesz w tym artykule?
        </h3>
        
        <div class="rk-agenda-grid">
            <button class="rk-agenda-btn active" data-target="info-1">
                <div class="rk-agenda-icon">1</div>
                Wpływ grubości jastrychu i okładzin
            </button>
            <button class="rk-agenda-btn" data-target="info-2">
                <div class="rk-agenda-icon">2</div>
                Nocna redukcja temperatury i błędy
            </button>
            <button class="rk-agenda-btn" data-target="info-3">
                <div class="rk-agenda-icon">3</div>
                Konsekwencje złego rozstawu rur
            </button>
            <button class="rk-agenda-btn" data-target="info-4">
                <div class="rk-agenda-icon">4</div>
                Porównanie: System mokry vs suchy
            </button>
            
            <div class="rk-agenda-content active" id="info-1">
                <strong>Omawiamy bezwładność masy:</strong> Zobaczysz, dlaczego każdy dodatkowy centymetr betonu ponad rurą wydłuża czas nagrzewania, oraz dowiesz się, jak panele i podkłady blokują przepływ energii do pokoju.
            </div>
            <div class="rk-agenda-content" id="info-2">
                <strong>Niszczenie wskaźnika COP:</strong> Wyjaśniamy, dlaczego całkowite wyłączanie podłogówki na noc zmusza pompę ciepła do pracy na wysokich parametrach, generując potężne koszty zamiast oszczędności.
            </div>
            <div class="rk-agenda-content" id="info-3">
                <strong>Tzw. Ząb termiczny:</strong> Prezentujemy skutki hydrauliczne układania rur &#8222;na oko&#8221; (np. stałe 15 cm) przy oknach tarasowych bez odpowiednich obliczeń inżynierskich OZC.
            </div>
            <div class="rk-agenda-content" id="info-4">
                <strong>Alternatywy dla drewnianych stropów:</strong> Wskazujemy różnice techniczne i drastyczne skrócenie czasu reakcji (do kilkudziesięciu minut) przy zastosowaniu systemów lekkich (zabudowy suchej).
            </div>
        </div>
    </div>

    <div class="rk-tools-banner">
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
        <span>W dalszej części artykułu znajdziesz zaawansowane symulatory oraz interaktywne kalkulatory czasów nagrzewania!</span>
    </div>

</div>

<script>
// Czysty i bezpieczny kod JS, bez znaków &&
(function() {
    function initIntroAgenda() {
        var app = document.getElementById('wstep-podlogowka-app');
        if (!app) return;

        var btns = app.querySelectorAll('.rk-agenda-btn');
        var contents = app.querySelectorAll('.rk-agenda-content');

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

                // Zabezpieczenie przed "zamykaniem" wybranego elementu na mobile
                if (window.innerWidth <= 768) {
                    if (this.classList.contains('active')) {
                        return;
                    }
                }

                // Reset aktywności
                for (var j = 0; j < btns.length; j++) {
                    btns[j].classList.remove('active');
                }
                for (var k = 0; k < contents.length; k++) {
                    contents[k].classList.remove('active');
                }

                // Aktywacja bieżącego i przeniesienie pod nim kontenera (symulacja zachowania akordeonu)
                this.classList.add('active');
                var activeContent = document.getElementById(targetId);
                
                if (activeContent) {
                    activeContent.classList.add('active');
                    // Przenieś element z treścią dokładnie pod aktualnie kliknięty przycisk
                    this.parentNode.insertBefore(activeContent, this.nextSibling);
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initIntroAgenda);
    } else {
        initIntroAgenda();
    }
})();
</script>



<style>
:root {
    --rk-shock-dark: #0f172a;
    --rk-shock-blue: #0284c7;
    --rk-shock-bg: #ffffff;
    --rk-shock-gray: #f8fafc;
    --rk-shock-border: #e2e8f0;
    --rk-shock-text: #334155;
    
    /* Kolory Statusów */
    --rk-safe-color: #10b981;
    --rk-safe-bg: #ecfdf5;
    --rk-warn-color: #f59e0b;
    --rk-warn-bg: #fffbeb;
    --rk-crit-color: #ef4444;
    --rk-crit-bg: #fef2f2;
}

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

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

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

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

/* Symulator - Układ Liniowy */
.rk-shock-simulator {
    padding: 40px 50px;
    background: var(--rk-shock-gray);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-bottom: 1px solid var(--rk-shock-border);
}

.rk-shock-controls {
    width: 100%;
    max-width: 650px;
    background: #ffffff;
    padding: 30px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-shock-border);
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
    margin-bottom: 30px;
}

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

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

.rk-shock-val-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-shock-blue);
    background: #f0f9ff;
    padding: 6px 16px;
    border-radius: 10px;
    font-family: monospace;
}

/* Suwak Temperatury */
input[type=range].rk-shock-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-shock-range:focus { outline: none; }
input[type=range].rk-shock-range::-webkit-slider-runnable-track {
    width: 100%; height: 12px; cursor: pointer;
    background: linear-gradient(90deg, var(--rk-safe-color) 0%, var(--rk-warn-color) 50%, var(--rk-crit-color) 100%);
    border-radius: 6px;
}
input[type=range].rk-shock-range::-webkit-slider-thumb {
    height: 32px; width: 32px; border-radius: 50%;
    background: #ffffff; cursor: pointer;
    -webkit-appearance: none; margin-top: -10px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border: 5px solid var(--rk-shock-dark);
    transition: transform 0.1s;
}
input[type=range].rk-shock-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Wizualizacja SVG i Status */
.rk-shock-visual {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
    align-items: center;
}

.rk-svg-box {
    background: #ffffff;
    border: 1px solid var(--rk-shock-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 8px 16px -4px rgba(0,0,0,0.05);
    text-align: center;
    position: relative;
}

.rk-status-panel {
    background: #ffffff;
    border: 2px solid var(--rk-safe-color);
    border-radius: 16px;
    padding: 30px;
    transition: all 0.3s;
}

.rk-status-head {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-status-desc {
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
}

.rk-stress-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 800;
    margin-top: 15px;
}

/* Pęknięcia SVG (Animowane przez JS) */
.svg-crack {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    transition: stroke-dashoffset 0.5s ease-out, stroke 0.3s;
}

/* Treść Tekstowa */
.rk-shock-content {
    padding: 40px 50px;
}

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

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

.rk-shock-alert {
    background: var(--rk-crit-bg);
    border-left: 4px solid var(--rk-crit-color);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin: 30px 0;
}

.rk-shock-alert strong {
    display: block;
    color: #991b1b;
    font-size: 18px;
    margin-bottom: 8px;
}

.rk-tech-box {
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    padding: 15px 20px;
    border-radius: 10px;
    font-family: monospace;
    font-weight: 700;
    color: var(--rk-shock-blue);
    text-align: center;
    margin: 20px 0;
    font-size: 15px;
}

.rk-inline-link {
    color: var(--rk-shock-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-shock-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-shock-header, .rk-shock-simulator, .rk-shock-content { padding: 30px 20px; }
    .rk-shock-visual { grid-template-columns: 1fr; gap: 20px; }
    .rk-shock-controls { padding: 25px 20px; }
    .rk-shock-label-row { flex-direction: column; gap: 15px; text-align: center; }
    .rk-status-panel { padding: 20px; }
    .rk-shock-alert { padding: 20px; margin: 25px 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-pierwsze-uruchomienie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile czasu nagrzewa się podłogówka po pierwszym włączeniu na początku sezonu grzewczego?",
    "description": "Dlaczego puszczenie 50°C na zimną wylewkę to błąd? Wyjaśnienie normy PN-EN 1264-4, procedury wygrzewania i szoku termicznego betonu.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wygrzewanie",
    "name": "Normatywny protokół wygrzewania wylewki grzewczej",
    "description": "Zestawienie dopuszczalnych temperatur zasilania w pierwszych dobach rozruchu instalacji płaszczyznowej wg PN-EN 1264-4.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma obliczeń ogrzewania podłogowego en 1264",
      "wylewka betonowa na ogrzewanie podłogowe",
      "próba szczelności ogrzewania podłogowego",
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "harmonogram wygrzewania wylewki"
    ],
    "measurementTechnique": "Szacowanie naprężeń ścinających wewnątrz struktury jastrychu (max 2.2 MPa dla betonu C20/25) na podstawie gwałtownego przyrostu temperatury.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Doba 1-3: Stała temperatura zasilania 20°C.",
        "Doba 4+: Stopniowy wzrost temperatury o max 5°C na dobę aż do wartości projektowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-szok-termiczny",
    "name": "Symulator Szoku Termicznego Jastrychu",
    "description": "Interaktywny panel demonstrujący ryzyko strukturalnego zniszczenia wylewki betonowej w przypadku przekroczenia zaleceń temperaturowych na etapie rozruchu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-shock-module" id="szok-termiczny-app">
    
    <div class="rk-shock-header">
        <h2>Ile czasu nagrzewa się podłogówka po pierwszym włączeniu?</h2>
        <p>Próba szybkiego wygrzania zimnego domu to najprostsza droga do zniszczenia posadzki. Sprawdź, jak reaguje beton na szok termiczny.</p>
    </div>

    <div class="rk-shock-simulator">
        
        <div class="rk-shock-controls">
            <div class="rk-shock-label-row">
                <span class="rk-shock-label">Temperatura zasilania na start:</span>
                <span class="rk-shock-val-display"><span id="rk-out-temp">20</span> °C</span>
            </div>
            <input type="range" id="rk-in-temp" class="rk-shock-range" min="15" max="55" step="1" value="20">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700; margin-top:10px;">
                <span>15°C</span>
                <span>Normatywne 20°C</span>
                <span>Krytyczne 55°C</span>
            </div>
        </div>

        <div class="rk-shock-visual">
            <div class="rk-svg-box">
                <svg viewBox="0 0 200 150" width="100%" height="100%">
                    <rect x="20" y="20" width="160" height="110" fill="#e2e8f0" rx="8" id="rk-svg-bg"/>
                    
                    <circle cx="100" cy="75" r="15" fill="none" stroke="#64748b" stroke-width="6"/>
                    <circle cx="100" cy="75" r="10" fill="#38bdf8" id="rk-svg-water"/>
                    
                    <circle cx="100" cy="75" r="35" fill="none" stroke="#ef4444" stroke-width="2" opacity="0" id="rk-svg-wave" class="heat-wave"/>
                    
                    <path d="M 100 50 L 80 20 M 110 60 L 140 20 M 85 90 L 40 110 M 115 90 L 160 120" 
                          fill="none" stroke="#b91c1c" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="svg-crack" id="rk-svg-crack"/>
                </svg>
            </div>

            <div class="rk-status-panel" id="rk-status-box">
                <div class="rk-status-head" id="rk-status-head">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                    Zgodnie z normą
                </div>
                <div class="rk-status-desc" id="rk-status-desc">
                    Bezpieczny rozruch. Beton stopniowo absorbuje energię. Brak ryzyka uszkodzeń strukturalnych.
                </div>
                <div class="rk-stress-badge" id="rk-stress-badge" style="background: #d1fae5; color: #065f46;">Naprężenia: ~0.5 MPa (Bezpieczne)</div>
            </div>
        </div>

    </div>

    <div class="rk-shock-content">
        <p>Pierwsze, technologiczne uruchomienie zimnej instalacji (po okresie letnim lub po <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-inline-link">wykonaniu wylewek betonowych</a>) trwa z reguły <strong>od 3 do 7 dni dla jastrychu anhydrytowego</strong> oraz <strong>od 7 do 14 dni dla jastrychu cementowego</strong>.</p>
        
        <p>Wynika to bezpośrednio z procedury wygrzewania płyty grzewczej określonej w <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">normie PN-EN 1264-4</a>. Przepisy te kategorycznie zabraniają gwałtownego podnoszenia temperatury medium, aby uniknąć wewnętrznych naprężeń ścinających betonu.</p>

        <div class="rk-tech-box">
            [Dzień 1-3: Stałe 20°C] ──> [Dzień 4: 25°C] ──> [Dzień 5: 30°C] ──> [Dzień 6: 35°C (Moc projektowa)]
        </div>

        <div class="rk-shock-alert">
            <strong>Główny błąd niecierpliwych inwestorów!</strong>
            Ból inwestorów wynika z próby wymuszenia szybkiego startu układu na początku sezonu. Ustawiają na rozdzielaczu temperaturę zasilania rzędu 50°C, wprowadzając potężny szok termiczny do zimnej wylewki.
        </div>

        <p>Dla standardowego betonu klasy C20/25 wytrzymałość na rozciąganie przy zginaniu (f_ctm) wynosi <strong>zaledwie 2,2 MPa</strong>. Gwałtowny skok temperatury generuje naprężenia fizycznie rozrywające tę strukturę. Konsekwencją jest destrukcja jastrychu, zerwanie połączenia adhezyjnego między rurą PEX a betonem oraz głośne pękanie płytek ceramicznych.</p>

        <p>Powód tak długiego, wymaganego czasu rozruchu to czysta fizyka – konieczność dostarczenia potężnej ilości energii do "martwej" masy. Należy pamiętać, że po prawidłowo wykonanej <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" class="rk-inline-link">próbie szczelności ogrzewania podłogowego</a>, wylewka o grubości 7 cm na powierzchni zaledwie 100 m² waży blisko <strong>15 000 kg</strong> i musi zmienić swoją temperaturę o kilkanaście stopni Kelwina.</p>
    </div>

</div>

<script>
(function() {
    function initShockSim() {
        if(!document.getElementById('szok-termiczny-app')) return;

        const slider = document.getElementById('rk-in-temp');
        const outTemp = document.getElementById('rk-out-temp');
        
        // Elementy SVG
        const waterSVG = document.getElementById('rk-svg-water');
        const bgSVG = document.getElementById('rk-svg-bg');
        const waveSVG = document.getElementById('rk-svg-wave');
        const crackSVG = document.getElementById('rk-svg-crack');
        
        // Elementy Statusu
        const statusBox = document.getElementById('rk-status-box');
        const statusHead = document.getElementById('rk-status-head');
        const statusDesc = document.getElementById('rk-status-desc');
        const stressBadge = document.getElementById('rk-stress-badge');

        function updateShockVisuals() {
            // Bezpieczne pobranie wartości
            const temp = parseInt(slider.value, 10) || 20;
            outTemp.textContent = temp;

            // Logika stanów - używamy zagnieżdżonych bezpiecznych IF'ów (bez ampersandów)
            if (temp <= 22) {
                // STAN: ZIELONY (Norma)
                waterSVG.setAttribute('fill', '#38bdf8'); // Zimna woda
                bgSVG.setAttribute('fill', '#e2e8f0');
                waveSVG.setAttribute('opacity', '0');
                crackSVG.style.strokeDashoffset = '100'; // Ukryte pęknięcia

                statusBox.style.borderColor = 'var(--rk-safe-color)';
                statusBox.style.background = 'var(--rk-shock-bg)';
                
                statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-safe-color)" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Zgodnie z normą';
                statusHead.style.color = 'var(--rk-safe-color)';
                statusDesc.textContent = "Bezpieczny rozruch wg EN 1264. Beton stopniowo absorbuje energię. Brak ryzyka uszkodzeń strukturalnych.";
                
                stressBadge.style.background = 'var(--rk-safe-bg)';
                stressBadge.style.color = '#065f46';
                stressBadge.textContent = "Naprężenia: ~0.5 MPa (Bezpieczne)";

            } else {
                if (temp <= 35) {
                    // STAN: ŻÓŁTY (Ostrzeżenie)
                    waterSVG.setAttribute('fill', '#f59e0b'); // Ciepła woda
                    bgSVG.setAttribute('fill', '#fef3c7');
                    
                    waveSVG.setAttribute('opacity', '0.5');
                    waveSVG.setAttribute('stroke', '#f59e0b');
                    
                    crackSVG.style.strokeDashoffset = '70'; // Lekkie mikropęknięcia

                    statusBox.style.borderColor = 'var(--rk-warn-color)';
                    statusBox.style.background = 'var(--rk-warn-bg)';
                    
                    statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-warn-color)" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg> Ryzyko mikropęknięć';
                    statusHead.style.color = '#b45309';
                    statusDesc.textContent = "Przekroczony gradient narostu temperatury. Możliwe miejscowe osłabienie adhezji rury PEX.";
                    
                    stressBadge.style.background = '#fef08a';
                    stressBadge.style.color = '#92400e';
                    stressBadge.textContent = "Naprężenia: ~1.8 MPa (Graniczne)";

                } else {
                    // STAN: CZERWONY (Krytyczny Szok Termiczny)
                    waterSVG.setAttribute('fill', '#ef4444'); // Gorąca woda
                    bgSVG.setAttribute('fill', '#fee2e2');
                    
                    waveSVG.setAttribute('opacity', '1');
                    waveSVG.setAttribute('stroke', '#ef4444');
                    
                    crackSVG.style.strokeDashoffset = '0'; // Pełne pęknięcia

                    statusBox.style.borderColor = 'var(--rk-crit-color)';
                    statusBox.style.background = 'var(--rk-crit-bg)';
                    
                    statusHead.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-crit-color)" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg> Szok Termiczny!';
                    statusHead.style.color = '#b91c1c';
                    statusDesc.textContent = "Beton ulega fizycznemu zerwaniu (spękania). Możliwe oderwanie ułożonych płytek ceramicznych.";
                    
                    stressBadge.style.background = '#fecaca';
                    stressBadge.style.color = '#991b1b';
                    stressBadge.textContent = "Naprężenia: > 3.0 MPa (Zniszczenie!)";
                }
            }
        }

        // Podwójne zabezpieczenie zdarzeń (kompatybilność z mobilkami)
        slider.addEventListener('input', updateShockVisuals);
        slider.addEventListener('change', updateShockVisuals);

        // Init
        updateShockVisuals();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initShockSim);
    } else {
        initShockSim();
    }
})();
</script>



<style>
:root {
    --rk-mass-dark: #0f172a;
    --rk-mass-blue: #0284c7;
    --rk-mass-blue-light: #f0f9ff;
    --rk-mass-accent: #38bdf8;
    --rk-mass-gray: #f8fafc;
    --rk-mass-border: #e2e8f0;
    --rk-mass-text: #334155;
    
    /* Kolory Wylewek */
    --rk-cem-color: #64748b;
    --rk-cem-bg: #f1f5f9;
    --rk-anh-color: #d97706;
    --rk-anh-bg: #fffbeb;

    /* Kolory Alertów */
    --rk-alert-ok: #10b981;
    --rk-alert-warn: #f59e0b;
    --rk-alert-danger: #ef4444;
}

.rk-mass-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(15, 23, 42, 0.1);
    border: 1px solid var(--rk-mass-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-mass-header {
    background: var(--rk-mass-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-mass-blue);
    position: relative;
    overflow: hidden;
}

.rk-mass-header::after {
    content: '';
    position: absolute;
    right: -20px; top: -20px;
    width: 150px; height: 150px;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.2) 0%, transparent 70%);
}

.rk-mass-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-mass-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    position: relative;
    z-index: 2;
}

/* Symulator - Liniowy Układ (Jedna Kolumna) */
.rk-mass-ui {
    display: flex;
    flex-direction: column;
    background: var(--rk-mass-gray);
    border-bottom: 1px solid var(--rk-mass-border);
}

.rk-mass-controls {
    padding: 40px 50px 10px;
    max-width: 750px;
    margin: 0 auto;
    width: 100%;
}

/* Przełącznik Typu Wylewki */
.rk-screed-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 14px;
    margin-bottom: 30px;
    position: relative;
}

.rk-screed-btn {
    flex: 1;
    padding: 14px 10px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 10px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
}

.rk-screed-btn.active { color: var(--rk-mass-dark); }

.rk-screed-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-screed-btn[data-type="cement"].active ~ .rk-screed-slider {
    transform: translateX(100%);
}

/* Suwak Grubości */
.rk-thick-group {
    background: #ffffff;
    padding: 25px 30px;
    border-radius: 16px;
    border: 1px solid var(--rk-mass-border);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}

.rk-thick-label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    font-weight: 800;
    color: var(--rk-mass-dark);
    font-size: 16px;
}

.rk-thick-val {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-mass-blue);
    background: var(--rk-mass-blue-light);
    padding: 6px 16px;
    border-radius: 8px;
}

input[type=range].rk-thick-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}
input[type=range].rk-thick-range:focus { outline: none; }
input[type=range].rk-thick-range::-webkit-slider-runnable-track {
    width: 100%; height: 10px; cursor: pointer;
    background: #cbd5e1; border-radius: 5px;
}
input[type=range].rk-thick-range::-webkit-slider-thumb {
    height: 30px; width: 30px; border-radius: 50%;
    background: var(--rk-mass-blue); cursor: pointer;
    -webkit-appearance: none; margin-top: -10px;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
    border: 4px solid #ffffff; transition: transform 0.1s;
}
input[type=range].rk-thick-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* Wizualizator Wyników (Pod suwakami) */
.rk-mass-visualizer {
    padding: 20px 50px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 800px;
    margin: 0 auto;
    width: 100%;
}

.rk-svg-container {
    width: 100%;
    max-width: 300px; /* Nieco powiększony SVG */
    background: #ffffff;
    border: 1px solid var(--rk-mass-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.04);
    margin-bottom: 25px;
}

.rk-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-mass-border);
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    transition: border-color 0.3s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-metric-label {
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rk-mass-text);
    margin-bottom: 8px;
}

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

/* Status Alert */
.rk-status-banner {
    width: 100%;
    padding: 15px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 800;
    text-align: center;
    margin-top: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: all 0.3s;
}

.status-ok { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.status-warn { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.status-danger { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }

/* Treść Tekstowa */
.rk-mass-content {
    padding: 40px 50px;
}

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

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

.rk-mass-alert {
    background: #fef2f2;
    border-left: 4px solid var(--rk-alert-danger);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-mass-alert strong {
    display: block;
    color: #991b1b;
    font-size: 18px;
    margin-bottom: 8px;
}

.rk-inline-link {
    color: var(--rk-mass-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-mass-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-mass-header, .rk-mass-controls, .rk-mass-visualizer, .rk-mass-content { padding: 30px 20px; }
    .rk-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-screed-toggle { flex-direction: column; background: transparent; padding: 0; margin-bottom: 20px; }
    .rk-screed-slider { display: none; }
    .rk-screed-btn { background: #e2e8f0; border: 1px solid var(--rk-mass-border); margin-bottom: 10px; width: 100%; }
    .rk-screed-btn.active { background: #ffffff; border-color: var(--rk-mass-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    .rk-thick-group { padding: 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-grubosc-wylewki",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak grubość wylewki jastrychowej wpływa na czas nagrzewania ogrzewania podłogowego?",
    "description": "Zrozum zjawisko bezwładności cieplnej. Sprawdź, dlaczego wylanie 12 cm betonu na podłogówkę to błąd, który wydłuża czas nagrzewania do kilkunastu godzin.",
    "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-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-grubosc",
    "name": "Wpływ grubości jastrychu na masę i czas nagrzewania",
    "description": "Tabela zależności pomiędzy rodzajem wylewki (anhydryt vs cement), jej grubością (w centymetrach) a czasem reakcji układu ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka betonowa na ogrzewanie podłogowe",
      "wylewka na ogrzewanie podłogowe kompletny przewodnik",
      "czym jest bezwładność cieplna w ogrzewaniu podłogowym",
      "najczęstsze błędy przy montażu ogrzewania podłogowego"
    ],
    "measurementTechnique": "Algorytm oparty o normę PN-EN 1264, szacujący przyrost czasu nagrzewania (1.5-2h na każdy dodatkowy 1cm betonu powyżej rury grzewczej).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych anhydrytowy (60 mm): Czas nagrzewania 2-4 godz.",
        "Jastrych cementowy (75 mm): Czas nagrzewania 6-10 godz.",
        "Błąd wykonawczy (120 mm betonu): Czas nagrzewania 14-18 godz., masa 260 kg/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-grubosc",
    "name": "Symulator Bezwładności Jastrychu",
    "description": "Interaktywne narzędzie obliczeniowe pozwalające wizualizować przyrost masy stropu i czasu opóźnienia hydraulicznego na skutek pogrubiania płyty grzewczej jastrychu.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mass-module" id="grubosc-wylewki-app">
    
    <div class="rk-mass-header">
        <h2>Jak grubość wylewki wpływa na czas nagrzewania?</h2>
        <p>Każdy dodatkowy centymetr betonu to dodatkowe tony masy do ogrzania. Sprawdź, czy Twój wykonawca nie funduje Ci separatora termicznego.</p>
    </div>

    <div class="rk-mass-ui">
        
        <div class="rk-mass-controls">
            <div class="rk-screed-toggle">
                <button class="rk-screed-btn active" data-type="anhydryt">Anhydryt (Płynny)</button>
                <button class="rk-screed-btn" data-type="cement">Cementowy (Tradycyjny)</button>
                <div class="rk-screed-slider"></div>
            </div>

            <div class="rk-thick-group">
                <div class="rk-thick-label">
                    <span>Grubość Wylewki (Całkowita)</span>
                    <span class="rk-thick-val"><span id="rk-val-thick">6.0</span> cm</span>
                </div>
                <input type="range" id="rk-in-thick" class="rk-thick-range" min="3.5" max="12.0" step="0.5" value="6.0">
                <div style="font-size:13px; color:#64748b; margin-top:12px; font-weight:600; text-align:center;">
                    Zgodnie z EN 1264: min. 35mm nad rurą (Anhydryt) / min. 45mm nad rurą (Cement).
                </div>
            </div>
        </div>

        <div class="rk-mass-visualizer">
            
            <div class="rk-svg-container">
                <svg viewBox="0 0 200 160" width="100%" height="100%">
                    <circle cx="100" cy="130" r="10" fill="none" stroke="#ef4444" stroke-width="4"></circle>
                    <circle cx="100" cy="130" r="3" fill="#ef4444"></circle>
                    
                    <rect id="rk-svg-screed" x="40" y="80" width="120" height="70" fill="#d97706" opacity="0.4" rx="4"></rect>
                    
                    <line id="rk-svg-line" x1="20" y1="80" x2="180" y2="80" stroke="#0f172a" stroke-width="2" stroke-dasharray="4"></line>
                </svg>
            </div>

            <div class="rk-metrics-grid">
                <div class="rk-metric-card" id="rk-card-mass">
                    <div class="rk-metric-label">Ciężar płyty</div>
                    <div class="rk-metric-value"><span id="rk-out-mass">126</span> kg/m²</div>
                </div>
                <div class="rk-metric-card" id="rk-card-time">
                    <div class="rk-metric-label">Czas reakcji</div>
                    <div class="rk-metric-value"><span id="rk-out-time">3.0</span> godz.</div>
                </div>
            </div>

            <div id="rk-status-alert" class="rk-status-banner status-ok">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                <span id="rk-status-text">Grubość optymalna</span>
            </div>

        </div>
    </div>

    <div class="rk-mass-content">
        <p>Grubość wylewki bezpośrednio warunkuje czas nagrzewania podłogówki. Zasada jest prosta: każdy dodatkowy 1 cm jastrychu cementowego powyżej rury wydłuża czas reakcji układu o około 1,5 do 2 godzin. <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/" class="rk-inline-link">Kompletny przewodnik po wylewkach</a> oraz <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/" class="rk-inline-link">norma EN 1264</a> definiują jasno: minimalna grubość wylewki nad zewnętrzną średnicą rury wynosi 35 mm dla jastrychów anhydrytowych (płynnych) oraz 45 mm dla jastrychów cementowych.</p>
        
        <p>Optymalna łączna <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/" class="rk-inline-link">grubość wylewki betonowej na ogrzewanie podłogowe</a> wynosi około 50-60 mm dla anhydrytu i 65-80 mm dla cementu. To wystarczy, aby zbudować stabilną płytę nośną bez nadmiernego zwiększania <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-inline-link">bezwładności cieplnej</a>.</p>

        <div class="rk-mass-alert">
            <strong>Najczęstszy błąd na budowie!</strong>
            Błędem wykonawczym, który drastycznie pogarsza dynamikę układu, jest wylanie zbyt grubej warstwy betonu (np. 10-12 cm z powodu krzywo wykonanych stropów, ukrywania kabli lub braku niwelacji podłoża). Taka konstrukcja staje się potężnym separatorem termicznym o gigantycznej bezwładności. Masa 1 m² jastrychu cementowego przy 12 cm wzrasta do 260 kg!
        </div>

        <p>Taki układ nagrzewa się nawet 14-18 godzin, co uniemożliwia jakąkolwiek automatyczną regulację temperatury w cyklu dobowym. To jedno z <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-inline-link">najczęstszych błędów przy montażu ogrzewania podłogowego</a>. Ponadto, tradycyjna gruba <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-inline-link">wylewka betonowa</a> posiada gorszy współczynnik przewodzenia ciepła (ok. 1,4 W/(m·K)) w porównaniu do homogenicznego, płynnego jastrychu anhydrytowego (do 2,0 W/(m·K)), co generuje dodatkowe, bolesne opóźnienia w transporcie energii.</p>
    </div>

</div>

<script>
(function() {
    function initScreedSim() {
        if(!document.getElementById('grubosc-wylewki-app')) return;

        const btns = document.querySelectorAll('#grubosc-wylewki-app .rk-screed-btn');
        const slider = document.getElementById('rk-in-thick');
        const valThick = document.getElementById('rk-val-thick');
        
        const outMass = document.getElementById('rk-out-mass');
        const outTime = document.getElementById('rk-out-time');
        
        const svgRect = document.getElementById('rk-svg-screed');
        const svgLine = document.getElementById('rk-svg-line');
        const statusBanner = document.getElementById('rk-status-alert');
        const statusText = document.getElementById('rk-status-text');

        let currentType = 'anhydryt'; // anhydryt | cement

        // Parametry wyjściowe do obliczeń
        const params = {
            anhydryt: { density: 2100, minThick: 5.5, maxOk: 6.5, color: '#d97706', baseTime: 3.0, baseThick: 6.0, timeFactor: 1.2 },
            cement: { density: 2200, minThick: 6.5, maxOk: 8.0, color: '#64748b', baseTime: 8.0, baseThick: 7.0, timeFactor: 1.75 }
        };

        function updateVisuals() {
            // Bezpieczne przypisanie wartości
            const thickCm = parseFloat(slider.value) || 6.0;
            valThick.textContent = thickCm.toFixed(1);

            const data = params[currentType];

            // 1. Obliczanie masy
            const mass = (thickCm / 100) * data.density;
            outMass.textContent = Math.round(mass);

            // 2. Szacowanie czasu reakcji
            let timeDelay = data.baseTime + ((thickCm - data.baseThick) * data.timeFactor);
            if (timeDelay < 1) timeDelay = 1; 
            outTime.textContent = timeDelay.toFixed(1);

            // 3. Wizualizacja SVG
            const rectHeight = thickCm * 10;
            const rectY = 145 - rectHeight; 
            
            svgRect.setAttribute('height', rectHeight);
            svgRect.setAttribute('y', rectY);
            svgRect.setAttribute('fill', data.color);
            svgLine.setAttribute('y1', rectY);
            svgLine.setAttribute('y2', rectY);

            // 4. Ocena Logiczna (Statusy bez problematycznych operatorów logicznych)
            statusBanner.className = 'rk-status-banner'; // Reset

            if (thickCm < data.minThick) {
                if (currentType === 'cement') {
                    statusBanner.classList.add('status-danger');
                    statusText.textContent = "BŁĄD: Zbyt cienko! Ryzyko pękania (min. 6.5 cm)";
                } else {
                    statusBanner.classList.add('status-warn');
                    statusText.textContent = "UWAGA: Bardzo cienko. Wymaga specjalnej chemii.";
                }
            } else {
                if (thickCm <= data.maxOk) {
                    statusBanner.classList.add('status-ok');
                    statusText.textContent = "IDEALNIE: Optymalna dynamika i masa.";
                } else {
                    if (thickCm < 9.5) {
                        statusBanner.classList.add('status-warn');
                        statusText.textContent = "UWAGA: Podwyższona bezwładność cieplna.";
                    } else {
                        statusBanner.classList.add('status-danger');
                        statusText.textContent = "KATASTROFA: Potężny separator termiczny!";
                    }
                }
            }
        }

        // Zabezpieczony event listener
        slider.addEventListener('input', updateVisuals);
        slider.addEventListener('change', updateVisuals);

        btns.forEach(btn => {
            btn.addEventListener('click', function() {
                btns.forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                currentType = this.getAttribute('data-type');
                
                // Zabezpieczona logika przełączania grubości wg norm bez znaku ampersand
                if (currentType === 'cement') {
                    if (parseFloat(slider.value) < 6.5) {
                        slider.value = 7.0;
                    }
                } else {
                    if (currentType === 'anhydryt') {
                        if (parseFloat(slider.value) > 7.0) {
                            slider.value = 6.0;
                        }
                    }
                }
                
                updateVisuals();
            });
        });

        // Init
        updateVisuals();
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initScreedSim);
    } else {
        initScreedSim();
    }
})();
</script>



<style>
:root {
    --rk-night-dark: #0f172a;
    --rk-night-blue: #0284c7;
    --rk-night-bg: #ffffff;
    --rk-night-gray: #f8fafc;
    --rk-night-border: #e2e8f0;
    --rk-night-text: #334155;
    
    /* Status Colors */
    --rk-status-green: #10b981;
    --rk-status-green-bg: #ecfdf5;
    --rk-status-orange: #f59e0b;
    --rk-status-orange-bg: #fffbeb;
    --rk-status-red: #ef4444;
    --rk-status-red-bg: #fef2f2;
}

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

/* Nagłówek */
.rk-night-header {
    background: radial-gradient(circle at top right, #1e293b 0%, var(--rk-night-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-night-blue);
    position: relative;
}

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

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

/* Symulator / Dashboard */
.rk-night-dashboard {
    padding: 40px 50px;
    background: var(--rk-night-gray);
    border-bottom: 1px solid var(--rk-night-border);
}

.rk-slider-container {
    background: var(--rk-night-bg);
    padding: 35px 40px;
    border-radius: 16px;
    border: 1px solid var(--rk-night-border);
    margin-bottom: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
}

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

.rk-slider-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-night-dark);
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-slider-title svg { color: var(--rk-night-blue); }

.rk-slider-val {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-night-dark);
    background: #f1f5f9;
    padding: 5px 15px;
    border-radius: 8px;
    font-family: monospace;
}

/* Wygląd Suwaka */
input[type=range].rk-night-range {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-night-range:focus { outline: none; }

input[type=range].rk-night-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 10px;
    cursor: pointer;
    background: linear-gradient(90deg, var(--rk-status-green) 0%, var(--rk-status-orange) 50%, var(--rk-status-red) 100%);
    border-radius: 5px;
}

input[type=range].rk-night-range::-webkit-slider-thumb {
    height: 28px;
    width: 28px;
    border-radius: 50%;
    background: var(--rk-night-bg);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -9px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    border: 4px solid var(--rk-night-dark);
    transition: transform 0.1s;
}

input[type=range].rk-night-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

/* HUD Wyników */
.rk-night-hud {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-hud-box {
    background: var(--rk-night-bg);
    border: 2px solid var(--rk-night-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: all 0.3s ease;
}

.rk-hud-box.status-green { border-color: var(--rk-status-green); background: var(--rk-status-green-bg); }
.rk-hud-box.status-orange { border-color: var(--rk-status-orange); background: var(--rk-status-orange-bg); }
.rk-hud-box.status-red { border-color: var(--rk-status-red); background: var(--rk-status-red-bg); }

.rk-hud-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: var(--rk-night-text);
    margin-bottom: 10px;
}

.rk-hud-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-night-dark);
}

.rk-hud-desc {
    font-size: 12px;
    font-weight: 700;
    margin-top: 8px;
    padding: 4px 8px;
    border-radius: 6px;
    display: inline-block;
}

.status-green .rk-hud-val { color: #047857; }
.status-green .rk-hud-desc { background: #d1fae5; color: #065f46; }

.status-orange .rk-hud-val { color: #b45309; }
.status-orange .rk-hud-desc { background: #fef3c7; color: #92400e; }

.status-red .rk-hud-val { color: #b91c1c; }
.status-red .rk-hud-desc { background: #fee2e2; color: #991b1b; }

/* Tekst / Treść */
.rk-night-content {
    padding: 40px 50px;
}

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

.rk-night-text p:last-child { margin: 0; }

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

.rk-night-h3 svg { color: var(--rk-night-blue); }

.rk-alert-banner {
    display: flex;
    gap: 15px;
    background: var(--rk-status-red-bg);
    border-left: 4px solid var(--rk-status-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-alert-icon {
    color: var(--rk-status-red);
    flex-shrink: 0;
}

.rk-alert-text {
    font-size: 15px;
    line-height: 1.6;
    color: #7f1d1d;
    font-weight: 500;
}

.rk-alert-text strong { font-weight: 800; color: #991b1b; }

.rk-inline-link {
    color: var(--rk-night-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-night-dark); }

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-night-header, .rk-night-dashboard, .rk-night-content { padding: 30px 20px; }
    .rk-slider-container { padding: 25px 20px; }
    .rk-hud-box { padding: 15px; }
    
    .rk-slider-header { flex-direction: column; gap: 15px; align-items: flex-start; }
    .rk-night-hud { grid-template-columns: 1fr; gap: 15px; }
    
    .rk-alert-banner { flex-direction: column; align-items: flex-start; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-redukcja-nocna",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Ile trwa nagrzewanie podłogówki po nocnym obniżeniu temperatury?",
    "description": "Dlaczego całkowite wyłączanie podłogówki na noc to błąd. Wyjaśnienie spadku wydajności COP pomp ciepła przy dużej bezwładności i skokach temperatury o 3 stopnie.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-redukcja",
    "name": "Zależność efektywności (COP) od skali nocnej redukcji temperatury",
    "description": "Zestawienie analityczne pokazujące drastyczny spadek współczynnika COP pompy ciepła w funkcji czasu nagrzewania i wielkości obniżenia temperatury na termostacie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do ogrzewania podłogowego",
      "sterowanie strefowe ogrzewaniem czy warto",
      "krzywa grzewcza w ogrzewaniu podłogowym",
      "pompa ciepła",
      "redukcja nocna ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Szacowanie czasu odzyskania komfortu cieplnego (delta T) w odniesieniu do punktu aktywacji grzałek elektrycznych w pompach ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Redukcja 0.5-1.0 st. C: Czas nagrzewu 1-3h, Optymalne COP 4.5.",
        "Redukcja 3.0 st. C: Czas nagrzewu 6-10h, Krytyczny spadek COP do 1.5, załączenie grzałek."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-redukcja",
    "name": "Symulator Sprawności COP a Redukcja Nocna",
    "description": "Interaktywny symulator uświadamiający błąd inwestorski polegający na głębokim obniżaniu temperatury w instalacjach płaszczyznowych. Wizualizuje straty finansowe.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-night-module" id="nocna-redukcja-app">
    
    <div class="rk-night-header">
        <h2>Ile trwa nagrzewanie podłogówki po nocnym obniżeniu temperatury?</h2>
        <p>Nawyki ze starych domów z grzejnikami to cichy zabójca sprawności nowoczesnych systemów. Zobacz, dlaczego wyłączanie podłogówki na noc niszczy Twój portfel.</p>
    </div>

    <div class="rk-night-dashboard">
        <div class="rk-slider-container">
            <div class="rk-slider-header">
                <div class="rk-slider-title">
                    <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 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
                    Ustaw nocną redukcję na termostacie
                </div>
                <div class="rk-slider-val"><span id="val-reduction">1.0</span> °C</div>
            </div>
            <input type="range" id="in-reduction" class="rk-night-range" min="0" max="3" step="0.5" value="1.0">
            <div style="display:flex; justify-content:space-between; font-size:12px; color:#64748b; font-weight:700; margin-top:8px;">
                <span>0°C (Stała)</span>
                <span>3°C (Nawyk Grzejnikowy)</span>
            </div>
        </div>

        <div class="rk-night-hud">
            <div class="rk-hud-box" id="hud-time">
                <div class="rk-hud-label">Czas powrotu do ciepła</div>
                <div class="rk-hud-val" id="out-time">1 - 3 godz.</div>
                <div class="rk-hud-desc" id="desc-time">W normie</div>
            </div>
            <div class="rk-hud-box" id="hud-cop">
                <div class="rk-hud-label">Sprawność Pompy (COP)</div>
                <div class="rk-hud-val" id="out-cop">4.0 - 4.5</div>
                <div class="rk-hud-desc" id="desc-cop">Wysoka energooszczędność</div>
            </div>
            <div class="rk-hud-box" id="hud-cost">
                <div class="rk-hud-label">Skutek Finansowy</div>
                <div class="rk-hud-val" id="out-cost">Optymalny</div>
                <div class="rk-hud-desc" id="desc-cost">Niskie rachunki</div>
            </div>
        </div>
    </div>

    <div class="rk-night-content">
        <div class="rk-night-text">
            <h3 class="rk-night-h3">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                Zasada samoregulacji a czas opóźnienia
            </h3>
            <p>Czas potrzebny na podniesienie temperatury powietrza w pomieszczeniu o 2°C po nocnej redukcji wynosi <strong>od 4 do 8 godzin</strong>, w zależności od izolacyjności termicznej zewnętrznych przegród budynku. Zjawisko to wynika wprost z charakterystyki samoregulacji ogrzewania płaszczyznowego.</p>
            
            <p>Różnica temperatur między powierzchnią podłogi a samym powietrzem (tzw. Delta T) jest bardzo niewielka i wynosi zazwyczaj zaledwie od 3K do 5K. Gdy <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/" class="rk-inline-link">sterowniki do ogrzewania podłogowego</a> wyślą sygnał o godzinie 06:00, potężna masa jastrychu musi się nagrzać. Podłoga osiągnie wymaganą temperaturę powierzchniową dopiero około godziny 08:30, a samo powietrze dogrzeje się w okolicach południa.</p>

            <div class="rk-alert-banner">
                <div class="rk-alert-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-alert-text">
                    <strong>Kardynalny błąd inwestorski:</strong> Całkowite wyłączanie podłogówki na noc (np. o 22:00 i start o 06:00). Budynek drastycznie się wychładza, a ponowne nagrzanie betonowej płyty o masie kilkunastu ton wymaga uderzenia energii z maksymalną mocą szczytową.
                </div>
            </div>

            <h3 class="rk-night-h3">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                Zabijanie sprawności (COP) pompy ciepła
            </h3>
            <p>Aby szybko nadgonić stratę rzędu 2-3°C, <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-inline-link">pompa ciepła</a> zostaje zmuszona do gwałtownego podniesienia temperatury zasilania. Przechodzi w ekstremalnie nieefektywny zakres pracy, często uruchamiając zintegrowane grzałki elektryczne. Jej rewelacyjny współczynnik sprawności (COP) <strong>spada z 4.5 do zaledwie 1.5!</strong></p>

            <p>Koszt ponownego nagrzania wyziębionego układu znacznie przewyższa "rzekome" oszczędności uzyskane z przerwanej pracy nocnej. Prawidłowo ustawiona <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-inline-link">krzywa grzewcza</a> dla tak dużej bezwładności dopuszcza bezpieczną, uzasadnioną ekonomicznie redukcję nocną <strong>maksymalnie w granicach 0,5°C do 1,0°C</strong>. Rozważając <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/" class="rk-inline-link">sterowanie strefowe ogrzewaniem</a>, zawsze pamiętaj o płynności pracy – dom to nie grzejnik.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('in-reduction');
    const valDisplay = document.getElementById('val-reduction');
    
    const hudTime = document.getElementById('hud-time');
    const outTime = document.getElementById('out-time');
    const descTime = document.getElementById('desc-time');
    
    const hudCop = document.getElementById('hud-cop');
    const outCop = document.getElementById('out-cop');
    const descCop = document.getElementById('desc-cop');
    
    const hudCost = document.getElementById('hud-cost');
    const outCost = document.getElementById('out-cost');
    const descCost = document.getElementById('desc-cost');

    function updateSimulation() {
        const val = parseFloat(slider.value);
        valDisplay.innerText = val.toFixed(1);

        // Resetowanie klas
        hudTime.className = 'rk-hud-box';
        hudCop.className = 'rk-hud-box';
        hudCost.className = 'rk-hud-box';

        // Bezpieczna logika bez symboli kolizyjnych (unikanie znaków większości/mniejszości i ampersandów gdy to możliwe, chociaż proste if-else są bezpieczne)
        if (val <= 1.0) {
            // STREFA ZIELONA
            hudTime.classList.add('status-green');
            outTime.innerText = "1 - 3 godz.";
            descTime.innerText = "Szybka reakcja";

            hudCop.classList.add('status-green');
            outCop.innerText = "4.0 - 4.5";
            descCop.innerText = "Praca optymalna sprężarki";

            hudCost.classList.add('status-green');
            outCost.innerText = "Niski koszt";
            descCost.innerText = "Ekonomiczna praca";
            
        } else {
            if (val <= 2.0) {
                // STREFA POMARAŃCZOWA
                hudTime.classList.add('status-orange');
                outTime.innerText = "4 - 6 godz.";
                descTime.innerText = "Odczuwalny dyskomfort";

                hudCop.classList.add('status-orange');
                outCop.innerText = "2.5 - 3.5";
                descCop.innerText = "Spadek efektywności";

                hudCost.classList.add('status-orange');
                outCost.innerText = "Wzrost o ~30%";
                descCost.innerText = "Tracisz oszczędności";
            } else {
                // STREFA CZERWONA
                hudTime.classList.add('status-red');
                outTime.innerText = "6 - 10 godz.";
                descTime.innerText = "Dom wyziębiony";

                hudCop.classList.add('status-red');
                outCop.innerText = "1.0 - 1.5";
                descCop.innerText = "Grzałki elektryczne ON!";

                hudCost.classList.add('status-red');
                outCost.innerText = "Krytyczny rachunek";
                descCost.innerText = "Gorsze niż grzejniki";
            }
        }
    }

    slider.addEventListener('input', updateSimulation);
    
    // Inicjalizacja na starcie
    updateSimulation();
});
</script>



<style>
:root {
    --rk-pipe-dark: #0f172a;
    --rk-pipe-blue: #0284c7;
    --rk-pipe-blue-light: #f0f9ff;
    --rk-pipe-accent: #38bdf8;
    --rk-pipe-red: #ef4444;
    --rk-pipe-red-light: #fef2f2;
    --rk-pipe-green: #10b981;
    --rk-pipe-green-light: #ecfdf5;
    --rk-pipe-border: #e2e8f0;
    --rk-pipe-text: #334155;
    --rk-pipe-bg: #ffffff;
}

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

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

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

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

/* Sekcja Główna - Jednokolumnowa */
.rk-pipe-container {
    display: flex;
    flex-direction: column;
    background: #f8fafc;
}

/* Górna Część - Symulator Wizualny */
.rk-pipe-simulator {
    padding: 40px 50px 30px 50px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Przełącznik */
.rk-pipe-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 14px;
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    width: 100%;
}

.rk-sim-btn {
    flex: 1;
    padding: 16px 10px;
    border: none;
    background: transparent;
    font-size: 15px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 10px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
    text-align: center;
}

.rk-sim-btn.active {
    color: var(--rk-pipe-dark);
}

.rk-sim-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-sim-btn[data-view="inba"].active ~ .rk-sim-slider {
    transform: translateX(100%);
}

/* Widoki Symulacji */
.rk-sim-view {
    display: none;
    animation: fadeInSim 0.4s ease forwards;
}

.rk-sim-view.active {
    display: block;
}

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

.rk-sim-svg-box {
    background: #ffffff;
    border: 1px solid var(--rk-pipe-border);
    border-radius: 20px;
    padding: 40px 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.03);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.rk-sim-title {
    font-size: 20px;
    font-weight: 900;
    margin-bottom: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.title-bad { color: var(--rk-pipe-red); }
.title-good { color: var(--rk-pipe-green); }

.rk-sim-svg {
    width: 100%;
    height: auto;
    max-width: 380px; /* Zwiększony rozmiar SVG dla lepszej widoczności na pełnej szerokości */
    margin: 0 auto;
    display: block;
}

/* Animacje Fal Ciepła */
.heat-wave {
    animation: pulseHeat 2.5s infinite alternate ease-in-out;
    transform-origin: center;
}

.heat-wave-bad { fill: rgba(239, 68, 68, 0.2); }
.heat-wave-good { fill: rgba(16, 185, 129, 0.2); }

@keyframes pulseHeat {
    0% { transform: scale(0.9); opacity: 0.6; }
    100% { transform: scale(1.1); opacity: 0.9; }
}

.rk-sim-desc {
    margin-top: 30px;
    padding: 20px;
    border-radius: 14px;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 600;
    text-align: center;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.desc-bad { background: var(--rk-pipe-red-light); color: #b91c1c; border: 1px solid #fca5a5; }
.desc-good { background: var(--rk-pipe-green-light); color: #047857; border: 1px solid #6ee7b7; }

/* Dolna Część - Opis i Teoria */
.rk-pipe-content {
    padding: 40px 50px;
    background: var(--rk-pipe-bg);
    border-top: 1px solid var(--rk-pipe-border);
}

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

.rk-pipe-desc p {
    margin: 0 0 15px 0;
}

.rk-pipe-desc p:last-child {
    margin: 0;
}

.rk-highlight-box {
    background: var(--rk-pipe-blue-light);
    border-left: 4px solid var(--rk-pipe-blue);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0;
}

.rk-highlight-box strong {
    color: var(--rk-pipe-dark);
    font-size: 18px;
    display: block;
    margin-bottom: 8px;
}

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

.rk-pipe-link:hover {
    color: var(--rk-pipe-dark);
}

/* RWD */
@media (max-width: 768px) {
    .rk-pipe-header { padding: 30px 20px; }
    .rk-pipe-simulator { padding: 30px 20px; }
    .rk-pipe-content { padding: 30px 20px; }
    
    .rk-pipe-toggle { flex-direction: column; background: transparent; padding: 0; gap: 10px; }
    .rk-sim-slider { display: none; }
    .rk-sim-btn { background: #e2e8f0; border: 1px solid var(--rk-pipe-border); width: 100%; padding: 14px; }
    .rk-sim-btn.active { background: #ffffff; border-color: var(--rk-pipe-blue); box-shadow: 0 4px 6px rgba(2, 132, 199, 0.1); color: var(--rk-pipe-blue); }
    
    .rk-sim-svg-box { padding: 25px 15px; }
    .rk-sim-desc { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-rozstaw-rur",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jaki wpływ na czas nagrzewania ma rozstaw rur ogrzewania podłogowego?",
    "description": "Zagęszczenie rur do 10 cm wszędzie to błąd. Rozstaw (np. 15 cm środek, 10 cm przy oknach) musi wynikać z obliczeń OZC, aby uniknąć zęba termicznego.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-rozstaw",
    "name": "Rozkład temperatur a rozstaw rur grzewczych (Symulacja zęba termicznego)",
    "description": "Porównanie efektywności przekazywania ciepła pomiędzy uniwersalnym układem 15 cm a zoptymalizowanym strefowaniem na podstawie bilansu OZC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur w wodnym ogrzewaniu podłogowym",
      "strefa brzegowa w ogrzewaniu podłogowym",
      "rozstaw rur ogrzewania podłogowego przy pompie ciepła",
      "projekt ogrzewania podłogowego do domu z dużymi przeszkleniami",
      "ząb termiczny w podłogówce"
    ],
    "measurementTechnique": "Analiza krzywych promieniowania cieplnego wewnątrz wylewki jastrychowej w oparciu o normę PN-EN 1264-2 przy różnym rozstawie przewodów (10 vs 15 cm).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Uniwersalny rozstaw 15cm na oknach powoduje niedogrzanie (tzw. ząb termiczny) i wymaga podbicia temperatury zasilania.",
        "Zagęszczenie stref brzegowych (10cm) i centralnych (15cm) pozwala na pracę pompy ciepła na niskim zasilaniu, podnosząc wskaźnik SCOP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-rozstaw",
    "name": "Wizualizator Promieniowania Cieplnego Pętli",
    "description": "Interaktywny moduł edukacyjny pokazujący powstawanie martwych stref (zęba termicznego) przy błędnie, uniwersalnie dobranym rozstawie rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pipe-module" id="rozstaw-rur-app">
    <div class="rk-pipe-header">
        <h2>Jaki wpływ na czas nagrzewania ma rozstaw rur podłogówki?</h2>
        <p>Błędny dobór zagęszczenia pętli to jeden z najbardziej kosztownych w skutkach błędów, drastycznie obniżający wskaźnik SCOP pompy ciepła.</p>
    </div>

    <div class="rk-pipe-container">
        
        <div class="rk-pipe-simulator">
            <div class="rk-pipe-toggle">
                <button class="rk-sim-btn active" data-view="oko">Instalator "na oko" (Stałe 15 cm)</button>
                <button class="rk-sim-btn" data-view="inba">Inżynieryjny Projekt (10 cm / 15 cm)</button>
                <div class="rk-sim-slider"></div>
            </div>

            <div class="rk-sim-view active" id="view-oko">
                <div class="rk-sim-svg-box">
                    <div class="rk-sim-title title-bad">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                        Efekt "Zęba Termicznego"
                    </div>
                    <svg class="rk-sim-svg" viewBox="0 0 200 120">
                        <line x1="10" y1="20" x2="190" y2="20" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"></line>
                        
                        <circle cx="50" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="50" cy="80" r="35" class="heat-wave heat-wave-bad"></circle>
                        <circle cx="50" cy="80" r="4" fill="#b91c1c"></circle>
                        
                        <circle cx="150" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="150" cy="80" r="35" class="heat-wave heat-wave-bad" style="animation-delay: 0.5s;"></circle>
                        <circle cx="150" cy="80" r="4" fill="#b91c1c"></circle>
                        
                        <path d="M 85 20 Q 100 50 115 20" fill="none" stroke="#3b82f6" stroke-width="3" stroke-dasharray="4" opacity="0.7"></path>
                        <text x="100" y="15" font-family="sans-serif" font-size="12" fill="#3b82f6" font-weight="bold" text-anchor="middle">Zimno!</text>
                        
                        <line x1="65" y1="110" x2="135" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="100" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">15 cm</text>
                    </svg>
                    <div class="rk-sim-desc desc-bad">
                        Fale ciepła nie przenikają się odpowiednio pod powierzchnią jastrychu w pobliżu zimnego okna tarasowego. Powstają niedogrzane pasy. Jedyny ratunek to drastyczne, nieopłacalne podniesienie temperatury zasilania pompy.
                    </div>
                </div>
            </div>

            <div class="rk-sim-view" id="view-inba">
                <div class="rk-sim-svg-box">
                    <div class="rk-sim-title title-good">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                        Optymalne Pokrycie (OZC)
                    </div>
                    <svg class="rk-sim-svg" viewBox="0 0 200 120">
                        <line x1="10" y1="20" x2="190" y2="20" stroke="#cbd5e1" stroke-width="4" stroke-linecap="round"></line>
                        
                        <rect x="10" y="0" width="10" height="20" fill="#93c5fd" opacity="0.5"></rect>
                        
                        <circle cx="30" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="30" cy="80" r="35" class="heat-wave heat-wave-good"></circle>
                        <circle cx="30" cy="80" r="4" fill="#047857"></circle>

                        <circle cx="90" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="90" cy="80" r="35" class="heat-wave heat-wave-good" style="animation-delay: 0.3s;"></circle>
                        <circle cx="90" cy="80" r="4" fill="#047857"></circle>

                        <circle cx="170" cy="80" r="10" fill="none" stroke="#64748b" stroke-width="4"></circle>
                        <circle cx="170" cy="80" r="35" class="heat-wave heat-wave-good" style="animation-delay: 0.6s;"></circle>
                        <circle cx="170" cy="80" r="4" fill="#047857"></circle>
                        
                        <line x1="45" y1="110" x2="75" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="60" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">10 cm</text>

                        <line x1="105" y1="110" x2="155" y2="110" stroke="#64748b" stroke-width="2"></line>
                        <text x="130" y="105" font-family="sans-serif" font-size="12" fill="#64748b" font-weight="bold" text-anchor="middle">15 cm</text>
                    </svg>
                    <div class="rk-sim-desc desc-good">
                        Zagęszczenie do 10 cm przy drzwiach tarasowych blokuje chłód. Płynne przejście w rozstaw 15 cm w głębi pokoju oszczędza rurę i zmniejsza opory tłoczenia. Pompa ciepła pracuje przy idealnych <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/" style="color:#047857;text-decoration:underline;">35°C na zasilaniu</a>.
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-pipe-content">
            <div class="rk-pipe-desc">
                <p>Wielu instalatorów powiela szkodliwe mity, układając rury „na oko”. Najczęściej stosują uniwersalny rozstaw 15 cm w całym budynku, łącznie ze strefami przy dużych oknach tarasowych, lub – wpadając w drugą skrajność – kładą 10 cm absolutnie wszędzie, sztucznie dławiąc przepływy i marnując materiał.</p>

                <div class="rk-highlight-box">
                    <strong>Rozstaw rur to wynik matematyki, nie zgadywania!</strong>
                    Nie istnieje jeden "najlepszy" rozstaw. Gęstość układania rur musi bezwzględnie wynikać z obliczeniowego zapotrzebowania na ciepło (OZC) dla danego pomieszczenia oraz oporu cieplnego zastosowanej okładziny wierzchniej.
                </div>

                <p>Zgodnie z fizycznymi zależnościami w normie PN-EN 1264-2, ciepło z rury PEX/PERT rozchodzi się promieniście wewnątrz jastrychu. Jeśli zastosujemy uniwersalne 15 cm przy dużych przeszkleniach, powstanie tzw. <strong>„ząb termiczny”</strong>. Energia pokonuje zbyt długą drogę w poziomie, co generuje zimne pasy na podłodze i zmusza inwestora do podbicia temperatury zasilania na pompie o 5-7°C.</p>

                <p>Prawidłowy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-pipe-link">rozstaw rur w ogrzewaniu podłogowym</a> polega na strefowaniu: zagęszczamy do 10 cm <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-pipe-link">strefy brzegowe</a> i łazienki, a w środku pomieszczeń (przy dobrym ociepleniu i gresie) zostawiamy 15 cm. Tylko takie podejście pozwala pompie ciepła pracować na bardzo niskim, energooszczędnym zasilaniu.</p>
                
                <p>Sprawdź jak optymalizuje się <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/" class="rk-pipe-link">projekty podłogówki dla domów z dużymi przeszkleniami</a>.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('#rozstaw-rur-app .rk-sim-btn');
    const views = document.querySelectorAll('#rozstaw-rur-app .rk-sim-view');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetView = this.getAttribute('data-view');
            
            // Bezpieczna logika zmiany kart bez użycia znaków zagrażających CMS-om
            if (window.innerWidth <= 768) {
                if (this.classList.contains('active')) {
                    // Na mobile kliknięcie już aktywnego przycisku nic nie robi (zapobiega zwinięciu)
                    return;
                }
            }

            // Reset wszystkich przycisków i widoków
            btns.forEach(b => b.classList.remove('active'));
            views.forEach(v => v.classList.remove('active'));

            // Aktywacja wybranego widoku
            this.classList.add('active');
            const newView = document.getElementById('view-' + targetView);
            if(newView) {
                newView.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-surf-dark: #0f172a;
    --rk-surf-blue: #0284c7;
    --rk-surf-light: #f8fafc;
    --rk-surf-accent: #38bdf8;
    --rk-surf-green: #10b981;
    --rk-surf-warning: #f59e0b;
    --rk-surf-danger: #ef4444;
    --rk-surf-border: #e2e8f0;
    --rk-surf-text: #334155;
    --rk-surf-bg: #ffffff;
}

.rk-surface-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-surf-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-surf-blue);
    overflow: hidden;
}

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

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

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

/* Układ Kafelków (Zamiast Tabeli) */
.rk-surf-grid {
    padding: 40px 50px 20px;
    background: var(--rk-surf-light);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-surf-card {
    background: var(--rk-surf-bg);
    border: 2px solid var(--rk-surf-border);
    border-radius: 16px;
    padding: 25px 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.rk-surf-card:hover {
    border-color: var(--rk-surf-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.15);
}

.rk-surf-card.active {
    border-color: var(--rk-surf-blue);
    background: #f0f9ff;
}

.rk-surf-card.active::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-width: 10px 10px 0;
    border-style: solid;
    border-color: var(--rk-surf-blue) transparent transparent transparent;
    display: block;
}

@media (max-width: 768px) {
    .rk-surf-card.active::after { display: none; }
}

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

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

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

/* Szuflady z danymi */
.rk-surf-drawers {
    padding: 0 50px 40px;
    background: var(--rk-surf-light);
}

.rk-surf-drawer {
    display: none;
    background: var(--rk-surf-bg);
    border: 1px solid var(--rk-surf-blue);
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
    animation: fadeSlideUp 0.4s ease forwards;
}

.rk-surf-drawer.active {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

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

/* Wskaźniki Normy */
.rk-norm-box {
    margin-bottom: 20px;
}

.rk-norm-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-surf-dark);
    margin-bottom: 8px;
}

.rk-norm-val {
    font-family: monospace;
    font-size: 16px;
    font-weight: 900;
}

.rk-norm-track {
    height: 12px;
    background: #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
}

.rk-norm-limit {
    position: absolute;
    right: 0; top: 0; bottom: 0; width: 4px;
    background: var(--rk-surf-danger);
    z-index: 2;
}

.rk-norm-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    width: 0%;
}

.rk-time-stat {
    display: flex;
    align-items: center;
    gap: 15px;
    background: #f8fafc;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-surf-border);
}

.rk-time-stat svg {
    color: var(--rk-surf-blue);
}

.rk-time-stat div {
    font-size: 14px;
    color: var(--rk-surf-muted);
    font-weight: 700;
}

.rk-time-stat strong {
    display: block;
    font-size: 18px;
    color: var(--rk-surf-dark);
    font-weight: 900;
}

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

.rk-surf-desc p:last-child { margin: 0; }

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

/* Sekcja Błędu */
.rk-surf-alert {
    margin: 0 50px 40px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-left: 5px solid var(--rk-surf-warning);
    padding: 25px 30px;
    border-radius: 12px;
}

.rk-alert-head {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #b45309;
    font-size: 18px;
    font-weight: 900;
    margin-bottom: 10px;
}

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

/* Mobile */
@media (max-width: 768px) {
    .rk-surf-header, .rk-surf-grid, .rk-surf-drawers, .rk-surf-alert { padding: 25px 20px; }
    .rk-surf-alert { margin: 0 20px 30px; }
    
    .rk-surf-grid { grid-template-columns: 1fr; gap: 10px; padding-bottom: 25px; }
    
    /* Mobilny układ szuflad tuż pod przyciskiem */
    .rk-surf-drawer {
        padding: 20px;
        margin-top: -5px;
        border-radius: 0 0 16px 16px;
        border-top: none;
    }
    
    .rk-surf-card.active { border-radius: 16px 16px 0 0; }
    
    .rk-surf-drawer.active { grid-template-columns: 1fr; gap: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-okladziny",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak rodzaj wykończenia podłogi modyfikuje czas reakcji systemu?",
    "description": "Zrozum wpływ oporu cieplnego (R lambda) płytek, paneli winylowych i deski barlineckiej na wydajność i dynamikę wodnego ogrzewania podłogowego. Norma PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-okladziny",
    "name": "Tabela Oporów Cieplnych Wykończeń Podłogowych",
    "description": "Zestawienie parametrów termicznych R [m2K/W] oraz czasu przenikania ciepła dla gresu, LVT, laminatu i parkietu na podłogówce.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego",
      "podłogi drewniane vs panele laminowane co wybrać przy ogrzewaniu podłogowym",
      "opór cieplny r m²k w klucz do efektywnego ogrzewania podłogowego",
      "czy pod ogrzewanie podłogowe nadają się panele czy tylko płytki",
      "jakie są najlepsze sposoby izolacji pod ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Określanie przepuszczalności termicznej materiałów zgodnie z ograniczeniami normy europejskiej PN-EN 1264 (max 0.15 m2K/W).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Gres: 0.015 m2K/W (Czas 15-30 min)",
        "LVT: 0.025 m2K/W (Czas 30-45 min)",
        "Laminat: 0.070 m2K/W (Czas 1.5-2.5 h)",
        "Parkiet: 0.130 m2K/W (Czas 3.5-5.0 h)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-okladziny",
    "name": "Analizator Oporu Cieplnego Okładzin",
    "description": "Interaktywny moduł edukacyjny przekształcający tabelaryczne wartości oporu cieplnego we wskaźniki procentowe względem limitów normy PN-EN 1264.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-surface-module" id="okladziny-app">
    <div class="rk-surf-header">
        <h2>Jak rodzaj wykończenia modyfikuje czas reakcji systemu?</h2>
        <p>Opór cieplny materiału ułożonego na wylewce to ostateczny filtr termiczny. Norma PN-EN 1264 jasno określa: całkowity opór (okładzina + podkład) nie może przekraczać <strong>0,15 m²·K/W</strong>.</p>
    </div>

    <div class="rk-surf-grid">
        <div class="rk-surf-card active" data-surf="gres">
            <div class="rk-surf-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>Gres / Kamień<br><span style="font-weight:400;font-size:13px;color:#64748b;">(10 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-gres"></div>

        <div class="rk-surf-card" data-surf="lvt">
            <div class="rk-surf-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="12" x2="21" y2="12"></line></svg>
            </div>
            <h3>Panele Winylowe<br><span style="font-weight:400;font-size:13px;color:#64748b;">LVT (4,5 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-lvt"></div>

        <div class="rk-surf-card" data-surf="laminat">
            <div class="rk-surf-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="4" width="20" height="16" rx="2" ry="2"></rect><line x1="6" y1="4" x2="6" y2="20"></line><line x1="10" y1="4" x2="10" y2="20"></line><line x1="14" y1="4" x2="14" y2="20"></line><line x1="18" y1="4" x2="18" y2="20"></line></svg>
            </div>
            <h3>Panele Laminat<br><span style="font-weight:400;font-size:13px;color:#64748b;">(8 mm + Podkład)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-laminat"></div>

        <div class="rk-surf-card" data-surf="drewno">
            <div class="rk-surf-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 2L2 7l10 5 10-5-10-5z"></path><path d="M2 17l10 5 10-5"></path><path d="M2 12l10 5 10-5"></path></svg>
            </div>
            <h3>Parkiet Dębowy<br><span style="font-weight:400;font-size:13px;color:#64748b;">Klejony (14 mm)</span></h3>
        </div>
        <div class="rk-surf-drawer rk-mob-draw" id="mob-drewno"></div>
    </div>

    <div class="rk-surf-drawers" id="desktop-surf">
        
        <div class="rk-surf-drawer active" id="gres">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-green);">0,015 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="10%" style="background: var(--rk-surf-green);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>15 - 30 minut</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Absolutny ideał. Ceramika i kamień doskonale przewodzą ciepło z wylewki. Dzięki temu pompa ciepła może pracować na najniższej możliwej krzywej grzewczej, zapewniając maksymalny współczynnik SCOP.</p>
                <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/" class="rk-surf-link">Płytki vs panele - co lepsze na ogrzewanie podłogowe?</a>
            </div>
        </div>

        <div class="rk-surf-drawer" id="lvt">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-blue);">0,025 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="16%" style="background: var(--rk-surf-blue);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>30 - 45 minut</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Bardzo dobra dynamika i niskie tłumienie. Winyl klejony do posadzki stanowi rewelacyjny kompromis dla osób, które chcą faktury drewna, ale zależy im na wysokiej <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/" class="rk-surf-link">wydajności ogrzewania podłogowego</a>.</p>
            </div>
        </div>

        <div class="rk-surf-drawer" id="laminat">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-warning);">0,070 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="46%" style="background: var(--rk-surf-warning);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>1,5 - 2,5 godziny</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>Przeciętna dynamika. Wymaga rygorystycznego doboru maty podkładowej (np. PUM). Zły podkład błyskawicznie "przebije" limit normy, tworząc izolator. Kluczowy jest tu sumaryczny <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/" class="rk-surf-link">opór cieplny R</a>.</p>
            </div>
        </div>

        <div class="rk-surf-drawer" id="drewno">
            <div class="rk-surf-stats">
                <div class="rk-norm-box">
                    <div class="rk-norm-label">
                        <span>Opór cieplny (R)</span>
                        <span class="rk-norm-val" style="color: var(--rk-surf-danger);">0,130 m²·K/W</span>
                    </div>
                    <div class="rk-norm-track">
                        <div class="rk-norm-limit"></div>
                        <div class="rk-norm-fill js-norm" data-w="86%" style="background: var(--rk-surf-danger);"></div>
                    </div>
                    <div style="font-size:12px; color:#64748b; text-align:right; margin-top:4px;">Limit normy: 0,15</div>
                </div>
                <div class="rk-time-stat">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    <div>Czas przenikania do pokoju:<strong>3,5 - 5,0 godzin</strong></div>
                </div>
            </div>
            <div class="rk-surf-desc">
                <p>System działa na krawędzi limitu normy 1264. Charakteryzuje się ogromną bezwładnością i ograniczeniem jednostkowej mocy grzewczej posadzki (z reguły max 60 W/m²). Rozważając dylemat <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/" class="rk-surf-link">podłogi drewniane vs panele</a>, pamiętaj o wyższej temp. zasilania.</p>
            </div>
        </div>
    </div>

    <div class="rk-surf-alert">
        <div class="rk-alert-head">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Powszechny Błąd Inwestorski
        </div>
        <p>Montaż grubych paneli na "zwykłej" piance polietylenowej to proszenie się o kłopoty. Tani podkład to izolator o oporze rzędu <strong>0,08 m²·K/W</strong>. Razem z panelem opór przekracza dopuszczalne normy. Ciepło dusi się w betonie, wylewka nagrzewa się kilkanaście godzin, a wracający ukrop wywołuje zabójcze dla pomp ciepła taktowanie sprężarki. Szukając <a href="https://projekt-ogrzewania.pl/jakie-sa-najlepsze-sposoby-izolacji-pod-ogrzewanie-podlogowe/" style="color:#b45309;font-weight:700;text-decoration:underline;">najlepszej izolacji pod podłogówkę</a>, wybieraj tylko dedykowane maty kwarcowe (PUM).</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('#okladziny-app .rk-surf-card');
    const deskDrawers = document.querySelectorAll('#okladziny-app #desktop-surf .rk-surf-drawer');
    const desktopContainer = document.getElementById('desktop-surf');

    // Funkcja odpalająca animacje pasków (R lambda)
    function animateNorms(container) {
        const fills = container.querySelectorAll('.js-norm');
        fills.forEach(fill => {
            fill.style.width = '0%';
            setTimeout(() => {
                fill.style.width = fill.getAttribute('data-w');
            }, 50);
        });
    }

    // Kopiowanie do domów mobilnych
    const cloneToMobile = () => {
        deskDrawers.forEach(drawer => {
            const mobTarget = document.getElementById('mob-' + drawer.id);
            if(mobTarget) {
                mobTarget.innerHTML = drawer.innerHTML;
            }
        });
    };
    cloneToMobile();
    
    // Inicjalna animacja
    animateNorms(document.getElementById('gres'));

    cards.forEach(card => {
        card.addEventListener('click', function() {
            const targetId = this.getAttribute('data-surf');
            const isMobile = window.innerWidth <= 768;

            if (isMobile) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    const activeMobDrawer = document.getElementById('mob-' + targetId);
                    if(activeMobDrawer) activeMobDrawer.classList.remove('active');
                    return;
                }
            }

            // Reset
            cards.forEach(c => c.classList.remove('active'));
            deskDrawers.forEach(d => d.classList.remove('active'));
            document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));

            this.classList.add('active');

            if (isMobile) {
                desktopContainer.style.display = 'none';
                const mobDrawer = document.getElementById('mob-' + targetId);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                    animateNorms(mobDrawer);
                }
            } else {
                desktopContainer.style.display = 'block';
                const deskDrawer = document.getElementById(targetId);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                    animateNorms(deskDrawer);
                }
            }
        });
    });

    // Obsługa zmiany orientacji
    window.addEventListener('resize', function() {
        const activeCard = document.querySelector('#okladziny-app .rk-surf-card.active');
        if (activeCard) {
            const targetId = activeCard.getAttribute('data-surf');
            if (window.innerWidth <= 768) {
                desktopContainer.style.display = 'none';
                document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));
                const mobDrawer = document.getElementById('mob-' + targetId);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                    animateNorms(mobDrawer);
                }
            } else {
                desktopContainer.style.display = 'block';
                document.querySelectorAll('#okladziny-app .rk-mob-draw').forEach(md => md.classList.remove('active'));
                deskDrawers.forEach(d => d.classList.remove('active'));
                const deskDrawer = document.getElementById(targetId);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                    animateNorms(deskDrawer);
                }
            }
        }
    });
});
</script>



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

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

/* Nagłówek */
.rk-tech-header {
    padding: 40px 50px 30px;
    background: var(--rk-tech-bg);
    border-bottom: 1px solid var(--rk-tech-border);
}

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

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

/* Interfejs Przełącznika */
.rk-tech-ui {
    background: var(--rk-tech-gray);
    padding: 40px 50px;
}

.rk-toggle-wrapper {
    display: flex;
    background: #e2e8f0;
    border-radius: 16px;
    padding: 8px;
    position: relative;
    margin-bottom: 40px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tech-muted);
    cursor: pointer;
    border-radius: 12px;
    transition: all 0.3s ease;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-toggle-btn.active {
    color: var(--rk-tech-blue);
}

.rk-toggle-slider {
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-toggle-btn[data-tech="suchy"].active ~ .rk-toggle-slider {
    transform: translateX(100%);
}

/* Kontenery Danych */
.rk-tech-panel {
    display: none;
    animation: fadeInPanel 0.4s ease forwards;
}

.rk-tech-panel.active {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 40px;
    align-items: start;
}

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

/* Wizualizacja Warstw */
.rk-layer-box {
    background: #ffffff;
    border: 1px solid var(--rk-tech-border);
    border-radius: 16px;
    padding: 30px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.02);
}

.rk-layer-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: var(--rk-tech-muted);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-layer-diagram {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rk-layer {
    padding: 12px 15px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    border: 1px solid rgba(0,0,0,0.1);
}

.layer-pex { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.layer-concrete { background: #e2e8f0; color: #475569; padding: 25px 15px !important; }
.layer-alu { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }
.layer-finish { background: #fef3c7; color: #b45309; }

/* Wskaźniki Metryczne (Progress Bars) */
.rk-metrics-box {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-metric {
    background: #ffffff;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-tech-border);
}

.rk-metric-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 12px;
}

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

.rk-metric-val {
    font-size: 20px;
    font-weight: 900;
    font-family: monospace;
}

.rk-progress-bg {
    height: 10px;
    background: #e2e8f0;
    border-radius: 5px;
    overflow: hidden;
}

.rk-progress-fill {
    height: 100%;
    border-radius: 5px;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
    width: 0%; /* Start dla animacji */
}

/* Opisy i Linki */
.rk-tech-desc {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-tech-text);
    margin-top: 15px;
}

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

.rk-tech-link:hover { color: var(--rk-tech-dark); }

.rk-alert-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fef2f2;
    color: var(--rk-tech-red);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    margin-top: 10px;
    border: 1px solid #fecaca;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-tech-header, .rk-tech-ui { padding: 30px 20px; }
    .rk-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; box-shadow: none; gap: 10px; }
    .rk-toggle-slider { display: none; }
    .rk-toggle-btn { background: #e2e8f0; border: 1px solid var(--rk-tech-border); width: 100%; }
    .rk-toggle-btn.active { background: #ffffff; border-color: var(--rk-tech-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    .rk-tech-panel.active { grid-template-columns: 1fr; gap: 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-mokry-suchy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Czas nagrzewania w systemie mokrym a system suchy ogrzewania podłogowego – jakie są różnice?",
    "description": "System suchy skraca czas reakcji podłogówki o ponad 85% i eliminuje problem obciążenia stropów w domach szkieletowych. Porównanie bezwładności i wagi.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-mokry-suchy",
    "name": "Porównanie dynamiki i obciążeń: System Suchy vs Mokry",
    "description": "Dane techniczne pokazujące różnice w masie akumulacyjnej (kg/m2) oraz czasie reakcji cieplnej (minuty vs godziny) w zależności od wybranej technologii jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "system mokry czy suchy w wodnym ogrzewaniu podłogowym",
      "ogrzewanie podłogowe w domu szkieletowym",
      "czy ogrzewanie podłogowe nadaje się do drewnianego stropu",
      "czas nagrzewania systemu suchego",
      "waga wylewki betonowej na m2"
    ],
    "measurementTechnique": "Zestawienie obciążeń statycznych stropu w kg/m2 oraz empiryczny pomiar opóźnienia hydraulicznego (czasu nasycenia energią).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Mokry: Czas reakcji 6-10h, waga 130-150 kg/m2 (ryzyko dla starych stropów).",
        "System Suchy: Czas reakcji 20-45 min, waga ok. 25 kg/m2 (idealny dla domów szkieletowych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-mokry-suchy",
    "name": "Symulator Wyboru Technologii Podłogówki",
    "description": "Interaktywny przełącznik wizualizujący różnice w czasie nagrzewania i obciążeniu konstrukcji między jastrychem cementowym a zabudową lekką (lamelami aluminiowymi).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-module" id="tech-mokry-suchy">
    <div class="rk-tech-header">
        <h2>Czas nagrzewania w systemie mokrym a system suchy ogrzewania podłogowego – jakie są różnice?</h2>
        <p>Wybór między klasyczną wylewką a systemem suchym to nie tylko kwestia ceny. To decyzja o dynamice budynku i bezpieczeństwie konstrukcyjnym Twojego stropu.</p>
    </div>

    <div class="rk-tech-ui">
        <div class="rk-toggle-wrapper">
            <button class="rk-toggle-btn active" data-tech="mokry">
                <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 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>
                Klasyczny System Mokry
            </button>
            <button class="rk-toggle-btn" data-tech="suchy">
                <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="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                System Suchy (Zabudowa Lekka)
            </button>
            <div class="rk-toggle-slider"></div>
        </div>

        <div class="rk-tech-panel active" id="panel-mokry">
            <div class="rk-layer-box">
                <div class="rk-layer-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line></svg>
                    Struktura podłogi (Masa!)
                </div>
                <div class="rk-layer-diagram">
                    <div class="rk-layer layer-finish">Płytka / Gres (Opóźnienie)</div>
                    <div class="rk-layer layer-concrete">70 mm Betonu (Potężny Magazyn Ciepła)</div>
                    <div class="rk-layer layer-pex">Rura Grzewcza PEX</div>
                </div>
                <div class="rk-tech-desc">
                    Zastosowanie klasycznego systemu wiąże się z gigantycznym ciężarem. Montaż takiej wylewki na starych belkach to odpowiedź na to, dlaczego powstają pytania <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/" class="rk-tech-link">czy ogrzewanie podłogowe nadaje się do drewnianego stropu</a>. 
                    <div class="rk-alert-badge">Niesie to ogromne ryzyko katastrofy budowlanej!</div>
                </div>
            </div>

            <div class="rk-metrics-box">
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Czas reakcji (nagrzewanie)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-red);">6-10 godz.</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="95%" style="background: var(--rk-tech-red);"></div>
                    </div>
                </div>
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Obciążenie stropu (Ciężar)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-dark);">130-150 kg/m²</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="100%" style="background: var(--rk-tech-dark);"></div>
                    </div>
                </div>
                <p class="rk-tech-desc" style="margin-top:0;">Wybór tej technologii rodzi dylemat <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/" class="rk-tech-link">system mokry czy suchy w wodnym ogrzewaniu podłogowym</a>. Mokry ma doskonałą bezwładność, ale gigantyczne opóźnienie hydrauliczne.</p>
            </div>
        </div>

        <div class="rk-tech-panel" id="panel-suchy">
            <div class="rk-layer-box">
                <div class="rk-layer-title">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line></svg>
                    Struktura podłogi (Lekka)
                </div>
                <div class="rk-layer-diagram">
                    <div class="rk-layer layer-finish">Cienki Panel / Płytka z klejem</div>
                    <div class="rk-layer layer-alu">Lamela Aluminiowa (Szybki Radiator)</div>
                    <div class="rk-layer layer-pex">Rura Grzewcza w styropianie EPS</div>
                </div>
                <div class="rk-tech-desc">
                    W systemie suchym eliminujemy ciężki beton. Płyta gipsowo-włóknista z lamelami oddaje ciepło natychmiast. Jest to jedyne sensowne <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/" class="rk-tech-link">ogrzewanie podłogowe w domu szkieletowym</a>. Domy z drewna nie akumulują ciepła w ścianach – wymagają dynamicznej, błyskawicznej reakcji, którą daje tylko system suchy.
                </div>
            </div>

            <div class="rk-metrics-box">
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Czas reakcji (nagrzewanie)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-green);">20-45 min.</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="15%" style="background: var(--rk-tech-green);"></div>
                    </div>
                </div>
                <div class="rk-metric">
                    <div class="rk-metric-head">
                        <span class="rk-metric-label">Obciążenie stropu (Ciężar)</span>
                        <span class="rk-metric-val" style="color: var(--rk-tech-blue);">~25 kg/m²</span>
                    </div>
                    <div class="rk-progress-bg">
                        <div class="rk-progress-fill js-fill" data-width="20%" style="background: var(--rk-tech-blue);"></div>
                    </div>
                </div>
                <p class="rk-tech-desc" style="margin-top:0;">Dzięki skróceniu czasu reakcji o <strong>ponad 85%</strong>, system idealnie współpracuje z automatyką pokojową i błyskawicznie reaguje na nasłonecznienie.</p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleBtns = document.querySelectorAll('#tech-mokry-suchy .rk-toggle-btn');
    const panels = document.querySelectorAll('#tech-mokry-suchy .rk-tech-panel');

    // Funkcja odpalająca animacje pasków postępu
    function animateBars(panelId) {
        const activePanel = document.getElementById(panelId);
        const bars = activePanel.querySelectorAll('.js-fill');
        
        // Reset szerokości
        bars.forEach(bar => { bar.style.width = '0%'; });
        
        // Opóźnienie animacji dla efektu wizualnego
        setTimeout(() => {
            bars.forEach(bar => {
                const targetWidth = bar.getAttribute('data-width');
                bar.style.width = targetWidth;
            });
        }, 50);
    }

    // Inicjalna animacja dla domyślnego panelu
    animateBars('panel-mokry');

    toggleBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetTech = this.getAttribute('data-tech');
            const targetPanelId = 'panel-' + targetTech;

            // Reset stanów
            toggleBtns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Aktywacja wybranych
            this.classList.add('active');
            document.getElementById(targetPanelId).classList.add('active');

            // Uruchom animację pasków dla nowo otwartej zakładki
            animateBars(targetPanelId);
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-hover: #0284c7;
    --rk-calc-accent: #38bdf8;
    --rk-calc-bg: #ffffff;
    --rk-calc-gray: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-text-light: #94a3b8;
    --rk-calc-warning: #f59e0b;
}

.rk-calc-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-calc-blue);
    overflow: hidden;
}

/* Nagłówek */
.rk-calc-header {
    background: var(--rk-calc-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-calc-blue);
    position: relative;
    overflow: hidden;
}

.rk-calc-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(rgba(56, 189, 248, 0.15) 1px, transparent 1px);
    background-size: 15px 15px;
    opacity: 0.5;
}

.rk-calc-header-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-calc-icon {
    width: 60px;
    height: 60px;
    background: rgba(14, 165, 233, 0.2);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-calc-accent);
    border: 1px solid rgba(14, 165, 233, 0.4);
    flex-shrink: 0;
}

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

.rk-calc-header p {
    font-size: 15px;
    color: var(--rk-calc-text-light);
    margin: 0;
}

/* Główny układ interfejsu */
.rk-calc-dashboard {
    display: grid;
    grid-template-columns: 1fr 340px;
    background: var(--rk-calc-gray);
    border-bottom: 1px solid var(--rk-calc-border);
}

/* Lewa strona - Suwaki */
.rk-calc-controls {
    padding: 40px 50px;
    background: #ffffff;
}

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

.rk-calc-group:last-child {
    margin-bottom: 0;
}

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

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

.rk-calc-val-display {
    background: var(--rk-calc-gray);
    padding: 4px 12px;
    border-radius: 8px;
    font-family: monospace;
    font-weight: 800;
    font-size: 15px;
    color: var(--rk-calc-blue);
    border: 1px solid var(--rk-calc-border);
}

/* Stylizacja Suwaków */
input[type=range].rk-slider {
    -webkit-appearance: none;
    width: 100%;
    background: transparent;
}

input[type=range].rk-slider:focus {
    outline: none;
}

input[type=range].rk-slider::-webkit-slider-runnable-track {
    width: 100%;
    height: 8px;
    cursor: pointer;
    background: #cbd5e1;
    border-radius: 4px;
    transition: background 0.2s;
}

input[type=range].rk-slider::-webkit-slider-thumb {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    -webkit-appearance: none;
    margin-top: -8px;
    box-shadow: 0 4px 6px rgba(14, 165, 233, 0.3);
    border: 3px solid #ffffff;
    transition: transform 0.1s;
}

input[type=range].rk-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    background: var(--rk-calc-blue-hover);
}

/* Prawa strona - Wyniki (HUD) */
.rk-calc-results {
    background: var(--rk-calc-panel);
    padding: 40px 35px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-result-box {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

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

.rk-result-box.highlight::before {
    background: var(--rk-calc-accent);
    box-shadow: 0 0 15px var(--rk-calc-accent);
}

.rk-result-label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-calc-text-light);
    margin-bottom: 5px;
    font-weight: 700;
}

.rk-result-value {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    font-family: monospace;
}

.rk-result-unit {
    font-size: 16px;
    color: var(--rk-calc-accent);
    font-weight: 700;
}

#rk-calc-warning {
    display: none;
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid var(--rk-calc-warning);
    color: var(--rk-calc-warning);
    padding: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    margin-top: 10px;
}

/* Teoria / Algorytm */
.rk-calc-theory {
    padding: 40px 50px;
    background: var(--rk-calc-bg);
}

.rk-calc-theory h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 20px 0;
}

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

.rk-step-box {
    background: var(--rk-calc-gray);
    border-left: 4px solid var(--rk-calc-blue);
    padding: 20px;
    margin: 20px 0;
    border-radius: 0 12px 12px 0;
}

.rk-step-title {
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin-bottom: 10px;
    font-size: 17px;
}

.rk-formula {
    display: inline-block;
    background: #ffffff;
    padding: 8px 15px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-calc-blue);
    border: 1px solid var(--rk-calc-border);
    margin: 10px 0;
}

.rk-calc-theory ul {
    margin: 10px 0 15px 20px;
    padding: 0;
}

.rk-calc-theory li {
    margin-bottom: 5px;
}

.rk-tag-inline {
    background: var(--rk-calc-gray);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid var(--rk-calc-border);
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-theory {
        padding: 30px 20px;
    }
    
    .rk-calc-header-content {
        flex-direction: column;
        text-align: center;
    }
    
    .rk-calc-dashboard {
        grid-template-columns: 1fr;
    }
    
    .rk-calc-results {
        padding: 30px 20px;
    }
    
    .rk-result-value {
        font-size: 28px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Kalkulator czasu nagrzewania ogrzewania podłogowego i bezwładności termicznej",
    "description": "Interaktywny algorytm obliczania masy jastrychu, zapotrzebowania na energię rozruchową oraz czasu reakcji płyty grzewczej dla ogrzewania podłogowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-algorytm",
    "name": "Zmienne i stałe fizyczne bezwładności jastrychów",
    "description": "Dane wejściowe kalkulatora: parametry termodynamiczne jastrychów cementowych i anhydrytowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator czasu nagrzewania ogrzewania podłogowego",
      "grubość wylewki betonowej na ogrzewanie podłogowe",
      "wylewka betonowa na ogrzewanie podłogowe",
      "zapotrzebowanie na ciepło do ogrzewania",
      "ile wody potrzeba do wypełnienia instalacji podłogówki kalkulator"
    ],
    "measurementTechnique": "Algorytm bazujący na gęstości objętościowej (2200 kg/m3) i cieple właściwym betonu (0.2778 Wh/kgK) do wyznaczania energii fazy rozruchu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Masa płyty (M) = Powierzchnia (A) × Grubość (h) × Gęstość (ρ)",
        "Energia Rozruchu (Q) = M × ciepło właściwe (cw) × Delta T",
        "Czas nagrzewania (tau) = Q / (Moc źródła - Straty cieplne)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-kalkulator",
    "name": "Kalkulator Bezwładności Cieplnej Podłogówki",
    "description": "Narzędzie inżynierskie online w czasie rzeczywistym obliczające masę wylewki, wymaganą energię w kWh oraz czas nagrzewania w godzinach na podstawie wprowadzonych danych budynku.",
    "applicationCategory": "CalculatorApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-module" id="kalkulator-nagrzewania">
    
    <div class="rk-calc-header">
        <div class="rk-calc-header-content">
            <div class="rk-calc-icon">
                <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="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>
                <h2>Kalkulator Czasu Nagrzewania Podłogówki</h2>
                <p>Sprawdź na żywo, ile energii i czasu potrzebuje Twoja wylewka, by osiągnąć komfort cieplny.</p>
            </div>
        </div>
    </div>

    <div class="rk-calc-dashboard">
        
        <div class="rk-calc-controls">
            
            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Powierzchnia grzewcza (A)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-area">100</span> m²</span>
                </div>
                <input type="range" id="rk-calc-in-area" class="rk-slider" min="20" max="300" step="5" value="100">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Grubość wylewki (h)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-thick">7</span> cm</span>
                </div>
                <input type="range" id="rk-calc-in-thick" class="rk-slider" min="4" max="12" step="0.5" value="7">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Oczekiwany przyrost temp. (ΔT)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-temp">13</span> °C</span>
                </div>
                <input type="range" id="rk-calc-in-temp" class="rk-slider" min="1" max="25" step="1" value="13">
                <div style="font-size: 12px; color: #64748b; margin-top: 5px;">Różnica: Temp. Docelowa minus Temp. Początkowa.</div>
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Moc źródła ciepła (P)</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-power">6.0</span> kW</span>
                </div>
                <input type="range" id="rk-calc-in-power" class="rk-slider" min="2" max="20" step="0.5" value="6.0">
            </div>

            <div class="rk-calc-group">
                <div class="rk-calc-label-row">
                    <span class="rk-calc-label">Chwilowe straty ciepła budynku</span>
                    <span class="rk-calc-val-display"><span id="rk-calc-val-loss">2.0</span> kW</span>
                </div>
                <input type="range" id="rk-calc-in-loss" class="rk-slider" min="0" max="15" step="0.5" value="2.0">
            </div>

        </div>

        <div class="rk-calc-results">
            
            <div class="rk-result-box">
                <div class="rk-result-label">Masa Akumulacyjna Jastrychu</div>
                <div class="rk-result-value"><span id="rk-calc-out-mass">15 400</span> <span class="rk-result-unit">kg</span></div>
            </div>

            <div class="rk-result-box">
                <div class="rk-result-label">Energia potrzebna na start</div>
                <div class="rk-result-value"><span id="rk-calc-out-energy">55.6</span> <span class="rk-result-unit">kWh</span></div>
            </div>

            <div class="rk-result-box highlight">
                <div class="rk-result-label">Czas Pełnego Nagrzewania</div>
                <div class="rk-result-value"><span id="rk-calc-out-time">13.9</span> <span class="rk-result-unit">godz.</span></div>
            </div>

            <div id="rk-calc-warning">⚠️ Uwaga: Straty ciepła są równe lub większe od mocy źródła. Płyta nigdy się nie nagrzeje!</div>

        </div>
    </div>

    <div class="rk-calc-theory">
        <h3>Algorytm obliczania bezwładności termicznej i zapotrzebowania na energię rozruchową płyty grzewczej</h3>
        <div class="rk-theory-text">
            <p>Aby precyzyjnie określić, ile energii (<span class="rk-tag-inline">E</span>) i czasu (<span class="rk-tag-inline">τ</span>) potrzebuje płyta grzewcza do osiągnięcia temperatury roboczej, należy przeprowadzić wieloetapowe obliczenia inżynierskie bazujące na masie układu, cieple właściwym betonu oraz projektowej mocy jednostkowej.</p>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 1: Obliczenie masy płyty grzewczej (M)</div>
                <p>Masę jastrychu cementowego wyznaczamy ze wzoru:</p>
                <div class="rk-formula">M = A × h × ρ</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>A</strong> – powierzchnia grzewcza [m²]</li>
                    <li><strong>h</strong> – całkowita grubość wylewki [m]</li>
                    <li><strong>ρ</strong> – gęstość objętościowa jastrychu (dla betonu cementowego przyjmuje się 2200 kg/m³, dla anhydrytu 2100 kg/m³).</li>
                </ul>
                <p><em>Przykład dla powierzchni A = 100 m² i grubości wylewki h = 0,07 m:</em><br>
                M = 100 × 0.07 × 2200 = <strong>15400 kg</strong></p>
            </div>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 2: Energia potrzebna do podniesienia temp. wylewki (Q_roz)</div>
                <p>Ilość energii niezbędnej do nagrzania masy betonu o zadaną różnicę temperatur (ΔT) określa fundamentalne równanie termodynamiki:</p>
                <div class="rk-formula">Q_roz = M × c_w × ΔT</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>c_w</strong> – ciepło właściwe jastrychu (dla betonu przyjmuje się 1.0 kJ/(kg·K), co odpowiada 0.2778 Wh/(kg·K))</li>
                    <li><strong>ΔT</strong> – wymagany przyrost temperatury płyty (np. od stanu zimnego 15°C do średniej temperatury pracy 28°C, czyli ΔT = 13 K).</li>
                </ul>
                <p><em>Podstawiając dane:</em><br>
                Q_roz = 15400 × 0.2778 × 13 = <strong>55615.56 Wh ≈ 55.62 kWh</strong></p>
            </div>

            <div class="rk-step-box">
                <div class="rk-step-title">Krok 3: Wyznaczenie czasu nagrzewania strukturalnego (τ)</div>
                <p>Czas potrzebny na dostarczenie tej energii przy założeniu projektowej strumieniowej wydajności cieplnej instalacji (P_inst) obliczamy ze wzoru:</p>
                <div class="rk-formula">τ = Q_roz / (P_inst - Q_strat)</div>
                <p>Gdzie:</p>
                <ul>
                    <li><strong>P_inst</strong> – całkowita moc dostarczana przez źródło ciepła do pętli (np. 6000 W dla domu o powierzchni 100 m²).</li>
                    <li><strong>Q_strat</strong> – chwilowe straty ciepła budynku do otoczenia w trakcie nagrzewania (przyjmijmy średnio 2000 W).</li>
                </ul>
                <p><em>Obliczenie czasu:</em><br>
                τ = 55615.56 / 4000 = <strong>13.9 godzin</strong></p>
            </div>

            <p><strong>Wnioski z algorytmu:</strong> Układ potrzebuje blisko 14 godzin ciągłej pracy źródła ciepła z pełną mocą <u>wyłącznie na nasycenie termiczne samego betonu</u>, nie wliczając w to ogrzania kubatury powietrza i skompensowania bieżących strat przez przegrody.</p>
        </div>
    </div>
</div>

<script>
// Używamy bezpiecznej, zanonimizowanej funkcji wykonującej się po załadowaniu drzewa DOM
(function() {
    function initCalc() {
        // Zabezpieczenie przed błędem w przypadku braku kontenera
        if (!document.getElementById('kalkulator-nagrzewania')) return;

        // Pobieranie elementów suwaków (z bezpiecznymi prefiksami rk-calc-)
        const inArea = document.getElementById('rk-calc-in-area');
        const inThick = document.getElementById('rk-calc-in-thick');
        const inTemp = document.getElementById('rk-calc-in-temp');
        const inPower = document.getElementById('rk-calc-in-power');
        const inLoss = document.getElementById('rk-calc-in-loss');

        // Pobieranie etykiet
        const valArea = document.getElementById('rk-calc-val-area');
        const valThick = document.getElementById('rk-calc-val-thick');
        const valTemp = document.getElementById('rk-calc-val-temp');
        const valPower = document.getElementById('rk-calc-val-power');
        const valLoss = document.getElementById('rk-calc-val-loss');

        // Pobieranie wyników
        const outMass = document.getElementById('rk-calc-out-mass');
        const outEnergy = document.getElementById('rk-calc-out-energy');
        const outTime = document.getElementById('rk-calc-out-time');
        const warningBox = document.getElementById('rk-calc-warning');

        const density = 2200; 
        const specHeat = 0.2778; 

        function formatNumber(num) {
            return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
        }

        function calculateEngine() {
            // Bezpieczne parsowanie (fallback do 0)
            const area = parseFloat(inArea.value) || 0;
            const thickCm = parseFloat(inThick.value) || 0;
            const deltaT = parseFloat(inTemp.value) || 0;
            const powerKW = parseFloat(inPower.value) || 0;
            const lossKW = parseFloat(inLoss.value) || 0;

            // Update UI (textContent jest bezpieczniejszy dla WordPressa niż innerText)
            valArea.textContent = area;
            valThick.textContent = thickCm;
            valTemp.textContent = deltaT;
            valPower.textContent = powerKW.toFixed(1);
            valLoss.textContent = lossKW.toFixed(1);

            // Obliczenia matematyczne
            const mass = area * (thickCm / 100) * density;
            const energyKWh = (mass * specHeat * deltaT) / 1000;
            const effectivePower = powerKW - lossKW;

            outMass.textContent = formatNumber(Math.round(mass));
            outEnergy.textContent = energyKWh.toFixed(1);

            // Walidacja logiki (Moc musi być większa niż straty)
            if (effectivePower <= 0.0) {
                outTime.textContent = "-";
                warningBox.style.display = "block";
            } else {
                warningBox.style.display = "none";
                const timeHours = energyKWh / effectivePower;
                outTime.textContent = timeHours.toFixed(1);
            }
        }

        // Dodanie podwójnych listenerów dla pełnego pokrycia (input na żywo, change po puszczeniu palca)
        const inputs = [inArea, inThick, inTemp, inPower, inLoss];
        inputs.forEach(input => {
            if (input) {
                input.addEventListener('input', calculateEngine);
                input.addEventListener('change', calculateEngine);
            }
        });

        // Wymuszenie pierwszej kalkulacji
        calculateEngine();
    }

    // Odporne przypięcie skryptu
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initCalc);
    } else {
        initCalc();
    }
})();
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-orange-light: #fff7ed;
    --rk-err-blue: #0284c7;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
}

.rk-errors-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: linear-gradient(135deg, var(--rk-err-dark) 0%, #290a0a 100%);
    padding: 35px 45px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-err-red);
    display: flex;
    align-items: center;
    gap: 25px;
}

.rk-err-alert-icon {
    width: 65px;
    height: 65px;
    background: rgba(239, 68, 68, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-red);
    border: 1px solid rgba(239, 68, 68, 0.3);
    flex-shrink: 0;
    animation: pulseAlert 2s infinite;
}

@keyframes pulseAlert {
    0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

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

.rk-err-header p {
    font-size: 15px;
    color: #fca5a5;
    margin: 0;
    line-height: 1.5;
}

/* Interaktywny Układ (Zakładki/Akordeon) */
.rk-err-container {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #f8fafc;
}

/* Lista przycisków (Lewa strona na desktopie) */
.rk-err-nav {
    padding: 30px;
    background: #ffffff;
    border-right: 1px solid var(--rk-err-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    text-align: left;
    padding: 18px 20px;
    background: var(--rk-err-bg);
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
    position: relative;
    overflow: hidden;
}

.rk-err-btn-icon {
    width: 36px;
    height: 36px;
    background: #f1f5f9;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-muted);
    transition: all 0.3s ease;
}

.rk-err-btn span {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-err-text);
    line-height: 1.3;
    transition: color 0.3s ease;
}

.rk-err-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

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

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

.rk-err-btn.active span {
    color: var(--rk-err-red);
}

/* BEZWZGLĘDNE UKRYCIE KONTENERÓW MOBILNYCH NA DESKTOPIE */
.rk-err-mobile-content {
    display: none;
}

/* Treść (Prawa strona na desktopie) */
.rk-err-content-area {
    padding: 40px;
    position: relative;
    background: #f8fafc;
}

.rk-err-panel {
    display: none;
    animation: slideInFade 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

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

@keyframes slideInFade {
    from { opacity: 0; transform: translateX(15px); }
    to { opacity: 1; transform: translateX(0); }
}

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

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

/* Boks "Konsekwencja" */
.rk-err-consequence {
    background: #ffffff;
    border-left: 4px solid var(--rk-err-orange);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-err-consequence-title {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--rk-err-orange);
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

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

.rk-err-link {
    color: var(--rk-err-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-err-link:hover {
    border-color: var(--rk-err-blue);
}

/* RWD - Mobile (Akordeon) */
@media (max-width: 768px) {
    .rk-err-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-err-container {
        grid-template-columns: 1fr;
        background: #ffffff;
    }
    .rk-err-nav {
        padding: 20px;
        border-right: none;
    }
    
    .rk-err-content-area {
        display: none; 
    }
    
    /* Na mobile nadajemy style i pozwalamy JS-owi kontrolować wyświetlanie poprzez klasę active na przycisku */
    .rk-err-mobile-content {
        padding: 20px;
        background: #f8fafc;
        border: 1px solid var(--rk-err-red);
        border-top: none;
        border-radius: 0 0 12px 12px;
        margin-top: -10px;
        margin-bottom: 15px;
        animation: fadeIn 0.3s;
    }
    
    .rk-err-btn.active {
        border-radius: 12px 12px 0 0;
        margin-bottom: 0;
    }
    
    .rk-err-btn.active + .rk-err-mobile-content {
        display: block;
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-bledy-wykonawcze",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Najczęstsze błędy instalatorów i inwestorów wydłużające czas nagrzewania podłogówki",
    "description": "Lista krytycznych błędów przy montażu ogrzewania podłogowego, takich jak zbyt cienki styropian, brak dylatacji czy zapowietrzenie układu, które generują potężne straty energii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-06-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-bledy-wykonawcze",
    "name": "Zestawienie krytycznych błędów wykonawczych w systemach płaszczyznowych",
    "description": "Techniczna analiza skutków błędnego montażu instalacji hydraulicznych podposadzkowych, ze szczególnym uwzględnieniem strat cieplnych i uszkodzeń strukturalnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "ile styropianu pod ogrzewanie podłogowe",
      "izolacja brzegowa i dylatacje w podłogówce",
      "objawy zapowietrzenia ogrzewania podłogowego",
      "plastyfikator do wylewki na podłogówkę"
    ],
    "measurementTechnique": "Analiza empiryczna spadku wydajności i wydłużenia czasu nagrzewania układu w wyniku wad instalacyjnych i materiałowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Niedostateczna izolacja gruntu (straty w dół).",
        "Brak stref dylatacyjnych (uszkodzenia mechaniczne).",
        "Powietrze w pętlach (blokada przepływu hydraulicznego).",
        "Zła mieszanka betonowa (powstanie izolatora powietrznego w jastrychu)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-bledy-wykonawcze",
    "name": "Symulator Skutków Błędów Instalacyjnych",
    "description": "Interaktywny panel demonstrujący ciąg przyczynowo-skutkowy najpoważniejszych błędów podczas wylewania i uruchamiania instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-module" id="bledy-wykonawcze-app">
    <div class="rk-err-header">
        <div class="rk-err-alert-icon">
            <svg width="34" height="34" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div>
            <h2>Najczęstsze błędy instalatorów i inwestorów</h2>
            <p>Oto lista krytycznych błędów wykonawczych i eksploatacyjnych, które zamieniają komfortowe ogrzewanie podłogowe w powolny, niewydolny i drogi w utrzymaniu system.</p>
        </div>
    </div>

    <div class="rk-err-container">
        <div class="rk-err-nav">
            <button class="rk-err-btn active" data-target="err-1">
                <div class="rk-err-btn-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="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path><path d="M12 7v5"></path></svg>
                </div>
                <span>Zbyt cienka izolacja<br>termiczna (styropian)</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-1"></div>

            <button class="rk-err-btn" data-target="err-2">
                <div class="rk-err-btn-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="M3 3v18h18"></path><path d="m19 9-5 5-4-4-3 3"></path></svg>
                </div>
                <span>Brak taśmy brzegowej<br>i dylatacji jastrychu</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-2"></div>

            <button class="rk-err-btn" data-target="err-3">
                <div class="rk-err-btn-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><path d="M8 12h8"></path><path d="M12 8v8"></path></svg>
                </div>
                <span>Zapowietrzenie pętli<br>grzewczych układu</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-3"></div>

            <button class="rk-err-btn" data-target="err-4">
                <div class="rk-err-btn-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="M9 3h6v4l-3 4-3-4V3z"></path><path d="M14.5 11 18 16a2 2 0 0 1-1.6 3.2H7.6A2 2 0 0 1 6 16l3.5-5"></path></svg>
                </div>
                <span>Brak plastyfikatora<br>w jastrychu cementowym</span>
            </button>
            <div class="rk-err-mobile-content" id="mob-err-4"></div>
        </div>

        <div class="rk-err-content-area">
            
            <div class="rk-err-panel active" id="err-1">
                <h3>Zastosowanie nieprawidłowej izolacji termicznej pod jastrychem</h3>
                <p class="rk-err-desc">
                    Ułożenie zbyt cienkiej warstwy styropianu EPS100 na gruncie (np. 5 cm zamiast projektowanych 15-20 cm) to kardynalny błąd. Wiele osób zastanawia się <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/" class="rk-err-link">ile styropianu pod ogrzewanie podłogowe</a> należy ułożyć – odpowiedź zawsze musi wynikać z obliczeń współczynnika przenikania ciepła U dla podłogi na gruncie, który wg WT2021 nie może przekroczyć 0,30 W/(m²·K).
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Ciepło zamiast wędrować w górę (do pomieszczenia), ucieka w dół, w głąb gruntu. Podłogówka nagrzewa się bez końca, pochłaniając gigantyczne ilości energii, podczas gdy dolna strefa płyty grzewczej jest stale schładzana przez fundament.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-2">
                <h3>Brak lub nieprawidłowe wykonanie szczelin dylatacyjnych</h3>
                <p class="rk-err-desc">
                    Brak wykonania nacięć dylatacyjnych w progach drzwiowych oraz przy powierzchniach przekraczających 40 m² (lub przy długości boku powyżej 8 m) prowadzi do katastrofy. Prawidłowa <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" class="rk-err-link">izolacja brzegowa i dylatacje w instalacji ogrzewania podłogowego</a> to jedyny sposób na skompensowanie rozszerzalności termicznej betonu.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Brak elastycznej taśmy brzegowej (o grubości min. 8-10 mm) powoduje, że rozszerzająca się nagrzana płyta uderza w ściany konstrukcyjne. Następuje zablokowanie naprężeń, niekontrolowane pękanie wylewki oraz ryzyko zgilotynowania (przerwania) mechanicznego rur grzewczych PEX.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-3">
                <h3>Zapowietrzenie pętli grzewczych rozdzielacza</h3>
                <p class="rk-err-desc">
                    Brak rzetelnego odpowietrzenia każdej pętli z osobna przy użyciu zewnętrznej pompy o dużym wydatku na etapie napełniania instalacji wodą z kranu lub zdemineralizowaną. Zignorowanie procedury sprawia, że widoczne są ewidentne <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/" class="rk-err-link">objawy zapowietrzenia ogrzewania podłogowego</a> na rotametrach i termometrach.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Korki powietrzne fizycznie blokują przepływ wody. Rotametry w opadają do zera (przepływ 0 l/min). Woda krąży tylko przez najkrótsze, najmniejsze pętle, podczas gdy zapowietrzone pomieszczenia pozostają całkowicie zimne, niezależnie od tego, jak mocno grzeje źródło ciepła.</p>
                </div>
            </div>

            <div class="rk-err-panel" id="err-4">
                <h3>Brak chemii budowlanej (plastyfikatora) w jastrychu</h3>
                <p class="rk-err-desc">
                    Wylanie mieszanki betonowej z tzw. "miksokreta" bez zastosowania odpowiedniej chemii. Idealna <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-err-link">wylewka betonowa na ogrzewanie podłogowe</a> wymaga dedykowanego plastyfikatora, który redukuje ilość wody zarobowej i uelastycznia zaprawę otulającą rurę.
                </p>
                <div class="rk-err-consequence">
                    <div class="rk-err-consequence-title">
                        <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                        Bezpośrednia konsekwencja
                    </div>
                    <p>Bez chemii powstaje suchy, porowaty beton o bardzo niskiej gęstości z tysiącami mikropustek powietrznych wewnątrz struktury. Powietrze to doskonały izolator – drastycznie obniża on przewodność cieplną wylewki, przez co czas nagrzewania podłogi wydłuża się co najmniej dwukrotnie.</p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errorBtns = document.querySelectorAll('#bledy-wykonawcze-app .rk-err-btn');
    const desktopPanels = document.querySelectorAll('#bledy-wykonawcze-app .rk-err-panel');

    // Kopiowanie treści paneli do kontenerów mobilnych
    desktopPanels.forEach((panel, index) => {
        const mobContainer = document.getElementById(`mob-err-${index + 1}`);
        if(mobContainer) {
            mobContainer.innerHTML = panel.innerHTML;
        }
    });

    errorBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            if (window.innerWidth <= 768) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    return;
                }
            }

            // Reset aktywnych przycisków
            errorBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Aktywacja paneli na desktopie
            desktopPanels.forEach(panel => {
                panel.classList.remove('active');
                if (panel.id === targetId) {
                    panel.classList.add('active');
                }
            });
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-darker: #020617;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #38bdf8;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #cbd5e1;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
}

.rk-blueprint-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, 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;
}

/* Nagłówek w stylu Blueprint z poprawionym tłem warstwowym */
.rk-proj-header {
    background-color: var(--rk-proj-dark);
    background-image: 
        linear-gradient(rgba(56, 189, 248, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(56, 189, 248, 0.08) 1px, transparent 1px),
        linear-gradient(135deg, var(--rk-proj-darker) 0%, var(--rk-proj-dark) 100%);
    background-size: 20px 20px, 20px 20px, 100% 100%;
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-proj-blue);
}

.rk-proj-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-proj-header p {
    font-size: 16px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Interaktywna Konsola */
.rk-proj-console {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-proj-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px;
    margin-bottom: 30px;
}

.rk-proj-card {
    background: var(--rk-proj-bg);
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 30px;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-proj-card:hover {
    border-color: var(--rk-proj-accent);
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(2, 132, 199, 0.2);
}

.rk-proj-card.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-blue-light);
    box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.1);
}

.rk-card-icon {
    width: 54px;
    height: 54px;
    background: var(--rk-proj-dark);
    color: var(--rk-proj-accent);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: all 0.3s ease;
}

.rk-proj-card.active .rk-card-icon {
    background: var(--rk-proj-blue);
    color: #ffffff;
    transform: scale(1.1);
}

.rk-proj-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-proj-card p.rk-card-subtitle {
    font-size: 14px;
    color: var(--rk-proj-muted);
    margin: 0;
    font-weight: 600;
}

/* Szuflady z Detalami (Drawers) */
.rk-proj-drawers {
    position: relative;
}

.rk-proj-drawer {
    display: none;
    background: var(--rk-proj-bg);
    border: 1px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 35px;
    animation: drawerOpen 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-proj-drawer.active {
    display: block;
}

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

.rk-drawer-content {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-proj-text);
}

.rk-drawer-content p {
    margin: 0 0 15px 0;
}

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

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

.rk-proj-link:hover {
    color: var(--rk-proj-dark);
}

.rk-tech-badge {
    display: inline-block;
    background: #f1f5f9;
    color: var(--rk-proj-dark);
    padding: 2px 8px;
    border-radius: 6px;
    font-family: monospace;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid #e2e8f0;
}

/* Mocne CTA */
.rk-proj-cta-section {
    background: var(--rk-proj-bg);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

.rk-proj-cta-section h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 25px 0;
}

.rk-btn-blueprint {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    background: var(--rk-proj-dark);
    color: var(--rk-proj-accent);
    font-size: 18px;
    font-weight: 800;
    padding: 20px 45px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 15px 30px -10px rgba(15, 23, 42, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-blueprint:hover {
    transform: translateY(-4px);
    background: var(--rk-proj-darker);
    border-color: var(--rk-proj-accent);
    box-shadow: 0 20px 40px -10px rgba(56, 189, 248, 0.4);
    color: #ffffff;
}

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

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

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-console, .rk-proj-cta-section {
        padding: 30px 25px;
    }
    
    .rk-proj-cards {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .rk-proj-drawer {
        padding: 25px;
        margin-top: -10px;
        border-radius: 0 0 16px 16px;
        border-top: none;
    }
    
    .rk-proj-card.active {
        border-radius: 16px 16px 0 0;
        transform: none;
    }
    
    .rk-proj-card:hover {
        transform: none;
    }
    
    .rk-btn-blueprint {
        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/ile-czasu-nagrzewa-sie-podlogowka/#article-wplyw-projektu",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Jak czas nagrzewania podłogówki wpływa na profesjonalny projekt instalacji grzewczej?",
    "description": "Zobacz, jak obliczenia OZC, dobór pompy obiegowej i rozstaw rur definują czas reakcji systemu podłogowego. Profesjonalne parametry hydrauliczne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-wplyw-projektu",
    "name": "Wpływ parametrów hydraulicznych na czas nagrzewania",
    "description": "Zestawienie analityczne korelacji pomiędzy inżynierskimi decyzjami projektowymi a dynamiką pracy wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego",
      "obliczeniowe zapotrzebowanie na ciepło OZC",
      "rozstaw rur w ogrzewaniu podłogowym",
      "maksymalna długość pętli podłogówki",
      "dobór pompy obiegowej do podłogówki"
    ],
    "measurementTechnique": "Wykorzystanie oprogramowania inżynierskiego (Instal-System, Audytor OZC) do modelowania przepływów hydraulicznych i natężenia strat cieplnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bilans wg PN-EN 12831: Redukcja rozstawu rur w strefach brzegowych do 10 cm.",
        "Optymalizacja hydrauliczna: Ograniczenie pętli (rura 16x2.0 mm) i wymuszenie przepływu 1.5-2.5 l/min."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-wplyw-projektu",
    "name": "Konsola Parametrów Projektowych",
    "description": "Interaktywny moduł edukacyjny wyjaśniający, jak profesjonalny inżynier dopasowuje OZC i opory hydrauliczne, aby zoptymalizować bezwładność cieplną.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-blueprint-module" id="projekt-blueprint-app">
    <div class="rk-proj-header">
        <h2>Jak czas nagrzewania podłogówki wpływa na profesjonalny projekt?</h2>
        <p>Bezwładność cieplna to nie jest wyrok. To mierzalny parametr wyjściowy, który bezwzględnie determinuje proces projektowania instalacji płaszczyznowej w zaawansowanych programach inżynierskich.</p>
    </div>

    <div class="rk-proj-console">
        <div class="rk-proj-cards">
            <div class="rk-proj-card active" data-tab="tab-ozc" id="card-ozc">
                <div class="rk-card-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="M2 20h.01"></path><path d="M7 20v-4"></path><path d="M12 20v-8"></path><path d="M17 20V8"></path><path d="M22 4v16"></path></svg>
                </div>
                <h3>Powiązanie z OZC</h3>
                <p class="rk-card-subtitle">Obliczeniowe Zapotrzebowanie na Ciepło</p>
            </div>
            <div class="rk-proj-drawer rk-mob-drawer" id="mob-tab-ozc"></div>

            <div class="rk-proj-card" data-tab="tab-hydro" id="card-hydro">
                <div class="rk-card-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 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>
                <h3>Regulacja i Przepływy</h3>
                <p class="rk-card-subtitle">Opory pętli i dobór pompy</p>
            </div>
            <div class="rk-proj-drawer rk-mob-drawer" id="mob-tab-hydro"></div>
        </div>

        <div class="rk-proj-drawers" id="desktop-drawers">
            
            <div class="rk-proj-drawer active" id="tab-ozc">
                <div class="rk-drawer-content">
                    <p>Projektant nigdy nie dobiera układu rur „z katalogu”. Kluczem jest jednostkowe obciążenie cieplne danego pomieszczenia <span class="rk-tech-badge">W/m²</span>, wyznaczone z rzetelnego <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-proj-link">bilansu strat OZC</a> (wg normy <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/" class="rk-proj-link">PN-EN 12831</a>).</p>
                    <p>Jeśli pokój ma wysokie straty ciepła (np. salon z ogromnymi przeszkleniami), projektant zmuszony jest zagęścić <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-proj-link">rozstaw rur</a> do 10 cm lub zaprojektować osobną, niezależną <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/" class="rk-proj-link">strefę brzegową</a> wzdłuż okien. Zwiększa to średnią temperaturę płyty i drastycznie skraca czas reakcji układu na nagłe wychłodzenie wywołane infiltracją zimnego powietrza.</p>
                </div>
            </div>

            <div class="rk-proj-drawer" id="tab-hydro">
                <div class="rk-drawer-content">
                    <p>Zbyt długa pętla grzewcza (przekraczająca <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/" class="rk-proj-link">maksymalną długość</a> np. 100-120 m dla standardowej rury <span class="rk-tech-badge">16 x 2.0 mm</span>) generuje gigantyczne opory hydrauliczne. Powoduje to drastyczny spadek przepływu masowego medium.</p>
                    <p>Przy słabym przepływie woda oddaje całe ciepło na początku pętli, a końcówka strefy pozostaje zimna, co wydłuża czas nagrzewania tej części pokoju do kilkunastu godzin! Prawidłowy projekt ściśle definiuje nastawy wstępne na rotometrach rozdzielacza (np. <span class="rk-tech-badge">1.5 - 2.5 l/min</span>), gwarantując równomierne nasycenie wylewki energią, oraz określa wymaganą wysokość podnoszenia <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-proj-link">pompy obiegowej</a> (np. <span class="rk-tech-badge">6 mH₂O</span>), eliminując ryzyko powstania martwych stref grzewczych.</p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-proj-cta-section">
        <h4>Nie ryzykuj błędów. Zbuduj podłogówkę na precyzyjnych obliczeniach.</h4>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-blueprint">
            ZAMÓW PROJEKT OGRZEWANIA PODŁOGOWEGO
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const cards = document.querySelectorAll('#projekt-blueprint-app .rk-proj-card');
    const desktopDrawers = document.querySelectorAll('#projekt-blueprint-app #desktop-drawers .rk-proj-drawer');
    const desktopDrawersContainer = document.getElementById('desktop-drawers');
    
    // Kopiowanie zawartości na potrzeby widoku mobilnego (akordeon)
    const cloneToMobile = () => {
        desktopDrawers.forEach(drawer => {
            const mobTarget = document.getElementById('mob-' + drawer.id);
            if(mobTarget) {
                mobTarget.innerHTML = drawer.innerHTML;
            }
        });
    };
    cloneToMobile();

    cards.forEach(card => {
        card.addEventListener('click', function() {
            const targetTab = this.getAttribute('data-tab');
            const isMobile = window.innerWidth <= 768;

            // Logika dla urządzeń mobilnych (zamykanie aktywnej karty)
            if (isMobile) {
                if (this.classList.contains('active')) {
                    this.classList.remove('active');
                    const activeMobDrawer = document.getElementById('mob-' + targetTab);
                    if(activeMobDrawer) {
                        activeMobDrawer.classList.remove('active');
                    }
                    return; // Zakończ, jeśli tylko zamykamy
                }
            }

            // Reset wszystkich kart i szuflad (mobilnych i desktopowych)
            cards.forEach(c => c.classList.remove('active'));
            desktopDrawers.forEach(d => d.classList.remove('active'));
            document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));

            // Aktywacja klikniętej karty
            this.classList.add('active');

            if (isMobile) {
                // Pokazujemy szufladę mobilną bezpośrednio pod kartą
                desktopDrawersContainer.style.display = 'none';
                const mobDrawer = document.getElementById('mob-' + targetTab);
                if(mobDrawer) {
                    mobDrawer.classList.add('active');
                }
            } else {
                // Pokazujemy szufladę desktopową w dolnej strefie
                desktopDrawersContainer.style.display = 'block';
                const deskDrawer = document.getElementById(targetTab);
                if(deskDrawer) {
                    deskDrawer.classList.add('active');
                }
            }
        });
    });

    // Nasłuchuj na zmianę rozmiaru okna, by zresetować widoki przy przejściu mobile <-> desktop
    window.addEventListener('resize', function() {
        const activeCard = document.querySelector('#projekt-blueprint-app .rk-proj-card.active');
        if (activeCard) {
            const targetTab = activeCard.getAttribute('data-tab');
            if (window.innerWidth <= 768) {
                desktopDrawersContainer.style.display = 'none';
                document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));
                const mobDrawer = document.getElementById('mob-' + targetTab);
                if(mobDrawer) mobDrawer.classList.add('active');
            } else {
                desktopDrawersContainer.style.display = 'block';
                document.querySelectorAll('#projekt-blueprint-app .rk-mob-drawer').forEach(md => md.classList.remove('active'));
                desktopDrawers.forEach(d => d.classList.remove('active'));
                const deskDrawer = document.getElementById(targetTab);
                if(deskDrawer) deskDrawer.classList.add('active');
            }
        }
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-accent: #38bdf8;
    --rk-case-bg: #ffffff;
    --rk-case-gray: #f8fafc;
    --rk-case-border: #e2e8f0;
    --rk-case-text: #334155;
    
    --rk-case-red: #ef4444;
    --rk-case-red-bg: #fef2f2;
    --rk-case-green: #10b981;
    --rk-case-green-bg: #ecfdf5;
    --rk-case-gold: #b45309;
}

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

/* Nagłówek Case Study */
.rk-case-header {
    background: var(--rk-case-dark);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-case-blue);
    position: relative;
    overflow: hidden;
}

.rk-case-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: 
        linear-gradient(rgba(56, 189, 248, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(56, 189, 248, 0.1) 1px, transparent 1px);
    background-size: 20px 20px;
    opacity: 0.8;
}

.rk-case-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(56, 189, 248, 0.2);
    color: var(--rk-case-accent);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-case-header h2 {
    font-size: 30px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.rk-case-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
    position: relative;
    z-index: 2;
}

/* Interfejs Przełącznika */
.rk-case-ui {
    background: var(--rk-case-gray);
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-case-border);
}

.rk-case-toggle {
    display: flex;
    background: #e2e8f0;
    padding: 8px;
    border-radius: 16px;
    margin-bottom: 35px;
    position: relative;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.rk-case-btn {
    flex: 1;
    padding: 16px 15px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    border-radius: 12px;
    position: relative;
    z-index: 2;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-case-btn.active { color: var(--rk-case-dark); }

.rk-case-slider {
    position: absolute;
    top: 8px; bottom: 8px; left: 8px;
    width: calc(50% - 8px);
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-case-btn[data-scenario="pro"].active ~ .rk-case-slider {
    transform: translateX(100%);
}

/* Widoki Scenariuszy */
.rk-scenario-view {
    display: none;
    animation: fadeInCase 0.4s ease forwards;
}

.rk-scenario-view.active { display: block; }

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

/* Dashboard Wyników */
.rk-case-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    margin-bottom: 25px;
}

.rk-case-metric {
    background: #ffffff;
    border: 2px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-metric-bad { border-color: var(--rk-case-red); background: var(--rk-case-red-bg); }
.rk-metric-good { border-color: var(--rk-case-green); background: var(--rk-case-green-bg); }

.rk-case-metric-icon {
    margin-bottom: 12px;
    display: flex;
    justify-content: center;
}

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

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

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

.rk-metric-bad .rk-case-metric-val { color: #991b1b; }
.rk-metric-good .rk-case-metric-val { color: #065f46; }

/* Raport Podsumowujący w UI */
.rk-case-report {
    background: #ffffff;
    border: 1px solid var(--rk-case-border);
    border-radius: 16px;
    padding: 25px 30px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    box-shadow: 0 10px 20px -5px rgba(0,0,0,0.03);
}

.rk-report-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.report-bad .rk-report-icon { background: var(--rk-case-red-bg); color: var(--rk-case-red); }
.report-good .rk-report-icon { background: var(--rk-case-green-bg); color: var(--rk-case-green); }

.rk-report-text h4 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px 0;
    color: var(--rk-case-dark);
}

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

.rk-highlight-roi {
    display: inline-block;
    background: var(--rk-case-gold);
    color: #ffffff;
    padding: 4px 10px;
    border-radius: 6px;
    font-weight: 800;
    margin-top: 10px;
    font-size: 14px;
}

/* Treść Artykułu / Rozwinięcie */
.rk-case-content {
    padding: 45px 50px;
}

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

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

.rk-case-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-case-dark);
    margin: 35px 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-case-content h3 svg { color: var(--rk-case-blue); }

.rk-inline-link {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}
.rk-inline-link:hover { color: var(--rk-case-dark); }

/* RWD */
@media (max-width: 768px) {
    .rk-case-header, .rk-case-ui, .rk-case-content { padding: 30px 20px; }
    .rk-case-toggle { flex-direction: column; background: transparent; padding: 0; }
    .rk-case-slider { display: none; }
    .rk-case-btn { background: #e2e8f0; border: 1px solid var(--rk-case-border); margin-bottom: 10px; width: 100%; }
    .rk-case-btn.active { background: #ffffff; border-color: var(--rk-case-blue); box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
    
    .rk-case-dashboard { grid-template-columns: 1fr; gap: 15px; }
    .rk-case-report { flex-direction: column; text-align: center; align-items: center; padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Case Study: Analiza porównawcza kosztów eksploatacji ogrzewania podłogowego",
    "description": "Zestawienie rzeczywistych oszczędności na kosztach ogrzewania w domu 150 m2. Porównanie instalacji z projektem OZC i bezwładnością układu na tle montażu amatorskiego.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-casestudy",
    "name": "Eksploatacyjne ROI Projektu Ogrzewania Podłogowego",
    "description": "Zestawienie danych wskaźnikowych COP pompy ciepła, czasu nagrzewania oraz kosztów rocznych w zależności od poprawności wylewki i rozstawu rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rzeczywiste oszczędności na kosztach ogrzewania w skali roku",
      "koszt ogrzewania domu 2025",
      "projektowe obciążenie cieplne ozc",
      "niska temperatura zasilania pompy ciepła dlaczego 35 stopni to ideał dla podłogówki",
      "ile kosztuje 100 m² ogrzewania podłogowego"
    ],
    "measurementTechnique": "Modelowanie kosztów i wydajności w oparciu o różnicę sprawności SCOP dla parametrów zasilania 45°C (błędy instalacyjne) vs 35°C (zoptymalizowany projekt OZC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant bez projektu: zasilanie 45°C, COP 2.8, roczny koszt ogrzewania o około 2100 zł wyższy.",
        "Wariant Inżynierski: zasilanie 35°C, COP 4.6, pełna kontrola nad bezwładnością jastrychu.",
        "Koszt dokumentacji projektowej (średnio 550 PLN) zwraca się w pierwszym kwartale zimy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-casestudy",
    "name": "Symulator Kosztów: Amator vs Inżynier",
    "description": "Interaktywny kokpit analityczny ukazujący skutki błędów instalacyjnych w kontekście zużycia energii elektrycznej przez pompę ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-module" id="case-study-app">
    
    <div class="rk-case-header">
        <div class="rk-case-badge">Case Study – Budowa bez ściemy</div>
        <h2>Jak 550 zł wydane na projekt ratuje tysiące w sezonie?</h2>
        <p>Zestawiamy dwa identyczne domy 150 m² z pompą ciepła. Jeden zrobiony na pamięć, drugi oparty na inżynierskim bilansie. Zobacz twarde dane o bezwładności i rachunkach.</p>
    </div>

    <div class="rk-case-ui">
        <!-- Przełącznik -->
        <div class="rk-case-toggle">
            <button class="rk-case-btn active" data-scenario="amator">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Wariant A: Zrobione "Na Oko"
            </button>
            <button class="rk-case-btn" data-scenario="pro">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Wariant B: Projekt Inżynierski (OZC)
            </button>
            <div class="rk-case-slider"></div>
        </div>

        <!-- WIDOK: AMATOR -->
        <div class="rk-scenario-view active" id="scenario-amator">
            <div class="rk-case-dashboard">
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-case-metric-title">Czas nagrzewania</div>
                    <div class="rk-case-metric-val">14 godz.</div>
                </div>
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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-case-metric-title">Zasilanie (Spadek COP)</div>
                    <div class="rk-case-metric-val">45 °C</div>
                </div>
                <div class="rk-case-metric rk-metric-bad">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><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-case-metric-title">Koszt roczny (Szacunek)</div>
                    <div class="rk-case-metric-val">+ 2 100 zł</div>
                </div>
            </div>
            
            <div class="rk-case-report report-bad">
                <div class="rk-report-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                </div>
                <div class="rk-report-text">
                    <h4>Brak kontroli nad bezwładnością</h4>
                    <p>Wylewka wylana grubo "żeby zakryć kable" (10 cm), rozstaw rur wszędzie stały 15 cm. Brak dogrzania okien wymusił podbicie temperatury zasilania do 45°C. System działa z gigantycznym opóźnieniem, a pompa ciepła "taktuje" i pracuje w strefie drastycznie niskiego COP.</p>
                </div>
            </div>
        </div>

        <!-- WIDOK: PRO (OZC) -->
        <div class="rk-scenario-view" id="scenario-pro">
            <div class="rk-case-dashboard">
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-case-metric-title">Czas reakcji</div>
                    <div class="rk-case-metric-val">~ 6 godz.</div>
                </div>
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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-case-metric-title">Idealne Zasilanie</div>
                    <div class="rk-case-metric-val">35 °C</div>
                </div>
                <div class="rk-case-metric rk-metric-good">
                    <div class="rk-case-metric-icon">
                        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="1" x2="12" y2="23"></line><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-case-metric-title">Oszczędności</div>
                    <div class="rk-case-metric-val">Maksymalne</div>
                </div>
            </div>
            
            <div class="rk-case-report report-good">
                <div class="rk-report-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="20 6 9 17 4 12"></polyline></svg>
                </div>
                <div class="rk-report-text">
                    <h4>Precyzyjna fizyka budowli</h4>
                    <p>Zastosowano optymalne grubości betonu nad rurą. Rozstaw rur zmienny (zagęszczenia 10 cm przy oknach) dopasowany idealnie do bilansu OZC. Przepływy wykalibrowane na rotametrach. <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/" class="rk-inline-link" style="color:#065f46;">Zasilanie 35°C</a> wyciąga z pompy ciepła najwyższe, katalogowe SCOP.</p>
                    <div class="rk-highlight-roi">Projekt za średnio 550 zł zwrócił się w 3 miesiące zimy!</div>
                </div>
            </div>
        </div>
    </div>

    <!-- Treść Teoretyczna -->
    <div class="rk-case-content">
        <p>Powyższe dane to nie teoria, a bolesna, placowa rzeczywistość polskiego budownictwa. Inwestorzy często stają przed pytaniem <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%c2%b2-ogrzewania-podlogowego/" class="rk-inline-link">ile kosztuje wykonanie ogrzewania podłogowego</a>, szukając oszczędności rzędu kilkuset złotych na braku dokumentacji projektowej.</p>
        
        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.21 15.89A10 10 0 1 1 8 2.83"></path><path d="M22 12A10 10 0 0 0 12 2v10z"></path></svg>
            Dlaczego "Na Oko" tak słabo działa?
        </h3>
        <p>Układając instalację uniwersalnie, tracimy całkowicie kontrolę nad <strong>bezwładnością cieplną</strong> i fizyką przepływów. Jeżeli salon z dużymi oknami tarasowymi ma ogromne zapotrzebowanie na moc w strefie brzegowej, a rury położono standardowo co 15 cm, podłoga po prostu nie da rady wypromieniować odpowiedniej ilości energii przy niskim zasilaniu.</p>
        
        <p>System, chcąc pokryć brakującą moc, zmusza źródło ciepła do drastycznego podbicia temperatury zasilania (np. z optymalnych 35°C na 45°C). Dla nowoczesnej pompy ciepła to wyrok – jej sprężarka wpada w strefę krytycznie niskiej sprawności (często ratując się grzałkami elektrycznymi). A <a href="https://projekt-ogrzewania.pl/rzeczywiste-oszczednosci-na-kosztach-ogrzewania-w-skali-roku-analiza-rozstawu-rur-dla-domu-150-m%c2%b2/" class="rk-inline-link">rzeczywiste oszczędności na kosztach ogrzewania w skali roku</a> ulatniają się wraz z kolejnym rachunkiem za prąd.</p>

        <h3>
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><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>
            Magia Projektowego Obciążenia Cieplnego (OZC)
        </h3>
        <p>Rzetelne obliczenie <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-inline-link">projektowego obciążenia cieplnego OZC</a> pozwala inżynierowi idealnie „uszyć” podłogówkę pod konkretne straty budynku. Modulując rozstaw rur i kalibrując dławienie na poszczególnych pętlach, tworzymy układ idealnie płaski hydraulicznie.</p>
        
        <p>Gdy weźmiesz pod uwagę dzisiejszy <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-inline-link">koszt ogrzewania domu</a>, średni koszt wykonania profesjonalnej dokumentacji technicznej hydrauliki rzędu 550 PLN staje się najszybciej zwracającą się inwestycją na całej budowie.</p>
    </div>
</div>

<script>
// Bezpieczne przełączanie bez &&
(function() {
    function initCaseStudy() {
        var moduleBox = document.getElementById('case-study-app');
        if (!moduleBox) return;

        var btns = moduleBox.querySelectorAll('.rk-case-btn');
        var views = moduleBox.querySelectorAll('.rk-scenario-view');

        for (var i = 0; i < btns.length; i++) {
            btns[i].addEventListener('click', function() {
                var targetScenario = this.getAttribute('data-scenario');
                
                // Zabezpieczenie przed klikaniem aktywnego na mobile (by się nie zwinęło)
                if (window.innerWidth <= 768) {
                    if (this.classList.contains('active')) {
                        return;
                    }
                }

                // Reset stanu
                for (var j = 0; j < btns.length; j++) {
                    btns[j].classList.remove('active');
                }
                for (var k = 0; k < views.length; k++) {
                    views[k].classList.remove('active');
                }

                // Aktywacja nowego stanu
                this.classList.add('active');
                var activeView = document.getElementById('scenario-' + targetScenario);
                if (activeView) {
                    activeView.classList.add('active');
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initCaseStudy);
    } else {
        initCaseStudy();
    }
})();
</script>



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

.rk-author-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-auth-bg);
    border-radius: 20px;
    border: 2px solid var(--rk-auth-dark);
    box-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.15);
    overflow: hidden;
    /* CELOWO BRAK ANIMACJI - Czysty, błyskawiczny interfejs */
}

/* Układ główny - 2 kolumny */
.rk-auth-grid {
    display: flex;
    flex-wrap: nowrap;
}

/* Lewa kolumna - Profil */
.rk-auth-profile {
    width: 320px;
    background: var(--rk-auth-dark);
    padding: 45px 30px;
    text-align: center;
    color: #ffffff;
    flex-shrink: 0;
    border-right: 1px solid var(--rk-auth-border);
}

.rk-auth-photo {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid var(--rk-auth-bg);
    margin: 0 auto 20px;
    overflow: hidden;
    background: var(--rk-auth-gray);
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}

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

.rk-auth-name {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: #ffffff;
    letter-spacing: -0.5px;
}

.rk-auth-title {
    font-size: 13px;
    color: var(--rk-auth-accent, #38bdf8);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
}

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

.rk-social-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    padding: 10px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

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

/* Prawa kolumna - Treść */
.rk-auth-content {
    flex-grow: 1;
    padding: 45px;
    display: flex;
    flex-direction: column;
    background: var(--rk-auth-bg);
}

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

/* Cytat Autorytetu */
.rk-auth-quote-box {
    background: var(--rk-auth-gold-light);
    border-left: 5px solid var(--rk-auth-gold);
    padding: 25px 30px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 35px;
    position: relative;
}

.rk-auth-quote-icon {
    position: absolute;
    top: -15px;
    left: 20px;
    background: var(--rk-auth-gold);
    color: #ffffff;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 24px;
    font-family: serif;
    font-weight: bold;
    line-height: 1;
}

.rk-auth-quote-text {
    font-size: 17px;
    font-weight: 700;
    font-style: italic;
    color: #92400e;
    line-height: 1.6;
    margin: 0;
}

/* Interaktywne Zakładki (Statyczne, bez animacji CSS) */
.rk-auth-tabs {
    display: flex;
    gap: 5px;
    border-bottom: 2px solid var(--rk-auth-border);
    margin-bottom: 25px;
}

.rk-tab-btn {
    padding: 12px 24px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-auth-muted, #64748b);
    cursor: pointer;
    margin-bottom: -2px;
}

.rk-tab-btn.active {
    color: var(--rk-auth-dark);
    border-bottom-color: var(--rk-auth-blue);
}

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

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

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

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

.rk-panel-text li {
    margin-bottom: 10px;
}

.rk-inline-link {
    color: var(--rk-auth-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.rk-inline-link:hover { color: var(--rk-auth-dark); }

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-auth-grid {
        flex-direction: column;
    }
    .rk-auth-profile {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid var(--rk-auth-border);
        padding: 40px 20px;
    }
    .rk-auth-content {
        padding: 30px 20px;
    }
    .rk-auth-tabs {
        flex-direction: column;
        border-bottom: none;
        gap: 8px;
    }
    .rk-tab-btn {
        width: 100%;
        text-align: left;
        border-bottom: none;
        border-left: 4px solid transparent;
        background: var(--rk-auth-gray);
        border-radius: 8px;
        margin-bottom: 0;
    }
    .rk-tab-btn.active {
        border-left-color: var(--rk-auth-blue);
        background: #e0f2fe;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o czasie nagrzewania podłogówki",
    "description": "Autorskie podsumowanie zasad sterowania bezwładnością cieplną ogrzewania podłogowego. Sygnatura E-E-A-T potwierdzająca kwalifikacje inżynierskie.",
    "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/"
      ]
    },
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-ekspert",
    "name": "Kwalifikacje i autorytet inżynierski (E-E-A-T)",
    "description": "Dane weryfikujące doświadczenie eksperta projektującego wodne ogrzewanie podłogowe, pompy ciepła i systemy rekuperacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "robert kucharski projekt ogrzewania",
      "ekspert hvac",
      "projektant instalacji sanitarnych",
      "sterowanie pogodowe w ogrzewaniu podłogowym",
      "kompleksowa wycena ogrzewania podłogowego wodnego"
    ],
    "measurementTechnique": "Weryfikacja autorytetu poprzez powiązane profile społecznościowe (LinkedIn, Facebook) oraz staż w branży HVAC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ponad 1000 autorskich projektów podłogówki.",
        "Praktyczna optymalizacja krzywych grzewczych w OZC.",
        "Zarządzanie dynamiką i bezwładnością układów płaszczyznowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-ekspert",
    "name": "Weryfikator Autorytetu (E-E-A-T)",
    "description": "Moduł udostępniający zweryfikowane dane eksperckie oraz bezpośrednie odnośniki do kanałów komunikacji głównego projektanta.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-author-module" id="eeat-author-card">
    <div class="rk-auth-grid">
        
        <div class="rk-auth-profile">
            <div class="rk-auth-photo">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC" loading="lazy">
            </div>
            <h3 class="rk-auth-name">Robert Kucharski</h3>
            <div class="rk-auth-title">Specjalista HVAC / CEO</div>
            
            <div class="rk-auth-socials">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Profil LinkedIn - Robert Kucharski">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/projektogrzewaniapl/" target="_blank" rel="noopener noreferrer" class="rk-social-btn" aria-label="Profil Facebook - Projekt Ogrzewania">
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M9 8h-3v4h3v12h5v-12h3.642l.358-4h-4v-1.667c0-.955.192-1.333 1.115-1.333h2.885v-5h-3.808c-3.596 0-5.192 1.583-5.192 4.615v3.385z"/></svg>
                    Facebook
                </a>
            </div>
        </div>

        <div class="rk-auth-content">
            <h2 class="rk-auth-h2">Zdaniem eksperta: Robert Kucharski o czasie nagrzewania</h2>
            
            <div class="rk-auth-quote-box">
                <div class="rk-auth-quote-icon">"</div>
                <p class="rk-auth-quote-text">
                    Podłogówka to nie grzejnik – nie zmuszaj jej do gwałtownych skoków. To potężny betonowy akumulator ciepła. Twój komfort i zminimalizowane rachunki zależą wyłącznie od stabilnej pracy instalacji, celowo zaprogramowanej w rzetelnym projekcie OZC.
                </p>
            </div>

            <div class="rk-auth-tabs">
                <button class="rk-tab-btn active" data-tab="tab-zasada">Inżynierska zasada</button>
                <button class="rk-tab-btn" data-tab="tab-projekt">Po co Ci projekt?</button>
            </div>

            <div class="rk-tab-panel active" id="tab-zasada">
                <div class="rk-panel-text">
                    Zawsze dobieraj <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-inline-link">rozdzielacze mosiężne lub nierdzewne</a> z rotametrami do precyzyjnej kalibracji. Pamiętaj: jeśli wylewka ma ponad 7 cm grubości, zapomnij o "grzejnikowym" sterowaniu nocnym. Czas potrzebny na dogrzanie przekroczy czas trwania nocy, a Twoja pompa ciepła straci sprawność SCOP.
                </div>
            </div>

            <div class="rk-tab-panel" id="tab-projekt">
                <div class="rk-panel-text">
                    Montaż rur na tzw. "oko" niemal zawsze gwarantuje koszty, które będziesz spłacać latami. Pełne, <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-inline-link">inżynierskie opracowanie instalacji</a> daje Ci:
                    <ul>
                        <li>Optymalizację hydrauliki, eliminującą ryzyko "zęba termicznego".</li>
                        <li>Spasowanie pompy obiegowej z faktycznymi oporami najdłuższej pętli.</li>
                        <li>Bezpieczne zarządzanie gigantyczną bezwładnością betonu.</li>
                    </ul>
                </div>
            </div>

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

<script>
(function() {
    function initEeatTabs() {
        var card = document.getElementById('eeat-author-card');
        if (!card) return;

        var btns = card.querySelectorAll('.rk-tab-btn');
        var panels = card.querySelectorAll('.rk-tab-panel');

        // Błyskawiczne, pozbawione animacji przełączanie zakładek
        for (var i = 0; i < btns.length; i++) {
            btns[i].addEventListener('click', function() {
                var target = this.getAttribute('data-tab');

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

                this.classList.add('active');
                var activePanel = document.getElementById(target);
                if (activePanel) {
                    activePanel.classList.add('active');
                }
            });
        }
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initEeatTabs);
    } else {
        initEeatTabs();
    }
})();
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-accent: #38bdf8;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

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

/* Nagłówek Sekcji */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #1e293b 100%);
    padding: 35px 45px;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 4px solid var(--rk-faq-blue);
}

.rk-faq-header-icon {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    background: rgba(56, 189, 248, 0.15);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-accent);
    border: 1px solid rgba(56, 189, 248, 0.3);
}

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

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

/* Kontener Akordeonu */
.rk-faq-accordion {
    padding: 30px 45px;
    background: #f8fafc;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-faq-item:last-child {
    margin-bottom: 0;
}

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

/* Przycisk Akordeonu */
.rk-faq-trigger {
    width: 100%;
    text-align: left;
    padding: 22px 25px;
    background: transparent;
    border: none;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px;
    align-items: center;
    cursor: pointer;
    border-radius: 14px;
    transition: background 0.2s ease;
}

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

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

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

/* Ikona Chevron */
.rk-faq-chevron {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-faq-muted);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

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

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

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

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

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

.rk-faq-body p {
    margin: 0 0 12px 0;
}

.rk-faq-body p:last-child {
    margin: 0;
}

.rk-faq-link {
    color: var(--rk-faq-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}

.rk-faq-link:hover {
    border-color: var(--rk-faq-blue);
}

/* Wyróżnienia tekstu */
.rk-faq-highlight {
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

/* RWD - Mobile */
@media (max-width: 768px) {
    .rk-faq-header {
        flex-direction: column;
        text-align: center;
        padding: 30px 20px;
    }
    .rk-faq-accordion {
        padding: 20px;
    }
    .rk-faq-trigger {
        padding: 18px 20px;
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }
    .rk-faq-chevron {
        margin-top: 10px;
    }
    .rk-faq-body {
        padding: 0 20px 20px 20px;
        text-align: center;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy włączenie wyższej temperatury na kotle przyspieszy nagrzewanie zimnej podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, drastyczne podniesienie temperatury zasilania powyżej wartości projektowej nie przyspieszy znacząco pierwszego nagrzania, a może doprowadzić do popękania wylewki betonowej i uszkodzenia rur. Ograniczeniem jest maksymalna bezpieczna przewodność termiczna jastrychu oraz dopuszczalna temperatura powierzchni podłogi wynosząca 29°C dla pokoi i 33°C dla łazienek."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy podłogówka działa prawidłowo, jeśli po 2 godzinach podłoga wciąż jest zimna?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Należy zweryfikować wskazania przepływomierzy (rotometrów) na rozdzielaczu – jeśli wskaźniki opadły i pokazują przepływ w granicach 1,5-2,5 l/min, system pracuje poprawnie, a brak odczuwalnego ciepła wynika wyłącznie z naturalnej, kilkugodzinnej bezwładności termicznej betonu. Pomocne jest użycie pirometru lub kamery termowizyjnej w celu sprawdzenia temperatury rury zasilającej i powrotnej na belce rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu nagrzewa się podłogówka zasilana z pompy ciepła w porównaniu do kotła gazowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Czas nagrzewania samej płyty betonowej jest identyczny dla obu źródeł ciepła, pod warunkiem dostarczenia medium o tej samej temperaturze i identycznym przepływie masowym. Różnica polega na tym, że kocioł gazowy potrafi wygenerować wysoką moc szczytową natychmiast, natomiast inwerterowa pompa ciepła dochodzi do swojej mocy nominalnej stopniowo, modulując obroty sprężarki w celu optymalizacji wskaźnika COP."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rekuperacja (wentylacja mechaniczna z odzyskiem ciepła) skraca czas nagrzewania pomieszczenia z podłogówką?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, rekuperacja skraca czas potrzebny na stabilizację temperatury powietrza w pomieszczeniu o około 20-30%, ponieważ stale odzyskuje ciepło z powietrza wywiewanego i ogranicza napływ zimnych mas powietrza zewnętrznego. Wentylacja mechaniczna eliminuje gwałtowne wychłodzenie strefy przypodłogowej, które występuje przy klasycznym wietrzeniu przez otwieranie okien."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego łazienka z podłogówką nagrzewa się najdłużej, mimo że to małe pomieszczenie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Łazienka ma najwyższą projektową temperaturę wewnętrzną (24°C w porównaniu do 20°C w pokojach), mniejszą efektywną powierzchnię grzewczą ze względu na zabudowę wanny czy brodzika oraz wysokie zapotrzebowanie na moc wentylacyjną. Z tego powodu, mimo gęstego rozstawu rur co 10 cm, czas potrzebny na osiągnięcie pełnego komfortu termicznego w łazience bywa najdłuższy w całym budynku."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "FAQ – Najczęstsze pytania dotyczące czasu nagrzewania ogrzewania podłogowego",
    "description": "Zbiór najważniejszych odpowiedzi inżynierskich dotyczących dynamiki nagrzewania układów płaszczyznowych, pomp ciepła i rekuperacji.",
    "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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-faq",
    "name": "Baza wiedzy Q&A: Dynamika cieplna podłogówki",
    "description": "Usystematyzowane dane odpowiadające na najczęstsze błędy i pytania inwestorów związane z czasem reakcji wodnego ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dlaczego podłogówka wolno się nagrzewa",
      "temperatura zasilania ogrzewania podłogowego",
      "rotametry w podłogówce",
      "rekuperacja a ogrzewanie podłogowe",
      "zagęszczenie rur w łazience"
    ],
    "measurementTechnique": "Empiryczne i normatywne wskaźniki działania systemów ogrzewania płaszczyznowego weryfikowane w warunkach domów jednorodzinnych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Weryfikacja przepływów hydraulicznych",
        "Zależność źródła ciepła (kocioł gazowy vs pompa ciepła) a czas nagrzewu",
        "Wpływ wentylacji mechanicznej na dynamikę grzewczą budynku"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-faq",
    "name": "Interaktywny Asystent FAQ",
    "description": "Zwijany moduł z bazą wiedzy ułatwiający szybkie odnalezienie technicznych odpowiedzi na problemy związane z nagrzewaniem się podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-module" id="faq-nagrzewanie-podlogowki">
    <div class="rk-faq-header">
        <div class="rk-faq-header-icon">
            <svg width="32" height="32" 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="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>
        <div class="rk-faq-header-content">
            <h2>FAQ – Najczęstsze pytania dotyczące czasu nagrzewania ogrzewania podłogowego</h2>
            <p>Rozwiewamy techniczne mity. Sprawdź, co wpływa na czas reakcji systemu i uniknij błędów eksploatacyjnych na starcie.</p>
        </div>
    </div>

    <div class="rk-faq-accordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Czy włączenie wyższej temperatury na kotle przyspieszy nagrzewanie zimnej podłogówki?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p><strong>Nie</strong>, drastyczne podniesienie temperatury zasilania powyżej wartości projektowej nie przyspieszy znacząco pierwszego nagrzania, a może doprowadzić do popękania wylewki betonowej i uszkodzenia rur.</p>
                        <p>Ograniczeniem jest maksymalna bezpieczna przewodność termiczna jastrychu oraz dopuszczalna <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" class="rk-faq-link">maksymalna temperatura zasilania</a> i powierzchni podłogi wynosząca <span class="rk-faq-highlight">29°C dla pokoi</span> i <span class="rk-faq-highlight">33°C dla łazienek</span>.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Jak sprawdzić, czy podłogówka działa prawidłowo, jeśli po 2 godzinach podłoga wciąż jest zimna?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Należy zweryfikować wskazania <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-faq-link">przepływomierzy (rotometrów) na rozdzielaczu</a> – jeśli wskaźniki opadły i pokazują przepływ w granicach <strong>1,5-2,5 l/min</strong>, system pracuje poprawnie.</p>
                        <p>Brak odczuwalnego ciepła wynika wyłącznie z naturalnej, kilkugodzinnej bezwładności termicznej betonu. Pomocne jest użycie pirometru lub kamery termowizyjnej w celu sprawdzenia temperatury rury zasilającej i powrotnej na belce rozdzielacza.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Ile czasu nagrzewa się podłogówka zasilana z pompy ciepła w porównaniu do kotła gazowego?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Czas nagrzewania samej płyty betonowej jest <strong>identyczny dla obu źródeł ciepła</strong>, pod warunkiem dostarczenia medium o tej samej temperaturze i identycznym przepływie masowym.</p>
                        <p>Różnica polega na tym, że <a href="https://projekt-ogrzewania.pl/kociol-gazowy/" class="rk-faq-link">kocioł gazowy</a> potrafi wygenerować wysoką moc szczytową natychmiast, natomiast inwerterowa pompa ciepła dochodzi do swojej mocy nominalnej stopniowo, modulując obroty sprężarki w celu optymalizacji wskaźnika COP.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Czy rekuperacja (wentylacja mechaniczna) skraca czas nagrzewania pomieszczenia z podłogówką?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p><strong>Tak</strong>, poprawne <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/" class="rk-faq-link">połączenie rekuperacji i podłogówki</a> skraca czas potrzebny na stabilizację temperatury powietrza w pomieszczeniu o około <span class="rk-faq-highlight">20-30%</span>.</p>
                        <p>System stale odzyskuje ciepło z powietrza wywiewanego i ogranicza napływ zimnych mas z zewnątrz. Wentylacja mechaniczna eliminuje gwałtowne wychłodzenie strefy przypodłogowej, które występuje przy klasycznym wietrzeniu przez otwieranie okien.</p>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-trigger" aria-expanded="false">
                <h3>Dlaczego łazienka z podłogówką nagrzewa się najdłużej, mimo że to małe pomieszczenie?</h3>
                <div class="rk-faq-chevron">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-faq-content">
                <div class="rk-faq-content-inner">
                    <div class="rk-faq-body">
                        <p>Łazienka ma najwyższą projektową temperaturę wewnętrzną (<span class="rk-faq-highlight">24°C</span> w porównaniu do 20°C w pokojach), mniejszą efektywną powierzchnię grzewczą ze względu na zabudowę wanny czy brodzika oraz wysokie zapotrzebowanie na moc wentylacyjną.</p>
                        <p>Z tego powodu, niezwykle ważne jest wiedzieć <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/" class="rk-faq-link">jak gęsto układać rury</a> (najczęściej co 10 cm). Mimo zagęszczenia, czas potrzebny na osiągnięcie pełnego komfortu termicznego w łazience bywa najdłuższy w całym budynku.</p>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

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

    faqItems.forEach(item => {
        const trigger = item.querySelector('.rk-faq-trigger');
        
        trigger.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamknij wszystkie otwarte
            faqItems.forEach(faq => {
                faq.classList.remove('active');
                faq.querySelector('.rk-faq-trigger').setAttribute('aria-expanded', 'false');
            });

            // Otwórz kliknięty jeśli był zamknięty
            if (!isActive) {
                item.classList.add('active');
                trigger.setAttribute('aria-expanded', 'true');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-base-dark: #0f172a;
    --rk-base-blue: #0284c7;
    --rk-base-light: #f8fafc;
    --rk-base-accent: #38bdf8;
    --rk-base-green: #059669;
    --rk-base-red: #dc2626;
    --rk-border-color: #e2e8f0;
    --rk-text-main: #334155;
    --rk-text-muted: #64748b;
}

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

/* Sekcja Nagłówkowa */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-base-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-base-blue);
}

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

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

/* Interaktywny Panel Porównawczy */
.rk-interactive-panel {
    padding: 40px 50px;
    background: var(--rk-base-light);
}

.rk-toggle-container {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 6px;
    position: relative;
    margin-bottom: 30px;
}

.rk-toggle-btn {
    flex: 1;
    padding: 16px 20px;
    border: none;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-text-muted);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s ease;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-toggle-btn.active {
    color: var(--rk-base-dark);
}

.rk-toggle-slider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

.rk-toggle-btn[data-target="modern"].active ~ .rk-toggle-slider {
    transform: translateX(100%);
}

/* Treść przełącznika */
.rk-panel-content {
    display: none;
    background: #ffffff;
    border: 1px solid var(--rk-border-color);
    border-radius: 16px;
    padding: 30px;
    animation: fadeIn 0.4s ease-out forwards;
}

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

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

.rk-icon-box {
    width: 80px;
    height: 80px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.state-old .rk-icon-box { background: #fee2e2; color: var(--rk-base-red); }
.state-new .rk-icon-box { background: #d1fae5; color: var(--rk-base-green); }

.rk-panel-text h3 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-base-dark);
}

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

.rk-panel-text p:last-child { margin: 0; }

.rk-link-inline {
    color: var(--rk-base-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Treść podsumowania i Tagi */
.rk-summary-body {
    padding: 0 50px 30px 50px;
    background: var(--rk-base-light);
}

.rk-tags-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px dashed #cbd5e1;
}

.rk-mat-tag {
    background: #ffffff;
    border: 1px solid var(--rk-border-color);
    color: var(--rk-base-blue);
    font-size: 13px;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 6px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

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

.rk-summary-cta h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-base-dark);
    margin: 0 0 20px 0;
}

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

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

/* RWD */
@media (max-width: 768px) {
    .rk-summary-header, .rk-interactive-panel, .rk-summary-body, .rk-summary-cta {
        padding: 30px 20px;
    }
    .rk-summary-header h2 { font-size: 24px; }
    
    /* Na mobile zmieniamy układ na akordeonowy (pionowy) */
    .rk-toggle-container {
        flex-direction: column;
        background: transparent;
        padding: 0;
        gap: 10px;
    }
    .rk-toggle-slider { display: none; /* Wyłączamy suwak na mobile */ }
    .rk-toggle-btn {
        background: #e2e8f0;
        border: 1px solid var(--rk-border-color);
        width: 100%;
    }
    .rk-toggle-btn.active {
        background: #ffffff;
        border-color: var(--rk-base-blue);
        box-shadow: 0 4px 6px rgba(2, 132, 199, 0.1);
    }
    
    .rk-panel-content.active {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 15px;
    }
    .rk-icon-box { margin: 0 auto; }
    .rk-btn-solid { width: 100%; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-podsumowanie-bezwladnosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Podsumowanie – Dlaczego kontrola bezwładności cieplnej to klucz do oszczędności?",
    "description": "Zrozumienie czasu nagrzewania się podłogówki i rezygnacja z nawyków z grzejników to fundament stabilnej i taniej eksploatacji instalacji CO. Konieczny jest 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://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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-bezwladnosc",
    "name": "Analiza oszczędności z kontroli bezwładności cieplnej instalacji płaszczyznowej",
    "description": "Zestawienie porównawcze wariantów eksploatacyjnych systemu grzewczego: gwałtowne sterowanie (nawyk grzejnikowy) vs stabilna praca na bazie krzywej grzewczej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas nagrzewania ogrzewania podłogowego",
      "bezwładność cieplna podłogówki",
      "krzywa grzewcza w podłogówce",
      "obliczenia strat ciepła OZC",
      "sterowanie ogrzewaniem podłogowym"
    ],
    "measurementTechnique": "Porównanie kosztów skokowego sterowania temperaturą z płynnym zarządzaniem z użyciem krzywej grzewczej i bilansu OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Skokowe zarządzanie: Częste wyłączanie układu wydłuża czas reakcji i podnosi rachunki.",
        "Stabilna praca: Zastosowanie inżynieryjnej krzywej grzewczej i stałego zładu gwarantuje najniższe zużycie energii i maksymalny komfort."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-bezwladnosc",
    "name": "Symulator Strategii Grzewczej",
    "description": "Interaktywny przełącznik wizualizujący różnicę w zarządzaniu energią między starymi nawykami (grzejniki) a inżynierskim podejściem do podłogówki (OZC).",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-module" id="bezwladnosc-summary">
    <div class="rk-summary-header">
        <h2>Podsumowanie – Dlaczego kontrola bezwładności cieplnej to klucz do oszczędności?</h2>
        <p>Zrozumienie, ile czasu nagrzewa się podłogówka, to nie tylko ciekawostka fizyczna. To absolutny fundament, który pozwala zerwać z błędnymi nawykami wypracowanymi przy tradycyjnych grzejnikach i zacząć zarządzać energią w sposób zrównoważony.</p>
    </div>

    <div class="rk-interactive-panel">
        <div class="rk-toggle-container">
            <button class="rk-toggle-btn active" data-target="old">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                Nawyki z grzejników
            </button>
            <button class="rk-toggle-btn" data-target="modern">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                Nowoczesne sterowanie
            </button>
            <div class="rk-toggle-slider"></div>
        </div>

        <div class="rk-panel-content state-old active" id="content-old">
            <div class="rk-icon-box">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="23 18 13.5 8.5 8.5 13.5 1 6"></polyline><polyline points="17 18 23 18 23 12"></polyline></svg>
            </div>
            <div class="rk-panel-text">
                <h3>Skokowe spadki i wzrosty</h3>
                <p>Częste włączanie i wyłączanie termostatów pokojowych na noc powoduje wyziębienie gigantycznej masy jastrychu. System zmuszany jest do gwałtownych skoków temperatury, co potężnie obciąża pompę ciepła.</p>
                <p>Ignorowanie zjawiska <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/" class="rk-link-inline">bezwładności cieplnej podłogówki</a> to najszybsza droga do gigantycznych rachunków za prąd lub gaz.</p>
            </div>
        </div>

        <div class="rk-panel-content state-new" id="content-modern">
            <div class="rk-icon-box">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            </div>
            <div class="rk-panel-text">
                <h3>Stabilna praca instalacji</h3>
                <p>Wodne ogrzewanie podłogowe to niezwykle sprawny akumulator ciepła. Najlepiej odwdzięcza się bezawaryjną pracą, gdy jest sterowane płynnie w oparciu o wyliczoną <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/" class="rk-link-inline">krzywą grzewczą</a>.</p>
                <p>Zapewnia to przewidywalny czas reakcji układu, optymalne zbalansowanie hydrauliczne i maksymalny komfort cieplny bez szarpania sprężarką pompy.</p>
            </div>
        </div>
    </div>

    <div class="rk-summary-body">
        <p style="color: var(--rk-text-main); line-height: 1.6; font-size: 15px; margin-bottom: 0;">
            Pamiętaj: bezpieczeństwo strukturalne budynku i idealne przepływy nie powstaną przez montaż układu „na oko”. Każda sprawna instalacja musi mieć twardy inżynierski fundament oparty na rzeczywistych parametrach. Zgadywanie zysków i strat mija się z celem – jedynym pewnym rozwiązaniem jest rzetelne <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/" style="color: var(--rk-base-blue); font-weight: 700;">obliczenie bilansu cieplnego OZC</a>, na podstawie którego dobiera się dynamikę pracy systemu.
        </p>

        <div class="rk-tags-wrapper">
            <span class="rk-mat-tag"># czas nagrzewania ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># bezwładność cieplna podłogówki</span>
            <span class="rk-mat-tag"># krzywa grzewcza w podłogówce</span>
            <span class="rk-mat-tag"># obliczenia strat ciepła OZC</span>
            <span class="rk-mat-tag"># oszczędności z ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># projekt ogrzewania podłogowego online</span>
        </div>
    </div>

    <div class="rk-summary-cta">
        <h4>Przestań zgadywać. Zacznij projektować na mierzalnych liczbach.</h4>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            SPRAWDŹ BAZĘ WIEDZY INŻYNIERSKIEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const toggleBtns = document.querySelectorAll('#bezwladnosc-summary .rk-toggle-btn');
    const contents = document.querySelectorAll('#bezwladnosc-summary .rk-panel-content');

    toggleBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const target = this.getAttribute('data-target');

            // Reset stanów przycisków
            toggleBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Przełączanie treści
            contents.forEach(content => {
                content.classList.remove('active');
                if (content.id === `content-${target}`) {
                    content.classList.add('active');
                }
            });
        });
    });
});
</script>



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

.rk-download-module {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border-radius: 16px;
    border: 2px solid var(--rk-dl-border);
    box-shadow: 0 10px 30px -10px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    /* Surowy design, celowy brak animacji CSS (transition użyte tylko do kolorów) */
}

/* Nagłówek */
.rk-dl-header {
    background: var(--rk-dl-gray);
    padding: 35px 45px;
    border-bottom: 1px solid var(--rk-dl-border);
    display: flex;
    align-items: center;
    gap: 20px;
}

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

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

.rk-dl-header p {
    font-size: 15px;
    color: var(--rk-dl-muted);
    margin: 0;
    font-weight: 500;
}

/* Układ główny */
.rk-dl-grid {
    display: flex;
    padding: 40px 45px;
    gap: 40px;
}

/* Lewa Kolumna - Miniatura */
.rk-dl-thumbnail-box {
    width: 300px;
    flex-shrink: 0;
}

.rk-dl-thumb-wrapper {
    position: relative;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
    overflow: hidden;
    cursor: pointer;
    background: var(--rk-dl-gray);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    /* Brak animacji hover na skale, tylko zmiana obramowania */
    transition: border-color 0.2s;
}

.rk-dl-thumb-wrapper:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 3/4;
    object-fit: cover;
    object-position: top;
}

.rk-dl-zoom-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    opacity: 0;
    transition: opacity 0.2s;
}

.rk-dl-thumb-wrapper:hover .rk-dl-zoom-overlay {
    opacity: 1;
}

.rk-dl-zoom-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-dl-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}

.rk-dl-zoom-text {
    font-weight: 800;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Prawa Kolumna - Treść i Przyciski */
.rk-dl-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-content h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

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

.rk-dl-desc ul {
    margin: 15px 0 0 20px;
    padding: 0;
}

.rk-dl-desc li {
    margin-bottom: 8px;
    font-weight: 600;
}

.rk-inline-link {
    color: var(--rk-dl-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s;
}

.rk-inline-link:hover { color: var(--rk-dl-dark); }

/* Przyciski Pobierania */
.rk-dl-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}

.rk-btn-download {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 15px;
    border: 2px solid;
    transition: background-color 0.2s, color 0.2s;
}

.rk-btn-pdf {
    background: var(--rk-dl-dark);
    border-color: var(--rk-dl-dark);
    color: #ffffff;
}

.rk-btn-pdf:hover {
    background: #ffffff;
    color: var(--rk-dl-dark);
}

.rk-btn-img {
    background: #ffffff;
    border-color: var(--rk-dl-border);
    color: var(--rk-dl-text);
}

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

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

.rk-btn-meta {
    font-size: 12px;
    font-weight: 600;
    font-family: monospace;
    opacity: 0.8;
}

/* Stopka Prawna */
.rk-dl-footer {
    background: var(--rk-dl-gray);
    padding: 15px 45px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 12px;
    color: var(--rk-dl-muted);
    text-align: center;
    line-height: 1.5;
}

/* LIGHTBOX (Przeglądarka zdjęć) */
.rk-lightbox {
    display: none; /* Natychmiastowe ukrycie, bez animacji */
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    padding: 20px;
}

.rk-lightbox.active {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
}

.rk-lightbox-img {
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.5);
}

.rk-lightbox-close {
    position: absolute;
    top: -40px;
    right: -10px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Mobile RWD */
@media (max-width: 768px) {
    .rk-dl-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-dl-grid { flex-direction: column; padding: 30px 20px; gap: 30px; }
    .rk-dl-thumbnail-box { width: 100%; max-width: 320px; margin: 0 auto; }
    .rk-dl-footer { padding: 15px 20px; text-align: left; }
    .rk-lightbox-close { top: -35px; right: 0; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/"
    },
    "headline": "Pobierz darmową infografikę: Ile czasu nagrzewa się podłogówka?",
    "description": "Pobierz inżynierską ściągawkę na budowę. Zestawienie czasów nagrzewania wylewki, bezwładności oraz kluczowych parametrów z normy PN-EN 1264 w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.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-17",
    "dateModified": "2026-06-17"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#dataset-infografika",
    "name": "Infografika: Czasy reakcji układów płaszczyznowych",
    "description": "Zestawienie tabelaryczne i graficzne parametrów rozruchowych dla instalacji podłogowych z uwzględnieniem izolacji i jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "najczęstsze błędy przy montażu ogrzewania podłogowego",
      "kompleksowy kalkulator ogrzewania podłogowego",
      "jak zaplanować rozmieszczenie pętli grzewczych w ogrzewaniu podłogowym",
      "ile rury na m² ogrzewania podłogowego",
      "gdzie nie układać ogrzewania podłogowego"
    ],
    "measurementTechnique": "Agregacja i wizualizacja wskaźników fizycznych (czas, grubość, opór cieplny) w formacie wektorowym PDF gotowym do druku.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Czasy nagrzewania dla systemów mokrych i suchych.",
        "Wpływ grubości jastrychu na bezwładność.",
        "Limity oporu cieplnego dla okładzin (gres, panele)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/#webapp-infografika",
    "name": "Przeglądarka Materiałów Edukacyjnych",
    "description": "Interaktywny moduł z Lightboxem umożliwiający podgląd i pobranie materiałów szkoleniowych dotyczących podłogówki bez opuszczania artykułu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-module" id="pobierz-infografike-app">
    
    <div class="rk-dl-header">
        <div class="rk-dl-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="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>
            <h2>Pobierz darmową infografikę: Ile czasu nagrzewa się podłogówka?</h2>
            <p>Inżynierska ściągawka dla inwestorów i wykonawców.</p>
        </div>
    </div>

    <div class="rk-dl-grid">
        
        <div class="rk-dl-thumbnail-box">
            <div class="rk-dl-thumb-wrapper" id="rk-trigger-lightbox" role="button" tabindex="0" aria-label="Powiększ infografikę">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" alt="Infografika - Czasy nagrzewania podłogówki" loading="lazy">
                
                <div class="rk-dl-zoom-overlay">
                    <div class="rk-dl-zoom-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="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>
                    </div>
                    <span class="rk-dl-zoom-text">Kliknij, aby powiększyć</span>
                </div>
            </div>
        </div>

        <div class="rk-dl-content">
            <h3>Wszystkie dane w jednym miejscu</h3>
            <div class="rk-dl-desc">
                <p>Zamiast szukać informacji rozrzuconych po forach, przygotowaliśmy dla Ciebie kompaktowe zestawienie. Idealne do wydrukowania i powieszenia w kotłowni lub pokazania instalatorowi. Znajdziesz na niej m.in.:</p>
                <ul>
                    <li>Dokładne różnice czasowe między anhydrytem a cementem.</li>
                    <li>Ograniczenia oporów cieplnych dla różnych okładzin.</li>
                    <li>Wpływ grubości betonu na bezwładność systemu.</li>
                </ul>
                <p style="margin-top: 15px;">Jeśli po analizie infografiki wciąż masz wątpliwości, sprawdź nasz <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-inline-link">kompleksowy kalkulator ogrzewania podłogowego</a>, by przeliczyć własny budynek, oraz zapoznaj się z tym, <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" class="rk-inline-link">jakich najczęstszych błędów wykonawczych unikać</a>.</p>
            </div>

            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-pdf" download>
                    <div class="rk-btn-icon-left">
                        <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="12" y1="18" x2="12" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></svg>
                        Pobierz plik PDF
                    </div>
                    <span class="rk-btn-meta">Do druku</span>
                </a>
                
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" target="_blank" rel="noopener noreferrer" class="rk-btn-download rk-btn-img" download>
                    <div class="rk-btn-icon-left">
                        <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>
                        Pobierz grafikę (WebP)
                    </div>
                    <span class="rk-btn-meta">Na telefon</span>
                </a>
            </div>
        </div>
    </div>

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

    <div class="rk-lightbox" id="rk-img-lightbox">
        <div class="rk-lightbox-content">
            <button class="rk-lightbox-close" id="rk-close-lightbox">
                Zamknij 
                <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="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
            </button>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/06/Infografika-Ile-czasu-nagrzewa-sie-podlogowka.webp" class="rk-lightbox-img" alt="Infografika Podłogówka - Powiększenie">
        </div>
    </div>
</div>

<script>
// Czysty, w pełni bezpieczny kod bez znaków &&
(function() {
    function initDownloadLightbox() {
        var trigger = document.getElementById('rk-trigger-lightbox');
        var lightbox = document.getElementById('rk-img-lightbox');
        var closeBtn = document.getElementById('rk-close-lightbox');

        if (!trigger) { return; }
        if (!lightbox) { return; }

        // Otwieranie Lightboxa
        trigger.addEventListener('click', function() {
            lightbox.classList.add('active');
            document.body.style.overflow = 'hidden'; // Blokada przewijania tła
        });

        // Otwieranie enterem (Dostępność / Accessibility)
        trigger.addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                lightbox.classList.add('active');
                document.body.style.overflow = 'hidden';
            }
        });

        // Zamykanie przyciskiem
        if (closeBtn) {
            closeBtn.addEventListener('click', function() {
                lightbox.classList.remove('active');
                document.body.style.overflow = ''; 
            });
        }

        // Zamykanie przez kliknięcie w tło
        lightbox.addEventListener('click', function(e) {
            // Zamknij tylko jeśli kliknięto bezpośrednio w ciemne tło (nie w obrazek)
            if (e.target === lightbox) {
                lightbox.classList.remove('active');
                document.body.style.overflow = '';
            }
        });

        // Zamykanie klawiszem Escape
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Escape') {
                if (lightbox.classList.contains('active')) {
                    lightbox.classList.remove('active');
                    document.body.style.overflow = '';
                }
            }
        });
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initDownloadLightbox);
    } else {
        initDownloadLightbox();
    }
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">Ile czasu nagrzewa się podłogówka?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 19:37:24 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2965</guid>

					<description><![CDATA[<p>Bezwładność cieplna to jeden z najczęściej niezrozumianych aspektów ogrzewania podłogowego, a jednocześnie klucz do jego komfortu i efektywności. W artykule wyjaśniamy, czym jest bezwładność cieplna w ogrzewaniu podłogowym, skąd się bierze i jak wpływa na codzienne użytkowanie instalacji. Pokazujemy, dlaczego podłogówka reaguje wolniej niż grzejniki, jaką rolę odgrywa wylewka, materiały wykończeniowe oraz automatyka i w jaki sposób świadome sterowanie pozwala zamienić pozorną wadę w realną przewagę energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Bezwładność cieplna w ogrzewaniu podłogowym</strong> to fundamentalna cecha fizyczna, która decyduje o charakterystyce pracy, komforcie użytkowania i efektywności całego systemu. W dużym uproszczeniu, jest to właściwość polegająca na powolnym nagrzewaniu i jeszcze wolniejszym stygnięciu masywnej konstrukcji podłogi. To zjawisko, które wynika bezpośrednio z praw termodynamiki i pojemności cieplnej materiałów, takich jak betonowa wylewka, stanowiąca serce wodnej instalacji grzewczej. Zrozumienie mechanizmów rządzących <strong>bezwładnością termiczną</strong> jest niezbędne do prawidłowego zaprojektowania, wykonania, a przede wszystkim – <a href="https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/">sterowania ogrzewaniem podłogowym</a>, aby w pełni wykorzystać jego potencjał i uniknąć kosztownych błędów eksploatacyjnych.</p>



<h2 class="wp-block-heading">Fizyka stojąca za bezwładnością termiczną: Magazyn energii cieplnej.</h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć,&nbsp;<strong>czym jest bezwładność cieplna w ogrzewaniu podłogowym</strong>, należy odwołać się do podstawowych pojęć fizycznych. Kluczowym parametrem jest&nbsp;<strong>pojemność cieplna właściwa</strong>&nbsp;materiału, czyli ilość energii potrzebna do podniesienia temperatury 1 kg tej substancji o 1 stopień Kelvina. Im wyższa ta wartość, tym więcej ciepła materiał może &#8222;zaabsorbować&#8221; i później oddawać.</p>



<h3 class="wp-block-heading">Konstrukcja podłogi jako akumulator.</h3>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe to nie tylko <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> z ciepłą wodą. To złożony &#8222;tort&#8221; warstwowy, z których każda ma wpływ na dynamikę systemu. Głównym magazynem ciepła jest:</p>



<ul class="wp-block-list">
<li><strong>Jastrych (wylewka) betonowy</strong>: Standardowa warstwa o grubości 5-8 cm i gęstości ok. 2000 kg/m³ ma ogromną masę i znaczną pojemność cieplną. To właśnie ona nadaje systemowi charakterystyczną <strong>dużą bezwładność</strong>.</li>



<li><strong>Warstwa wykończeniowa</strong>: Płytki ceramiczne lub kamienne współpracują z jastrychem, zwiększając efekt akumulacji. Drewno i panele laminowane mają znacznie mniejszą pojemność cieplną.</li>



<li><strong>Izolacja termiczna</strong>: Choć jej głównym zadaniem jest kierowanie ciepła w górę, to również wpływa na dynamikę, spowalniając niepożądane oddawanie ciepła w dół.</li>
</ul>



<p class="wp-block-paragraph">Proces nagrzewania takiej masywności jest powolny. Ciepło z wody w rurach musi zostać przewiedzione przez ściankę rury, następnie do otulającego ją betonu, by w końcu, przez warstwę wykończeniową, dotrzeć do pomieszczenia. Cały ten proces może trwać kilkanaście godzin od momentu uruchomienia źródła ciepła.</p>



<h2 class="wp-block-heading">Czynniki kształtujące poziom bezwładności w instalacji.</h2>



<p class="wp-block-paragraph">Nie każda podłogówka reaguje tak samo. Na&nbsp;<strong>stopień bezwładności systemu</strong>&nbsp;wpływa szereg czynników, które można (i należy) modyfikować już na etapie projektu.</p>



<h3 class="wp-block-heading">Grubość i rodzaj jastrychu.</h3>



<ul class="wp-block-list">
<li><strong>Grubsza wylewka (np. 8-10 cm)</strong> = większa masa = <strong>większa bezwładność cieplna</strong> i dłuższy czas reakcji.</li>



<li><strong>Cieńsza wylewka (np. 4-5 cm)</strong> lub systemy suche (płyty gipsowo-włóknowe z kanałami na rury) = mniejsza masa = <strong>mniejsza bezwładność</strong>, szybsze nagrzewanie i chłodzenie.</li>
</ul>



<h3 class="wp-block-heading">Materiał wykończeniowy podłogi.</h3>



<p class="wp-block-paragraph">Poniższa tabela ilustruje wpływ różnych materiałów na charakterystykę oddawania ciepła i bezwładność systemu:</p>



<style>
.table-responsive {
  width: 100%;
  overflow-x: auto;
  margin: 20px 0;
}

.table-responsive table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
  font-size: 15px;
}

.table-responsive th,
.table-responsive td {
  padding: 12px 14px;
  border: 1px solid #e0e0e0;
  text-align: left;
  vertical-align: top;
}

.table-responsive th {
  background-color: #f5f5f5;
  font-weight: 600;
}

.table-responsive tr:nth-child(even) {
  background-color: #fafafa;
}

/* Mobile tweaks */
@media (max-width: 768px) {
  .table-responsive table {
    font-size: 14px;
  }
}
</style>

<div class="table-responsive">
  <table>
    <thead>
      <tr>
        <th>Materiał wykończeniowy</th>
        <th>Przewodność cieplna (λ) [W/mK]</th>
        <th>Pojemność cieplna</th>
        <th>Wpływ na bezwładność systemu</th>
        <th>Czas reakcji</th>
        <th>Komfort cieplny</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Płytki ceramiczne / kamień</strong></td>
        <td>Wysokie (ok. 1.0–1.5)</td>
        <td>Duża</td>
        <td>Zwiększa (współpracuje z jastrychem)</td>
        <td>Dłuższy</td>
        <td>Doskonały, równomierne ciepło</td>
      </tr>
      <tr>
        <td><strong>Panele winylowe (LVT)</strong></td>
        <td>Średnie</td>
        <td>Mała</td>
        <td>Neutralny / lekko redukuje</td>
        <td>Średni</td>
        <td>Dobry</td>
      </tr>
      <tr>
        <td><strong>Drewno lite</strong></td>
        <td>Niskie (ok. 0.15–0.25)</td>
        <td>Średnia</td>
        <td>Zmniejsza (działa jako izolator)</td>
        <td>Krótszy</td>
        <td>Ciepłe w dotyku, wolniejsze oddawanie</td>
      </tr>
      <tr>
        <td><strong>Wykładzina dywanowa</strong></td>
        <td>Bardzo niskie</td>
        <td>Mała</td>
        <td>Znacznie zmniejsza (izoluje!)</td>
        <td>Znacznie krótszy</td>
        <td>Powierzchnia przyjemna, ale blokuje ciepło</td>
      </tr>
    </tbody>
  </table>
</div>




<h3 class="wp-block-heading">Parametry pracy źródła ciepła i instalacji.</h3>



<ul class="wp-block-list">
<li><strong>Temperatura zasilania</strong>: Niższa temperatura wody (np. 35-40°C) wymaga dłuższego czasu na przekazanie tej samej ilości energii do masywnej podłogi niż woda o temperaturze 50°C.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw</a> i głębokość pętli grzewczych</strong>: Gęstszy rozstaw rur (np. 10 cm vs 20 cm) przyspiesza nagrzewanie warstwy akumulacyjnej.</li>
</ul>



<h2 class="wp-block-heading">Bezwładność a sterowanie: Wyzwanie dla nowoczesnej automatyki.</h2>



<p class="wp-block-paragraph">To właśnie w obszarze sterowania&nbsp;<strong>bezwładność termiczna podłogówki</strong>&nbsp;stawia największe wyzwania. Tradycyjne, dwupołoweniowe sterowanie typu &#8222;włącz/wyłącz&#8221; na podstawie wskazań pokojowego termostatu jest tu&nbsp;<strong>skrajnie nieefektywne</strong>.</p>



<h3 class="wp-block-heading">Dlaczego klasyczny termostat zawodzi?</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie, że termostat wyłączy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> w momencie osiągnięcia żądanej temperatury pokojowej. Masywna podłoga jest wtedy gorąca i jeszcze przez wiele godzin oddaje zgromadzone ciepło, prowadząc do <strong>efektu przegrzania</strong>. Gdy temperatura spadnie i termostat znów załączy ogrzewanie, podłoga jest jeszcze ciepła, a na odczuwalny efekt w pomieszczeniu trzeba będzie czekać kolejne godziny – powstają duże wahania temperatury.</p>



<h3 class="wp-block-heading">Optymalne strategie sterowania.</h3>



<p class="wp-block-paragraph">Aby opanować&nbsp;<strong>bezwładność w ogrzewaniu podłogowym</strong>, stosuje się zaawansowane systemy regulacji:</p>



<ol start="1" class="wp-block-list">
<li><strong>Sterowanie pogodowe (z kurtyną czasową)</strong>: To najskuteczniejsza metoda. Sterownik, na podstawie temperatury zewnętrznej i krzywej grzewczej, oblicza wymaganą temperaturę wody zasilającej pętle. Uwzględnia on również <strong>opóźnienie systemu (bezwładność)</strong>. Gdy prognozowany jest spadek temperatury na zewnątrz, sterownik wcześniej zwiększa temperaturę zasilania, aby kompensować spowolnioną reakcję podłogi. Decyzja nie zależy od chwilowej temperatury w pomieszczeniu.</li>



<li><strong>Stała temperatura zasilania z modulacją pompą</strong>: W systemach o dużej bezwładności często utrzymuje się stałą, niską temperaturę w obiegu podłogowym przez cały sezon. Regulacji dokonuje się poprzez załączanie i wyłączanie pompy obiegowej (z płynną modulacją obrotów). Często łączy się to z funkcją <strong>priorytetu bufora</strong> – pompa ciepła ładuje magazyn (bufor), z którego ciepło jest czerpane do podłogówki.</li>



<li><strong>Regulacja proporcjonalno-całkująco-różniczkująca (PID)</strong>: Nowoczesne sterowniki pokojowe z algorytmem PID nie działają w trybie włącz/wyłącz. Antycypują one zmiany, łagodnie modulując pracą, aby utrzymać stałą temperaturę docelową, minimalizując przegrzania i niedogrzania.</li>
</ol>



<h2 class="wp-block-heading">Konsekwencje bezwładności: Mocne strony i ograniczenia systemu.</h2>



<p class="wp-block-paragraph">Zrozumienie&nbsp;<strong>bezwładności cieplnej podłogówki</strong>&nbsp;pozwala świadomie wykorzystać jej zalety i zminimalizować wady.</p>



<h3 class="wp-block-heading">Korzyści wynikające z dużej bezwładności termicznej.</h3>



<ul class="wp-block-list">
<li><strong>Niezrównany komfort cieplny</strong>: Ciepło jest oddawane w sposób niezwykle równomierny, bez odczuwalnych cykli grzania. Brak gorących powiewów i cyrkulacji kurzu.</li>



<li><strong>Idealna współpraca z OZE</strong>: <strong>Ogrzewanie podłogowe o dużej bezwładności</strong> to perfekcyjny partner dla <a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">pomp ciepła</a>. Umożliwia im długotrwałą, ciągłą pracę z wysokim współczynnikiem COP (efektywności) przy niskich temperaturach zasilania. Podobnie współpracuje z kotłami na paliwa stałe, akumulując ciepło z jednego załadunku.</li>



<li><strong>Możliwość wykorzystania taryf energii</strong>: System można programować tak, aby główny doładowanie termiczne magazynu (podłogi) następowało w czasie trwania tańszej taryfy nocnej/dziennej, a ciepło oddawane było w godzinach szczytu.</li>



<li><strong>Stabilizacja mikroklimatu</strong>: Masywna podłoga działa jak ogromny stabilizator temperatury w pomieszczeniu, tłumiąc krótkotrwałe wahania caused przez nasłonecznienie czy otwarcie drzwi.</li>
</ul>



<h3 class="wp-block-heading">Wyzwania i praktyczne ograniczenia.</h3>



<ul class="wp-block-list">
<li><strong>Brak możliwości szybkiego dogrzania</strong>: To największe praktyczne ograniczenie. Jeśli wracamy do zimnego domu, nie możemy oczekiwać szybkiego wzrostu temperatury. Podłoga potrzebuje czasu. Rozwiązaniem jest odpowiednie <strong>programowanie obniżeń temperatury</strong> (np. o 1-2°C, a nie o 5-6°C) lub zastosowanie dodatkowego, szybko reagującego źródła ciepła (np. grzejnik łazienkowy, klimatyzator).</li>



<li><strong>Ryzyko przegrzania i trudność chłodzenia</strong>: Błąd w sterowaniu może prowadzić do nadmiernego nagrzania masywnej płyty. Jej schłodzenie poprzez naturalne oddawanie ciepła lub wentylację może trwać nawet kilka dni, co jest uciążliwe.</li>



<li><strong>Wysokie wymagania dla automatyki</strong>: Jak opisano wcześniej, wymaga zaawansowanych i często droższych systemów sterowania.</li>



<li><strong>Długi czas uruchomienia systemu na początku sezonu</strong>: Pierwsze nagrzanie wychłodzonej po lecie konstrukcji jest procesem rozłożonym w czasie, wymagającym cierpliwości.</li>
</ul>



<h2 class="wp-block-heading">Projektowanie ogrzewania podłogowego z uwzględnieniem bezwładności cieplnej.</h2>



<p class="wp-block-paragraph"><strong>Kluczowym etapem, w którym kształtuje się przyszły charakter systemu, jest projekt.</strong>&nbsp;To na biurku projektanta zapadają decyzje, które zdeterminują&nbsp;<strong>poziom bezwładności cieplnej</strong>&nbsp;i jej konsekwencje.</p>



<p class="wp-block-paragraph">Dobry <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt instalacji podłogowej</a></strong> nie ogranicza się tylko do rozplanowania pętli grzewczych. Musi on <strong>kompleksowo uwzględniać dynamikę całego układu</strong>. Projektant powinien świadomie dobrać:</p>



<ul class="wp-block-list">
<li><strong>Grubość i rodzaj jastrychu</strong> w kontekście oczekiwanego czasu reakcji i przewidywanego źródła ciepła (pompa ciepła -> korzystna duża bezwładność).</li>



<li><strong>Materiały wykończeniowe</strong> – ich opór cieplny jest zawsze brany pod uwagę w obliczeniach mocy grzewczej. Współpraca z inwestorem przy tym wyborze jest kluczowa.</li>



<li><strong>Strategię sterowania</strong> już na etapie koncepcji. Określa się, czy będzie to sterownik pogodowy, czy pokojowy, jak podzielone zostaną strefy grzewcze.</li>



<li><strong>Parametry źródła ciepła</strong> – obliczeniowa temperatura zasilania i powrotu musi być skoordynowana z charakterystyką podłogówki.</li>



<li><strong>Czasy reakcji systemu</strong> – szacuje się je, aby przekazać użytkownikowi realne oczekiwania co do sterowania (np.: &#8222;Obniżenie temperatury dziennej o 2°C będzie wymagało rozpoczęcia nagrzewania 3 godziny przed planowanym powrotem do domu&#8221;).</li>
</ul>



<p class="wp-block-paragraph">Pominięcie analizy&nbsp;<strong>bezwładności w projekcie</strong>&nbsp;prowadzi do najczęstszych problemów eksploatacyjnych: przegrzewania, wrażenia &#8222;niedogrzania&#8221; lub niepotrzebnie wysokich kosztów energii wynikających z walki systemu z samym sobą.</p>



<h2 class="wp-block-heading">Praktyczne wskazówki eksploatacyjne dla systemów o dużej bezwładności</h2>



<p class="wp-block-paragraph">Podsumowując techniczny aspekt, warto sformułować praktyczne zasady postępowania z&nbsp;<strong>bezwładnym ogrzewaniem podłogowym</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zapomnij o szybkich zmianach</strong>: Nie próbuj gwałtownie podnosić temperatury. Jeśli chcesz cieplej, zwiększ nastawę o 0,5-1°C i poczekaj wiele godzin na pełny efekt.</li>



<li><strong>Inteligentne programowanie</strong>: Używaj funkcji <strong>ogrzewania okresowego</strong> (np. &#8222;nieobecności&#8221;) w sposób przemyślany. Lepiej jest utrzymywać stały, lekko obniżony poziom temperatury (np. 18°C) niż wyłączać ogrzewanie całkowicie, ponieważ ponowne nagrzanie masywu będzie długotrwałe i energochłonne.</li>



<li><strong>Współpraca z innymi źródłami</strong>: W pomieszczeniach, gdzie potrzebna jest szybka reakcja (łazienka), rozważ uzupełnienie systemu o <strong>dodatkowe, szybko reagujące źródło</strong>, takie jak elektryczna mata grzewcza włączana timerem lub grzejnik łazienkowy podłączony do obiegu grzewczego.</li>



<li><strong>Monitoruj, nie tylko steruj</strong>: Obserwuj zachowanie systemu w różnych warunkach pogodowych. Nowoczesne sterowniki oferują logi pracy i zużycia energii, które pomagają zoptymalizować ustawienia pod konkretny budynek i zwyczaje mieszkańców.</li>
</ol>



<h2 class="wp-block-heading">FAQ – najczęściej zadawane pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1765978603711"><strong class="schema-faq-question"><strong>Czy duża bezwładność cieplna w ogrzewaniu podłogowym to wada?</strong></strong> <p class="schema-faq-answer">Nie. To cecha fizyczna systemu. Przy odpowiednim sterowaniu staje się zaletą, zapewniając stabilną temperaturę i wysoki komfort cieplny.</p> </div> <div class="schema-faq-section" id="faq-question-1765978618810"><strong class="schema-faq-question"><strong>Ile czasu nagrzewa się ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W zależności od grubości wylewki i parametrów instalacji pełny efekt może pojawić się po kilku, a nawet kilkunastu godzinach od uruchomienia.</p> </div> <div class="schema-faq-section" id="faq-question-1765978629234"><strong class="schema-faq-question"><strong>Czy można zmniejszyć bezwładność cieplną podłogówki?</strong></strong> <p class="schema-faq-answer">Tak, stosując cieńsze jastrychy, systemy suche lub materiały wykończeniowe o niższej pojemności cieplnej, jednak zawsze jest to kompromis z akumulacją ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1765978649979"><strong class="schema-faq-question"><strong>Jak najlepiej sterować ogrzewaniem podłogowym o dużej bezwładności?</strong></strong> <p class="schema-faq-answer">Najlepiej sprawdza się sterowanie pogodowe lub zaawansowane algorytmy PID, które uwzględniają opóźnienia reakcji systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1765978657614"><strong class="schema-faq-question"><strong>Czy bezwładność cieplna dobrze współpracuje z pompą ciepła?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe o dużej bezwładności idealnie pasuje do pomp ciepła, umożliwiając ich stabilną i energooszczędną pracę przy niskich temperaturach zasilania.</p> </div> </div>



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



<p class="wp-block-paragraph"><strong>Podsumowując, bezwładność cieplna w ogrzewaniu podłogowym</strong>&nbsp;nie jest ani wadą, ani zaletą – jest&nbsp;<strong>fundamentalną cechą fizyczną</strong>&nbsp;tego systemu. Jej ignorowanie prowadzi do frustracji i niskiej efektywności. Świadome projektowanie, odpowiedni dobór materiałów oraz zastosowanie zaawansowanej automatyki pozwala&nbsp;<strong>wykorzystać bezwładność termiczną jako atut</strong>, przekształcając ją w filtr stabilizujący komfort cieplny i narzędzie do oszczędnej, zgodnej z zasadami fizyki, eksploatacji energii. To właśnie sprawia, że wodne ogrzewanie podłogowe, pomimo swej prostoty koncepcyjnej, pozostaje jednym z najbardziej zaawansowanych technologicznie i komfortowych systemów grzewczych.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Kf8VCVkkvJ"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=91GrYpPCMn#?secret=Kf8VCVkkvJ" data-secret="Kf8VCVkkvJ" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
