<?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 wylewka - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/tag/wylewka/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/tag/wylewka/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Fri, 10 Jul 2026 16:36:50 +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 wylewka - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/tag/wylewka/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalacja ogrzewania podłogowego w układzie meandrowym.</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 11 May 2025 15:30:59 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje budowlane]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Remont domu]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty instalacji]]></category>
		<category><![CDATA[montaż podłogówki]]></category>
		<category><![CDATA[normy ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz]]></category>
		<category><![CDATA[rury grzewcze]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[strefy brzegowe]]></category>
		<category><![CDATA[układ meandrowy]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2575</guid>

					<description><![CDATA[<p>Chcesz cieszyć się ciepłem w domu przez cały rok? Poznaj zalety instalacji ogrzewania podłogowego w układzie meandrowym – prostego i efektywnego systemu grzewczego. Dowiedz się, jak zaplanować montaż, dobrać rury i okładziny oraz uniknąć błędów. Sprawdź praktyczne porady, koszty i przykłady zastosowań, aby stworzyć komfortowy i energooszczędny dom. Zainspiruj się i zacznij działać już dziś!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</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-navy: #1e293b;
    --rk-intro-blue: #0284c7;
    --rk-intro-blue-light: #f0f9ff;
    --rk-intro-accent: #10b981; /* Zielony inżynierski */
    --rk-intro-accent-light: #ecfdf5;
    --rk-intro-gray: #475569;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

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

/* Sekcja Hook (Mocne otwarcie) */
.rk-intro-hook-box {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, var(--rk-intro-navy) 100%);
    padding: 40px 45px;
    color: white;
    border-bottom: 5px solid var(--rk-intro-blue);
    display: flex;
    align-items: flex-start;
    gap: 25px;
}

.rk-intro-hook-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
    flex-shrink: 0;
}

.rk-intro-hook-icon svg {
    width: 32px;
    height: 32px;
    color: #38bdf8;
}

.rk-intro-hook-content h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    line-height: 1.3;
    color: white;
}

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

/* Szybka Odpowiedź (Featured Snippet) */
.rk-intro-quick-answer {
    padding: 45px;
    background: var(--rk-intro-bg);
}

.rk-intro-qa-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
    border: 1px solid #bae6fd;
}

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

.rk-intro-quick-answer p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-intro-gray);
    margin: 0 0 15px 0;
}

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

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

.rk-intro-quick-answer a:hover {
    color: var(--rk-intro-dark);
    background: var(--rk-intro-blue-light);
}

/* Zapowiedź Narzędzi Interaktywnych (Teaser) */
.rk-intro-teaser-section {
    background: #f8fafc;
    border-top: 1px solid var(--rk-intro-border);
    padding: 45px;
}

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

.rk-intro-teaser-header h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-intro-teaser-header p {
    font-size: 15px;
    color: var(--rk-intro-gray);
    margin: 0;
}

.rk-intro-tools-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-intro-tool-btn {
    background: white;
    border: 1px solid var(--rk-intro-border);
    padding: 20px;
    border-radius: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 20px;
    text-align: left;
}

.rk-intro-tool-btn:hover {
    background: var(--rk-intro-accent-light);
    border-color: #a7f3d0;
}

.rk-intro-tool-btn.active {
    background: var(--rk-intro-accent-light);
    border-color: var(--rk-intro-accent);
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.1);
}

.rk-intro-tool-icon {
    background: #f1f5f9;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-intro-blue);
    flex-shrink: 0;
}

.rk-intro-tool-btn.active .rk-intro-tool-icon {
    background: var(--rk-intro-accent);
    color: white;
}

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

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

/* Moduł Wyniku Teasera */
.rk-intro-tool-preview {
    background: white;
    border: 1px solid var(--rk-intro-border);
    border-radius: 12px;
    padding: 25px;
    margin-top: 15px;
    display: none; /* Sterowane z JS, brak animacji */
}

.rk-intro-tool-preview.show {
    display: block;
}

.rk-intro-tool-preview p {
    font-size: 15px;
    color: var(--rk-intro-dark);
    margin: 0;
    line-height: 1.6;
    font-weight: 600;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-hook-box { flex-direction: column; padding: 30px 25px; gap: 20px; text-align: center; align-items: center; }
    .rk-intro-quick-answer { padding: 30px 25px; }
    .rk-intro-teaser-section { padding: 30px 25px; }
    .rk-intro-tool-btn { flex-direction: column; text-align: center; gap: 15px; padding: 20px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Instalacja ogrzewania podłogowego w układzie meandrowym – Zrozumieć fizykę ciepła",
    "description": "Definicja i charakterystyka instalacji ogrzewania podłogowego w układzie meandrowym. Zrozum liniowy spadek temperatury czynnika grzewczego.",
    "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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-definicja",
    "name": "Parametry definicyjne układu meandrowego",
    "description": "Podstawowe cechy i właściwości termodynamiczne płaszczyznowego układu meandrowego, determinujące różnicowanie wydajności cieplnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja ogrzewania podłogowego meander",
      "liniowy spadek temperatury czynnika",
      "układ równoległy rur grzewczych",
      "profil temperatur jastrychu",
      "niskotemperaturowy system płaszczyznowy"
    ],
    "measurementTechnique": "Określenie zjawisk fizycznych i geometrycznych w obrębie wylewki jastrychowej przy równoległym trasowaniu przewodów grzewczych o kącie zwrotu 180 stopni.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Geometria: Rury układane równolegle z nawrotami o 180 stopni.",
        "Termodynamika: Liniowy spadek temperatury czynnika wzdłuż pętli.",
        "Cel: Zróżnicowanie wydajności cieplnej (kompensacja strat stref brzegowych)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-spis-narzedzi",
    "name": "Eksplorator Narzędzi Artykułu",
    "description": "Zestawienie interaktywnych modułów obliczeniowych i edukacyjnych dostępnych w dalszej części publikacji, dotyczących układu meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="meander-intro">
    
    <div class="rk-intro-hook-box">
        <div class="rk-intro-hook-icon">
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
        </div>
        <div class="rk-intro-hook-content">
            <h2>Płacisz tysiące za pompę ciepła, a podłoga przy oknie i tak jest lodowata?</h2>
            <p>Zainwestowałeś w nowoczesne źródło ciepła, ale w salonie brakuje komfortu? Błąd niemal zawsze leży w geometrii rur i braku zrozumienia termodynamiki. Układ meandrowy, choć trudniejszy w obliczeniach, to jedyna tarcza obronna przed wychłodzeniem.</p>
        </div>
    </div>

    <div class="rk-intro-quick-answer">
        <div class="rk-intro-qa-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg>
            Szybka odpowiedź eksperta
        </div>
        <h3>Czym jest instalacja ogrzewania podłogowego w układzie meandrowym?</h3>
        <p>
            Instalacja ogrzewania podłogowego w układzie meandrowym to niskotemperaturowy system płaszczyznowy, w którym rury grzewcze są układane równolegle względem siebie w kształt jednostronnych pętli z zakrętami o 180 stopni. Rozwiązanie to charakteryzuje się liniowym spadkiem temperatury czynnika grzewczego wzdłuż pętli, co pozwala na celowe różnicowanie wydajności cieplnej w obrębie jednego pomieszczenia.
        </p>
        <p>
            Jako system płaszczyznowy, instalacja ta zapewnia pionowy profil temperatur zbliżony do idealnego dla organizmu człowieka, eliminując <a href="https://projekt-ogrzewania.pl/zalety-ogrzewania-podlogowego-w-porownaniu-do-tradycyjnych-grzejnikow/">tradycyjne grzejniki konwekcyjne</a>. Prawidłowo zaprojektowany układ meandrowy redukuje koszty eksploatacyjne budynku przy współpracy z <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">pompami ciepła</a>.
        </p>
    </div>

    <div class="rk-intro-teaser-section">
        <div class="rk-intro-teaser-header">
            <h4>Co jeszcze odkryjesz w tym kompendium?</h4>
            <p>Ten artykuł to nie tylko sucha teoria. Przewiń w dół, aby skorzystać z zaawansowanych, interaktywnych narzędzi inżynierskich przygotowanych specjalnie dla Ciebie.</p>
        </div>

        <div class="rk-intro-tools-grid" id="teaserTabs">
            <button class="rk-intro-tool-btn" data-tool="calc">
                <div class="rk-intro-tool-icon">
                    <svg 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-intro-tool-text">
                    <h5>Kalkulator przepływów i strat</h5>
                    <p>Oblicz na żywo nastawy dla rotametrów na podstawie mocy cieplnej.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="sim">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Symulatory termodynamiki EN 1264</h5>
                    <p>Sprawdź wizualnie, co się stanie przy błędnym trasowaniu meandru.</p>
                </div>
            </button>

            <button class="rk-intro-tool-btn" data-tool="case">
                <div class="rk-intro-tool-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
                </div>
                <div class="rk-intro-tool-text">
                    <h5>Interaktywne Case Study z budowy</h5>
                    <p>Rozwiązanie problemu braku nośności stropu w domu z lat 70.</p>
                </div>
            </button>
        </div>

        <div class="rk-intro-tool-preview" id="teaserPreviewBox">
            </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-intro-tool-btn');
    var previewBox = document.getElementById('teaserPreviewBox');

    var teaserData = {
        "calc": "Zastosowaliśmy precyzyjne algorytmy fizyczne. Suwaki pozwolą Ci od razu zobaczyć, czy Twoja pętla nie stawia zbyt dużych oporów hydraulicznych i nie zadławi pracy całego rozdzielacza.",
        "sim": "Graficzne heatmapy oparte na wytycznych PN-EN pokażą Ci różnicę pomiędzy powstawaniem bezpiecznej kurtyny termicznej, a przekroczeniem dopuszczalnych 29°C w salonie.",
        "case": "Krok po kroku przeprowadzimy Cię przez proces decyzyjny inżyniera, który uratował drewniany strop przed zawaleniem ciężką wylewką, stosując system suchy w układzie meandrowym."
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var isActive = this.classList.contains('active');

            // Resetowanie wszystkich
            btns.forEach(function(b) { b.classList.remove('active'); });

            if (isActive === false) {
                this.classList.add('active');
                var tool = this.getAttribute('data-tool');
                var text = teaserData[tool];

                if (text !== undefined) {
                    previewBox.innerHTML = '<p>' + text + '</p>';
                    previewBox.classList.add('show');
                }
            } else {
                // Jesli kliknieto aktywny - zwiń (bezpieczna logika bez operators logicznych negacji zlozonych)
                previewBox.classList.remove('show');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-en-dark: #0f172a;
    --rk-en-blue: #0284c7;
    --rk-en-red: #ef4444;
    --rk-en-orange: #f59e0b;
    --rk-en-gray: #475569;
    --rk-en-bg: #ffffff;
    --rk-en-border: #e2e8f0;
    --rk-en-light: #f8fafc;
}

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

/* Header */
.rk-en-header {
    background: linear-gradient(135deg, var(--rk-en-dark) 0%, #1e293b 100%);
    padding: 35px 40px;
    color: white;
    text-align: center;
    border-bottom: 4px solid var(--rk-en-blue);
}

.rk-en-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-en-body {
    padding: 35px 40px;
    background: var(--rk-en-light);
}

/* Moduł Sterowania Symulacją */
.rk-en-controls {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-en-btn {
    background: white;
    border: 2px solid var(--rk-en-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-en-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 260px;
    justify-content: center;
}

.rk-en-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-en-btn.active[data-layout="random"] {
    border-color: var(--rk-en-red);
    background: #fef2f2;
    color: var(--rk-en-red);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.3);
}

.rk-en-btn.active[data-layout="engineered"] {
    border-color: var(--rk-en-blue);
    background: #f0f9ff;
    color: var(--rk-en-blue);
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-en-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wizualizacji SVG */
.rk-en-vis-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-en-svg-wrapper {
    width: 100%;
    height: 220px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-en-status {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    padding: 15px 20px;
    border-radius: 10px;
    font-weight: 800;
    font-size: 15px;
    transition: all 0.3s ease;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-en-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #f0f9ff;
    color: var(--rk-en-blue);
    border: 1px solid #bae6fd;
}

/* Sekcja Tekstowa */
.rk-en-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-en-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

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

.rk-en-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-en-blue);
    border-radius: 4px;
}

.rk-en-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-en-content-box a {
    color: var(--rk-en-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-en-content-box a:hover {
    color: var(--rk-en-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-en-dark);
    background: #e2e8f0;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG (Pulsująca fala ciepła) */
.heat-wave {
    stroke-dasharray: 15;
    animation: flowHeat 1s linear infinite;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-en-header, .rk-en-body { padding: 25px 20px; }
    .rk-en-controls { flex-direction: column; gap: 10px; }
    .rk-en-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-en-content-box { padding: 25px 20px; }
    .rk-en-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-en1264",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak działa ogrzewanie podłogowe w układzie meandrowym w odniesieniu do normy EN 1264?",
    "description": "Analiza termodynamiki układu meandrowego. Jak zapobiec pękaniu płytek i dyskomfortowi gorących stóp, przestrzegając granicznej temperatury 29 stopni Celsjusza.",
    "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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-en1264",
    "name": "Wymogi termiczne ogrzewania podłogowego wg PN-EN 1264-2",
    "description": "Ograniczenia fizyczne dla systemów płaszczyznowych definiujące maksymalną gęstość strumienia cieplnego względem komfortu ludzkiego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "norma PN-EN 1264 podłogówka",
      "maksymalna temperatura podłogi 29C",
      "spadek temperatury podłogówka",
      "pękanie płytek na ogrzewaniu podłogowym",
      "wymiana ciepła promieniowanie konwekcja",
      "gęstość strumienia cieplnego podłogówka"
    ],
    "measurementTechnique": "Analiza rozkładu temperatur (delta T 5-8K) na podstawie normy PN-EN 1264-2 w odniesieniu do stref stałego przebywania ludzi.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna temperatura posadzki: 29°C (w strefie stałego przebywania domowników).",
        "Wymiana ciepła: Przeważa promieniowanie nad konwekcją swobodną.",
        "Delta T (Spadek temperatury): Standardowo wynosi od 5K do 8K pomiędzy zasilaniem a powrotem, powodując ryzyko powstania stref niedogrzanych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-en1264",
    "name": "Symulator Rozkładu Temperatur Meandru wg EN 1264",
    "description": "Interaktywne narzędzie obrazujące zjawisko powstawania stref niedogrzanych oraz przegrzewania posadzki powyżej 29 stopni Celsjusza w wyniku błędnego trasowania rur.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-en-container" id="norm-en1264-sim">
    <div class="rk-en-header">
        <h2>Jak działa meander w odniesieniu do normy EN 1264?</h2>
        <p>Ignorowanie fizyki to najkrótsza droga do popękanych płytek i lodowatych stóp. Przetestuj, jak ułożenie pętli względem okna wpływa na legalną temperaturę podłogi.</p>
    </div>

    <div class="rk-en-body">
        
        <div class="rk-en-controls" id="enTabs">
            <button class="rk-en-btn active" data-layout="random">
                <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>
                Układ Przypadkowy (Błąd)
            </button>
            <button class="rk-en-btn" data-layout="engineered">
                <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>
                Układ Inżynierski (Poprawny)
            </button>
        </div>

        <div class="rk-en-vis-box fade-in" id="enVisBox">
            
            <div class="rk-en-svg-wrapper" id="enSvgBox">
                <svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
                    <rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/> <rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/> <defs>
                        <linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%">
                            <stop offset="0%" stop-color="#dc2626"/>
                            <stop offset="100%" stop-color="#38bdf8"/>
                        </linearGradient>
                    </defs>
                    <path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/>
                    <text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text>
                    <text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text>
                </svg>
            </div>

            <div class="rk-en-status status-danger" id="enStatusBox">
                <span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span>
                <span>Strefa okna: <strong>Niedogrzana</strong></span>
            </div>

        </div>

        <div class="rk-en-content-box fade-in" id="enContentBox">
            <h3 id="enTitle">Brak balansu i ryzyko dla posadzki</h3>
            <div id="enText">
                <p>
                    <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.
                </p>
                <p>
                    Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.
                </p>
                <p>
                    Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem &#8222;gorących stóp&#8221;, a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-en-btn');
    var visBox = document.getElementById('enVisBox');
    var contentBox = document.getElementById('enContentBox');
    var svgBox = document.getElementById('enSvgBox');
    var statusBox = document.getElementById('enStatusBox');
    var enTitle = document.getElementById('enTitle');
    var enText = document.getElementById('enText');

    var layoutData = {
        "random": {
            statusClass: "status-danger",
            statusHtml: '<span>Strefa bytowa: <strong>Przegrzana (> 29°C)</strong></span><span>Strefa okna: <strong>Niedogrzana</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradBad" x1="100%" y1="0%" x2="0%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#38bdf8"/></linearGradient></defs><path d="M300 140 L50 140 L50 110 L350 110 L350 80 L50 80 L50 50 L300 50" stroke="url(#gradBad)" stroke-width="8" class="heat-wave"/><text x="320" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">> 32°C (Dyskomfort)</text><text x="50" y="165" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">< 22°C (Chłód)</text></svg>',
            title: "Brak balansu i ryzyko dla posadzki",
            html: '<p><a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">Instalacja ogrzewania podłogowego</a> w układzie meandrowym działa na zasadzie wymiany ciepła przez promieniowanie oraz konwekcję swobodną. Zgodnie z bezwzględną normą <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">PN-EN 1264-2</a>, maksymalna gęstość strumienia cieplnego (<strong>q</strong>) nie może przekroczyć wartości granicznych. Są one determinowane przez maksymalną temperaturę podłogi wynoszącą <span class="rk-tech-val">29°C</span> w strefie stałego przebywania ludzi.</p><p>Czynnik grzewczy wpływa do pętli z określoną temperaturą zasilania <strong>Tz</strong> (najczęściej 35°C–45°C), a oddając ciepło do jastrychu, schładza się liniowo aż do osiągnięcia temperatury powrotu przy rozdzielaczu. Standardowy spadek temperatury medium (<strong>ΔT = 5K do 8K</strong>) powoduje proporcjonalne obniżenie mocy cieplnej na każdym metrze bieżącym rury.</p><p>Ból inwestora polega na tym, że bez przeprowadzenia <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansu cieplnego budynku</a> i znajomości fizyki, pierwsza część pokoju będzie nieprzyjemnie gorąca, a druga zimna. Układ ułożony bez planu wygeneruje strefy o zbyt wysokiej temperaturze na początku zasilania (powyżej 29°C). Skutkuje to efektem "gorących stóp", a co gorsza – miejscowymi naprężeniami termicznymi prowadzącymi do pękania okładzin ceramicznych i mikropęknięć w jastrychu.</p>'
        },
        "engineered": {
            statusClass: "status-safe",
            statusHtml: '<span>Strefa bytowa: <strong>Normatywna (26-28°C)</strong></span><span>Strefa okna: <strong>Chroniona (35°C)</strong></span>',
            svg: '<svg width="400" height="180" viewBox="0 0 400 180" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect x="20" y="20" width="15" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><rect x="280" y="50" width="100" height="80" rx="10" fill="#cbd5e1" stroke="#64748b" stroke-width="2"/><defs><linearGradient id="gradGood" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626"/><stop offset="100%" stop-color="#f59e0b"/></linearGradient></defs><path d="M50 140 L350 140 L350 110 L50 110 L50 80 L350 80 L350 50 L50 50" stroke="url(#gradGood)" stroke-width="8" class="heat-wave"/><text x="50" y="165" font-size="12" fill="#dc2626" stroke="none" font-weight="bold">MAX 35°C (Dozwolone)</text><text x="300" y="165" font-size="12" fill="#0284c7" stroke="none" font-weight="bold">26-28°C (Komfort)</text></svg>',
            title: "Inteligentna kompensacja infiltracji",
            html: '<p>Aby zapobiec niszczeniu wylewek i dyskomfortowi domowników, inżynierowie wypracowali metodę układania meandru w sposób ściśle ukierunkowany. Rura zasilająca wprowadzana jest zawsze najpierw pod przegrody o najwyższych stratach ciepła, czyli bezpośrednio pod szyby tarasowe i ściany zewnętrzne.</p><p>Pozwala to zrównoważyć profil temperatur w pomieszczeniach o podwyższonych stratach. Norma PN-EN 1264 dopuszcza w strefie brzegowej (czyli wąskim pasie przy ścianie, gdzie nie przebywamy stale) temperaturę posadzki aż do <span class="rk-tech-val">35°C</span>. Przez to najgorętsza woda oddaje swój potężny ładunek tam, gdzie jest on najbardziej potrzebny do walki z infiltracją zimnego powietrza.</p><p>Gdy czynnik grzewczy dociera w głąb salonu (pod strefę wypoczynkową), jego temperatura w naturalny sposób spada do pożądanego i w pełni bezpiecznego poziomu, zapewniając domownikom <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">zdrowy komfort cieplny bez negatywnych skutków ubocznych</a>.</p>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zmiana klas przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var layout = this.getAttribute('data-layout');
            var data = layoutData[layout];

            // Bezpieczne wstrzyknięcie zawartości
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszony reflow przeglądarki
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja Statusu
                statusBox.className = "rk-en-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                enTitle.textContent = data.title;
                enText.innerHTML = data.html;
            }
        });
    });
});
</script>



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

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

/* Header */
.rk-mnd-header {
    background: linear-gradient(135deg, var(--rk-mnd-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-mnd-blue);
}

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

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

/* Interfejs */
.rk-mnd-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełączniki (Toggles) */
.rk-mnd-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-mnd-btn {
    background: white;
    border: 2px solid var(--rk-mnd-border);
    padding: 16px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-mnd-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 240px;
    justify-content: center;
}

.rk-mnd-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-mnd-blue-light);
}

.rk-mnd-btn.active {
    border-color: var(--rk-mnd-blue);
    background: var(--rk-mnd-blue);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(2, 132, 199, 0.4);
}

.rk-mnd-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Wizualizacja SVG (Heatmapa) */
.rk-mnd-visual-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-mnd-svg-wrapper {
    width: 100%;
    max-width: 450px;
    height: 280px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-mnd-gradient-bar {
    width: 100%;
    max-width: 450px;
    height: 12px;
    border-radius: 6px;
    margin-top: 20px;
    background: linear-gradient(to right, #dc2626, #f59e0b, #38bdf8, #2563eb);
    position: relative;
}

.rk-mnd-grad-labels {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 450px;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-mnd-gray);
}

/* Tekst i Wyjaśnienie */
.rk-mnd-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-mnd-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

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

.rk-mnd-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-mnd-red);
    border-radius: 4px;
}

.rk-mnd-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-mnd-content-box a {
    color: var(--rk-mnd-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-mnd-content-box a:hover {
    color: var(--rk-mnd-dark);
    background: var(--rk-mnd-blue-light);
}

.rk-tech-hl {
    background: var(--rk-mnd-red-light);
    color: var(--rk-mnd-red);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 800;
    white-space: nowrap;
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* SVG Path Animations */
.path-flow {
    stroke-dasharray: 18;
    animation: flowDash 1.2s linear infinite;
}

@keyframes flowDash {
    to { stroke-dashoffset: -36; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-mnd-header, .rk-mnd-body { padding: 25px 20px; }
    .rk-mnd-toggles { flex-direction: column; gap: 10px; }
    .rk-mnd-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-mnd-content-box { padding: 25px 20px; }
    .rk-mnd-svg-wrapper { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-rodzaje",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meander a podwójny meander – rzetelne wyjaśnienie różnic",
    "description": "Fizyczne i techniczne zestawienie różnic pomiędzy meandrem pojedynczym a podwójnym. Analiza promieni gięcia rur i kompensacji strat ciśnienia w podłogówce.",
    "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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-meander-rodzaje",
    "name": "Rozkład temperatur i fizyka gięcia rur w układach meandrowych",
    "description": "Zestawienie profilu spadku temperatury czynnika grzewczego na powierzchni posadzki bez efektu krzyżowania się rur PEX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "meander podwójny a pojedynczy różnice",
      "układ wężykowy podłogówki",
      "równoległe układanie rur podłogówka",
      "jak nie krzyżować rur ogrzewania",
      "rozkład temperatury podłogówki meander",
      "spadek temperatury czynnika zasilania"
    ],
    "measurementTechnique": "Algorytmiczna wizualizacja równoległego prowadzenia czynnika zasilającego i powrotnego bez nakładania się osi przewodów.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Meander Pojedynczy: System kierunkowy z silnym, odczuwalnym gradientem. Zasilanie oddaje ciepło jednostronnie.",
        "Meander Podwójny: Układ bezkolizyjny, gdzie rura zasilająca i powrotna wymieniają się promieniami gięcia na nawrotach, stabilizując średnią temperaturę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-meander-rodzaje",
    "name": "Symulator Fizyki Pętli Meandrowych",
    "description": "Narzędzie webowe precyzyjnie obrazujące trasowanie rur zasilających i powrotnych w celu osiągnięcia pożądanego balansu termicznego jastrychu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-mnd-container" id="meander-types-sim">
    <div class="rk-mnd-header">
        <h2>Układ meander a podwójny meander – rzetelne wyjaśnienie różnic</h2>
        <p>Wybór między klasycznym wężykiem a bezkolizyjnym meandrem podwójnym to matematyczna decyzja o tym, czy Twoja podłoga będzie miała gorące strefy brzegowe, czy perfekcyjnie zbilansowaną temperaturę.</p>
    </div>

    <div class="rk-mnd-body">
        
        <div class="rk-mnd-toggles" id="mndTabs">
            <button class="rk-mnd-btn active" data-type="single">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 12h16M4 18h16"></path></svg>
                Meander Pojedynczy
            </button>
            <button class="rk-mnd-btn" data-type="double">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path></svg>
                Meander Podwójny
            </button>
        </div>

        <div class="rk-mnd-visual-box fade-in" id="mndVisBox">
            <div class="rk-mnd-svg-wrapper">
                <svg width="300" height="200" viewBox="0 0 300 200" fill="none" stroke-width="6" stroke-linejoin="round" id="mndSvg">
                    <defs>
                        <linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%">
                            <stop offset="0%" stop-color="#dc2626" />
                            <stop offset="50%" stop-color="#f59e0b" />
                            <stop offset="100%" stop-color="#2563eb" />
                        </linearGradient>
                    </defs>
                    <path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>
                </svg>
            </div>
            <div class="rk-mnd-gradient-bar"></div>
            <div class="rk-mnd-grad-labels">
                <span>Strefa Zasilania (Gorąca)</span>
                <span>Strefa Powrotu (Chłodna)</span>
            </div>
        </div>

        <div class="rk-mnd-content-box fade-in" id="mndContent">
            <h3 id="mndTitle">Meander Pojedynczy: Precyzyjny strumień kierunkowy</h3>
            <div id="mndText">
                <p>
                    W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.
                </p>
                <p>
                    <strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.
                </p>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-mnd-btn');
    var visBox = document.getElementById('mndVisBox');
    var contentBox = document.getElementById('mndContent');
    var mndSvg = document.getElementById('mndSvg');
    var mndTitle = document.getElementById('mndTitle');
    var mndText = document.getElementById('mndText');

    // Baza danych ze zoptymalizowanymi ścieżkami (Brak krzyżowania się rur)
    var typeData = {
        "single": {
            title: "Meander Pojedynczy: Precyzyjny strumień kierunkowy",
            html: '<p>W meandrze pojedynczym rura zasilająca układana jest od jednej ściany, zygzakiem (wężykiem) pokonując całe pomieszczenie, aż do punktu powrotu. Taka trasa skutkuje twardym zjawiskiem fizycznym zwanym <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadkiem temperatury czynnika (ΔT)</a>. Woda na początku pętli ma najwyższy parametr energetyczny, a systematycznie pokrywając metry kwadratowe jastrychu, mocno się wychładza.</p><p><strong>Kiedy stosować?</strong> Ten klasyczny układ celowo wykorzystuje się tam, gdzie inżynier projektuje zróżnicowany profil temperatury podłogi. Sprawdza się znakomicie jako tarcza termiczna pod olbrzymimi oknami tarasowymi. W ten sposób <span class="rk-tech-hl">najgorętsza woda uderza w strefy największych strat ciepła</span>, a przyjemnie schłodzony powrót trafia na środek salonu, nie przegrzewając domowników.</p>',
            svg: '<defs><linearGradient id="gradSingle" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" stop-color="#dc2626" /><stop offset="50%" stop-color="#f59e0b" /><stop offset="100%" stop-color="#2563eb" /></linearGradient></defs><path d="M20 25 L280 25 L280 50 L20 50 L20 75 L280 75 L280 100 L20 100 L20 125 L280 125 L280 150 L20 150" stroke="url(#gradSingle)" class="path-flow"/>'
        },
        "double": {
            title: "Meander Podwójny: Mistrzowski bilans (bez kolizji)",
            html: '<p>Meander podwójny to techniczna odpowiedź na wady pojedynczego wężyka, stosowana gdy zależy nam na równomiernej podłodze bez stref chłodu. W tym wariancie rura zasilająca (najgorętsza) prowadzona jest <span class="rk-tech-hl">idealnie równolegle obok rury powrotnej</span> (najchłodniejszej). Oznacza to, że każdy metr podłogi grzeje identyczną średnią mocą.</p><p>Co najważniejsze – rury się nie krzyżują. Na nawrotach przy ścianach, rura idąca po zewnętrznym łuku naturalnie "zawija się" i wchodzi na tor wewnętrzny, omijając bezkolizyjnie sąsiedni przewód. <a href="https://projekt-ogrzewania.pl/jak-ukladac-rury-w-ogrzewaniu-slimak-meander-czy-podwojny-meander/">Decyzja o wdrożeniu tego rozwiązania</a> ratuje długie korytarze i skomplikowane salony, w których ułożenie standardowego "ślimaka" jest architektonicznie niemożliwe, a inwestor kategorycznie żąda zbalansowanej, ciepłej podłogi.</p>',
            svg: '<defs><linearGradient id="gradDoubleZas" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#dc2626" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient><linearGradient id="gradDoublePow" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#2563eb" /><stop offset="100%" stop-color="#f59e0b" /></linearGradient></defs><path d="M20 25 L280 25 L280 100 L40 100 L40 125 L280 125 L280 137.5" stroke="url(#gradDoubleZas)" class="path-flow"/><path d="M280 137.5 L280 150 L20 150 L20 75 L260 75 L260 50 L20 50" stroke="url(#gradDoublePow)" class="path-flow" style="animation-direction: reverse;"/>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie stanami przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var type = this.getAttribute('data-type');
            var data = typeData[type];

            // Bezpieczne ładowanie danych
            if (data !== undefined) {
                // Restart animacji CSS
                visBox.classList.remove('fade-in');
                contentBox.classList.remove('fade-in');
                void visBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                void contentBox.offsetWidth;
                visBox.classList.add('fade-in');
                contentBox.classList.add('fade-in');

                // Aktualizacja drzewa DOM
                mndSvg.innerHTML = data.svg;
                mndTitle.innerHTML = data.title;
                mndText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-wood-dark: #271c19;
    --rk-wood-amber: #d97706;
    --rk-wood-amber-light: #fef3c7;
    --rk-wood-brown: #78350f;
    --rk-wood-gray: #64748b;
    --rk-wood-bg: #ffffff;
    --rk-wood-border: #e2e8f0;
    --rk-wood-red: #dc2626;
    --rk-wood-green: #059669;
}

.rk-wood-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-wood-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(120, 53, 15, 0.15);
    border: 1px solid #fcd34d;
    overflow: hidden;
}

/* Nagłówek */
.rk-wood-header {
    background: linear-gradient(135deg, var(--rk-wood-dark) 0%, var(--rk-wood-brown) 100%);
    padding: 40px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-wood-amber);
}

.rk-wood-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Symulatora */
.rk-wood-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-wood-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
}

.rk-wood-tab-btn {
    background: white;
    border: 2px solid var(--rk-wood-border);
    padding: 18px 25px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-wood-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    max-width: 350px;
    justify-content: center;
}

.rk-wood-tab-btn:hover {
    border-color: #fcd34d;
    background: var(--rk-wood-amber-light);
}

.rk-wood-tab-btn.active {
    border-color: var(--rk-wood-amber);
    background: var(--rk-wood-amber);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(217, 119, 6, 0.4);
}

.rk-wood-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Wynik Symulacji Obciążenia */
.rk-wood-result-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-wood-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-wood-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

.rk-weight-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 18px;
    transition: all 0.3s;
}

.status-danger {
    background: #fef2f2;
    color: var(--rk-wood-red);
    border: 1px solid #fca5a5;
}

.status-safe {
    background: #ecfdf5;
    color: var(--rk-wood-green);
    border: 1px solid #6ee7b7;
}

/* Blok tekstowy */
.rk-wood-text-content {
    text-align: left;
}

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

.rk-wood-text-content p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-wood-text-content a {
    color: var(--rk-wood-amber);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-wood-text-content a:hover {
    color: var(--rk-wood-brown);
    background: var(--rk-wood-amber-light);
}

/* Animacje zawartości */
.fade-in-content {
    animation: fadeInContent 0.4s ease-out forwards;
}

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

/* Animacje SVG */
.anim-beam-bend {
    animation: bendBeam 2s infinite alternate ease-in-out;
    transform-origin: center;
}

@keyframes bendBeam {
    0% { transform: translateY(0) scaleY(1); }
    100% { transform: translateY(5px) scaleY(0.9); fill: #b91c1c; }
}

/* Responsywność - Mobile (pionowy układ, brak poziomego scrolla) */
@media (max-width: 768px) {
    .rk-wood-header, .rk-wood-interactive { padding: 25px 20px; }
    .rk-wood-tabs { flex-direction: column; gap: 10px; }
    .rk-wood-tab-btn { width: 100%; max-width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-weight-status { flex-direction: column; gap: 10px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strop-drewniany",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy na stropach drewnianych: Idealne rozwiązanie dla domów szkieletowych",
    "description": "Techniczne uwarunkowania montażu ogrzewania podłogowego w układzie meandrowym na stropach drewnianych z wykorzystaniem systemów suchych bez ciężkiej 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://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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-obciazenie-stropu",
    "name": "Porównanie obciążenia stropów drewnianych: System mokry vs suchy",
    "description": "Zestawienie obciążeń statycznych generowanych przez wylewki betonowe oraz systemy suche ogrzewania podłogowego z lamelami aluminiowymi na 1 m2 stropu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe na drewnianym stropie",
      "lekka podłogówka system suchy",
      "podłogówka w domu szkieletowym",
      "waga ogrzewania podłogowego m2",
      "brak wylewki betonowej na stropie",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowe obliczenia wagi m2 jastrychu cementowego (grubość ok 6 cm) w porównaniu do płyt systemowych XPS z radiatorem aluminiowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System Tradycyjny (Mokry): Waga od 120 do 150 kg/m2, wysokie ryzyko dla konstrukcji drewnianych.",
        "System Lekki (Suchy meander): Waga poniżej 15-20 kg/m2, w pełni bezpieczny dla stropów w domach szkieletowych i drewnianych z bali."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strop",
    "name": "Symulator Obciążenia Stropu Drewnianego",
    "description": "Aplikacja webowa pomagająca inwestorom zrozumieć zagrożenia konstrukcyjne wynikające z błędnego doboru technologii ogrzewania podłogowego na stropach o lekkiej konstrukcji.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-wood-container" id="wood-ceiling-sim">
    <div class="rk-wood-header">
        <h2>Układ meandrowy na stropach drewnianych: Bezpieczne rozwiązanie bez wylewki</h2>
        <p>Wielu inwestorów remontujących stare domy lub budujących w technologii szkieletowej porzuca marzenia o podłogówce w obawie przed zarwaniem stropu. Tymczasem układ meandrowy to klucz do zastosowania ultra-lekkich systemów suchych.</p>
    </div>

    <div class="rk-wood-interactive">
        
        <div class="rk-wood-tabs" id="woodTabs">
            <button class="rk-wood-tab-btn" data-system="wet">
                <svg 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>
                System Mokry (Wylewka)
            </button>
            <button class="rk-wood-tab-btn active" data-system="dry">
                <svg 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>
                System Suchy (Lekki)
            </button>
        </div>

        <div class="rk-wood-result-box fade-in-content" id="woodContent">
            
            <div class="rk-weight-status status-safe" id="woodStatus">
                <span>Obciążenie: <strong>~ 15 kg/m²</strong></span>
                <span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>
            </div>

            <div class="rk-wood-svg-panel" id="woodSvgBox">
                <svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor">
                    <rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/>
                    <path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/>
                    <circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/>
                    <text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text>
                </svg>
            </div>

            <div class="rk-wood-text-content" id="woodTextBox">
                <h3>Idealna synergia meandru z lekką konstrukcją</h3>
                <p>
                    Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.
                </p>
                <p>
                    Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.
                </p>
                <p>
                    W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-wood-tab-btn');
    var contentBox = document.getElementById('woodContent');
    var statusBox = document.getElementById('woodStatus');
    var svgBox = document.getElementById('woodSvgBox');
    var textBox = document.getElementById('woodTextBox');

    var simData = {
        "wet": {
            statusClass: "status-danger",
            statusHtml: '<span>Obciążenie: <strong>120 - 150 kg/m²</strong></span><span>Stan: <strong>Krytyczne ryzyko dla stropu!</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2" class="anim-beam-bend"/><rect x="20" y="20" width="210" height="60" fill="#cbd5e1" stroke="#64748b" stroke-width="1"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#1e293b" stroke="none" text-anchor="middle" font-weight="bold">Ciężka wylewka betonowa (6 cm)</text></svg>',
            title: "Masa niszcząca konstrukcje z drewna",
            html: '<p>Wylanie standardowego, mokrego jastrychu na elastyczny strop z legarów drewnianych to kardynalny błąd budowlany. Po pierwsze, wprowadzamy do budynku drewnianego setki litrów wilgoci technologicznej. Po drugie, potężna masa (dochodząca do 150 kg/m²) powoduje ugięcie belek nośnych.</p><p>Ugięcie drewna pod wpływem ciężaru wylewki prowadzi do błyskawicznego spękania samego betonu oraz uszkodzenia rur grzewczych ukrytych w jego wnętrzu. Nawet jeśli strop wytrzyma statycznie, drgania akustyczne będą przenosić się po całym budynku, a popękane płytki ceramiczne przypomną o błędnej decyzji inwestycyjnej.</p>'
        },
        "dry": {
            statusClass: "status-safe",
            statusHtml: '<span>Obciążenie: <strong>~ 15 kg/m²</strong></span><span>Stan: <strong>W pełni bezpieczne dla drewna</strong></span>',
            svg: '<svg width="250" height="120" viewBox="0 0 250 120" fill="none" stroke="currentColor"><rect x="20" y="80" width="210" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="60" width="210" height="15" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M30 65 L220 65" stroke="#fcd34d" stroke-width="4"/><circle cx="60" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="120" cy="65" r="4" fill="#dc2626" stroke="none"/><circle cx="180" cy="65" r="4" fill="#dc2626" stroke="none"/><text x="125" y="45" font-size="12" fill="#64748b" stroke="none" text-anchor="middle">Lekkie płyty z lamelami aluminiowymi</text></svg>',
            title: "Idealna synergia meandru z lekką konstrukcją",
            html: '<p>Zastosowanie tradycyjnej wylewki betonowej to dodatkowe obciążenie rzędu 120-150 kg na każdy metr kwadratowy podłogi. W przypadku starych budynków z bali lub nowoczesnych legarów to wyrok dla statyki. Dlatego <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">ogrzewanie podłogowe na drewnianym stropie</a> wymaga całkowitego wyeliminowania masywnego betonu.</p><p>Tutaj z pomocą przychodzi <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">system lekki suchy</a>. Opiera się on na gotowych płytach systemowych (najczęściej z twardego styropianu EPS/XPS lub włókna drzewnego), które posiadają fabrycznie wyfrezowane rowki. Co kluczowe – te rowki niemal zawsze wymuszają prowadzenie rur właśnie w formie klasycznego meandru.</p><p>W rynienki wciska się rurę grzewczą wraz z profilami aluminiowymi (tzw. lamelami), które pełnią rolę radiatorów błyskawicznie rozprowadzających ciepło po posadzce. Taka instalacja <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">wodnej podłogówki bez wylewki</a> redukuje obciążenie do zaledwie 15-20 kg/m², co czyni z meandru rozwiązanie bezkonkurencyjne w <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-domu-szkieletowym-kluczowe-roznice-i-pulapki/">domach szkieletowych</a> oraz przy renowacji zabytkowych kamienic z drewnianymi stropami.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-system');
            var data = simData[target];

            // Bezpieczna podmiana danych bez operacji logicznych na zmiennych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Zabezpieczenie reflow
                contentBox.classList.add('fade-in-content');

                // Aktualizacja Statusu
                statusBox.className = "rk-weight-status " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;

                // Aktualizacja SVG i Tekstu
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-retro-dark: #1e293b;
    --rk-retro-orange: #ea580c;
    --rk-retro-orange-light: #ffedd5;
    --rk-retro-blue: #0284c7;
    --rk-retro-gray: #64748b;
    --rk-retro-bg: #ffffff;
    --rk-retro-border: #e2e8f0;
}

.rk-retro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-retro-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(234, 88, 12, 0.15);
    border: 1px solid #fdba74;
    overflow: hidden;
}

/* Nagłówek */
.rk-retro-header {
    background: linear-gradient(135deg, #7c2d12 0%, #9a3412 100%);
    padding: 35px 40px;
    color: white;
    text-align: center;
}

.rk-retro-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

.rk-retro-header p {
    font-size: 16px;
    color: #fed7aa;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 750px;
}

/* Interfejs */
.rk-retro-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Przełącznik typów budynków */
.rk-retro-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-retro-tab-btn {
    background: white;
    border: 2px solid var(--rk-retro-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-retro-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 250px;
    justify-content: center;
}

.rk-retro-tab-btn:hover {
    border-color: #fdba74;
    background: var(--rk-retro-orange-light);
}

.rk-retro-tab-btn.active {
    border-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(234, 88, 12, 0.4);
}

.rk-retro-tab-btn svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

/* Główny kontener treści (Pionowy, tekstowy) */
.rk-retro-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-retro-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left;
}

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

.rk-retro-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-retro-orange);
    border-radius: 4px;
}

.rk-retro-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-retro-content-box a {
    color: var(--rk-retro-orange);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(234, 88, 12, 0.2);
    transition: all 0.2s;
}

.rk-retro-content-box a:hover {
    border-bottom-color: var(--rk-retro-orange);
    background: var(--rk-retro-orange-light);
}

.rk-keyword-highlight {
    font-weight: 700;
    color: var(--rk-retro-dark);
    background: var(--rk-retro-orange-light);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-retro-header, .rk-retro-body { padding: 25px 20px; }
    .rk-retro-tabs { flex-direction: column; gap: 10px; }
    .rk-retro-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-retro-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-stare-budownictwo",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją",
    "description": "Dlaczego ogrzewanie podłogowe w domach z lat 60. i 70. bez izolacji ścian wymaga zastosowania układu meandrowego do kompensacji strat ciepła rzędu 130 W/m2.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-stare-budownictwo",
    "name": "Wpływ braku izolacji na dynamikę ogrzewania płaszczyznowego",
    "description": "Dane obrazujące zapotrzebowanie na moc grzewczą w strefach brzegowych nieocieplonych budynków z lat 1960-1980.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ogrzewanie podłogowe w starym domu",
      "brak ocieplenia a straty ciepła W/m2",
      "straty ciepła stare budownictwo",
      "współczynnik przenikania ciepła starych ścian",
      "kompensacja strat ciepła ściana zewnętrzna",
      "domy z lat 70 podłogówka"
    ],
    "measurementTechnique": "Analiza szacunkowych wartości współczynnika przenikania ciepła U dla starych murów oraz przelicznik jednostkowego zapotrzebowania na moc grzewczą w W/m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stare budownictwo bez izolacji: Wymaga mocy grzewczej rzędu 130-150 W/m2.",
        "Domy modernizowane (izolacja 10-15 cm): Zapotrzebowanie spada do poziomu 70-80 W/m2.",
        "Rozwiązanie meandrowe: Najgorętszy czynnik zasilania kompensuje chłód przenikający przez stare mury z pustaka żużlowego."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-stare-budownictwo",
    "name": "Symulator Termiki Budynków Retro",
    "description": "Aplikacja edukacyjna objaśniająca wpływ termoizolacji na dobór i konfigurację pętli ogrzewania podłogowego w budownictwie wznoszonym w latach 1960-1980.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-retro-container" id="retro-heating-sim">
    <div class="rk-retro-header">
        <h2>Układ meandrowy w starym budownictwie: Ratunek dla domów ze słabą izolacją</h2>
        <p>Wielu uważa, że podłogówka w nieocieplonych domach z PRL-u nie ma racji bytu. Tymczasem to właśnie celowy spadek temperatury w meandrze pozwala zbudować zaporę dla chłodu ciągnącego od starych murów.</p>
    </div>

    <div class="rk-retro-body">
        
        <div class="rk-retro-tabs" id="retroTabs">
            <button class="rk-retro-tab-btn active" data-build="old">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"></path><path d="M4 21v-4"></path><path d="M20 21v-4"></path><path d="M8 8v9"></path><path d="M16 8v9"></path><path d="M12 4v13"></path><path d="M2 10l10-8 10 8"></path></svg>
                Stary dom (lata 60. i 70.)
            </button>
            <button class="rk-retro-tab-btn" data-build="new">
                <svg 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><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="12" x2="16" y2="12"></line><line x1="8" y1="8" x2="16" y2="8"></line></svg>
                Dom docieplony / Nowy
            </button>
        </div>

        <div class="rk-retro-content-box fade-in-up" id="retroContent">
            
            <h3 id="retroTitle">Termiczna kurtyna dla nieocieplonych murów</h3>
            <div id="retroText">
                <p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 &#8211; 150 W/m² powierzchni.</p>
                <p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując &#8222;ciągnięcie chłodu&#8221;, a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p>
                <p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-retro-tab-btn');
    var contentBox = document.getElementById('retroContent');
    var retroTitle = document.getElementById('retroTitle');
    var retroText = document.getElementById('retroText');

    var buildData = {
        "old": {
            title: "Termiczna kurtyna dla nieocieplonych murów",
            html: '<p>Instalacja ogrzewania podłogowego w budynkach wznoszonych między rokiem 1960 a 1980 stanowi gigantyczne wyzwanie termiczne. Ze względu na <span class="rk-keyword-highlight">brak ocieplenia ścian zewnętrznych</span> budowanych często z pustaka żużlowego lub pełnej cegły, stary mur działa jak potężny radiator. <span class="rk-keyword-highlight">Współczynnik przenikania ciepła (U)</span> takich przegród może przekraczać 1,2 W/(m²·K), co oznacza gigantyczne wysysanie energii z wnętrza i zapotrzebowanie rzędu 130 - 150 W/m² powierzchni.</p><p>To właśnie tutaj układ meandrowy staje się najlepszym ratunkiem. <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Planując ogrzewanie w starym domu</a>, projektant wykorzystuje rury ułożone w meander jako tarcze dla <span class="rk-keyword-highlight">kompensacji strat ciepła przy ścianie zewnętrznej</span>. Zasilanie (najgorętszą wodę, np. 45°C) kieruje się w zagęszczonym rozstawie co 10 cm bezpośrednio pod przemarzające przegrody. Czynnik oddaje tam najwięcej energii, blokując "ciągnięcie chłodu", a w miarę przepływu w stronę środka pokoju bezpiecznie traci temperaturę.</p><p>Zanim zdecydujesz się na <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">frezowanie ogrzewania podłogowego w starym budynku</a>, powinieneś bezwzględnie przeliczyć rzeczywiste ubytki energetyczne, wykorzystując <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulator strat ciepła</a>. Pokaże on, z jakim wyzwaniem będzie musiała się zmierzyć posadzka.</p>'
        },
        "new": {
            title: "Termomodernizacja a rozstaw meandru",
            html: '<p>Sytuacja zmienia się drastycznie po dodaniu na elewację 15 cm lub 20 cm styropianu. W <span class="rk-keyword-highlight">domu zmodernizowanym</span>, przenikalność cieplna murów radykalnie spada, a całkowite <span class="rk-keyword-highlight">straty ciepła starego budownictwa</span> po ociepleniu potrafią obniżyć się do bezpiecznego pułapu około 70 - 80 W/m².</p><p>W budynku po termomodernizacji, ściany zewnętrzne stają się swoistym termosem dla domowników. Oznacza to, że zjawisko "ciągnięcia chłodu" niemal znika, co pozwala na rozluźnienie układu pętli. Nie musimy już gęsto pompować czynnika o temperaturze 45°C pod przegrody z lat 70., lecz możemy zastosować szerszy, 15-centymetrowy rozstaw, obniżając <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opory cieplne i hydrauliczne</a>. Taka stabilna konfiguracja w ocieplonym domu jest idealnym punktem wyjścia do późniejszego montażu efektywnej pompy ciepła.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w tabs
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-build');
            var data = buildData[target];

            // Bezpieczne wstrzyknięcie danych
            if (data !== undefined) {
                // Restart animacji CSS
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // Force reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Tylko mocny, bogaty tekst
                retroTitle.textContent = data.title;
                retroText.innerHTML = data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-edge-dark: #0f172a;
    --rk-edge-blue: #0284c7;
    --rk-edge-cold: #38bdf8;
    --rk-edge-warm: #ef4444;
    --rk-edge-warm-light: #fef2f2;
    --rk-edge-gray: #64748b;
    --rk-edge-bg: #ffffff;
    --rk-edge-border: #e2e8f0;
}

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

/* Nagłówek */
.rk-edge-header {
    background: linear-gradient(135deg, var(--rk-edge-dark) 0%, #1e293b 100%);
    padding: 35px 40px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-edge-blue);
}

.rk-edge-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs */
.rk-edge-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Kontrolki (Toggles) */
.rk-edge-toggles {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-edge-btn {
    background: white;
    border: 2px solid var(--rk-edge-border);
    padding: 16px 20px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-edge-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 250px;
    justify-content: center;
}

.rk-edge-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

.rk-edge-btn.active[data-state="bad"] {
    border-color: var(--rk-edge-cold);
    background: #f0f9ff;
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(56, 189, 248, 0.4);
}

.rk-edge-btn.active[data-state="good"] {
    border-color: var(--rk-edge-warm);
    background: var(--rk-edge-warm-light);
    color: var(--rk-edge-dark);
    box-shadow: 0 8px 20px -5px rgba(239, 68, 68, 0.4);
}

.rk-edge-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* Moduł Wyświetlania (Pionowy) */
.rk-edge-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-edge-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-edge-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
    position: relative;
}

/* Pasek Statusu / Wyniku */
.rk-edge-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    border-radius: 10px;
    margin-bottom: 25px;
    font-weight: 800;
    font-size: 16px;
    transition: all 0.3s;
}

.status-cold {
    background: #e0f2fe;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

.status-hot {
    background: #fef2f2;
    color: #b91c1c;
    border: 1px solid #fca5a5;
}

/* Tekst merytoryczny */
.rk-edge-text-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-edge-dark);
    margin: 0 0 15px 0;
}

.rk-edge-text-area p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

.rk-edge-text-area a:hover {
    color: var(--rk-edge-dark);
    background: #e0f2fe;
}

.rk-tech-val {
    font-weight: 800;
    color: var(--rk-edge-dark);
    background: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Sekcja Błędów */
.rk-edge-warnings {
    margin-top: 25px;
    border-top: 1px solid var(--rk-edge-border);
    padding-top: 20px;
}

.rk-edge-warnings h4 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-edge-warm);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-warning-item {
    background: #fff5f5;
    border-left: 4px solid var(--rk-edge-warm);
    padding: 12px 15px;
    margin-bottom: 10px;
    border-radius: 0 8px 8px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #475569;
}

.rk-warning-item strong {
    color: var(--rk-edge-dark);
}

/* Animacje zawartości */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Animacje SVG */
.anim-cold-drop {
    animation: dropCold 2s infinite ease-in;
}

@keyframes dropCold {
    0% { transform: translateY(-20px); opacity: 0; }
    20% { opacity: 0.8; }
    80% { opacity: 0.8; }
    100% { transform: translateY(60px); opacity: 0; }
}

.anim-heat-rise {
    animation: riseHeat 2s infinite ease-out;
}

@keyframes riseHeat {
    0% { transform: translateY(20px); opacity: 0; }
    20% { opacity: 0.9; }
    80% { opacity: 0.9; }
    100% { transform: translateY(-50px); opacity: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-edge-header, .rk-edge-body { padding: 25px 20px; }
    .rk-edge-toggles { flex-direction: column; gap: 10px; }
    .rk-edge-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-edge-content-box { padding: 25px 20px; }
    .rk-edge-status-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-edge-svg-panel { height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-strefa-brzegowa",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jaki rozstaw rur wybrać w strefie brzegowej instalacji meandrowej przy oknach?",
    "description": "Techniczne zasady projektowania stref brzegowych przy dużych przeszkleniach. Analiza kurtyny termicznej, kondensacji pary wodnej i norm 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://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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-strefa-brzegowa",
    "name": "Parametry strefy brzegowej w ogrzewaniu podłogowym",
    "description": "Zestawienie wytycznych i limitów temperaturowych dla stref brzegowych przy przeszkleniach tarasowych zgodnie z normą PN-EN 1264.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "strefa brzegowa w ogrzewaniu podłogowym",
      "rozstaw rur przy oknach tarasowych",
      "kondensacja pary na oknach podłogówka",
      "moc grzewcza z m2 strefy brzegowej",
      "temperatura posadzki norma PN-EN 1264",
      "izolacja brzegowa i dylatacje"
    ],
    "measurementTechnique": "Obliczenia szacunkowe mocy cieplnej i temperatury posadzki w oparciu o wytyczne normy europejskiej PN-EN 1264 dla wodnych systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szerokość strefy: Od 0,5 m do 1,0 m od przegrody zewnętrznej (od okna).",
        "Zalecany rozstaw rur: 10 cm (dopuszczalne 7,5 cm - 5 cm w trudnych warunkach).",
        "Limit temperatury posadzki: Dopuszczalne 35 st C w strefie brzegowej.",
        "Generowana moc: Skompensowanie strat rzędu 100 - 150 W/m2."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-strefa-brzegowa",
    "name": "Symulator Strefy Brzegowej Ogrzewania Podłogowego",
    "description": "Narzędzie webowe obrazujące fizyczne zjawisko przenikania chłodu od okien oraz powstawanie termicznej kurtyny obronnej przy gęstym układzie meandrowym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-edge-container" id="edge-zone-sim">
    <div class="rk-edge-header">
        <h2>Jaki rozstaw rur wybrać w strefie brzegowej przy oknach?</h2>
        <p>Brak strefy brzegowej przy oknach tarasowych to najprostsza droga do zaparowanych szyb, wilgoci i lodowatych stóp w salonie. Sprawdź, jak meander zatrzymuje chłód.</p>
    </div>

    <div class="rk-edge-body">
        
        <div class="rk-edge-toggles" id="edgeTabs">
            <button class="rk-edge-btn" data-state="bad">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                Błąd: Rozstaw 20 cm (Brak strefy)
            </button>
            <button class="rk-edge-btn active" data-state="good">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Poprawnie: Rozstaw 10 cm (Meander)
            </button>
        </div>

        <div class="rk-edge-content-box fade-in" id="edgeContentBox">
            
            <div class="rk-edge-status-bar status-hot" id="edgeStatus">
                <span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span>
                <span>Moc strefy: <strong>~ 150 W/m²</strong></span>
            </div>

            <div class="rk-edge-svg-panel" id="edgeSvgBox">
                <svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor">
                    <rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/>
                    <path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/>
                    <rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/>
                    <circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/>
                    <path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/>
                    <path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/>
                    <path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/>
                    <text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text>
                    <text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text>
                </svg>
            </div>

            <div class="rk-edge-text-area" id="edgeTextBox">
                <h3>Potężna tarcza termiczna dla Twojego salonu</h3>
                <p>
                    Optymalny rozstaw rur w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefie brzegowej w ogrzewaniu podłogowym</a> przy oknach tarasowych i ścianach zewnętrznych wynosi <span class="rk-tech-val">10 cm</span> (z dopuszczalnym zagęszczeniem do 7,5 cm lub 5 cm w budynkach o słabej izolacji). Takie rozwiązanie pozwala na skompensowanie potężnych lokalnych strat ciepła dochodzących do <strong>100–150 W/m²</strong>, zgodnie z wytycznymi projektowymi normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>. Zgodnie ze sztuką, zagęszczony pas brzegowy z meandru powinien obejmować szerokość od 0,5 m do 1,0 m od okna (zazwyczaj 4 do 6 nitek).
                </p>
                <p>
                    Okna, nawet te o rewelacyjnym współczynniku U<sub>w</sub> = 0,6–0,8 W/(m²K), generują kilkukrotnie większe straty ciepła niż izolowane ściany. Zmniejszenie rozstawu z 20 cm do 10 cm punktowo podnosi temperaturę podłogi o 3°C–4°C, tworząc <span class="rk-tech-val">skuteczną kurtynę termiczną</span>. Ponieważ norma pozwala w tej strefie na osiągnięcie posadzce aż 35°C (względem 29°C na środku pokoju), możemy wygenerować moc bez ryzyka przegrzania części bytowej salonu.
                </p>
            </div>

            <div class="rk-edge-warnings">
                <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 błędów w strefie brzegowej:</h4>
                <div class="rk-warning-item">
                    <strong>Rozstaw rzadki (> 15 cm) przy oknach:</strong> Opadające zimne powietrze powoduje drastyczne wychłodzenie ramy. Dochodzi do osiągnięcia <a href="https://projekt-ogrzewania.pl/punkt-rosy-w-ogrzewaniu-podlogowym-jak-bezpiecznie-chlodzic-dom-bez-ryzyka-kondensacji/">punktu rosy</a>, kondensacji pary wodnej na szybach i rozwoju pleśni przy podłodze.
                </div>
                <div class="rk-warning-item">
                    <strong>Zbyt długa pętla brzegowa wepchnięta do salonu:</strong> Wpuszczenie zasilania dedykowanego pod okno w głąb strefy bytowej skutkuje dyskomfortem &#8222;gorących stóp&#8221; i uszkodzeniem płytek przez rozszerzalność termiczną.
                </div>
                <div class="rk-warning-item">
                    <strong>Brak oddzielenia (dylatacji):</strong> Rezygnacja z <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">profilu dylatacyjnego</a> pomiędzy pasem zagęszczonym (gorącym) a strefą salonu (chłodniejszą) gwarantuje pęknięcie jastrychu na linii styku obu stref z powodu naprężeń ścinających.
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-edge-btn');
    var contentBox = document.getElementById('edgeContentBox');
    var statusBox = document.getElementById('edgeStatus');
    var svgBox = document.getElementById('edgeSvgBox');

    var simData = {
        "bad": {
            statusClass: "status-cold",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Brak (Roszenie)</strong></span><span>Moc strefy: <strong>~ 50 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 80 90 60 160" stroke="#0ea5e9" stroke-width="4" fill="none" class="anim-cold-drop"/><path d="M30 30 Q 120 100 100 160" stroke="#38bdf8" stroke-width="3" fill="none" class="anim-cold-drop" style="animation-delay: 0.8s;"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="110" cy="175" r="5" fill="#f59e0b" stroke="none"/><circle cx="170" cy="175" r="5" fill="#f59e0b" stroke="none"/><path d="M50 150 L50 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise"/><path d="M110 150 L110 130" stroke="#f59e0b" stroke-width="2" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="80" y="110" font-size="12" fill="#0ea5e9" stroke="none" font-weight="bold">Opada chłód (Brak kurtyny)</text></svg>'
        },
        "good": {
            statusClass: "status-hot",
            statusHtml: '<span>Skuteczność blokowania chłodu: <strong>Wysoka</strong></span><span>Moc strefy: <strong>~ 150 W/m²</strong></span>',
            svg: '<svg width="250" height="200" viewBox="0 0 250 200" fill="none" stroke="currentColor"><rect x="20" y="20" width="10" height="140" fill="#bae6fd" stroke="#0ea5e9" stroke-width="2"/><path d="M40 40 Q 60 90 40 140" stroke="#38bdf8" stroke-width="3" fill="none" stroke-dasharray="4 4"/><rect x="30" y="160" width="200" height="30" fill="#e2e8f0" stroke="#94a3b8" stroke-width="2"/><circle cx="50" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="70" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="90" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="110" cy="175" r="5" fill="#dc2626" stroke="none"/><circle cx="130" cy="175" r="5" fill="#dc2626" stroke="none"/><path d="M50 150 L50 80" stroke="#ef4444" stroke-width="4" class="anim-heat-rise"/><path d="M80 150 L80 60" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 0.5s;"/><path d="M110 150 L110 90" stroke="#ef4444" stroke-width="4" class="anim-heat-rise" style="animation-delay: 1s;"/><text x="50" y="15" font-size="12" fill="#0ea5e9" stroke="none">Zimne Okno HS</text><text x="140" y="110" font-size="12" fill="#ef4444" stroke="none" font-weight="bold">Kurtyna Termiczna</text></svg>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var state = this.getAttribute('data-state');
            var data = simData[state];

            // Wstrzykiwanie danych z bezpiecznym zresetowaniem animacji
            if (data !== undefined) {
                contentBox.classList.remove('fade-in');
                void contentBox.offsetWidth; // Wymuszenie reflow
                contentBox.classList.add('fade-in');

                statusBox.className = "rk-edge-status-bar " + data.statusClass;
                statusBox.innerHTML = data.statusHtml;
                svgBox.innerHTML = data.svg;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-tbl-dark: #0f172a;
    --rk-tbl-blue: #0284c7;
    --rk-tbl-blue-light: #e0f2fe;
    --rk-tbl-blue-bg: #f0f9ff;
    --rk-tbl-gray: #64748b;
    --rk-tbl-bg: #ffffff;
    --rk-tbl-border: #e2e8f0;
}

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

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

.rk-tbl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

.rk-tbl-header p {
    font-size: 15px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 750px;
}

/* Interfejs wyboru */
.rk-tbl-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-tbl-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-tbl-tab-btn {
    background: white;
    border: 2px solid var(--rk-tbl-border);
    padding: 18px 24px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-tbl-tab-btn:hover {
    border-color: #bae6fd;
    background: var(--rk-tbl-blue-light);
}

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

.rk-tbl-tab-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    transition: transform 0.3s;
}

.rk-tbl-tab-btn.active svg {
    transform: scale(1.15);
}

/* Karta wyników */
.rk-tbl-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-tbl-border);
    padding: 30px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}

.rk-tbl-content-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-tbl-dark);
    margin: 0 0 25px 0;
    text-align: center;
    padding-bottom: 20px;
    border-bottom: 1px dashed var(--rk-tbl-border);
}

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

.rk-param-item {
    background: var(--rk-tbl-blue-bg);
    border: 1px solid #bae6fd;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: all 0.3s;
}

.rk-param-item:hover {
    background: #e0f2fe;
    transform: translateY(-2px);
}

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

.rk-param-value {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tbl-dark);
    line-height: 1.5;
}

.rk-highlight-text {
    color: #dc2626; /* Czerwony akcent dla ważnych liczb */
}

/* Animacje */
.fade-in {
    animation: fadeIn 0.4s ease-out forwards;
}

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

/* Responsywność */
@media (max-width: 768px) {
    .rk-tbl-header, .rk-tbl-body { padding: 25px 20px; }
    .rk-tbl-tabs { flex-direction: column; gap: 10px; }
    .rk-tbl-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-tbl-content-box { padding: 20px 15px; }
    .rk-param-grid { grid-template-columns: 1fr; gap: 15px; } /* Pionowy stack dla mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny",
    "description": "Zestawienie kluczowych parametrów eksploatacyjnych systemów płaszczyznowych. Analiza kosztów robocizny, oporów hydraulicznych i współpracy z pompami ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-porownanie",
    "name": "Zestawienie parametrów technicznych systemów ogrzewania podłogowego 2026",
    "description": "Tabela porównawcza parametrów technicznych dla ogrzewania wodnego i elektrycznego. Obejmuje zmienne termodynamiczne oraz średnie rynkowe koszty w PLN.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "porównanie podłogówki meander ślimak",
      "opory hydrauliczne pętli grzewczej",
      "koszty mat kapilarnych i elektrycznych m2",
      "rozkład temperatur jastrychu wodnego",
      "dobór ogrzewania do pompy ciepła COP"
    ],
    "measurementTechnique": "Zestawienie inżynierskie na bazie kart technologicznych rur PEX (promienie gięcia), normy PN-EN 1264 oraz średnich cen instalatorskich z rynku polskiego na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Układ Meandrowy: Koszt 18-28 PLN/m2, Liniowo opadający gradient temperatur (do 8K).",
        "Układ Ślimakowy: Koszt 22-32 PLN/m2, Jednorodny rozkład średni, Opór do 18 kPa.",
        "Maty Elektryczne: Koszt 70-130 PLN/m2, Brak czynnika wodnego, Stały profil temperaturowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-porownanie",
    "name": "Symulator Wyboru Systemu Grzewczego",
    "description": "Interaktywna macierz decyzyjna pozwalająca inwestorowi na błyskawiczne zbadanie wad i zalet poszczególnych układów grzewczych z poziomu urządzeń mobilnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tbl-container" id="system-comparison">
    <div class="rk-tbl-header">
        <h2>Porównanie parametrów technicznych: Układ meandrowy vs Ślimakowy vs Elektryczny</h2>
        <p>Klasyczne tabele na telefonach bywają nieczytelne. Poniższe interaktywne zestawienie ułatwi Ci dobór optymalnego rozwiązania na etapie koncepcji instalacyjnej. Wybierz technologię, aby sprawdzić jej profil.</p>
    </div>

    <div class="rk-tbl-body">
        
        <div class="rk-tbl-tabs" id="cmpTabs">
            <button class="rk-tbl-tab-btn active" data-sys="meander">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>
                Wodny Meander
            </button>
            <button class="rk-tbl-tab-btn" data-sys="snail">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2a10 10 0 1 0 10 10"></path><path d="M12 6a6 6 0 1 0 6 6"></path><path d="M12 10a2 2 0 1 0 2 2"></path></svg>
                Wodny Ślimak
            </button>
            <button class="rk-tbl-tab-btn" data-sys="electric">
                <svg 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>
                Maty Elektryczne
            </button>
        </div>

        <div class="rk-tbl-content-box fade-in" id="cmpContent">
            <h3 id="cmpTitle">Układ Meandrowy (Wodny)</h3>
            <div class="rk-param-grid" id="cmpGrid">
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Profil temperatur podłogi</span>
                    <span class="rk-param-value">Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Maksymalny opór hydrauliczny</span>
                    <span class="rk-param-value">Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Średni koszt materiałów</span>
                    <span class="rk-param-value"><span class="rk-highlight-text">18 – 28 PLN/m²</span></span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Minimalny promień gięcia rury</span>
                    <span class="rk-param-value">5 x d_z (wymaga łuków prowadzących)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Zastosowanie w strefach brzegowych</span>
                    <span class="rk-param-value">Idealne (naturalna koncentracja mocy)</span>
                </div>
                
                <div class="rk-param-item">
                    <span class="rk-param-label">Współpraca z pompą ciepła (COP)</span>
                    <span class="rk-param-value">Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)</span>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var sysBtns = document.querySelectorAll('.rk-tbl-tab-btn');
    var cmpTitle = document.getElementById('cmpTitle');
    var cmpGrid = document.getElementById('cmpGrid');
    var cmpBox = document.getElementById('cmpContent');

    var sysData = {
        "meander": {
            title: "Układ Meandrowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Liniowo opadający (gradient do <span class="rk-highlight-text">8K</span>)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">25 kPa</span> (przy pętli 100 m)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">18 – 28 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "5 x d_z (wymaga łuków prowadzących)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Idealne (naturalna koncentracja mocy)" },
                { label: "Współpraca z pompą ciepła (COP)", value: 'Bardzo dobra (przy Tz ≤ <span class="rk-highlight-text">35°C</span>)' }
            ]
        },
        "snail": {
            title: "Układ Ślimakowy (Wodny)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (stała średnia temperatura)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Do <span class="rk-highlight-text">18 kPa</span> (dzięki łagodnym łukom 90°)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">22 – 32 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "8 x d_z (łagodne naturalne gięcie)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga sztucznych zagęszczeń pętli pomocniczych" },
                { label: "Współpraca z pompą ciepła (COP)", value: "Optymalna (wymaga najniższych parametrów zasilania)" }
            ]
        },
        "electric": {
            title: "Maty Elektryczne (Suche)",
            params: [
                { label: "Profil temperatur podłogi", value: 'Jednorodny (całkowicie stały rozkład na siatce)' },
                { label: "Maksymalny opór hydrauliczny", value: 'Brak (system bez udziału medium płynnego)' },
                { label: "Średni koszt materiałów", value: '<span class="rk-highlight-text">70 – 130 PLN/m²</span>' },
                { label: "Minimalny promień gięcia rury", value: "Nie dotyczy (elastyczna siatka montażowa)" },
                { label: "Zastosowanie w strefach brzegowych", value: "Wymaga lokalnego gęstszego układania przewodu oporowego" },
                { label: "Współpraca z pompą ciepła (COP)", value: '<span class="rk-highlight-text">Brak bezpośredniej współpracy</span>' }
            ]
        }
    };

    sysBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie klasami
            sysBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var sysKey = this.getAttribute('data-sys');
            var data = sysData[sysKey];

            // Renderowanie HTML bez niebezpiecznych znaków JS (bez && / ||)
            if (data !== undefined) {
                // Restart CSS Animation
                cmpBox.classList.remove('fade-in');
                void cmpBox.offsetWidth; // Force reflow
                cmpBox.classList.add('fade-in');

                cmpTitle.textContent = data.title;
                
                var gridHTML = '';
                var i = 0;
                var totalParams = data.params.length;
                
                // Pętla while dla bezpieczeństwa, generująca poszczególne kafelki
                while (i < totalParams) {
                    var p = data.params[i];
                    gridHTML += '<div class="rk-param-item">' +
                                '<span class="rk-param-label">' + p.label + '</span>' +
                                '<span class="rk-param-value">' + p.value + '</span>' +
                                '</div>';
                    i++;
                }
                
                cmpGrid.innerHTML = gridHTML;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-blue: #0ea5e9;
    --rk-calc-blue-dark: #0369a1;
    --rk-calc-bg: #ffffff;
    --rk-calc-panel: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-highlight: #f0f9ff;
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-calc-blue);
    overflow: hidden;
}

/* Header */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #1e293b 100%);
    padding: 40px;
    text-align: center;
    color: white;
    border-bottom: 4px solid var(--rk-calc-blue);
}

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

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

/* Sekcja Sterowania (Suwak) */
.rk-calc-controls {
    background: white;
    padding: 30px 40px;
    border-bottom: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    align-items: center;
}

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

.rk-slider-wrapper {
    width: 100%;
    max-width: 500px;
    position: relative;
}

.rk-slider-info {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-weight: 700;
    color: var(--rk-calc-blue-dark);
}

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

.rk-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    border: 3px solid white;
    box-shadow: 0 0 10px rgba(14, 165, 233, 0.4);
    transition: transform 0.2s;
}

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

/* Ciało Kalkulatora - Kroki */
.rk-calc-body {
    padding: 40px;
    background: var(--rk-calc-panel);
}

.rk-step-box {
    background: white;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    margin-bottom: 20px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}

.rk-step-box:hover {
    border-color: #bae6fd;
    box-shadow: 0 5px 15px rgba(14, 165, 233, 0.08);
}

.rk-step-header {
    background: white;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid transparent;
}

.rk-step-num {
    background: var(--rk-calc-dark);
    color: white;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    flex-shrink: 0;
}

.rk-step-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
    line-height: 1.4;
}

.rk-step-content {
    padding: 0 25px 25px 85px;
}

.rk-formula {
    background: var(--rk-calc-dark);
    color: #e2e8f0;
    padding: 15px 20px;
    border-radius: 8px;
    font-family: monospace;
    font-size: 16px;
    margin: 15px 0;
    overflow-x: auto;
    border-left: 4px solid var(--rk-calc-blue);
}

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

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

.rk-result-box {
    background: var(--rk-calc-highlight);
    border: 1px dashed var(--rk-calc-blue);
    padding: 15px;
    border-radius: 8px;
    color: var(--rk-calc-dark);
    font-size: 15px;
}

.rk-val-highlight {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-blue-dark);
    display: inline-block;
    margin: 0 5px;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-controls, .rk-calc-body { padding: 25px 20px; }
    .rk-step-header { padding: 15px; gap: 15px; }
    .rk-step-content { padding: 0 15px 20px 15px; }
    .rk-formula { font-size: 14px; padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-kalkulator",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?",
    "description": "5-etapowy algorytm inżynierski krok po kroku, pozwalający na precyzyjne wyliczenie oporów hydraulicznych i nastaw na rotametrach dla układu meandrowego.",
    "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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-kalkulator",
    "name": "Wzory Hydrauliczne i Termodynamiczne dla Ogrzewania Podłogowego",
    "description": "Zbiór danych i stałych fizycznych (ciepło właściwe wody, gęstość) niezbędnych do obliczania przepływów masowych i strat ciśnienia w rurach PEX 16mm.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wzór na przepływ podłogówki",
      "obliczenia OZC podłogówka",
      "straty ciśnienia w rurach pex",
      "rotametry regulacja przepływu",
      "opór miejscowy układ meandrowy",
      "współczynnik bezpieczeństwa ogrzewania"
    ],
    "measurementTechnique": "Zastosowanie algorytmów z normy PN-EN 12831 oraz praw mechaniki płynów do wyznaczenia całkowitych strat hydraulicznych pętli grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ciepło właściwe wody (cw) = 4186 J/(kg·K)",
        "Gęstość wody przy 40 st C = 992 kg/m3",
        "Opór miejscowy łuku 180 st (xi) = 1,5",
        "Współczynnik strat do gruntu = 1,15"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-kalkulator",
    "name": "Interaktywny Kalkulator Algorytmu Meandrowego",
    "description": "Aplikacja webowa symulująca 5-stopniowy proces inżynierski obliczania przepływu i strat ciśnienia dla pętli grzewczej w czasie rzeczywistym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="meander-calculator">
    <div class="rk-calc-header">
        <h2>Kalkulator projektowy: Jak obliczyć przepływ i straty ciśnienia w układzie meandrowym?</h2>
        <p>Projektowanie pętli meandrowej wymaga dokładnego obliczenia przepływu masowego czynnika oraz całkowitych strat ciśnienia w celu prawidłowego doboru nastaw na rotametrach. Prześledź algorytm inżynierski krok po kroku.</p>
    </div>

    <div class="rk-calc-controls">
        <h3>Symulator Pętli: Wybierz zapotrzebowanie pokoju</h3>
        <div class="rk-slider-wrapper">
            <div class="rk-slider-info">
                <span>Zapotrzebowanie wyjściowe z OZC:</span>
                <span id="uiBaseQ">1043 W</span>
            </div>
            <input type="range" min="500" max="2000" step="50" value="1043" class="rk-range" id="simRange">
        </div>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">1</div>
                <h3 class="rk-step-title">Zapotrzebowanie na moc cieplną pętli (Q_pętli)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Moc pętli wyliczamy na podstawie jednostkowego zapotrzebowania na ciepło z <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">audytu OZC</a>, powiększonego o straty do gruntu.</p>
                <div class="rk-formula">
                    Q_pętli = Zapotrzebowanie OZC × 1.15
                </div>
                <div class="rk-result-box">
                    Gdzie 1.15 to współczynnik bezpieczeństwa. Dla wybranej wartości daje to:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resQ">1200 W</span> (1,2 kW)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">2</div>
                <h3 class="rk-step-title">Przepływ masowy czynnika (V)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Przepływ objętościowy wody w pętli, niezbędny do nastawy na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrze rozdzielacza</a>.</p>
                <div class="rk-formula">
                    V [m3/h] = (Q_pętli / (c_w × ρ × ΔT)) × 3600
                </div>
                <div class="rk-calc-desc">
                    <strong>Stałe fizyczne (dla 40°C):</strong><br>
                    • c_w (ciepło właściwe) = 4186 J/(kg·K)<br>
                    • ρ (gęstość wody) = 992 kg/m³<br>
                    • ΔT (spadek temp.) = 5 K
                </div>
                <div class="rk-result-box">
                    Podstawiając do wzoru, uzyskujemy przepływ do ustawienia:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resV">3.46 l/min</span> (0,208 m³/h)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">3</div>
                <h3 class="rk-step-title">Liniowe straty ciśnienia (Δp_l)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Straty ciśnienia na skutek tarcia w rurze PEX 16&#215;2,0 mm na podstawie wyliczonego przepływu i szacunkowej długości pętli.</p>
                <div class="rk-formula">
                    Δp_l = R × L_całkowita
                </div>
                <div class="rk-calc-desc">
                    Przyjmujemy średni opór <strong>R = 140 Pa/m</strong> dla wyliczonego przepływu oraz długość pętli proporcjonalną do mocy (np. <span id="resLen">95 m</span>).
                </div>
                <div class="rk-result-box">
                    Tarcie samej rury na odcinkach prostych generuje opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPl">13.30 kPa</span> (13300 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">4</div>
                <h3 class="rk-step-title">Opory miejscowe na zakrętach 180° (Δp_m)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Układ meandrowy generuje wysokie opory miejscowe ze względu na dużą liczbę ostrych zwrotów rury o 180 stopni.</p>
                <div class="rk-formula">
                    Δp_m = Σ(ξ) × (ρ × v²) / 2
                </div>
                <div class="rk-calc-desc">
                    Gdzie współczynnik oporu łuku 180° <strong>ξ = 1.5</strong>. Szacowana liczba łuków dla tej pętli to <span id="resBends">18</span>. Prędkość czynnika (v) dla rury 12mm wewnątrz to ok. <span id="resVel">0.51</span> m/s.
                </div>
                <div class="rk-result-box">
                    Same zakręty meandru stawiają wodzie opór:
                    <br>Wynik obliczeń: <span class="rk-val-highlight" id="resPm">3.48 kPa</span> (3482 Pa)
                </div>
            </div>
        </div>

        <div class="rk-step-box">
            <div class="rk-step-header">
                <div class="rk-step-num">5</div>
                <h3 class="rk-step-title">Całkowita strata ciśnienia (Δp_tot)</h3>
            </div>
            <div class="rk-step-content">
                <p class="rk-calc-desc">Finalna wartość, którą musi pokonać pompa obiegowa, aby zapewnić ciepło w układzie.</p>
                <div class="rk-formula">
                    Δp_tot = Δp_l + Δp_m
                </div>
                <div class="rk-result-box">
                    Całkowity opór hydrauliczny wybranej sekcji wynosi:
                    <br>Wynik ostateczny: <span class="rk-val-highlight" id="resTotal">16.78 kPa</span>
                    <br><small style="color:#64748b; margin-top:5px; display:block;" id="resStatus">Wartość ta mieści się w bezpiecznym limicie wynoszącym 20 kPa.</small>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('simRange');
    
    // UI Elements
    var uiBaseQ = document.getElementById('uiBaseQ');
    var resQ = document.getElementById('resQ');
    var resV = document.getElementById('resV');
    var resLen = document.getElementById('resLen');
    var resPl = document.getElementById('resPl');
    var resBends = document.getElementById('resBends');
    var resVel = document.getElementById('resVel');
    var resPm = document.getElementById('resPm');
    var resTotal = document.getElementById('resTotal');
    var resStatus = document.getElementById('resStatus');

    // Constants
    var c_w = 4186;
    var rho = 992;
    var dT = 5;
    var safety_factor = 1.15;
    var mianownik = c_w * rho * dT; // 20762560
    var pipe_inner_area = Math.PI * Math.pow(0.006, 2); // promień 6mm w metrach kw.

    function calculateValues(baseQ) {
        uiBaseQ.textContent = Math.round(baseQ) + " W";
        
        // Krok 1
        var Q_petli = baseQ * safety_factor;
        resQ.textContent = Math.round(Q_petli) + " W";

        // Krok 2 (Przepływ w m3/h -> l/min)
        var V_m3h = (Q_petli / mianownik) * 3600;
        var V_lmin = V_m3h * (1000 / 60);
        resV.textContent = V_lmin.toFixed(2) + " l/min";

        // Krok 3 (Szacowanie długości: proporcjonalnie do mocy. 1200W = 95m)
        var length = (Q_petli / 1200) * 95;
        resLen.textContent = Math.round(length) + " m";
        
        // Szacowanie R proporcjonalnie do przepływu (w dużym uproszczeniu liniowym dla symulacji)
        // 3.46 l/min to ok 140 Pa. 
        var R_pa = (V_lmin / 3.46) * 140;
        var pl_pa = R_pa * length;
        var pl_kpa = pl_pa / 1000;
        resPl.textContent = pl_kpa.toFixed(2) + " kPa";

        // Krok 4 (Prędkość i opory miejscowe)
        var V_m3s = V_m3h / 3600;
        var v_ms = V_m3s / pipe_inner_area;
        resVel.textContent = v_ms.toFixed(2);

        var bends = Math.round((length / 95) * 18);
        resBends.textContent = bends;

        var pm_pa = bends * 1.5 * ((rho * Math.pow(v_ms, 2)) / 2);
        var pm_kpa = pm_pa / 1000;
        resPm.textContent = pm_kpa.toFixed(2) + " kPa";

        // Krok 5
        var total_kpa = pl_kpa + pm_kpa;
        resTotal.textContent = total_kpa.toFixed(2) + " kPa";

        // Status limitu (Zabezpieczenie JS)
        if (total_kpa <= 20) {
            resStatus.textContent = "Wartość ta mieści się w bezpiecznym limicie hydraulicznym wynoszącym 20 kPa.";
            resStatus.style.color = "#059669";
        }
        if (total_kpa > 20) {
            resStatus.textContent = "UWAGA: Wartość przekracza limit hydrauliczny (20 kPa). Konieczny podział na dwie pętle.";
            resStatus.style.color = "#ef4444";
        }
    }

    // Event listener bez znaków zagrażających
    rangeInput.addEventListener('input', function() {
        var val = parseFloat(this.value);
        calculateValues(val);
    });

    // Inicjalizacja stanu początkowego (dla dokładnej wartości 1200W całkowitej)
    var initialBase = 1200 / 1.15;
    rangeInput.value = initialBase;
    calculateValues(initialBase);
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #2563eb;
    --rk-proj-blue-light: #eff6ff;
    --rk-proj-gray: #64748b;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
}

.rk-proj-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(37, 99, 235, 0.12);
    border: 1px solid var(--rk-proj-blue);
    overflow: hidden;
}

/* Header */
.rk-proj-header {
    background: linear-gradient(145deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    padding: 40px 30px;
    text-align: center;
    color: white;
}

.rk-proj-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.4;
    color: white;
}

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

/* Interfejs Single-Column */
.rk-proj-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Nawigacja (Tabulatory poziome na desktop, pionowe na mobile) */
.rk-proj-tabs {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-proj-tab-btn {
    background: white;
    border: 2px solid var(--rk-proj-border);
    padding: 16px 20px;
    border-radius: 14px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-proj-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-proj-tab-btn:hover {
    border-color: #bfdbfe;
    background: var(--rk-proj-blue-light);
}

.rk-proj-tab-btn.active {
    border-color: var(--rk-proj-blue);
    background: var(--rk-proj-blue);
    color: white;
    box-shadow: 0 8px 15px -5px rgba(37, 99, 235, 0.3);
}

.rk-proj-tab-btn svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

/* Kontener Treści (Ściśle 1-kolumnowy, oparty na gęstym tekście) */
.rk-proj-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-proj-border);
    padding: 40px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
    text-align: left; /* Czytelny układ dla dłuższych bloków tekstu */
}

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

.rk-proj-content-box h3::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 24px;
    background: var(--rk-proj-blue);
    border-radius: 4px;
}

.rk-proj-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

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

/* Styl wyróżnień technicznych (zamiast LaTeX) */
.rk-tech-val {
    font-weight: 800;
    color: var(--rk-proj-blue);
    background: var(--rk-proj-blue-light);
    padding: 3px 8px;
    border-radius: 6px;
    white-space: nowrap;
}

.rk-keyword {
    font-weight: 700;
    color: var(--rk-proj-dark);
    border-bottom: 1px dashed var(--rk-proj-gray);
}

/* Animacje zawartości */
.fade-in-up {
    animation: fadeInUp 0.4s ease-out forwards;
}

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

/* Kreatywne CTA */
.rk-proj-cta {
    background: linear-gradient(to right, #eff6ff, #ffffff);
    padding: 40px;
    text-align: center;
    border-top: 2px dashed var(--rk-proj-border);
}

.rk-proj-cta h4 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-btn-cta:hover {
    background: #1d4ed8;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(37, 99, 235, 0.5);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-body, .rk-proj-content-box, .rk-proj-cta { padding: 25px 20px; }
    .rk-proj-tabs { flex-direction: column; gap: 10px; }
    .rk-proj-tab-btn { width: 100%; justify-content: flex-start; padding: 18px 20px; }
    .rk-btn-cta { width: 100%; text-align: center; font-size: 15px; padding: 16px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Jak instalacja ogrzewania podłogowego w układzie meandrowym wpływa na projekt HVAC?",
    "description": "Szczegółowa analiza wpływu układu meandrowego na dobór pompy ciepła, regulację rotametrów i grubość wylewki jastrychowej. Optymalizacja pod kątem OZC.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-projekt",
    "name": "Parametry Projektowe Układu Meandrowego w HVAC",
    "description": "Baza danych powiązań między wyborem układu meandrowego a optymalizacją pracy układu hydraulicznego i źródła ciepła dla domów pasywnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór pompy ciepła do ogrzewania podłogowego",
      "krzywa grzewcza pompy ciepła",
      "równoważenie hydrauliczne rotametrów",
      "opory hydrauliczne instalacji podłogowej",
      "grubość wylewki betonowej na podłogówkę",
      "jastrych anhydrytowy a meander",
      "bezwładność cieplna podłogówki",
      "ustawienie przepływów na rotametrach"
    ],
    "measurementTechnique": "Weryfikacja parametrów projektowych na podstawie normy PN-EN 12831 oraz specyfikacji technicznych pomp obiegowych i źródeł ciepła.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pompa Ciepła: Optymalizacja zasilania do Tz = 35°C w celu zapobiegania spadkowi wskaźnika SCOP na krzywej grzewczej.",
        "Hydraulika: Kompensacja strat miejscowych przez rygorystyczne równoważenie przepływów masowych na rotametrach.",
        "Jastrych: Kontrola bezwładności cieplnej poprzez jednorodną wylewkę 45-50 mm (beton) lub 35 mm (anhydryt)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-projekt",
    "name": "Eksplorator Założeń Projektowych OZC",
    "description": "Narzędzie interaktywne typu Single-Column eksplorujące techniczne konsekwencje zastosowania pętli meandrowych w profesjonalnym projekcie instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="meander-design-impact">
    <div class="rk-proj-header">
        <h2>Wpływ układu meandrowego na projekt techniczny</h2>
        <p>Zastosowanie meandru ma diametralny wpływ na projekt HVAC, wymuszając ścisłą korelację pomiędzy audytem OZC a hydrauliczną strukturą rozdzielacza. Sprawdź, co ulegnie zmianie w instalacji.</p>
    </div>

    <div class="rk-proj-body">
        
        <div class="rk-proj-tabs" id="projTabs">
            <button class="rk-proj-tab-btn active" data-target="pompa">
                <svg 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><path d="M12 18v-6"></path><path d="M9 15h6"></path></svg>
                Pompa Ciepła (SCOP)
            </button>
            <button class="rk-proj-tab-btn" data-target="hydro">
                <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="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                Równoważenie Hydrauliki
            </button>
            <button class="rk-proj-tab-btn" data-target="screed">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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>
                Termodynamika Jastrychu
            </button>
        </div>

        <div class="rk-proj-content-box fade-in-up" id="projContent">
            <h3>Korelacja z krzywą grzewczą pompy ciepła</h3>
            <p>
                Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.
            </p>
            <p>
                Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.
            </p>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h4>Nie ryzykuj wysokich rachunków za ogrzewanie</h4>
        <p>Brak projektu OZC przy meandrze to gwarancja przewymiarowanej pompy i nierównego grzania. Skonsultuj swój budynek z inżynierem i zyskaj pełną kontrolę nad instalacją.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO Z POMPĄ CIEPŁA
            <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>
document.addEventListener('DOMContentLoaded', function() {
    var tabs = document.querySelectorAll('.rk-proj-tab-btn');
    var contentBox = document.getElementById('projContent');

    var projData = {
        "pompa": {
            title: "Korelacja z krzywą grzewczą pompy ciepła",
            html: '<p>Układ meandrowy generuje wyższe straty miejscowe na każdym zwrocie rury o 180 stopni. Ten fizyczny fakt ma bezpośredni wpływ na <span class="rk-keyword">dobór pompy ciepła do ogrzewania podłogowego</span>. Jeśli profesjonalny projekt na bazie audytu OZC zakłada <span class="rk-keyword">niskotemperaturowe ogrzewanie płaszczyznowe</span> z parametrem zasilania zredukowanym do poziomu <span class="rk-tech-val">Tz = 35°C</span>, rozstaw rur w meandrze musi być co do centymetra skalkulowany pod kątem lokalnych strat ciepła.</p><p>Błąd w tym obszarze (np. zbyt rzadki rozstaw rur w strefie brzegowej) zmusza użytkownika do podnoszenia zadanej temperatury wody na <span class="rk-keyword">krzywej grzewczej pompy ciepła</span>. Każdy stopień zasilania w górę to drastyczny spadek sezonowego wskaźnika efektywności (SCOP), co z biegiem lat generuje tysiące złotych niepotrzebnych kosztów na rachunkach za prąd.</p>'
        },
        "hydro": {
            title: "Hydrauliczne równoważenie przepływów",
            html: '<p>Z uwagi na konstrukcję, pętle meandrowe stawiają wodzie znaczny opór. Aby obieg funkcjonował poprawnie, kluczowe staje się <span class="rk-keyword">równoważenie hydrauliczne rotametrów</span> w szafce. W projekcie technicznym każda pętla otrzymuje konkretną, matematycznie wyliczoną nastawę wstępną podaną w litrach na minutę.</p><p>Ponieważ meander podbija <span class="rk-keyword">opory hydrauliczne instalacji podłogowej</span> w stosunku do układów ślimakowych, absolutnie niedopuszczalne jest projektowanie układów mieszanych (ślimak i meander) na jednym rozdzielaczu bez precyzyjnego wyregulowania dławików. Brak <span class="rk-keyword">ustawienia przepływów na rotametrach</span> na bazie projektu prowadzi do sytuacji, gdzie woda krąży tylko w najkrótszych pętlach ślimakowych, omijając gęsty meander pod oknem całkowicie.</p>'
        },
        "screed": {
            title: "Kontrola termodynamiki jastrychu",
            html: '<p>W meandrze temperatura wody spada liniowo od rozdzielacza do końca pętli, dlatego projektant musi perfekcyjnie zapanować nad strukturą budowlaną posadzki. Odpowiednia <span class="rk-keyword">grubość wylewki betonowej na podłogówkę</span> (zazwyczaj <span class="rk-tech-val">45–50 mm</span> nad górną krawędzią rury) to fundament zapobiegający pękaniu posadzki.</p><p>Alternatywnie, projekt może zakładać cieńszy <span class="rk-keyword">jastrych anhydrytowy</span> (około <span class="rk-tech-val">35 mm</span>), który lepiej znosi naprężenia zginające. Niezależnie od materiału, idealnie wyliczona masa termiczna jastrychu pozwala przewidzieć <span class="rk-keyword">bezwładność cieplną podłogówki</span>. Dzięki temu system sterowania szybciej reaguje na zyski słoneczne w pomieszczeniach z meandrem brzegowym, nie dopuszczając do szkodliwego przegrzewania wnętrz.</p>'
        }
    };

    tabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            // Zmiana klas w zakładkach
            tabs.forEach(function(t) { t.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-target');
            var data = projData[target];

            // Bezpieczne wstrzyknięcie danych (bez instrukcji logicznych && / || )
            if (data !== undefined) {
                // Restart animacji fade-in
                contentBox.classList.remove('fade-in-up');
                void contentBox.offsetWidth; // trigger reflow (bezpieczny hack)
                contentBox.classList.add('fade-in-up');

                // Aktualizacja DOM - Gęsty tekst, brak SVG
                contentBox.innerHTML = 
                    '<h3>' + data.title + '</h3>' + data.html;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #1e293b;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-orange: #f97316;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #475569;
}

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

/* Header */
.rk-err-header {
    background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%);
    padding: 35px 40px;
    color: white;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-err-header-icon {
    background: rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    padding: 15px;
    flex-shrink: 0;
}

.rk-err-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 8px 0;
    color: white;
}

.rk-err-header-content p {
    font-size: 15px;
    color: #fca5a5;
    margin: 0;
    line-height: 1.5;
}

/* Interactive Body */
.rk-err-interactive {
    padding: 30px 40px;
    background: #f8fafc;
}

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

/* Kafelki Błędów (Lewa strona) */
.rk-err-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-err-btn {
    background: white;
    border: 2px solid var(--rk-err-border);
    padding: 18px 20px;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-err-btn:hover {
    border-color: #fca5a5;
    background: var(--rk-err-red-light);
}

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

.rk-err-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    flex-shrink: 0;
    transition: all 0.3s;
}

.rk-err-btn.active .rk-err-icon {
    background: var(--rk-err-red);
    color: white;
}

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

/* Panel Diagnostyczny (Prawa strona) */
.rk-diag-panel {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-err-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.rk-diag-svg-box {
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

.rk-diag-content h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-err-red);
    margin: 0 0 10px 0;
}

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

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

/* Animacje SVG dla błędów */
.err-anim-pulse {
    animation: errPulse 1.5s infinite;
}

@keyframes errPulse {
    0% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.1); }
    100% { opacity: 1; transform: scale(1); }
}

.err-anim-shake {
    animation: errShake 0.5s infinite;
}

@keyframes errShake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-2px); }
    100% { transform: translateX(0); }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-err-header { flex-direction: column; text-align: center; padding: 25px 20px; }
    .rk-err-interactive { padding: 20px; }
    .rk-err-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-diag-panel { order: -1; } /* Panel z wynikiem na samej górze na mobile */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Najczęstsze błędy wykonawcze przy instalacji meandrowej i ich konsekwencje",
    "description": "Katalog najpoważniejszych błędów hydraulicznych w układach meandrowych, od załamania rury PEX, przez zbyt długie pętle, aż po pułapki systemów 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": "2025-12-29",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-bledy",
    "name": "Analiza Błędów Instalacji Meandrowej",
    "description": "Zestawienie technologicznych konsekwencji błędnego wykonania wodnego ogrzewania podłogowego ze szczególnym uwzględnieniem promieni gięcia i rozstawów rur.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "załamanie rury pex podłogówka",
      "spadek ciśnienia w długiej pętli",
      "rozstaw rur w systemie suchym",
      "kierunek zasilania meandra",
      "błędy montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Wizualizacja skutków przekroczenia normatywnych promieni gięcia rur, ograniczeń długości pętli oraz analizy błędów kierunku przepływu wody grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd promienia: Powoduje uszkodzenie warstwy aluminium, restrykcję przepływu i wycieki.",
        "Błąd zasilania: Prowadzi do niedogrzania stref brzegowych przy przeszkleniach.",
        "Błąd długości: Zbyt długa pętla powoduje potężne straty ciśnienia i brak możliwości regulacji.",
        "Błąd systemu suchego: Wymuszony rozstaw (10/20cm) zamiast zoptymalizowanego 15cm dla domów pasywnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-diagnoza",
    "name": "Symulator Skutków Błędów Hydraulicznych",
    "description": "Interaktywny moduł edukacyjny dla inwestorów, pozwalający na symulację i zrozumienie fizycznych konsekwencji typowych błędów popełnianych przez instalatorów.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="error-simulator">
    <div class="rk-err-header">
        <div class="rk-err-header-icon">
            <svg width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
                <path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
                <line x1="12" y1="9" x2="12" y2="13"></line>
                <line x1="12" y1="17" x2="12.01" y2="17"></line>
            </svg>
        </div>
        <div class="rk-err-header-content">
            <h2>Najczęstsze błędy wykonawcze przy instalacji meandrowej</h2>
            <p>Jastrych betonowy zaleje wszystko. Odkryj, jakie bomby zegarowe zostawiają wykonawcy bez projektów i jak zniszczą one Twój komfort i portfel.</p>
        </div>
    </div>

    <div class="rk-err-interactive">
        <div class="rk-err-grid">
            
            <div class="rk-err-list">
                <button class="rk-err-btn active" data-error="bend">
                    <div class="rk-err-icon"><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></div>
                    <h3>Zbyt ostry promień gięcia rur</h3>
                </button>
                <button class="rk-err-btn" data-error="flow">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M2 12h10"></path><path d="M9 4v16"></path><path d="M15 9l5 3-5 3"></path></svg></div>
                    <h3>Błędny kierunek zasilania</h3>
                </button>
                <button class="rk-err-btn" data-error="length">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><rect x="2" y="7" width="20" height="10" rx="2" ry="2"></rect><line x1="12" y1="7" x2="12" y2="17"></line></svg></div>
                    <h3>Zbyt długa pętla grzewcza</h3>
                </button>
                <button class="rk-err-btn" data-error="dry">
                    <div class="rk-err-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                    <h3>Pułapka systemów suchych</h3>
                </button>
            </div>

            <div class="rk-diag-panel">
                <div class="rk-diag-svg-box" id="errSvgBox">
                    <svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
                        <path d="M20,50 L40,50" stroke="#94a3b8"></path>
                        <path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"></path>
                        <path d="M50,60 L50,80" stroke="#94a3b8"></path>
                        <circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"></circle>
                    </svg>
                </div>
                <div class="rk-diag-content" id="errContentBox">
                    <h4>Przewężenie i ryzyko pęknięcia</h4>
                    <p>Wykonawcy, próbując wymusić mały rozstaw rur (np. 10 cm) w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest drastyczne przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych, a w skrajnych przypadkach pęknięcie warstwy aluminium w rurze PEX. To po kilku latach skutkuje wyciekiem wody pod jastrych.</p>
                    <p>Dowiedz się więcej: <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a></p>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    var errBtns = document.querySelectorAll('.rk-err-btn');
    var svgBox = document.getElementById('errSvgBox');
    var contentBox = document.getElementById('errContentBox');

    var errData = {
        "bend": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M20,50 L40,50" stroke="#94a3b8"/><path d="M40,50 C45,50 48,53 50,60" stroke="#ef4444" class="err-anim-pulse"/><path d="M50,60 L50,80" stroke="#94a3b8"/><circle cx="48" cy="53" r="6" fill="#fef2f2" stroke="#ef4444" class="err-anim-shake"/></svg>',
            title: "Przewężenie i ryzyko pęknięcia",
            desc: "Wykonawcy, próbując wymusić mały rozstaw rur w meandrze pojedynczym, zginają rurę bez użycia narzędzi profilujących. Konsekwencją jest przewężenie przekroju, gwałtowny wzrost oporów hydraulicznych i pęknięcie warstwy aluminium, co gwarantuje wyciek wody pod jastrych.",
            link: '<a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Jak unikać najczęstszych błędów montażu podłogówki?</a>'
        },
        "flow": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="10" height="60" fill="#38bdf8" stroke="none"/><path d="M80,30 L30,30 L30,45 L80,45" stroke="#ef4444" class="err-anim-pulse"/><path d="M80,60 L30,60 L30,75 L80,75" stroke="#94a3b8"/><text x="40" y="95" font-size="12" fill="#ef4444" stroke="none">Zimne okno</text></svg>',
            title: "Niedogrzane strefy brzegowe",
            desc: "Zasilanie prowadzone od strony ściany wewnętrznej, zamiast od najzimniejszej strefy przegrody zewnętrznej. Konsekwencje: nierównomierny rozkład temperatury, chłodniejsze miejsca przy oknach tarasowych i drastycznie niższy komfort cieplny w salonie.",
            link: '<a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">Zasady projektowania strefy brzegowej.</a>'
        },
        "length": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><path d="M10,50 Q30,10 50,50 T90,50" stroke="#cbd5e1"/><path d="M10,50 Q30,10 50,50" stroke="#ef4444" class="err-anim-pulse"/><circle cx="50" cy="50" r="5" fill="#fef2f2" stroke="#ef4444"/><text x="15" y="80" font-size="11" fill="#ef4444" stroke="none">Spadek ciśnienia / Brak przepływu</text></svg>',
            title: "Hydrauliczny zawał pompy",
            desc: "Zbyt długa pętla grzewcza (powyżej limitów dla danej średnicy). Konsekwencje: potężne straty ciśnienia, zablokowany przepływ wody przez opory tarcia, brak ogrzewania w końcowej części pętli oraz całkowity brak możliwości wyregulowania rotametrów.",
            link: '<a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">Co zrobić, gdy pętla podłogówki jest za długa?</a>'
        },
        "dry": {
            svg: '<svg width="100" height="100" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><rect x="10" y="20" width="80" height="60" rx="4" stroke="#94a3b8"/><line x1="30" y1="20" x2="30" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><line x1="70" y1="20" x2="70" y2="80" stroke="#cbd5e1" stroke-dasharray="4 4"/><circle cx="30" cy="50" r="6" fill="#ef4444"/><circle cx="70" cy="50" r="6" fill="#ef4444"/><path d="M30,50 Q50,80 70,50" stroke="#ef4444" fill="none" class="err-anim-shake"/><text x="42" y="45" font-size="12" fill="#ef4444" stroke="none">Brak 15 cm!</text></svg>',
            title: "Sztywny rozstaw płyt systemowych",
            desc: "Niektórzy producenci systemów lekkich robią płyty z dedykowanym rozstawem rur tylko co 10 cm. Brak układu pośredniego jest problemem dla nowocześnie izolowanych budynków, gdzie OZC wymusza rozstaw 15 cm. Trzeba wybrać płyty systemowe, które pozwolą na rozstaw ściśle według projektu OZC.",
            link: '<a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">Systemy suche – jak dobierać materiały?</a>'
        }
    };

    errBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            
            // Zmiana klas
            errBtns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            // Aktualizacja treści
            var errKey = this.getAttribute('data-error');
            var selectedData = errData[errKey];

            if (selectedData !== undefined) {
                svgBox.innerHTML = selectedData.svg;
                contentBox.innerHTML = '<h4>' + selectedData.title + '</h4>' +
                                       '<p>' + selectedData.desc + '</p>' +
                                       '<p>Dowiedz się więcej: ' + selectedData.link + '</p>';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-teal: #0f766e;
    --rk-case-teal-light: #ccfbf1;
    --rk-case-gray: #475569;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
}

.rk-case-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 20px;
    box-shadow: 0 15px 35px -10px rgba(15, 118, 110, 0.15);
    border: 1px solid var(--rk-case-teal);
    overflow: hidden;
}

/* Nagłówek Case Study */
.rk-case-header {
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #134e4a 100%);
    padding: 40px 35px;
    display: flex;
    align-items: center;
    gap: 25px;
    color: white;
}

.rk-case-badge {
    background: rgba(204, 251, 241, 0.15);
    border: 1px solid rgba(204, 251, 241, 0.3);
    padding: 15px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-width: 100px;
}

.rk-case-badge span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 800;
    color: #5eead4;
    margin-bottom: 5px;
}

.rk-case-badge svg {
    width: 32px;
    height: 32px;
    color: white;
}

.rk-case-title-box h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-case-title-box p {
    font-size: 15px;
    color: #99f6e4;
    margin: 0;
    line-height: 1.6;
}

/* Interfejs Single-Column */
.rk-case-body {
    padding: 35px 40px;
    background: #f8fafc;
}

/* Tabulatory Etapów */
.rk-case-tabs {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
    justify-content: center;
    flex-wrap: wrap;
}

.rk-case-tab-btn {
    background: white;
    border: 2px solid var(--rk-case-border);
    padding: 16px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-case-gray);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 220px;
    justify-content: center;
}

.rk-case-tab-btn:hover {
    border-color: #99f6e4;
    background: var(--rk-case-teal-light);
}

.rk-case-tab-btn.active {
    border-color: var(--rk-case-teal);
    background: var(--rk-case-teal);
    color: white;
    box-shadow: 0 8px 20px -5px rgba(15, 118, 110, 0.4);
}

.rk-case-tab-btn svg {
    width: 20px;
    height: 20px;
}

/* Kontener Treści */
.rk-case-content-box {
    background: white;
    border-radius: 16px;
    border: 1px solid var(--rk-case-border);
    padding: 35px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.02);
}

.rk-case-data-bar {
    display: flex;
    justify-content: space-between;
    background: var(--rk-case-teal-light);
    border-left: 4px solid var(--rk-case-teal);
    padding: 15px 20px;
    border-radius: 8px;
    margin-bottom: 25px;
    font-size: 14px;
    font-weight: 700;
    color: #115e59;
}

.rk-case-svg-panel {
    background: #f1f5f9;
    border-radius: 12px;
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    border: 1px dashed #cbd5e1;
    overflow: hidden;
}

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

.rk-case-content-box p {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    margin: 0 0 15px 0;
}

.rk-case-content-box a {
    color: var(--rk-case-teal);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: all 0.2s;
}

.rk-case-content-box a:hover {
    color: var(--rk-case-dark);
    background: var(--rk-case-teal-light);
}

/* Wyróżnienia Tech */
.rk-tech-pill {
    display: inline-block;
    background: var(--rk-case-dark);
    color: white;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
}

/* Animacje CSS */
.fade-in-content {
    animation: fadeIn 0.4s ease-out forwards;
}

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

.anim-crack {
    stroke-dasharray: 100;
    animation: crackDraw 1.5s forwards;
}

@keyframes crackDraw {
    from { stroke-dashoffset: 100; }
    to { stroke-dashoffset: 0; }
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-case-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-case-body { padding: 25px 20px; }
    .rk-case-tabs { flex-direction: column; gap: 10px; }
    .rk-case-tab-btn { width: 100%; justify-content: flex-start; padding: 16px 20px; }
    .rk-case-data-bar { flex-direction: column; gap: 10px; text-align: center; }
    .rk-case-content-box { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Studium Przypadku: Ogrzewanie podłogowe na starym drewnianym stropie (Tarnowskie Góry)",
    "description": "Techniczna analiza modernizacji domu z lat 70. Jak układ meandrowy i system suchy uratowały drewniany strop przed zawaleniem ciężką wylewką.",
    "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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-case-study",
    "name": "Porównanie obciążeń konstrukcyjnych przy modernizacji stropu",
    "description": "Zestawienie parametrów wagi oraz oporów cieplnych zastosowanych rozwiązań grzewczych w budynku z lat 70.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "podłogówka na drewnianym stropie",
      "waga wylewki betonowej m2",
      "lekki system suchy ogrzewanie",
      "remont domu z lat 70 podłogówka",
      "nośność stropu drewnianego wylewka",
      "układ meandrowy w systemie suchym"
    ],
    "measurementTechnique": "Szacunkowa inżynierska ocena wytrzymałości starych belek drewnianych na obciążenia statyczne generowane przez jastrych cementowy vs suchą zabudowę.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan pierwotny: Strop drewniany z lat 70., dopuszczalne dodatkowe obciążenie krytyczne poniżej 50 kg/m2.",
        "Ryzyko (Wylewka betowa): 120-150 kg/m2 - ryzyko uszkodzenia konstrukcji nośnej.",
        "Wdrożone rozwiązanie (System suchy meander): 15-20 kg/m2 - pełne bezpieczeństwo statyczne przy zachowaniu wysokiej wydajności."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-case-study",
    "name": "Eksplorator Studium Przypadku: Remont Stropu",
    "description": "Narzędzie krok po kroku prezentujące proces inżynierskiego rozwiązywania problemu braku nośności stropu drewnianego pod instalację ogrzewania.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="case-study-module">
    <div class="rk-case-header">
        <div class="rk-case-badge">
            <span>Case Study</span>
            <svg 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>
        <div class="rk-case-title-box">
            <h2>Ogrzewanie podłogowe na drewnianym stropie</h2>
            <p><strong>Lokalizacja:</strong> Tarnowskie Góry, woj. śląskie | <strong>Budynek:</strong> Dom z lat 70., 110 m² poddasza | <strong>Inwestor:</strong> Pan Tomasz</p>
        </div>
    </div>

    <div class="rk-case-body">
        
        <div class="rk-case-tabs" id="caseTabs">
            <button class="rk-case-tab-btn active" data-phase="problem">
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                1. Diagnoza i Ryzyko
            </button>
            <button class="rk-case-tab-btn" data-phase="solution">
                <svg 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>
                2. Rozwiązanie Inżynierskie
            </button>
            <button class="rk-case-tab-btn" data-phase="result">
                <svg 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>
                3. Efekt końcowy
            </button>
        </div>

        <div class="rk-case-content-box fade-in-content" id="caseContentBox">
            
            <div class="rk-case-data-bar" id="caseDataBar">
                <span>Zagrożenie: Zawalenie konstrukcji drewnianej</span>
                <span>Waga <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" style="color:#115e59;">wylewki betonowej</a>: <strong style="color:#ef4444;">150 kg/m²</strong></span>
            </div>

            <div class="rk-case-svg-panel" id="caseSvgBox">
                <svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor">
                    <rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/>
                    <rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/>
                    <text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text>
                    <path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/>
                    <path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/>
                </svg>
            </div>

            <div id="caseTextBox">
                <h3>Problem: Ciężar, który niszczy drewno</h3>
                <p>
                    Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie &#8222;kostką&#8221;. Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.
                </p>
                <p>
                    <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie &#8222;mokrym&#8221; wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 &#8211; 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem płyt gipsowo-kartonowych na parterze, a w skrajnym przypadku katastrofą budowlaną.
                </p>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-case-tab-btn');
    var contentBox = document.getElementById('caseContentBox');
    var dataBar = document.getElementById('caseDataBar');
    var svgBox = document.getElementById('caseSvgBox');
    var textBox = document.getElementById('caseTextBox');

    var caseData = {
        "problem": {
            barHtml: '<span>Zagrożenie: Uszkodzenie konstrukcji nośnej</span><span>Waga tradycyjnej wylewki: <strong style="color:#ef4444;">150 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="30" width="260" height="60" fill="#94a3b8" stroke="none"/><text x="150" y="65" font-size="14" fill="#ffffff" font-weight="bold" stroke="none" text-anchor="middle">Beton (Masa 150 kg/m²)</text><path d="M120 90 L150 120 L180 90" stroke="#ef4444" stroke-width="3" fill="none" class="anim-crack"/><path d="M150 120 L150 150" stroke="#ef4444" stroke-width="3" class="anim-crack" style="animation-delay: 0.5s;"/></svg>',
            title: "Problem: Ciężar, który niszczy drewno",
            text: '<p>Pan Tomasz rozpoczął remont piętra w klasycznym, śląskim domu z lat 70. zwącym się potocznie "kostką". Podłogę na poddaszu wspierał <span class="rk-tech-pill">stary strop z legarów drewnianych</span>. Inwestor marzył o pozbyciu się grzejników, ale napotkał twardą barierę architektoniczną.</p><p><a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Ogrzewanie podłogowe w remontowanym budynku</a> realizowane w tradycyjnym systemie "mokrym" wymaga zalania rur około 6-centymetrową warstwą wylewki jastrychowej. Taki beton to dodatkowe obciążenie na poziomie 120 - 150 kg na każdy metr kwadratowy. Położenie takiej masy na 50-letnie drewniane belki groziło drastycznym ugięciem stropu, spękaniem sufitów na parterze, a w skrajnym przypadku katastrofą budowlaną.</p>'
        },
        "solution": {
            barHtml: '<span>Rozwiązanie: Płyty frezowane i lamele aluminiowe</span><span>Redukcja wagi o: <strong style="color:#0f766e;">85%</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="90" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="70" width="260" height="20" fill="#e2e8f0" stroke="#94a3b8" stroke-width="1"/><path d="M40 75 L260 75" stroke="#0ea5e9" stroke-width="4"/><circle cx="80" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="75" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="75" r="4" fill="#dc2626" stroke="none"/><text x="150" y="55" font-size="12" fill="#475569" stroke="none" text-anchor="middle" font-weight="bold">Lekki system suchy (układ meandrowy)</text></svg>',
            title: "Meander wpisany w system suchy",
            text: '<p>Weryfikacja inżynierska wykazała, że jedyną w 100% bezpieczną metodą jest zastosowanie <a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemu suchego ogrzewania podłogowego</a>. Opiera się on na dedykowanych płytach ze styropianu XPS lub twardego włókna drzewnego o wysokiej gęstości, w których fabrycznie wyfrezowano rowki. </p><p>Tutaj technologia narzuca kształt: te rowki wymuszają prowadzenie rur właśnie w <span class="rk-tech-pill">układzie meandrowym</span>. Rura układana jest równolegle, osadzana w specjalnych blachach aluminiowych (lamelach), które stanowią radiator odbierający ciepło z rury i oddający je bezpośrednio do ułożonych na nich paneli lub suchych płyt jastrychowych. Nie wylewamy tu ani grama wody i betonu.</p>'
        },
        "result": {
            barHtml: '<span>Efekt: Komfort cieplny z pompą ciepła</span><span>Nowe obciążenie stropu: <strong style="color:#0f766e;">15 kg/m²</strong></span>',
            svg: '<svg width="300" height="150" viewBox="0 0 300 150" fill="none" stroke="currentColor"><rect x="20" y="110" width="260" height="20" fill="#d97706" stroke="#92400e" stroke-width="2"/><rect x="20" y="90" width="260" height="20" fill="#e2e8f0" stroke="none"/><path d="M40 95 L260 95" stroke="#fcd34d" stroke-width="4"/><circle cx="80" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="150" cy="95" r="4" fill="#dc2626" stroke="none"/><circle cx="220" cy="95" r="4" fill="#dc2626" stroke="none"/><rect x="20" y="80" width="260" height="10" fill="#fef3c7" stroke="#b45309" stroke-width="1"/><path d="M80 70 L80 30 M150 70 L150 30 M220 70 L220 30" stroke="#f59e0b" stroke-width="3" stroke-dasharray="4 4" class="anim-crack"/><text x="150" y="20" font-size="12" fill="#d97706" stroke="none" text-anchor="middle" font-weight="bold">Błyskawiczne oddawanie ciepła</text></svg>',
            title: "Uratowany strop i błyskawiczna reakcja",
            text: '<p>Decyzja o wdrożeniu meandru w systemie suchym pozwoliła na zredukowanie ciężaru instalacji z niszczących 150 kg do <span class="rk-tech-pill">zaledwie 15 kg na metr kwadratowy</span>. Strop drewniany z lat 70. odzyskał statyczną stabilność, a całą inwestycję można było zrealizować bez naruszania konstrukcji budynku.</p><p>Co więcej, bark grubej warstwy betonu całkowicie wyeliminował <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>. Posadzka nagrzewa się w kilkadziesiąt minut, a nie w kilkanaście godzin. Dzięki temu <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-nadaje-sie-do-drewnianego-stropu/">podłogówka na drewnianym stropie</a> u Pana Tomasza stała się systemem wysoce responsywnym, gotowym do precyzyjnej i oszczędnej współpracy z jego nową pompą ciepła.</p>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zarządzanie stanami zakładek
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var phase = this.getAttribute('data-phase');
            var data = caseData[phase];

            // Wstrzyknięcie danych (bez instrukcji &&)
            if (data !== undefined) {
                // Restart CSS fade-in
                contentBox.classList.remove('fade-in-content');
                void contentBox.offsetWidth; // Wymuszenie reflow w przeglądarce
                contentBox.classList.add('fade-in-content');

                // Aktualizacja drzewa DOM
                dataBar.innerHTML = data.barHtml;
                svgBox.innerHTML = data.svg;
                textBox.innerHTML = '<h3>' + data.title + '</h3>' + data.text;
            }
        });
    });
});
</script>



<style>
:root {
    --rk-exp-dark: #0f172a;
    --rk-exp-navy: #1e293b;
    --rk-exp-blue: #0284c7;
    --rk-exp-gold: #b45309;
    --rk-exp-gold-light: #fef3c7;
    --rk-exp-gray: #475569;
    --rk-exp-bg: #ffffff;
    --rk-exp-border: #e2e8f0;
}

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

/* Nagłówek i Profil */
.rk-exp-header-section {
    background: var(--rk-exp-light);
    padding: 40px;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 35px;
    align-items: center;
    border-bottom: 1px solid var(--rk-exp-border);
}

.rk-exp-photo-box {
    width: 180px;
    height: 180px;
    border-radius: 50%;
    overflow: hidden;
    border: 4px solid var(--rk-exp-bg);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.rk-exp-photo-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

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

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

.rk-exp-socials {
    display: flex;
    gap: 15px;
}

.rk-exp-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--rk-exp-navy);
    color: white;
    border-radius: 8px;
    text-decoration: none;
}

.rk-exp-social-link:hover {
    background: var(--rk-exp-blue);
}

.rk-exp-social-link svg {
    width: 20px;
    height: 20px;
}

/* Interaktywny Manifest (Brak animacji) */
.rk-exp-interactive {
    padding: 40px;
    background: var(--rk-exp-bg);
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 40px;
}

.rk-exp-rules-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-exp-rule-btn {
    background: #f8fafc;
    border: 1px solid var(--rk-exp-border);
    padding: 16px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-exp-dark);
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Stany bez przejść (brak animacji) */
.rk-exp-rule-btn:hover {
    background: #f1f5f9;
}

.rk-exp-rule-btn.active {
    background: var(--rk-exp-navy);
    color: white;
    border-color: var(--rk-exp-navy);
}

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

/* Obszar Tekstowy */
.rk-exp-content-area {
    background: #f8fafc;
    border-radius: 12px;
    padding: 35px;
    border: 1px dashed var(--rk-exp-border);
}

.rk-exp-content-area h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-exp-gold);
    margin: 0 0 20px 0;
}

.rk-exp-content-area p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-exp-dark);
    margin: 0 0 15px 0;
}

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

.rk-exp-content-area a:hover {
    color: var(--rk-exp-navy);
}

.rk-quote-mark {
    font-size: 60px;
    color: var(--rk-exp-gold-light);
    line-height: 0;
    display: block;
    margin-bottom: 20px;
    font-family: Georgia, serif;
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-exp-header-section { grid-template-columns: 1fr; text-align: center; justify-items: center; padding: 30px 20px; }
    .rk-exp-socials { justify-content: center; }
    .rk-exp-interactive { grid-template-columns: 1fr; padding: 25px 20px; gap: 25px; }
    .rk-exp-content-area { padding: 25px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-ekspert",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Okiem eksperta: Robert Kucharski o projektowaniu instalacji meandrowych",
    "description": "Zestawienie autorskich zasad inżynierskich dotyczących unikania krytycznych wad wodnego ogrzewania podłogowego. Złote zasady samodzielnego montażu.",
    "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": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-ekspert",
    "name": "Eksperckie wytyczne instalacyjne: Weryfikacja błędów montażowych",
    "description": "Zbiór żelaznych reguł hydraulicznych zabezpieczających inwestora przed kosztownymi poprawkami przy realizacji układów meandrowych i doborze automatyki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wady wodnego ogrzewania podłogowego",
      "samodzielny montaż ogrzewania podłogowego",
      "sterowniki do ogrzewania podłogowego",
      "projekt ogrzewania podłogowego z głowy vs z obliczeniami",
      "opinia eksperta hvac",
      "robert kucharski projekt ogrzewania"
    ],
    "measurementTechnique": "Weryfikacja najczęściej popełnianych błędów wykonawczych w odniesieniu do obliczeń inżynierskich i normatywów budowlanych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zasada 1: Obliczenia zastępują zgadywanie. Różnica między projektem OZC a intuicją to tysiące złotych w rachunkach.",
        "Zasada 2: Automatyka to wtórny dodatek. Bez poprawnie rozplanowanego meandru, żaden sterownik nie naprawi hydrauliki.",
        "Zasada 3: Samodzielny montaż wymaga reżimu. Układanie rur bez zachowania reżimu promieni gięcia gwarantuje mikrouszkodzenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-ekspert",
    "name": "Interaktywny Manifest Instalatora HVAC",
    "description": "Narzędzie edukacyjne prezentujące bezpośrednie opinie i porady inżyniera Roberta Kucharskiego, ułatwiające weryfikację pracy firm wykonawczych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-exp-container" id="expert-opinion-module">
    <div class="rk-exp-header-section">
        <div class="rk-exp-photo-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Inżynier Projekt-Ogrzewania.pl">
        </div>
        <div class="rk-exp-bio">
            <h2>Zdaniem eksperta: Robert Kucharski o układach meandrowych</h2>
            <p>CEO Projekt-Ogrzewania.pl. Posiada na swoim koncie ponad 1000 zrealizowanych projektów instalacji płaszczyznowych. Walczy z patologiami w branży instalacyjnej, promując twarde obliczenia inżynierskie zamiast wykonawstwa „na oko”.</p>
            <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">
                    <svg 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/" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="LinkedIn">
                    <svg 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" target="_blank" rel="noopener noreferrer" class="rk-exp-social-link" aria-label="X Twitter">
                    <svg 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>
    </div>

    <div class="rk-exp-interactive">
        <div class="rk-exp-rules-list" id="expertTabs">
            <button class="rk-exp-rule-btn active" data-rule="design">
                Złudzenie oszczędności na projekcie
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="diy">
                Ryzyko samodzielnego układania
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
            <button class="rk-exp-rule-btn" data-rule="auto">
                Mit magicznej automatyki
                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="9 18 15 12 9 6"></polyline></svg>
            </button>
        </div>

        <div class="rk-exp-content-area">
            <span class="rk-quote-mark">&#8222;</span>
            <h3 id="expertTitle">Intuicja instalatora nie zastąpi kalkulatora</h3>
            <div id="expertText">
                <p>Jako inżynier widziałem setki instalacji robionych &#8222;na wyczucie&#8221;. Prawda jest brutalna: <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 z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p>
                <p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma &#8222;oszczędność&#8221; odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btns = document.querySelectorAll('.rk-exp-rule-btn');
    var expTitle = document.getElementById('expertTitle');
    var expText = document.getElementById('expertText');

    var ruleData = {
        "design": {
            title: "Intuicja instalatora nie zastąpi kalkulatora",
            html: '<p>Jako inżynier widziałem setki instalacji robionych "na wyczucie". Prawda jest brutalna: <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 z obliczeniami</a> to różnica między komfortem a finansową katastrofą. Meander nie wybacza błędów w długości pętli. Jeśli instalator układając rury nie uwzględni precyzyjnych strat ciśnienia, zapłacisz za przewymiarowaną pompę ciepła, a i tak część pokoju będzie zimna.</p><p>Nigdy nie oszczędzaj na audycie OZC, bo ta rzekoma "oszczędność" odbije się czkawką już podczas pierwszego sezonu grzewczego. Twarde dane projektowe to jedyna polisa ubezpieczeniowa, jaką posiadasz przed zalaniem posadzki betonem.</p>'
        },
        "diy": {
            title: "Meander nie wybacza zagiętych rur na kolanie",
            html: '<p>Często otrzymuję pytania, czy <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">samodzielny montaż ogrzewania podłogowego</a> ma sens. Owszem, można to zrobić, jeśli masz wiedzę. Ale pamiętaj: <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady wodnego ogrzewania podłogowego</a> ujawniają się dopiero po latach. Głównym błędem "złotych rączek" przy układzie meandrowym jest łamanie struktury aluminium w rurach PEX podczas wymuszania zbyt wąskich promieni gięcia przy oknach.</p><p>Jeśli decydujesz się na montaż własnymi rękami, absolutnie nie pomijaj ciśnieniowej próby szczelności z protokołem. To Twoja jedyna gwarancja, że zgięty przed chwilą nawrót meandru nie będzie puszczał wody pod jastrychem.</p>'
        },
        "auto": {
            title: "Sterownik nie naprawi zepsutej hydrauliki",
            html: '<p>Inwestorzy często pytają mnie, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy warto montować sterowniki do ogrzewania podłogowego</a>, mając nadzieję, że droga elektronika wyrówna niedociągnięcia instalacyjne. To najdroższy mit w tej branży. Żaden, nawet najbardziej zaawansowany siłownik termoelektryczny na rozdzielaczu nie przepchnie ciepłej wody przez zbyt długą, źle zrotametrowaną pętlę meandrową.</p><p>Automatyka strefowa to wspaniały dodatek podnoszący komfort i oszczędności, ale tylko i wyłącznie w sytuacji, gdy fundament – czyli rury, rozstawy i wyliczone opory hydrauliczne – jest wykonany bezbłędnie. Zaczynaj od inżynierii, kończ na gadżetach.</p>'
        }
    };

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Zmiana klas przycisków
            btns.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');

            var target = this.getAttribute('data-rule');
            var data = ruleData[target];

            // Bezpieczne wstrzyknięcie zawartości bez operatorów && / ||
            if (data !== undefined) {
                if (data !== null) {
                    // Natychmiastowa podmiana tekstu (brak animacji CSS)
                    expTitle.innerHTML = data.title;
                    expText.innerHTML = data.html;
                }
            }
        });
    });
});
</script>



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

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

/* Nagłówek FAQ */
.rk-faq-header {
    background: linear-gradient(to right, var(--rk-faq-dark), #1e293b);
    padding: 35px 40px;
    color: white;
    display: flex;
    align-items: center;
    gap: 20px;
}

.rk-faq-header-icon {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-faq-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 5px 0;
    color: white;
}

.rk-faq-header-content p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
}

/* Sekcja Akordeonu */
.rk-faq-body {
    padding: 30px 40px;
    background: #f8fafc;
}

.rk-accordion-item {
    background: white;
    border: 1px solid var(--rk-faq-border);
    border-radius: 12px;
    margin-bottom: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.01);
}

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

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

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

.rk-accordion-btn h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--rk-faq-text-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s;
}

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

/* Ikona SVG Plusa/Minusa */
.rk-faq-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    position: relative;
    color: var(--rk-faq-blue);
}

.rk-faq-icon svg {
    position: absolute;
    top: 0;
    left: 0;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-icon-plus { opacity: 1; transform: rotate(0deg); }
.rk-icon-minus { opacity: 0; transform: rotate(-90deg); }

.rk-accordion-item.active .rk-icon-plus { opacity: 0; transform: rotate(90deg); }
.rk-accordion-item.active .rk-icon-minus { opacity: 1; transform: rotate(0deg); }

/* Odpowiedź (Treść) */
.rk-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-accordion-inner {
    padding: 0 25px 25px 25px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq-text);
}

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

.rk-accordion-inner a:hover {
    border-bottom-color: var(--rk-faq-blue);
    background: var(--rk-faq-blue-light);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-faq-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-faq-body { padding: 20px; }
    .rk-accordion-btn { padding: 15px 20px; }
    .rk-accordion-btn h3 { font-size: 15px; }
    .rk-accordion-inner { padding: 0 20px 20px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania dotyczące układu meandrowego",
    "description": "Techniczne kompendium wiedzy odpowiadające na pytania inwestorów dotyczące układu meandrowego, kosztów robocizny, doboru wylewki oraz zasilania z rozdzielacza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://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-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. Układ ślimakowy prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Średni koszt samej robocizny waha się w granicach 25 – 35 PLN/m², w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w układzie meandrowym można stosować panele podłogowe?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny R ≤ 0,15 m²K/W dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie paneli montowanych na klej, co poprawia transfer ciepła."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Optymalna grubość warstwy jastrychu betonowego nad zewnętrzną ścianką rury grzewczej wynosi 45 – 50 mm (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm."
        }
      },
      {
        "@type": "Question",
        "name": "Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowe rozdzielacze obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności pompy obiegowej oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-faq",
    "name": "Kluczowe Parametry Wykonawcze Układu Meandrowego",
    "description": "Zbiór danych technicznych obejmujący ceny robocizny, limity grubości jastrychu oraz maksymalną dopuszczalną ilość pętli na jednym rozdzielaczu mosiężnym lub INOX.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "cena robocizny podłogówki m2",
      "grubość wylewki na podłogówkę",
      "maksymalna ilość pętli rozdzielacza",
      "panele na ogrzewanie podłogowe opór",
      "różnica meander a ślimak"
    ],
    "measurementTechnique": "Dane oparte na normach PN-EN 1264, charakterystykach pomp obiegowych oraz uśrednionych stawkach instalatorskich na rok 2026.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Robocizna: 25 - 35 PLN/m2",
        "Opór cieplny paneli: max 0,15 m2K/W",
        "Wylewka betonowa nad rurą: 45 - 50 mm",
        "Maksymalna ilość pętli: 12 na rozdzielacz 1 cal"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-faq",
    "name": "Interaktywna Baza Wiedzy FAQ",
    "description": "Dynamiczny komponent akordeonowy umożliwiający inwestorom szybkie przeglądanie najważniejszych pytań technicznych bez konieczności przeładowywania strony.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-meander">
    <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ęściej zadawane pytania dotyczące układu meandrowego</h2>
            <p>Konkretne odpowiedzi na pytania, które decydują o komforcie i kosztach eksploatacji Twojego domu.</p>
        </div>
    </div>

    <div class="rk-faq-body" id="rkFaqWrapper">
        
        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czym różni się układ meandrowy od ślimakowego w ogrzewaniu podłogowym?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Układ meandrowy prowadzi rury równolegle w formie węża, co generuje liniowy spadek temperatury czynnika i wyższe opory hydrauliczne. <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-slimakowym/">Układ ślimakowy</a> prowadzi rury spiralnie (zasilanie obok powrotu), co zapewnia w pełni równomierny rozkład temperatur na całej powierzchni podłogi.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaki jest maksymalny koszt robocizny za ułożenie meandru podłogówki?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Średni <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">koszt samej robocizny</a> waha się w granicach <strong>25 – 35 PLN/m²</strong>, w zależności od stopnia skomplikowania architektury pomieszczeń. Do tej kwoty należy doliczyć koszt materiałów instalacyjnych oraz montażu szafki rozdzielacza.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Czy w układzie meandrowym można stosować panele podłogowe?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Tak, pod warunkiem że panele posiadają atest producenta potwierdzający opór termiczny <strong>R ≤ 0,15 m²K/W</strong> dla całego systemu posadzkowego. Ze względu na gradient temperatur w meandrze, zaleca się stosowanie <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">paneli montowanych na klej</a>, co drastycznie poprawia transfer ciepła.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Jaka jest optymalna grubość wylewki betonowej nad rurą meandrową?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Optymalna grubość warstwy <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu betonowego</a> nad zewnętrzną ścianką rury grzewczej wynosi <strong>45 – 50 mm</strong> (całkowita grubość wylewki to ok. 65 mm). Dla jastrychów anhydrytowych, dzięki wyższej wytrzymałości na zginanie, grubość nad rurą można zmniejszyć do 35 mm.
                </div>
            </div>
        </div>

        <div class="rk-accordion-item">
            <button class="rk-accordion-btn" aria-expanded="false">
                <h3>Ile pętli meandrowych można podłączyć pod jeden rozdzielacz?</h3>
                <div class="rk-faq-icon">
                    <svg class="rk-icon-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    <svg class="rk-icon-minus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                </div>
            </button>
            <div class="rk-accordion-content">
                <div class="rk-accordion-inner">
                    Standardowe <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacze do podłogówki</a> obsługują od 2 do 12 pętli (sekcji). Maksymalna liczba pętli zależy od wydajności <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompy obiegowej</a> oraz średnicy kolektora głównego rozdzielacza (standard to 1 cal), który przy pełnym obciążeniu nie powinien generować prędkości przepływu większej niż 0,4 m/s.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var accBtns = document.querySelectorAll('.rk-accordion-btn');

    accBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            var item = this.parentElement;
            var content = this.nextElementSibling;
            
            // Check if clicked item is currently active
            var isActive = item.classList.contains('active');

            // Close all items
            var allItems = document.querySelectorAll('.rk-accordion-item');
            allItems.forEach(function(el) {
                el.classList.remove('active');
                var elBtn = el.querySelector('.rk-accordion-btn');
                if (elBtn) {
                    elBtn.setAttribute('aria-expanded', 'false');
                }
                var elContent = el.querySelector('.rk-accordion-content');
                if (elContent) {
                    elContent.style.maxHeight = null;
                }
            });

            // If it wasn't active, open it (safe JS logic)
            if (isActive === false) {
                item.classList.add('active');
                this.setAttribute('aria-expanded', 'true');
                content.style.maxHeight = content.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-navy: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-light: #f0f9ff;
    --rk-dl-gray: #475569;
    --rk-dl-gray-light: #f1f5f9;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #e2e8f0;
}

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

/* Header */
.rk-dl-header {
    background: var(--rk-dl-navy);
    padding: 35px 40px;
    color: white;
    border-bottom: 4px solid var(--rk-dl-blue);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    color: white;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

/* Interfejs 2-kolumnowy (Desktop) */
.rk-dl-body {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 40px;
    background: var(--rk-dl-bg);
    align-items: center;
}

/* Miniatura Infografiki */
.rk-dl-thumb-wrapper {
    background: var(--rk-dl-gray-light);
    border: 1px solid var(--rk-dl-border);
    border-radius: 12px;
    padding: 15px;
    position: relative;
    cursor: pointer;
}

.rk-dl-thumb-wrapper img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    right: 25px;
    background: var(--rk-dl-dark);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}

.rk-dl-zoom-hint svg {
    width: 16px;
    height: 16px;
}

/* Akcje i Opis */
.rk-dl-actions-box h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-actions-box p {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.7;
    margin: 0 0 25px 0;
}

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

.rk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 24px;
    border-radius: 10px;
    text-decoration: none;
    border: 2px solid transparent;
    cursor: pointer;
}

/* Brak animacji / przejść */
.rk-btn-primary {
    background: var(--rk-dl-blue);
    color: white;
}

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

.rk-btn-secondary {
    background: var(--rk-dl-gray-light);
    color: var(--rk-dl-dark);
    border-color: var(--rk-dl-border);
}

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

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

/* Nota Prawna / Copyright */
.rk-dl-footer {
    background: var(--rk-dl-gray-light);
    padding: 20px 40px;
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-dl-gray);
    text-align: center;
}

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

/* Modal do podglądu (Brak animacji, pojawia się natychmiast) */
.rk-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(15, 23, 42, 0.95);
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.rk-modal-content {
    max-width: 90vw;
    max-height: 90vh;
    border-radius: 8px;
    border: 2px solid var(--rk-dl-gray);
}

.rk-modal-close {
    position: absolute;
    top: 20px;
    right: 30px;
    color: white;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    line-height: 1;
}

.rk-modal-close:hover {
    color: var(--rk-dl-blue);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-body { grid-template-columns: 1fr; padding: 25px 20px; gap: 30px; }
    .rk-dl-footer { padding: 20px; }
    .rk-btn { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Kompendium wiedzy: Pobierz infografikę techniczną instalacji meandrowej",
    "description": "Profesjonalna infografika w formacie PDF i WebP podsumowująca 8 najważniejszych kroków i parametrów dla instalacji ogrzewania podłogowego w układzie meandrowym.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-infografika",
    "name": "Infografika techniczna: Instalacja ogrzewania podłogowego w układzie meandrowym",
    "description": "Ustrukturyzowany zbiór wytycznych projektowych obejmujący m.in. rozstawy rur, długości pętli, temperatury zasilania oraz najczęstsze błędy wykonawcze.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika podłogówka meander",
      "schemat układu meandrowego pdf",
      "pobierz schemat podłogówki",
      "robert kucharski materiały techniczne",
      "parametry instalacji podłogowej pdf",
      "instrukcja montażu ogrzewania płaszczyznowego"
    ],
    "measurementTechnique": "Ekstrakcja kluczowych danych liczbowych (np. rozstaw 10-20 cm, pętla max 80-100 m) do zwięzłej formy graficznej i dokumentu PDF.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format pliku: PDF (Wysoka rozdzielczość do druku).",
        "Format pliku: WebP (Optymalizacja cyfrowa).",
        "Zawartość: 8 kluczowych bloków wiedzy inżynierskiej, parametry instalacji, zestawienie korzyści i najczęstszych błędów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-repozytorium",
    "name": "Interaktywne Repozytorium Materiałów Inżynierskich",
    "description": "Aplikacyjny moduł służący do bezpiecznego podglądu bezpośredniego oraz pobierania autorskich opracowań inżynierskich w formatach bezstratnych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="engineering-materials">
    <div class="rk-dl-header">
        <h2>
            <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="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="12" y2="18"></line><line x1="15" y1="15" x2="12" y2="18"></line></svg>
            Materiały dla Inwestora i Wykonawcy
        </h2>
        <p>Zabrałeś z tego artykułu mnóstwo wiedzy. Pobierz teraz techniczną infografikę, wydrukuj ją i zabierz na budowę, aby kontrolować poprawność wykonywanych prac instalacyjnych.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-thumb-wrapper" id="openImageBtn">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Infografika - Instalacja ogrzewania podłogowego w układzie meandrowym">
            <div class="rk-dl-zoom-hint">
                <svg 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
            </div>
        </div>

        <div class="rk-dl-actions-box">
            <h3>Techniczne podsumowanie na 1 stronie</h3>
            <p>Zestawienie parametrów brzegowych, twardych danych dotyczących długości pętli, rozstawów oraz krytycznych błędów. Plik PDF został zoptymalizowany do bezstratnego wydruku w formacie A4.</p>
            
            <div class="rk-dl-buttons">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.pdf" target="_blank" rel="noopener noreferrer" class="rk-btn rk-btn-primary">
                    <svg 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 dokument PDF
                </a>
                <button class="rk-btn rk-btn-secondary" id="viewImageBtn">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>
                    Wyświetl pełną grafikę
                </button>
            </div>
        </div>

    </div>

    <div class="rk-dl-footer">
        <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 id="imageModal" class="rk-modal">
    <span class="rk-modal-close" id="closeModalBtn">&times;</span>
    <img decoding="async" class="rk-modal-content" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/05/Infografika-Instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym.webp" alt="Pełny podgląd infografiki meander">
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var modal = document.getElementById("imageModal");
    var openBtn1 = document.getElementById("openImageBtn");
    var openBtn2 = document.getElementById("viewImageBtn");
    var closeBtn = document.getElementById("closeModalBtn");

    function openModal() {
        modal.style.display = "flex";
    }

    function closeModal() {
        modal.style.display = "none";
    }

    // Podpięcie zdarzeń
    openBtn1.addEventListener("click", openModal);
    openBtn2.addEventListener("click", openModal);
    closeBtn.addEventListener("click", closeModal);

    // Zamknięcie modala po kliknięciu w czarne tło (bezpieczny JS bez znaków || oraz &&)
    modal.addEventListener("click", function(event) {
        if (event.target === modal) {
            closeModal();
        }
    });
});
</script>



<style>
:root {
    --rk-end-dark: #0f172a;
    --rk-end-blue: #0284c7;
    --rk-end-blue-light: #e0f2fe;
    --rk-end-green: #059669;
    --rk-end-green-bg: #d1fae5;
    --rk-end-red: #dc2626;
    --rk-end-bg: #ffffff;
    --rk-end-border: #e2e8f0;
    --rk-end-text: #334155;
}

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

/* Header */
.rk-end-header {
    background: var(--rk-end-dark);
    padding: 40px;
    color: white;
    text-align: center;
    border-bottom: 4px solid var(--rk-end-blue);
}

.rk-end-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: white;
}

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

/* Interactive Section */
.rk-end-interactive {
    padding: 40px;
    background: #f8fafc;
}

.rk-end-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: stretch;
}

/* Accordion Buttons */
.rk-step-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

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

.rk-step-btn:hover {
    border-color: #bae6fd;
    background: #f0f9ff;
}

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

.rk-step-num {
    background: var(--rk-end-dark);
    color: white;
    font-weight: 900;
    font-size: 18px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
}

.rk-step-btn.active .rk-step-num {
    background: var(--rk-end-blue);
}

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

/* Visual Result Panel */
.rk-viz-panel {
    background: white;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid var(--rk-end-border);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-viz-svg-container {
    width: 120px;
    height: 120px;
    margin-bottom: 20px;
}

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

.rk-viz-desc {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

/* Animacje SVG */
.rk-path-anim {
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    animation: drawPath 1.5s forwards ease-in-out;
}

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

/* Artykuł Text */
.rk-end-text-content {
    padding: 0 40px 30px;
    background: #f8fafc;
}

.rk-end-text-content h3 {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-end-dark);
    margin: 0 0 15px 0;
}

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

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

.rk-end-text-content a:hover {
    border-bottom-color: var(--rk-end-blue);
    background: rgba(2, 132, 199, 0.05);
}

/* Tagi */
.rk-end-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px dashed var(--rk-end-border);
}

.rk-mat-tag {
    background: #e2e8f0;
    color: #475569;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 700;
    cursor: default;
    transition: background 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-end-blue);
    color: white;
}

/* CTA */
.rk-end-cta {
    background: white;
    padding: 40px;
    text-align: center;
    border-top: 1px solid var(--rk-end-border);
}

.rk-end-cta h4 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
    color: var(--rk-end-dark);
}

.rk-end-cta p {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 25px auto;
    max-width: 600px;
}

.rk-btn-final {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-end-dark);
    color: white;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(15, 23, 42, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-final:hover {
    background: var(--rk-end-blue);
    transform: translateY(-4px);
    box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.5);
}

/* Responsive */
@media (max-width: 768px) {
    .rk-end-header, .rk-end-interactive, .rk-end-text-content, .rk-end-cta { padding: 30px 20px; }
    .rk-end-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-btn-final { 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/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/"
    },
    "headline": "Podsumowanie: Meander - Inżynieria vs Oszczędności",
    "description": "Interaktywne podsumowanie zasad montażu instalacji ogrzewania podłogowego w układzie meandrowym. Analiza limitów pętli i zrównoważenia 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-07-10",
    "dateModified": "2026-07-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#dataset-zasady",
    "name": "Parametry Krytyczne dla Układu Meandrowego",
    "description": "Dane z norm technicznych określające limity wykonawcze układu meandrowego gwarantujące bezawaryjną pracę na dekady.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli ogrzewania podłogowego",
      "regulacja przepływu na rotametrach",
      "ciśnieniowa próba szczelności podłogówki",
      "betonowanie ogrzewania podłogowego",
      "wylewka betonowa na ogrzewanie"
    ],
    "measurementTechnique": "Weryfikacja parametrów hydraulicznych z wytycznymi EN 1264 oraz PN-EN 12831.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Reguła 1: Maksymalna długość pojedynczej pętli to 100m dla rury PEX 16mm.",
        "Reguła 2: Konieczność kalibracji przepływu masowego na rotametrach (Hydronic Balancing).",
        "Reguła 3: Obligatoryjna próba ciśnieniowa wodą (6 bar) przed zabetonowaniem rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/#webapp-weryfikator",
    "name": "Symulator Zasad Bezpieczeństwa Instalacji Meandrowej",
    "description": "Interaktywny panel weryfikujący poprawność wdrożenia 3 najważniejszych filarów inżynierskich przy budowie płaszczyznowego ogrzewania meandrowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-end-container" id="meander-summary">
    <div class="rk-end-header">
        <h2>Podsumowanie: Fundament podłogówki na dekady</h2>
        <p>Inżynieria nie znosi kompromisów. Wybierz jeden z filarów bezpieczeństwa instalacji meandrowej poniżej, aby sprawdzić, co decyduje o sukcesie lub finansowej katastrofie Twojej budowy.</p>
    </div>

    <div class="rk-end-interactive">
        <div class="rk-end-grid">
            
            <div class="rk-step-list" id="ruleButtons">
                <button class="rk-step-btn active" data-rule="1">
                    <div class="rk-step-num">1</div>
                    <h4 class="rk-step-title">Limit 100 metrów pętli</h4>
                </button>
                <button class="rk-step-btn" data-rule="2">
                    <div class="rk-step-num">2</div>
                    <h4 class="rk-step-title">Kalibracja rotametrów</h4>
                </button>
                <button class="rk-step-btn" data-rule="3">
                    <div class="rk-step-num">3</div>
                    <h4 class="rk-step-title">Ciśnienie przed betonem</h4>
                </button>
            </div>

            <div class="rk-viz-panel" id="ruleVizBox">
                <div class="rk-viz-svg-container" id="svgContainer">
                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;">
                        <circle cx="12" cy="12" r="10" class="rk-path-anim"></circle>
                        <line x1="12" y1="8" x2="12" y2="12" class="rk-path-anim"></line>
                        <line x1="12" y1="16" x2="12.01" y2="16" class="rk-path-anim"></line>
                    </svg>
                </div>
                <h4 class="rk-viz-title" id="ruleTitle">Żelazna zasada hydrauliki</h4>
                <p class="rk-viz-desc" id="ruleDesc">
                    Przekroczenie bariery 100 metrów dla rury 16&#215;2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika.
                </p>
            </div>

        </div>
    </div>

    <div class="rk-end-text-content">
        <h3>Meander: Precyzja, nie schemat</h3>
        <p>Instalacja ogrzewania podłogowego w układzie meandrowym to wysoce efektywne, inżynierskie rozwiązanie grzewcze, o ile zostanie wdrożone na podstawie precyzyjnych obliczeń hydraulicznych, a nie ogólnych schematów wykonawczych. Zdolność meandru do naturalnego koncentrowania mocy cieplnej w strefach brzegowych czyni go niezastąpionym komponentem nowoczesnego budownictwa energooszczędnego z dużymi przeszkleniami.</p>
        
        <p>Warunkiem bezwzględnym bezawaryjnej pracy przez kilkadziesiąt lat jest rygorystyczne przestrzeganie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">limitów długości pętli</a> (maksymalnie 100 m dla rury PEX/PERT 16 mm), prawidłowe zrównoważenie przepływów masowych na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach</a> oraz bezkompromisowe wykonanie ciśnieniowej próby szczelności przed <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">etapem betonowania</a> wylewki.</p>
        
        <p>Każda próba chodzenia na skróty w tym obszarze, omijanie projektów i testów ciśnieniowych, generuje gigantyczne <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">koszty naprawcze</a> na etapie wykończeniowym budynku (kucie gotowych płytek i jastrychu).</p>

        <div class="rk-end-tags">
            <span class="rk-mat-tag"># maksymalna długość pętli ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># regulacja przepływu na rotametrach</span>
            <span class="rk-mat-tag"># układ meandrowy strefy brzegowe</span>
            <span class="rk-mat-tag"># ciśnieniowa próba szczelności podłogówki</span>
            <span class="rk-mat-tag"># ogrzewanie energooszczędne duże przeszklenia</span>
            <span class="rk-mat-tag"># koszty awarii ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># hydrauliczne równoważenie instalacji</span>
            <span class="rk-mat-tag"># betonowanie ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># wylewka betonowa na ogrzewanie</span>
            <span class="rk-mat-tag"># schemat układu meandrowego</span>
        </div>
    </div>

    <div class="rk-end-cta">
        <h4>Przestań tracić pieniądze na błędy wykonawców</h4>
        <p>Kucie jastrychu kosztuje dziesiątki tysięcy złotych. Dobry projekt i potężna wiedza inżynierska uchronią Cię przed najgorszym koszmarem inwestora.</p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-final">
            ODKRYJ BAZĘ WIEDZY EKSKLUZYWNEJ I ZABEZPIECZ BUDOWĘ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-step-btn');
    const svgContainer = document.getElementById('svgContainer');
    const ruleTitle = document.getElementById('ruleTitle');
    const ruleDesc = document.getElementById('ruleDesc');

    // Baza danych widoków (Bezpieczne dane bez instrukcji warunkowych &&)
    const ruleData = {
        "1": {
            title: "Żelazna zasada hydrauliki",
            desc: "Przekroczenie bariery 100 metrów dla rury 16x2.0 mm to wyrok dla pompy obiegowej. Wzrost oporów tarcia zablokuje przepływ masowy czynnika w pętli.",
            color: "#0284c7",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#0284c7;"><path class="rk-path-anim" d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg>'
        },
        "2": {
            title: "Równoważenie układu",
            desc: "Każdy obieg ma inną długość i inne straty. Przepływy na rotametrach muszą być wyliczone na bazie projektu OZC, a nie ustawione równo 'na dwójkę'.",
            color: "#eab308",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#eab308;"><circle cx="12" cy="12" r="10" class="rk-path-anim"></circle><polyline points="12 6 12 12 16 14" class="rk-path-anim"></polyline></svg>'
        },
        "3": {
            title: "Zero litości dla usterek",
            desc: "Zalewanie jastrychem betonu bez utrzymania instalacji pod 6 barowym ciśnieniem próbnym to igranie z ogniem. Nieszczelność pętli = kucie całej podłogi.",
            color: "#dc2626",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:100%; height:100%; stroke:#dc2626;"><path class="rk-path-anim" d="M12 2v20"></path><path class="rk-path-anim" d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>'
        }
    };

    function updateView(ruleKey) {
        // Zabezpieczenie przed błędem
        let data = ruleData[ruleKey];
        if (data) {
            svgContainer.innerHTML = data.svg;
            ruleTitle.textContent = data.title;
            ruleDesc.textContent = data.desc;
            ruleTitle.style.color = data.color;
        }
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Reset klas aktywnych
            btns.forEach(function(b) {
                b.classList.remove('active');
            });
            
            // Dodanie klasy aktywnej
            this.classList.add('active');
            
            // Pobranie danych
            let ruleVal = this.getAttribute('data-rule');
            updateView(ruleVal);
        });
    });
});
</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/instalacja-ogrzewania-podlogowego-w-ukladzie-meandrowym/">Instalacja ogrzewania podłogowego w układzie meandrowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</title>
		<link>https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 11 Mar 2025 08:50:26 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Dom pasywny]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Harmonogram budowy]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projektowanie domu]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dom pasywny]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[faza projektowa]]></category>
		<category><![CDATA[harmonogram budowy]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[koordynacja prac]]></category>
		<category><![CDATA[materiały grzewcze]]></category>
		<category><![CDATA[nowy dom]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[wylewka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2395</guid>

					<description><![CDATA[<p>Budowa nowego domu to idealny moment, by zadbać o komfort cieplny na lata. W tym artykule znajdziesz praktyczne porady, jak zaplanować instalację ogrzewania podłogowego, aby uniknąć opóźnień i dodatkowych kosztów. Dowiesz się, dlaczego faza projektowa jest kluczowa, jak zsynchronizować prace z harmonogramem budowy i kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu. Poznaj kroki, przykłady i błędy do uniknięcia, by Twój system działał efektywnie!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-int-dark: #0f172a;
    --rk-int-blue: #0284c7;
    --rk-int-blue-light: #f0f9ff;
    --rk-int-border: #e2e8f0;
    --rk-int-text: #334155;
    --rk-int-muted: #64748b;
    --rk-int-warn-bg: #fffbeb;
    --rk-int-warn-border: #fef3c7;
    --rk-int-warn-text: #b45309;
}

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

/* Blok Szybkiej Odpowiedzi (Featured Snippet Box) */
.rk-int-snippet-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-int-border);
    display: block;
}

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

.rk-int-direct-answer-card {
    background: var(--rk-int-blue-light);
    border-left: 6px solid var(--rk-int-blue);
    padding: 25px;
    border-radius: 4px 16px 16px 4px;
    margin-bottom: 25px;
    display: block;
}

.rk-int-direct-answer-card p {
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--rk-int-dark);
    margin: 0;
    font-weight: 600;
}

.rk-int-direct-answer-card p strong {
    color: var(--rk-int-blue);
    font-weight: 800;
}

/* Informacja o Kalkulatorach / Narzędziach */
.rk-int-tools-alert {
    background: var(--rk-int-warn-bg);
    border: 1px solid var(--rk-int-warn-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: block;
}

.rk-int-alert-text {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--rk-int-warn-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Sekcja Interaktywnego Przeglądu Zawartości */
.rk-int-interactive-workspace {
    padding: 40px 50px;
    background: #f8fafc;
    display: block;
}

.rk-int-h3 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-int-dark);
    margin: 0 0 20px 0;
    display: block;
}

/* Selektor Etapów Wiedzy (Desktop) */
.rk-int-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 25px;
}

.rk-int-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-int-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji pod rygor E-E-A-T */
}

.rk-int-tab-btn.active {
    background: var(--rk-int-dark);
    border-color: var(--rk-int-dark);
    color: #ffffff;
}

/* Liniowy Panel Informacyjny dla wybranego filaru */
.rk-int-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-int-border);
    border-radius: 16px;
    padding: 30px;
    display: block;
}

.rk-int-panel-h4 {
    margin: 0 0 12px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-int-dark);
    display: block;
}

.rk-int-panel-p {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-int-text);
    margin: 0;
    display: block;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-int-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-int-snippet-zone, .rk-int-interactive-workspace {
        padding: 30px 20px;
    }
    
    .rk-int-h2 { font-size: 20px; }
    .rk-int-direct-answer-card { padding: 20px; }
    
    .rk-int-tabs-row, .rk-int-display-panel {
        display: none;
    }
    
    .rk-int-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-int-acc-item {
        border: 1px solid var(--rk-int-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-int-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-int-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-int-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-int-blue);
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger {
        background: var(--rk-int-dark);
        color: #ffffff;
    }
    
    .rk-int-acc-item.active .rk-int-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-int-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-int-text);
    }
    
    .rk-int-acc-item.active .rk-int-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu? Kompendium Inżynierskie",
    "description": "Definicja i ramy czasowe montażu ogrzewania podłogowego. Dowiedz się, dlaczego faza adaptacji projektu architektonicznego decyduje o sprawności hydraulicznej systemu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-wstep",
    "name": "Ewidencja Kotwic Edukacyjnych i Procesowych Instalacji Podłogowych",
    "description": "Kluczowe węzły decyzyjne i parametry strukturalne definiujące poprawność realizacji ogrzewania płaszczyznowego na osi czasu budowy domu jednorodzinnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "sprawnosc hydrauliczna podlogowki",
      "adaptacja projektu ogrzewania",
      "bledy wykonawcze posadzki",
      "konflikt poziomow jastrychu"
    ],
    "measurementTechnique": "Identyfikacja i klasyfikacja pojęciowa klastra tematycznego instalacji płaszczyznowych pod kątem optymalizacji wyszukiwania semantycznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Węzeł 01: Grubość warstw posadzki i rezerwa wysokościowa styropianu EPS na gruncie.",
        "Węzeł 02: Chronologia i harmonogram prac branżowych tynkarzy oraz instalatorów sanitarnych.",
        "Węzeł 03: Fizyka budowli i czas schnięcia mieszanek jastrychowych w zróżnicowanych temperaturach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-wstep",
    "name": "Interaktywny Przewodnik Zakresu Tematycznego HVAC",
    "description": "Aplikacja internetowa służąca do preselekcji i zapoznania inwestora z krytycznymi filarami inżynieryjnymi montażu ogrzewania płaszczyznowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-main-container" id="rkIntroAppRoot">
    <div class="rk-int-snippet-zone">
        <h2 class="rk-int-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</h2>
        
        <div class="rk-int-direct-answer-card">
            <p>Planowanie montażu ogrzewania podłogowego w nowym domu to strategiczny proces inżynieryjny, który bezpośrednio decyduje o sprawności hydraulicznej systemu, kosztach eksploatacji oraz komforcie cieplnym mieszkańców przez dekady. Pytanie o to, <strong>kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</strong>, ma tylko jedną poprawną odpowiedź: <strong>na etapie adaptacji projektu budowlanego (faza architektoniczno-budowlana)</strong>, przed uzyskaniem pozwolenia na budowę i przed wykonaniem pierwszych prac ziemnych. Wczesna integracja instalacji płaszczyznowej zapobiega błędom wykonawczym, takim jak zbyt niska strefa cokołowa drzwi czy niedostateczna grubość izolacji termicznej styropianu.</p>
        </div>

        <div class="rk-int-tools-alert">
            <p class="rk-int-alert-text">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>
                Wskazówka inżynierska: W dalszej części tego kompendium znajdziesz interaktywne symulatory warstw posadzki, kalkulatory klimatyczne oraz aplikacje osi czasu prac budowlanych.
            </p>
        </div>
    </div>

    <div class="rk-int-interactive-workspace">
        <h3 class="rk-int-h3">Czego dowiesz się z tego przewodnika? Kliknij wybrany obszar:</h3>
        
        <div class="rk-int-tabs-row" id="rkIntroTabs">
            <button class="rk-int-tab-btn active" data-intro="1">Grubość warstw</button>
            <button class="rk-int-tab-btn" data-intro="2">Harmonogram branż</button>
            <button class="rk-int-tab-btn" data-intro="3">Warunki pogodowe</button>
        </div>

        <div class="rk-int-display-panel" id="rkIntroDisplay">
            <h4 class="rk-int-panel-h4" id="rkIntroTitle">Wymiary i rezerwa wysokościowa posadzki</h4>
            <p class="rk-int-panel-p" id="rkIntroBody">Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>.</p>
        </div>

        <div class="rk-int-mobile-accordion" id="rkIntroMobileAccordion">
            <div class="rk-int-acc-item active" data-intro="1">
                <div class="rk-int-acc-trigger">1. Wymiary i rezerwa wysokościowa posadzki</div>
                <div class="rk-int-acc-content" id="rkMIntro1"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="2">
                <div class="rk-int-acc-trigger">2. Chronologia i synchronizacja ekip na budowie</div>
                <div class="rk-int-acc-content" id="rkMIntro2"></div>
            </div>
            <div class="rk-int-acc-item" data-intro="3">
                <div class="rk-int-acc-trigger">3. Wpływ pór roku na schnięcie i wygrzewanie betonu</div>
                <div class="rk-int-acc-content" id="rkMIntro3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych wstępu (Czyste fakty, brak lania wody, pełna stabilność kodu)
    var introDatabase = {
        1: {
            title: "Wymiary i rezerwa wysokościowa posadzki",
            body: "Dowiesz się, dlaczego podłogówka wymaga od 16 cm do 22 cm przestrzeni od surowego betonu. Sprawdzisz skutki odchudzania styropianu i konsekwencje pękania jastrychu cementowego w przypadku zignorowania normy <strong>PN-EN 1264-4</strong>. Poniżej czeka na Ciebie <strong>aktywny symulator przekroju posadzki</strong>."
        },
        2: {
            title: "Chronologia i synchronizacja ekip na budowie",
            body: "Przeanalizujemy poprawny ciąg zdarzeń: od pionów kanalizacyjnych i rekuperacji, przez tynki wewnętrzne, aż po montaż pętli. Poznasz mechaniczne ryzyka grożące przebiciem rur PEX/PE-RT. W dalszej części znajdziesz <strong>interaktywny nawigator chronologii branżowej</strong>."
        },
        3: {
            title: "Wpływ pór roku na schnięcie i wygrzewanie betonu",
            body: "Zrozumiesz, jak temperatura otoczenia modyfikuje czas schnięcia posadzki z normowych 28 dni do nawet 60 dni zimą. Przeliczymy litry wody technologicznej i zbadamy protokół wygrzewania płyty wg norm ITB. Niżej przygotowałem dla Ciebie <strong>symulator warunków klimatycznych jastrychu</strong>."
        }
    };

    var dTitle = document.getElementById('rkIntroTitle');
    var dBody = document.getElementById('rkIntroBody');
    var tabButtons = document.querySelectorAll('#rkIntroTabs .rk-int-tab-btn');

    // Funkcja aktualizacji panelu desktopowego (Brak jakichkolwiek animacji fade/slide)
    function aktualizujPanelIntro(id) {
        if (dTitle) { dTitle.innerText = introDatabase[id].title; }
        if (dBody) { dBody.innerHTML = introDatabase[id].body; }
    }

    // Inicjalizacja pierwszej karty na starcie
    aktualizujPanelIntro(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja natychmiastowego indeksowania przez boty)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMIntro' + i);
        if (mBox) {
            mBox.innerHTML = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + introDatabase[i].body + '</p>';
        }
    }

    // Obsługa zakładek na Desktopie
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-intro');
            aktualizujPanelIntro(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak operatorów podwójnego ampersandu)
    var accItems = document.querySelectorAll('#rkIntroMobileAccordion .rk-int-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-int-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-lay-dark: #0f172a;
    --rk-lay-blue: #0284c7;
    --rk-lay-border: #e2e8f0;
    --rk-lay-text: #334155;
    --rk-lay-muted: #64748b;
    --rk-lay-success: #10b981;
    --rk-lay-danger: #ef4444;
    --rk-lay-danger-light: #fca5a5;
    --rk-lay-bg-main: #f8fafc;
}

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

/* Wstęp */
.rk-lay-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-lay-border);
}

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

.rk-lay-h3 {
    font-size: 15.5px;
    color: var(--rk-lay-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Obszar Interaktywny */
.rk-lay-workspace {
    padding: 40px 50px;
    background: var(--rk-lay-bg-main);
}

/* Karta Suwaka */
.rk-lay-slider-card {
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 20px;
    padding: 35px 25px;
    margin-bottom: 40px;
    text-align: center;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-lay-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-lay-dark);
    margin: 0 0 25px 0;
}

.rk-lay-range {
    width: 100%;
    max-width: 600px;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #e2e8f0;
    outline: none;
    cursor: pointer;
}

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

.rk-lay-height-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    margin-top: 15px;
}

/* DYNAMICZNY STOS WARSTW (Zastępuje SVG) */
.rk-lay-dom-stack {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 500px;
    margin: 0 auto 40px auto;
    border: 2px solid var(--rk-lay-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.08);
}

.rk-stack-layer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 800;
    font-size: 14px;
    color: #ffffff;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    padding: 0 15px;
    box-sizing: border-box;
}

.rk-stack-layer span {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.9;
    margin-top: 2px;
}

/* POPRAWIONA WYSOKOŚĆ WARSTWY GÓRNEJ - brak ucinania liter */
.rk-stack-finish { background: #64748b; min-height: 48px; }
.rk-stack-screed { background: var(--rk-lay-blue); height: 90px; }
.rk-stack-styro { background: var(--rk-lay-success); height: 130px; }
.rk-stack-base { background: #cbd5e1; color: var(--rk-lay-dark); text-shadow: none; min-height: 48px; border-top: 1px solid #94a3b8; }

/* Lista Parametrów - Liniowy Układ Pionowy */
.rk-lay-metrics-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-metric-row {
    display: flex;
    flex-direction: column;
    padding: 20px 25px;
    background: #ffffff;
    border: 1px solid var(--rk-lay-border);
    border-radius: 14px;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-lay-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-val {
    font-size: 16px;
    font-weight: 900;
    color: var(--rk-lay-dark);
    line-height: 1.4;
}

/* Treść Techniczna */
.rk-lay-article {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-lay-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-lay-text);
}

.rk-lay-article p { margin: 0 0 20px 0; }
.rk-lay-article p:last-child { margin: 0; }
.rk-lay-article strong { color: var(--rk-lay-dark); font-weight: 700; }

@media (max-width: 768px) {
    .rk-lay-header, .rk-lay-workspace, .rk-lay-article { padding: 30px 20px; }
    .rk-lay-h2 { font-size: 22px; }
    .rk-lay-dom-stack { border-radius: 8px; }
    .rk-metric-row { padding: 16px 20px; }
    .rk-metric-val { font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-grubosc-warstw",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?",
    "description": "Zrozumienie zjawiska konfliktu poziomów posadzki. Narzędzie obliczeniowe rezerwy wysokościowej od surowego betonu do wykończenia (16-22 cm) na bazie normy PN-EN 1264-4.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-grubosc-warstw",
    "name": "Baza Danych Normatywnych Przekrojów Posadzkowych z Ogrzewaniem Płaszczyznowym",
    "description": "Zestawienie korelacji grubości termoizolacji EPS, oporu cieplnego oraz warstwy dociskowej jastrychu w odniesieniu do dostępnej wysokości architektonicznej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wysokość posadzki z ogrzewaniem podłogowym",
      "konflikt poziomów drzwi i okien",
      "minimalna grubość styropianu na gruncie",
      "pękanie wylewki cementowej naprężenia",
      "współczynnik przewodzenia ciepła lambda podłogówka"
    ],
    "measurementTechnique": "Obliczenia strukturalne i fizykalne wymogów normy PN-EN 1264-4 dotyczące izolacyjności R powyżej 1,25 m2 K/W.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rezerwa Optymalna: 16-22 cm pozwala na 100-150 mm izolacji EPS (R >= 3,50) oraz bezpieczny jastrych 50-60 mm.",
        "Rezerwa Krytyczna: 10-12 cm wymusza stosowanie mat slim 20-40 mm (R = 0,55-1,10) oraz cienkowarstwowych mas, drastycznie pogarszając COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-grubosc-warstw",
    "name": "Dynamiczny Symulator Warstw Posadzkowych i Rezerwy Architektonicznej",
    "description": "Narzędzie internetowe pozwalające na interaktywną wizualizację zmian grubości wylewki i izolacji w stosunku do dostępnej rezerwy wysokościowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-layers-container" id="rkLayAppRoot">
    <div class="rk-lay-header">
        <h2 class="rk-lay-h2">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu ze względu na grubość warstw podłogi?</h2>
        <h3 class="rk-lay-h3">Spóźniona decyzja o podłogówce to najczęstsza przyczyna tzw. konfliktu poziomów. Przesuń suwak, aby na żywo zobaczyć, jak zmiany w całkowitej rezerwie wysokościowej wpływają na parametry betonu i styropianu ukrytych pod Twoją posadzką.</h3>
    </div>

    <div class="rk-lay-workspace">
        <div class="rk-lay-slider-card">
            <h4 class="rk-lay-h4">Ustal dostępną wysokość od surowego betonu do gotowej podłogi:</h4>
            <input type="range" min="10" max="22" value="20" class="rk-lay-range" id="rkLayRangeControl">
            <div class="rk-lay-height-val" id="rkLayValueText">20 cm</div>
        </div>

        <div class="rk-lay-dom-stack" id="rkLayStack">
            <div class="rk-stack-layer rk-stack-finish">
                Wykończenie (Płytki/Panele) <span>10-15 mm</span>
            </div>
            <div class="rk-stack-layer rk-stack-screed" id="stkScreed">
                Jastrych grzewczy 60 mm <span>(Rura ø16 wewnątrz)</span>
            </div>
            <div class="rk-stack-layer rk-stack-styro" id="stkStyro">
                Izolacja cieplna EPS 125 mm <span>(Opór zoptymalizowany)</span>
            </div>
            <div class="rk-stack-layer rk-stack-base">
                Płyta konstrukcyjna (Chudy beton)
            </div>
        </div>

        <div class="rk-lay-metrics-list">
            <div class="rk-metric-row">
                <div class="rk-metric-label">Grubość izolacji termicznej (EPS na gruncie)</div>
                <div class="rk-metric-val" id="valIzolacja">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Opór cieplny izolacji (R-lambda)</div>
                <div class="rk-metric-val" id="valOpor">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Średnica rury i rozstaw pętli</div>
                <div class="rk-metric-val" id="valRura">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wymagany jastrych nad rurą</div>
                <div class="rk-metric-val" id="valWylewka">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Wydajność pompy ciepła (COP)</div>
                <div class="rk-metric-val" id="valCop">Wczytywanie danych&#8230;</div>
            </div>
            <div class="rk-metric-row">
                <div class="rk-metric-label">Szacunkowy koszt modyfikacji i poprawek</div>
                <div class="rk-metric-val" id="valKoszty">Wczytywanie danych&#8230;</div>
            </div>
        </div>
    </div>

    <div class="rk-lay-article">
        <p>Najlepszy moment na planowanie grubości warstw podłogi przypada na etap projektowania architektonicznego, przed wylaniem płyty fundamentowej lub stropów, ponieważ system wymaga rezerwy wysokościowej wynoszącej minimum <strong>16 cm do 22 cm</strong> od surowego betonu do gotowej posadzki. Zgodnie z normą <strong>PN-EN 1264-4</strong>, minimalna grubość izolacji cieplnej na gruncie dla współczynnika przewodzenia ciepła lambda = 0,035 W/(m·K) musi wynosić <strong>100 mm</strong>, aby opór cieplny izolacji R-lambda wynosił co najmniej <strong>1,25 m²·K/W</strong>. Spóźnienie się z tą decyzją skutkuje koniecznością odchudzenia izolacji, co drastycznie zwiększa straty ciepła do gruntu.</p>
        
        <p>Konsekwencją zignorowania tego parametru na etapie projektu architektonicznego jest tzw. <strong>„konflikt poziomów”</strong>. Jeśli inwestor podejmie decyzję o podłogówce po wylaniu otworów drzwiowych i okiennych przy założeniu tradycyjnych grzejników (gdzie wylewka ma często tylko 10-12 cm wraz ze styropianem), brakuje przestrzeni na poprawną strukturę grzewczą. Skrócenie wysokości jastrychu poniżej <strong>35 mm</strong> nad górną krawędzią rury (dla jastrychów cementowych według PN-EN 1264) grozi pękaniem posadzki pod wpływem naprężeń termicznych i powstawaniem liniowych pęknięć wzdłuż tras rur.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var rangeInput = document.getElementById('rkLayRangeControl');
    var valueText = document.getElementById('rkLayValueText');
    
    // Warstwy wizualne w stosie
    var stkScreed = document.getElementById('stkScreed');
    var stkStyro = document.getElementById('stkStyro');

    // Metryki tabelaryczne
    var valIzolacja = document.getElementById('valIzolacja');
    var valOpor = document.getElementById('valOpor');
    var valRura = document.getElementById('valRura');
    var valWylewka = document.getElementById('valWylewka');
    var valCop = document.getElementById('valCop');
    var valKoszty = document.getElementById('valKoszty');

    function przeliczParametry(wysokosc) {
        if (wysokosc >= 16) {
            // STAN OPTYMALNY (Faza projektowa)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-success)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "90px";
            stkScreed.style.backgroundColor = "var(--rk-lay-blue)";
            stkScreed.innerHTML = "Jastrych grzewczy 50-60 mm <br><span>(Rura ø16 wewnątrz)</span>";
            
            stkStyro.style.height = "130px";
            stkStyro.style.backgroundColor = "var(--rk-lay-success)";
            stkStyro.innerHTML = "Izolacja cieplna EPS 100-150 mm <br><span>(Opór zoptymalizowany)</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "100 - 150 mm (Zgodnie z normą WT2021)";
            valIzolacja.style.color = "var(--rk-lay-success)";
            
            valOpor.innerText = "Większy lub równy 3,50 m²·K/W";
            valRura.innerText = "ø16 mm, rozstaw 100 / 150 mm";
            valWylewka.innerText = "50 mm (Anhydryt) lub 60 mm (Beton)";
            valCop.innerText = "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30°C)";
            valKoszty.innerText = "0,00 PLN (Brak konfliktu poziomów)";
            valKoszty.style.color = "var(--rk-lay-dark)";
        } else {
            // STAN KRYTYCZNY (Decyzja przed wylewkami)
            valueText.innerText = wysokosc + " cm";
            valueText.style.color = "var(--rk-lay-danger)";
            
            // Animacja warstw stosu DOM
            stkScreed.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkScreed.style.backgroundColor = "var(--rk-lay-danger)";
            stkScreed.innerHTML = "Jastrych cienkowarstwowy < 35 mm <br><span>(RYZYKO SPĘKAŃ)</span>";
            
            stkStyro.style.height = "55px"; /* Trochę wyżej, by tekst nie wyciekał */
            stkStyro.style.backgroundColor = "var(--rk-lay-danger-light)";
            stkStyro.innerHTML = "Izolacja typu SLIM 20-40 mm <br><span style='color:var(--rk-lay-danger);'>STRATY DO GRUNTU!</span>";

            // Aktualizacja metryk
            valIzolacja.innerText = "20 - 40 mm (Mata systemowa slim)";
            valIzolacja.style.color = "var(--rk-lay-danger)";
            
            valOpor.innerText = "0,55 - 1,10 m²·K/W (Skrajne straty ciepła)";
            valRura.innerText = "ø10 / ø12 mm (Systemy renowacyjne)";
            valWylewka.innerText = "15 - 20 mm (Specjalne, drogie masy samopoziomujące)";
            valCop.innerText = "Niskie COP (3,0 - 3,4 przy zasilaniu ≥ 45°C)";
            valKoszty.innerText = "15 000 - 35 000 PLN (Frezowanie, drogie masy, kucie otworów)";
            valKoszty.style.color = "var(--rk-lay-danger)";
        }
    }

    // Pierwsze załadowanie
    przeliczParametry(20);

    // Nasłuch ruchu suwaka
    rangeInput.addEventListener('input', function() {
        przeliczParametry(parseInt(this.value, 10));
    });
});
</script>



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

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

/* Sekcja Wstępna */
.rk-hrm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-hrm-border);
}

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

.rk-hrm-h3 {
    font-size: 15.5px;
    color: var(--rk-hrm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-hrm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Poziomy Selektor Kroków - Pełna szerokość na Desktopie */
.rk-hrm-desktop-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-hrm-tab-btn {
    padding: 16px 10px;
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-hrm-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.rk-hrm-tab-btn:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

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

.rk-hrm-tab-btn .rk-hrm-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-hrm-blue);
    font-weight: 700;
}

.rk-hrm-tab-btn.active .rk-hrm-badge {
    color: #ffffff;
    opacity: 0.8;
}

/* Liniowy Panel Informacyjny (Desktop) - Zmodyfikowany pod pełną szerokość */
.rk-hrm-full-display {
    background: #ffffff;
    border: 1px solid var(--rk-hrm-border);
    border-radius: 20px;
    padding: 35px 45px;
    display: block;
}

/* Zawartość opisu etapu */
.rk-hrm-display-content {
    display: flex;
    flex-direction: column;
}

.rk-hrm-h4 {
    margin: 0 0 6px 0;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-hrm-dark);
}

.rk-hrm-status-tag {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 20px;
}

.rk-hrm-status-tag.safe { color: var(--rk-hrm-success); }
.rk-hrm-status-tag.danger { color: var(--rk-hrm-danger); }

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

/* Akordeon Mobilny (Ukryty na Desktopie) */
.rk-hrm-mobile-accordion {
    display: none;
}

/* Głęboki Akapit Tekstowy Liniowy pod Aplikacją */
.rk-hrm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-hrm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-hrm-text);
}

.rk-hrm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-hrm-deep-content p:last-child {
    margin: 0;
}

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

@media (max-width: 768px) {
    .rk-hrm-intro-zone, .rk-hrm-app-body, .rk-hrm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-hrm-h2 { font-size: 20px; }
    
    .rk-hrm-desktop-nav, .rk-hrm-full-display {
        display: none;
    }
    
    .rk-hrm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-hrm-acc-card {
        border: 1px solid var(--rk-hrm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-hrm-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-hrm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-hrm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-hrm-blue);
        font-weight: 500;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger {
        border-bottom: 1px solid var(--rk-hrm-border);
        color: var(--rk-hrm-blue);
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-trigger::after {
        content: '−';
    }
    
    .rk-hrm-acc-content {
        display: none;
        padding: 20px;
        background: #f8fafc;
    }
    
    .rk-hrm-acc-card.active .rk-hrm-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-harmonogram",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?",
    "description": "Chronologia montażu ogrzewania płaszczyznowego. Analiza ryzyk mechanicznych: kolizje z tynkami, instalacją wodną i brakiem stolarki otworowej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-harmonogram",
    "name": "Matryca Sekwencji Instalacyjnych i Tolerancji Podłoża HVAC",
    "description": "Zbiór danych inżynieryjnych określający dopuszczalne tolerancje nierówności chudego betonu (max 5 mm na 2 m) oraz krytyczne punkty styku branż budowlanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "instalacja podłogówki a tynki",
      "kolejność prac instalacyjnych podłogówka",
      "tolerancja nierówności podłoża norma",
      "degradacja rur pex promieniowanie uv",
      "piony kanalizacyjne pod chudziakiem"
    ],
    "measurementTechnique": "Weryfikacja sekwencyjna i rygorystyczna kontrola chronologii procesów wykonawczych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Sekwencja Poprawna: Piony sanitarne i rekuperacja na chudziaku -> Tynki i stolarka -> Styropian i rury grzewcze -> Próba wodna -> Jastrych.",
        "Zagrożenie Mechaniczne: Układanie pętli przed tynkami lub instalacją sanitarną generuje ryzyko przebicia ścianek przewodów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-harmonogram",
    "name": "Chronologiczny Nawigator Branż Budowlanych",
    "description": "Narzędzie interaktywne dedykowane do analizy punktów kolizyjnych oraz zarządzania harmonogramem prac instalacyjnych w budynkach jednorodzinnych.",
    "applicationCategory": "ProjectManagementApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-hrm-main-container" id="rkHarmonogramAppRoot">
    <div class="rk-hrm-intro-zone">
        <h2 class="rk-hrm-h2">Jak harmonogram prac budowlanych wpływa na termin montażu pętli grzewczych?</h2>
        <h3 class="rk-hrm-h3">Montaż rur ogrzewania podłogowego wymaga idealnej synchronizacji z pozostałymi branżami. Przełam liniowy chaos na budowie – klikaj poszczególne etapy w poniższym asystencie chronologii, aby sprawdzić poprawne sekwencje inżynierskie oraz konsekwencje błędów.</h3>
    </div>

    <div class="rk-hrm-app-body">
        <div class="rk-hrm-desktop-nav" id="rkHrmTabs">
            <button class="rk-hrm-tab-btn active" data-hrm="1">
                <span class="rk-hrm-badge">Faza 01</span>
                <span>Instalacje Sanitarne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="2">
                <span class="rk-hrm-badge">Faza 02</span>
                <span>Tynki Wewnętrzne</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="3">
                <span class="rk-hrm-badge">Faza 03</span>
                <span>Stolarka Otworowa</span>
            </button>
            <button class="rk-hrm-tab-btn" data-hrm="4">
                <span class="rk-hrm-badge">Faza 04</span>
                <span>Rozłożenie Pętli</span>
            </button>
        </div>

        <div class="rk-hrm-full-display" id="rkHrmDisplayPanel">
            <div class="rk-hrm-display-content">
                <h4 class="rk-hrm-h4" id="rkHrmTitle">Piony kanalizacyjne i instalacje wodne</h4>
                <div class="rk-hrm-status-tag safe" id="rkHrmStatus">Kolejność: Bezwzględnie Przed Podłogówką</div>
                <p class="rk-hrm-p-text" id="rkHrmBody">Wszystkie rury sanitarne (ciepła i zimna woda, cyrkulacja, kanalizacja) oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu.</p>
            </div>
        </div>

        <div class="rk-hrm-mobile-accordion" id="rkHrmMobileAccordion">
            <div class="rk-hrm-acc-card active" data-hrm="1">
                <div class="rk-hrm-acc-trigger">1. Piony kanalizacyjne i instalacje wodne</div>
                <div class="rk-hrm-acc-content" id="rkMHrm1"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="2">
                <div class="rk-hrm-acc-trigger">2. Tynkowanie ścian wewnętrznych</div>
                <div class="rk-hrm-acc-content" id="rkMHrm2"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="3">
                <div class="rk-hrm-acc-trigger">3. Zamknięcie stolarki (Okna i Drzwi)</div>
                <div class="rk-hrm-acc-content" id="rkMHrm3"></div>
            </div>
            <div class="rk-hrm-acc-card" data-hrm="4">
                <div class="rk-hrm-acc-trigger">4. Układanie rur grzewczych i test szczelności</div>
                <div class="rk-hrm-acc-content" id="rkMHrm4"></div>
            </div>
        </div>
    </div>

    <div class="rk-hrm-deep-content">
        <p>Montaż rur ogrzewania podłogowego należy przeprowadzić w stanie surowym zamkniętym, bezwzględnie po wykonaniu pionów kanalizacyjnych, instalacji wodnej (ZWK, CWU, cyrkulacja) oraz przewodów rekuperacji prowadzonych w podłodze, ale przed wykonaniem tynków wewnętrznych lub bezpośrednio po ich całkowitym wyschnięciu. Norma <strong>PN-EN 1264-4</strong> jednoznacznie wskazuje, że przed rozłożeniem izolacji podłoże musi być uprzątnięte, równe i suche, a dopuszczalna tolerancja nierówności podłoża wynosi maksymalnie <strong>5 mm</strong> na długości łaty <strong>2 m</strong>. Montaż pętli grzewczych przed instalacjami sanitarnymi grozi mechanicznym uszkodzeniem przewodów przez pozostałe ekipy wykonawcze.</p>
        
        <p>Oto krytyczne konsekwencje zaburzenia tego harmonogramu technologicznego:</p>
        
        <p><strong>Prowadzenie instalacji wodnych nad rurami podłogówki:</strong> Taki błąd generuje niekontrolowane zyski lub straty ciepła pomiędzy układami i drastycznie zaburza stabilność hydrauliczną pętli. Wszystkie rury sanitarne muszą iść bezpośrednio na chudym betonie, skryte w pierwszej, wyrównawczej warstwie styropianu.</p>
        
        <p><strong>Tynkowanie po ułożeniu pętli bez wylanej posadzki:</strong> Spadające z wysokości ciężkie grudy zaprawy tynkarskiej, zanieczyszczenia chemiczne oraz rusztowania rozstawiane bezpośrednio na odsłoniętych rurach mogą łatwo przebić ściankę przewodu grzewczego. Tego typu uszkodzenia ujawniają się często dopiero podczas końcowej próby ciśnieniowej lub – co generuje gigantyczne koszty – dopiero po zalaniu i związaniu jastrychu betonowego.</p>
        
        <p><strong>Brak szczelności budynku (Stan otwarty):</strong> Układanie instalacji płaszczyznowej w budynku pozbawionym okien i drzwi zewnętrznych naraża rury na bezpośrednie, długotrwałe promieniowanie UV, co prowadzi do przyspieszonej degradacji struktury polimeru PE-RT/PEX. Dodatkowo generuje to skrajne ryzyko zamarznięcia wody wewnątrz przewodów po przeprowadzeniu obowiązkowej, normowej próby ciśnieniowej w okresie jesienno-zimowym.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych chronologii (bez obrazków SVG)
    var hrmDatabase = {
        1: {
            title: "Piony kanalizacyjne i instalacje wodne",
            status: "Kolejność: Bezwzględnie Przed Podłogówką",
            body: "Wszystkie rury sanitarne oraz przewody rekuperacji muszą zostać poprowadzone bezpośrednio na chudym betonie, w pierwszej warstwie styropianu. Prowadzenie instalacji wodnych nad rurami podłogówki generuje niekontrolowane zyski lub straty ciepła i całkowicie zaburza projektowaną hydraulikę systemu."
        },
        2: {
            title: "Tynkowanie ścian wewnętrznych",
            status: "Kolejność: Rekomendowane Przed Rozłożeniem Rur",
            body: "Wykonanie tynków przed układaniem pętli eliminuje ryzyko mechanicznego uszkodzenia tworzywa przez spadające zaprawy lub rusztowania. Jeśli tynkujesz po ułożeniu rur, posadzka musi być już bezwzględnie wylana i związana, aby stanowiła monolit ochronny."
        },
        3: {
            title: "Zamknięcie stolarki (Okna i Drzwi)",
            status: "Kolejność: Stan Surowy Zamknięty (Wymagany)",
            body: "Montaż okien i drzwi chroni instalację przed wiatrem, mrozem oraz promieniowaniem UV, które degraduje polimery PEX/PE-RT. Budynek musi być szczelny, aby po próbie wodnej instalacja nie zamarzła podczas nagłych przymrozków."
        },
        4: {
            title: "Układanie rur grzewczych i test szczelności",
            status: "Kolejność: Ostatni Etap Przed Wylewaniem Jastrychu",
            body: "Po sprzątnięciu podłoża i ułożeniu izolacji, rury montuje się w oparciu o projekt hydrauliczny. Etap ten wieńczy obowiązkowa próba ciśnieniowa wodą (6 bar przez 24h). Zalewanie jastrychem odbywa się zawsze, gdy rury są pod pełnym ciśnieniem."
        }
    };

    var dTitle = document.getElementById('rkHrmTitle');
    var dStatus = document.getElementById('rkHrmStatus');
    var dBody = document.getElementById('rkHrmBody');
    var tabButtons = document.querySelectorAll('#rkHrmTabs .rk-hrm-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelHrm(id) {
        if (dTitle) { dTitle.innerText = hrmDatabase[id].title; }
        if (dStatus) { 
            dStatus.innerText = hrmDatabase[id].status;
            dStatus.className = "rk-hrm-status-tag safe";
        }
        if (dBody) { dBody.innerHTML = hrmDatabase[id].body; }
    }

    // Inicjalizacja startowa dla pierwszej zakładki
    aktualizujPanelHrm(1);

    // Dynamiczne napełnienie mobilnego akordeonu (SEO gwarancja indeksowania tekstu)
    for (var i = 1; i <= 4; i++) {
        var mContentBox = document.getElementById('rkMHrm' + i);
        if (mContentBox) {
            var html = '<div style="font-size:12px; font-weight:700; text-transform:uppercase; margin-bottom:8px; color:#0284c7;">' + hrmDatabase[i].status + '</div>';
            html += '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + hrmDatabase[i].body + '</p>';
            mContentBox.innerHTML = html;
        }
    }

    // Obsługa zakładek desktopowych
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-hrm');
            aktualizujPanelHrm(id);
        });
    });

    // Bezpieczna obsługa akordeonu mobilnego (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkHrmMobileAccordion .rk-hrm-acc-card');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-hrm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-clm-dark: #0f172a;
    --rk-clm-blue: #0284c7;
    --rk-clm-blue-light: #f0f9ff;
    --rk-clm-border: #e2e8f0;
    --rk-clm-text: #334155;
    --rk-clm-muted: #64748b;
    --rk-clm-safe: #10b981;
    --rk-clm-safe-bg: #f0fdf4;
    --rk-clm-danger: #ef4444;
    --rk-clm-danger-bg: #fef2f2;
}

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

/* Nagłówek i Opis */
.rk-clm-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-clm-border);
}

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

.rk-clm-h3 {
    font-size: 15.5px;
    color: var(--rk-clm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Roboczy Symulatora */
.rk-clm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Kontroler Suwaka - Pełna szerokość */
.rk-clm-interactive-panel {
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 20px;
    padding: 35px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-clm-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-clm-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-clm-slider-container {
    max-width: 600px;
    margin: 0 auto 20px auto;
    text-align: center;
}

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

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

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

.rk-clm-current-temp {
    font-size: 36px;
    font-weight: 900;
    color: var(--rk-clm-dark);
    margin-top: 15px;
}

/* Liniowa Prezentacja Wyników Termicznych */
.rk-clm-results-layout {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 40px;
    background: #ffffff;
    border: 1px solid var(--rk-clm-border);
    border-radius: 16px;
    padding: 30px;
    align-items: center;
}

/* SVG Stanu Klimatycznego */
.rk-clm-svg-box {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rk-clm-blue-light);
    border-radius: 12px;
    padding: 20px;
    height: 140px;
}

.rk-clm-svg {
    width: 100%;
    max-width: 100px;
    height: auto;
}

/* Wyniki analityczne */
.rk-clm-indicators {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-clm-row {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px dashed var(--rk-clm-border);
    padding-bottom: 10px;
    font-size: 14.5px;
}

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

.rk-clm-lbl {
    color: var(--rk-clm-muted);
    font-weight: 500;
}

.rk-clm-val {
    font-weight: 800;
    color: var(--rk-clm-dark);
}

.rk-clm-val.alert-text {
    color: var(--rk-clm-danger);
}

.rk-clm-val.safe-text {
    color: var(--rk-clm-safe);
}

/* Akapit z pełną treścią inżynieryjną */
.rk-clm-deep-content {
    padding: 40px 50px;
    background: #ffffff;
    border-top: 1px solid var(--rk-clm-border);
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-clm-text);
}

.rk-clm-deep-content p {
    margin: 0 0 20px 0;
}

.rk-clm-deep-content p:last-child {
    margin: 0;
}

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

@media (max-width: 768px) {
    .rk-clm-header-zone, .rk-clm-app-body, .rk-clm-deep-content {
        padding: 30px 20px;
    }
    
    .rk-clm-h2 { font-size: 20px; }
    .rk-clm-results-layout { grid-template-columns: 1fr; gap: 25px; padding: 20px; }
    .rk-clm-svg-box { height: 100px; }
    .rk-clm-row { flex-direction: column; gap: 4px; }
    .rk-clm-val { text-align: left; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-klimat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?",
    "description": "Analiza wpływu warunków klimatycznych na montaż ogrzewania podłogowego. Normy ITB oraz protokoły pierwszego wygrzewania jastrychów cementowych i anhydrytowych.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-klimat",
    "name": "Tabela zależności hydratacji i wysychania jastrychów od temperatury otoczenia",
    "description": "Zbiór danych inżynieryjnych określający czas naturalnego wiązania posadzek monolitycznych, poziomy emisji wilgoci technologicznej oraz ryzyko porażenia biologicznego ścian.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalne okno pogodowe podłogówka",
      "czas wysychania jastrychu cementowego",
      "instrukcja ITB nr 422 2006",
      "emisja wilgoci technologicznej z posadzki",
      "protokół wygrzewania PN-EN 1264-4"
    ],
    "measurementTechnique": "Empiryczna i normatywna ocena procesów odparowania wody z mas jastrychowych w zróżnicowanych warunkach termiczno-wilgotnościowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Warunki letnie (powyżej 20 stopni): Czas schnięcia 28 dni, wilgotność względna poniżej 65 procent, ryzyko biologiczne krytycznie niskie.",
        "Warunki zimowe (poniżej 5 stopni): Czas schnięcia wydłużony do 60 dni, odparowanie zablokowane, ryzyko kondensacji i pleśni skrajnie wysokie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-klimat",
    "name": "Symulator Wilgoci Technologicznej i Wiązania Posadzek",
    "description": "Narzędzie interaktywne dedykowane do symulacji czasu schnięcia jastrychów oraz określania poziomu ryzyka kondensacji wilgoci w budynkach w zależności od temperatury otoczenia.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-climate-main-container" id="rkClimateAppRoot">
    <div class="rk-clm-header-zone">
        <h2 class="rk-clm-h2">Czy pora roku i warunki atmosferyczne determinują czas układania podłogówki?</h2>
        <h3 class="rk-clm-h3">Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak wybór konkretnego miesiąca niesie za sobą potężne konsekwencje fizykalne dla budynku. Użyj poniższego suwaka temperatury zewnętrznej, aby sprawdzić, jak klimat modyfikuje czas schnięcia posadzki i stabilność biologiczną konstrukcji.</h3>
    </div>

    <div class="rk-clm-app-body">
        <div class="rk-clm-interactive-panel">
            <div class="rk-clm-h4">Ustaw średnią temperaturę dobową wewnątrz budynku podczas wylewania posadzki:</div>
            <div class="rk-clm-slider-container">
                <input type="range" min="3" max="25" value="20" class="rk-clm-range" id="rkTempSlider">
                <div class="rk-clm-current-temp" id="rkTempDisplay">20°C</div>
            </div>
        </div>

        <div class="rk-clm-results-layout" id="rkClmResultsBlock">
            <div class="rk-clm-svg-box" id="rkClmSvgFrame">
                </div>
            
            <div class="rk-clm-indicators">
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Rekomendowane okno pogodowe:</span>
                    <span class="rk-clm-val" id="clmStatus">Optymalne (Maj &#8211; Wrzesień)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Wymagany czas schnięcia (Jastrych cementowy 60mm):</span>
                    <span class="rk-clm-val" id="clmTime">28 dni (Norma ITB)</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Zagrożenie kondensacją i porażeniem biologicznym:</span>
                    <span class="rk-clm-val" id="clmRisk">Brak ryzyka</span>
                </div>
                <div class="rk-clm-row">
                    <span class="rk-clm-lbl">Ekonomia pierwszego uruchomienia ogrzewania:</span>
                    <span class="rk-clm-val" id="clmEcon">Wysoka sprawność źródła</span>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-clm-deep-content">
        <p>Prace montażowe oraz zalewanie instalacji jastrychem można wykonywać przez cały rok, jednak optymalne okno pogodowe przypada na okres od maja do września, kiedy temperatura otoczenia i podłoża stabilnie utrzymuje się powyżej <strong>+5°C</strong> dla jastrychów cementowych oraz <strong>+10°C</strong> dla anhydrytowych. Zgodnie z normą <strong>Instrukcji ITB nr 422/2006</strong>, proces naturalnego wiązania i wysychania jastrychu cementowego o grubości 60 mm wymaga minimum <strong>28 dni</strong> w warunkach wilgotności względnej powietrza poniżej 65%.</p>
        
        <p>Technologiczny ciąg zdarzeń musi przebiegać w niezmiennej sekwencji: <strong>Montaż instalacji -> Próba ciśnieniowa (wodna) -> Wylanie jastrychu -> Wiązanie: 28 dni w temperaturze pow. +5°C -> Wygrzewanie płyty</strong>. Próba skrócenia tego procesu lub ignorowanie warunków klimatycznych bezpośrednio uderza w strukturę budynku.</p>
        
        <p>Wykonanie wylewek w listopadzie lub grudniu przy braku uruchomionego źródła ciepła drastycznie wydłuża proces wysychania z 28 dni do nawet <strong>50-60 dni</strong>. Wilgoć technologiczna z posadzki (która dla domu o powierzchni 150 m² wynosi około <strong>1500-2000 litrów wody</strong> wprowadzonej w strukturę budynku) zamiast swobodnie odparować, zaczyna kondensować na chłodnych ścianach i stropach, prowadząc do nieodwracalnego porażenia biologicznego budynku (rozwój grzybów i pleśni w warstwie tynków).</p>
        
        <p>Ponadto, uruchomienie procedury pierwszego wygrzewania jastrychu (zgodnie z protokołem wygrzewania według normy <strong>PN-EN 1264-4</strong>) wymaga zasilenia instalacji wodą o temperaturze <strong>+20°C</strong> przez pierwsze 3 dni, a następnie sukcesywnego podnoszenia temperatury o 5°C na dobę aż do wartości projektowej. Realizacja tego procesu zimą, w nieocieplonym i wychłodzonym budynku, generuje gigantyczne straty energii i jest technicznie skrajnie utrudniona, drastycznie obniżając sprawność startową całego systemu.</p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var slider = document.getElementById('rkTempSlider');
    var display = document.getElementById('rkTempDisplay');
    var svgFrame = document.getElementById('rkClmSvgFrame');
    
    var clmStatus = document.getElementById('clmStatus');
    var clmTime = document.getElementById('clmTime');
    var clmRisk = document.getElementById('clmRisk');
    var clmEcon = document.getElementById('clmEcon');
    var resultsBlock = document.getElementById('rkClmResultsBlock');

    // Ikony SVG jako czyste łańcuchy tekstowe
    var svgSun = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>';
    var svgCloud = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#0284c7" stroke-width="2"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>';
    var svgSnow = '<svg class="rk-clm-svg" viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><line x1="12" y1="2" x2="12" y2="22"/><line x1="2" y1="12" x2="22" y2="12"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/><line x1="4.93" y1="19.07" x2="19.07" y2="4.93"/></svg>';

    function przeliczKlimat(temp) {
        // Bezpieczna struktura instrukcji warunkowych bez operatorów podwójnego ampersandu
        if (temp >= 15) {
            // WARUNKI LETNIE / OPTYMALNE
            display.innerText = temp + "°C";
            display.style.color = "#10b981";
            if (svgFrame) { svgFrame.innerHTML = svgSun; svgFrame.style.background = "#f0fdf4"; }
            
            clmStatus.innerText = "Optymalne (Maj - Wrzesień)";
            clmStatus.className = "rk-clm-val safe-text";
            clmTime.innerText = "28 dni (Zgodnie z instrukcją ITB)";
            clmRisk.innerText = "Krytycznie niskie. Swobodna ewaporacja.";
            clmRisk.className = "rk-clm-val safe-text";
            clmEcon.innerText = "Maksymalna (Naturalne wygrzewanie)";
            clmEcon.className = "rk-clm-val safe-text";
        } else {
            if (temp >= 8) {
                // WARUNKI PRZEJŚCIOWE
                display.innerText = temp + "°C";
                display.style.color = "#f59e0b";
                if (svgFrame) { svgFrame.innerHTML = svgCloud; svgFrame.style.background = "#fffbeb"; }
                
                clmStatus.innerText = "Wymagana ostrożność (Październik)";
                clmStatus.className = "rk-clm-val";
                clmTime.innerText = "35 - 42 dni (Wydłużone schnięcie)";
                clmRisk.innerText = "Umiarkowane. Wymagana intensywna wentylacja.";
                clmRisk.className = "rk-clm-val";
                clmEcon.innerText = "Średnia (Wymuszone dogrzewanie budynku)";
                clmEcon.className = "rk-clm-val";
            } else {
                // WARUNKI ZIMOWE / KRYTYCZNE
                display.innerText = temp + "°C";
                display.style.color = "#ef4444";
                if (svgFrame) { svgFrame.innerHTML = svgSnow; svgFrame.style.background = "#fef2f2"; }
                
                clmStatus.innerText = "Ryzykowne (Listopad - Grudzień)";
                clmStatus.className = "rk-clm-val alert-text";
                clmTime.innerText = "50 - 60 dni (Zablokowana hydratacja)";
                clmRisk.innerText = "Skrajnie wysokie! Ryzyko pleśni i grzybów (1500L wody).";
                clmRisk.className = "rk-clm-val alert-text";
                clmEcon.innerText = "Skrajnie niska (Kosztowne ogrzewanie technologiczne)";
                clmEcon.className = "rk-clm-val alert-text";
            }
        }
    }

    // Inicjalizacja startowa dla 20 stopni
    przeliczKlimat(20);

    // Słuchacz suwaka
    slider.addEventListener('input', function() {
        var t = parseInt(this.value, 10);
        przeliczKlimat(t);
    });
});
</script>



<style>
:root {
    --rk-prm-dark: #0f172a;
    --rk-prm-blue: #0284c7;
    --rk-prm-blue-light: #f0f9ff;
    --rk-prm-border: #e2e8f0;
    --rk-prm-text: #334155;
    --rk-prm-muted: #64748b;
    --rk-prm-optimum: #10b981;
    --rk-prm-compromise: #f59e0b;
    --rk-prm-critical: #ef4444;
}

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

/* Sekcja Wstępna */
.rk-prm-intro-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prm-border);
}

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

.rk-prm-h3 {
    font-size: 15.5px;
    color: var(--rk-prm-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji Symulatora */
.rk-prm-app-body {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowe Menu Wyboru - Poziome Zakładki */
.rk-prm-desktop-navigation {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 35px;
}

.rk-prm-nav-tab {
    padding: 18px 15px;
    background: #ffffff;
    border: 2px solid var(--rk-prm-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: center;
    transition: all 0.25s ease;
}

.rk-prm-nav-tab:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.rk-prm-nav-tab[data-stage="optimum"].active {
    border-color: var(--rk-prm-optimum);
    background: #f0fdf4;
    box-shadow: 0 10px 15px -3px rgba(16, 185, 129, 0.15);
}

.rk-prm-nav-tab[data-stage="compromise"].active {
    border-color: var(--rk-prm-compromise);
    background: #fffbeb;
    box-shadow: 0 10px 15px -3px rgba(245, 158, 11, 0.15);
}

.rk-prm-nav-tab[data-stage="critical"].active {
    border-color: var(--rk-prm-critical);
    background: #fef2f2;
    box-shadow: 0 10px 15px -3px rgba(239, 68, 68, 0.15);
}

.rk-prm-nav-title {
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-prm-dark);
    margin-bottom: 4px;
}

.rk-prm-nav-status {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.rk-prm-nav-tab[data-stage="optimum"] .rk-prm-nav-status { color: var(--rk-prm-optimum); }
.rk-prm-nav-tab[data-stage="compromise"] .rk-prm-nav-status { color: var(--rk-prm-compromise); }
.rk-prm-nav-tab[data-stage="critical"] .rk-prm-nav-status { color: var(--rk-prm-critical); }

/* Główny Panel Prezentacji Danych (Desktop) */
.rk-prm-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 20px;
    padding: 35px;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 40px;
    align-items: center;
}

/* Wizualizacja Warstw Posadzki SVG */
.rk-prm-visual-box {
    background: #ffffff;
    border: 1px solid var(--rk-prm-border);
    border-radius: 16px;
    padding: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-prm-svg {
    width: 100%;
    max-width: 200px;
    height: auto;
}

/* Siatka Parametrów Technicznych */
.rk-prm-metrics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-prm-metric-card {
    border-bottom: 1px solid var(--rk-prm-border);
    padding-bottom: 12px;
}

.rk-prm-metric-card:nth-last-child(-n+2) {
    border-bottom: none;
    padding-bottom: 0;
}

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

.rk-prm-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-prm-dark);
    line-height: 1.4;
}

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-prm-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-prm-intro-zone, .rk-prm-app-body {
        padding: 30px 20px;
    }
    
    .rk-prm-h2 { font-size: 20px; }
    
    .rk-prm-desktop-navigation, .rk-prm-display-panel {
        display: none;
    }
    
    .rk-prm-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-prm-acc-card {
        border: 1px solid var(--rk-prm-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-prm-acc-trigger {
        padding: 18px 20px;
        font-weight: 900;
        font-size: 14px;
        color: var(--rk-prm-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-prm-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-prm-blue);
        font-weight: 500;
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active { border-color: var(--rk-prm-optimum); }
    .rk-prm-acc-card[data-stage="compromise"].active { border-color: var(--rk-prm-compromise); }
    .rk-prm-acc-card[data-stage="critical"].active { border-color: var(--rk-prm-critical); }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger {
        border-bottom: 1px solid var(--rk-prm-border);
    }
    
    .rk-prm-acc-card[data-stage="optimum"].active .rk-prm-acc-trigger { color: var(--rk-prm-optimum); background: #f0fdf4; }
    .rk-prm-acc-card[data-stage="compromise"].active .rk-prm-acc-trigger { color: var(--rk-prm-compromise); background: #fffbeb; }
    .rk-prm-acc-card[data-stage="critical"].active .rk-prm-acc-trigger { color: var(--rk-prm-critical); background: #fef2f2; }
    
    .rk-prm-acc-card.active .rk-prm-acc-trigger::after {
        content: '−';
    }
    
    .rk-prm-acc-content {
        display: none;
        padding: 20px;
        background: #ffffff;
    }
    
    .rk-prm-acc-card.active .rk-prm-acc-content {
        display: block;
    }
    
    .rk-prm-metric-card {
        border-bottom: 1px dashed var(--rk-prm-border) !important;
        padding-bottom: 12px !important;
        margin-bottom: 12px;
    }
    
    .rk-prm-metric-card:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
        margin-bottom: 0;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania",
    "description": "Porównanie technicznych i finansowych skutków decyzji inwestora o montażu ogrzewania płaszczyznowego na różnych etapach budowy domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-parametry",
    "name": "Zestawienie fizycznych i wydajnościowych parametrów jastrychów i pomp ciepła",
    "description": "Zbiór danych technicznych i kosztowych mapujący grubość EPS, opór cieplny izolacji, średnice przewodów oraz współczynniki COP w relacji do czasu podjęcia decyzji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubosc izolacji eps WT2021",
      "opor cieplny izolacji podlogi",
      "srednica rury ogrzewania podlogowego",
      "grubosc jastrychu anhydrytowego",
      "wspolczynnik COP pompy ciepla"
    ],
    "measurementTechnique": "Modelowanie symulacyjne sprawności termicznej i hydraulicznej na bazie wytycznych norm PN-EN 1264 oraz WT2021.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza projektowa: Izolacja 100-150 mm, opór cieplny powyżej lub równy 3,50, średnica rur fi 16, jastrych 50-60 mm, COP powyżej lub równy 4,5.",
        "Decyzja przed wylewkami: Izolacja 20-40 mm, opór cieplny 0,55-1,10, rury cienkie fi 10-12, jastrych renowacyjny 15-20 mm, COP niski 3,0-3,4."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-parametry",
    "name": "Kalkulator Konsekwencji Budowlanych HVAC",
    "description": "Narzędzie interaktywne analizujące zmiany grubości warstw podłogowych oraz parametry efektywności energetycznej źródeł ciepła na osi czasu budowy.",
    "applicationCategory": "InfrastructuralApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-prm-main-container" id="rkParamAppRoot">
    <div class="rk-prm-intro-zone">
        <h2 class="rk-prm-h2">Parametry techniczne systemów ogrzewania podłogowego w zależności od momentu planowania</h2>
        <h3 class="rk-prm-h3">Poniższa aplikacja inżynierska przedstawia szczegółowe, techniczne i finansowe skutki decyzji inwestora w zależności od momentu, w którym zdecydował się na wdrożenie ogrzewania podłogowego. Wybierz odpowiedni etap na desktopie lub rozwiń karty na mobile, aby przeanalizować kluczowe wskaźniki.</h3>
    </div>

    <div class="rk-prm-app-body">
        <div class="rk-prm-desktop-navigation" id="rkPrmTabs">
            <button class="rk-prm-nav-tab active" data-stage="optimum">
                <div class="rk-prm-nav-title">Faza Projektowa</div>
                <div class="rk-prm-nav-status">Optimum</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="compromise">
                <div class="rk-prm-nav-title">Po Stanie Surowym</div>
                <div class="rk-prm-nav-status">Kompromis</div>
            </button>
            <button class="rk-prm-nav-tab" data-stage="critical">
                <div class="rk-prm-nav-title">Przed Wylewkami</div>
                <div class="rk-prm-nav-status">Krytyczny</div>
            </button>
        </div>

        <div class="rk-prm-display-panel" id="rkPrmDisplay">
            <div class="rk-prm-visual-box">
                <svg class="rk-prm-svg" viewBox="0 0 120 160" fill="none" xmlns="http://www.w3.org/2000/svg" id="rkPrmSvgObject">
                    </svg>
            </div>
            
            <div class="rk-prm-metrics-grid" id="rkPrmMetricsContainer">
                </div>
        </div>

        <div class="rk-prm-mobile-accordion" id="rkPrmMobileAccordion">
            <div class="rk-prm-acc-card active" data-stage="optimum">
                <div class="rk-prm-acc-trigger">Faza projektowa (Optimum)</div>
                <div class="rk-prm-acc-content" id="rkMContentOptimum"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="compromise">
                <div class="rk-prm-acc-trigger">Planowanie po stanie surowym (Kompromis)</div>
                <div class="rk-prm-acc-content" id="rkMContentCompromise"></div>
            </div>
            <div class="rk-prm-acc-card" data-stage="critical">
                <div class="rk-prm-acc-trigger">Decyzja przed samymi wylewkami (Krytyczny)</div>
                <div class="rk-prm-acc-content" id="rkMContentCritical"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Inżynierska baza danych parametrów technicznych
    var paramDatabase = {
        'optimum': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="40" fill="#0284c7"/><rect x="10" y="71" width="100" height="80" fill="#cbd5e1"/><circle cx="30" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="60" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="90" cy="48" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="120" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 150mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "100 - 150 mm (Zgodnie z normą WT2021)" },
                { label: "Opór cieplny izolacji", val: "Większy lub równy 3,50 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 100 / 150 mm" },
                { label: "Wymagany jastrych", val: "50 mm (Anhydryt) lub 60 mm (Beton)" },
                { label: "Wydajność pompy ciepła", val: "Maksymalne COP (Większe lub równe 4,5 przy zasilaniu 30 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "0,00 PLN" }
            ]
        },
        'compromise': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="30" fill="#0284c7"/><rect x="10" y="61" width="100" height="45" fill="#cbd5e1"/><circle cx="25" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="50" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="75" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><circle cx="100" cy="43" r="6" fill="#ffffff" stroke="#0f172a" stroke-width="2"/><text x="60" y="88" fill="#0f172a" font-size="10" font-weight="800" text-anchor="middle">Izolacja 70mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "60 - 80 mm (Wymuszone brakiem wysokości)" },
                { label: "Opór cieplny izolacji", val: "1,70 - 2,20 m2 K/W" },
                { label: "Średnica rury i rozstaw", val: "fi 16 mm, rozstaw 150 / 200 mm" },
                { label: "Wymagany jastrych", val: "35 mm (Anhydryt cienkowarstwowy)" },
                { label: "Wydajność pompy ciepła", val: "Średnie COP (3,8 - 4,0 przy zasilaniu 38 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "3 500 - 7 000 PLN (Skuwanie, podcinanie drzwi)" }
            ]
        },
        'critical': {
            svg: '<rect x="10" y="10" width="100" height="15" fill="#64748b"/><rect x="10" y="28" width="100" height="18" fill="#0284c7"/><rect x="10" y="49" width="100" height="15" fill="#cbd5e1"/><circle cx="20" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="40" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="60" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="80" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><circle cx="100" cy="37" r="4" fill="#ffffff" stroke="#0f172a" stroke-width="1.5"/><text x="60" y="61" fill="#ef4444" font-size="9" font-weight="800" text-anchor="middle">Mata Slim 20mm</text>',
            metrics: [
                { label: "Grubość izolacji (EPS)", val: "20 - 40 mm (Mata systemowa slim)" },
                { label: "Opór cieplny izolacji", val: "0,55 - 1,10 m2 K/W (Skrajne straty do gruntu)" },
                { label: "Średnica rury i rozstaw", val: "fi 10 / fi 12 mm (Systemy renowacyjne)" },
                { label: "Wymagany jastrych", val: "15 - 20 mm (Masy samopoziomujące specjalne)" },
                { label: "Wydajność pompy ciepła", val: "Niskie COP (3,0 - 3,4 przy zasilaniu większym lub równym 45 stopni C)" },
                { label: "Koszt modyfikacji i poprawek", val: "15 000 - 35 000 PLN (Frezowanie jastrychu, drogie masy)" }
            ]
        }
    };

    var dMetricsContainer = document.getElementById('rkPrmMetricsContainer');
    var dSvgObject = document.getElementById('rkPrmSvgObject');
    var desktopTabs = document.querySelectorAll('#rkPrmTabs .rk-prm-nav-tab');

    // Funkcja generująca kod HTML dla zestawu parametrów
    function wygenerujKartyParametrow(stageKey) {
        var items = paramDatabase[stageKey].metrics;
        var html = '';
        for (var i = 0; i < items.length; i++) {
            html += '<div class="rk-prm-metric-card">';
            html += '<div class="rk-prm-label">' + items[i].label + '</div>';
            html += '<div class="rk-prm-value">' + items[i].val + '</div>';
            html += '</div>';
        }
        return html;
    }

    // Inicjalizacja pierwszej karty na desktopie (Faza projektowa)
    if (dMetricsContainer) { dMetricsContainer.innerHTML = wygenerujKartyParametrow('optimum'); }
    if (dSvgObject) { dSvgObject.innerHTML = paramDatabase['optimum'].svg; }

    // Wstrzyknięcie pełnych danych strukturalnych do akordeonu mobilnego (SEO + brak pustego drzewa DOM)
    var mobileStages = ['optimum', 'compromise', 'critical'];
    for (var j = 0; j < mobileStages.length; j++) {
        var mBox = document.getElementById('rkMContent' + mobileStages[j].charAt(0).toUpperCase() + mobileStages[j].slice(1));
        if (mBox) {
            mBox.innerHTML = '<div class="rk-prm-metrics-grid">' + wygenerujKartyParametrow(mobileStages[j]) + '</div>';
        }
    }

    // Obsługa przełączania zakładek na Desktopie
    desktopTabs.forEach(function(tab) {
        tab.addEventListener('click', function() {
            desktopTabs.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var chosenStage = this.getAttribute('data-stage');
            dMetricsContainer.innerHTML = wygenerujKartyParametrow(chosenStage);
            dSvgObject.innerHTML = paramDatabase[chosenStage].svg;
        });
    });

    // Całkowicie bezpieczna obsługa akordeonów mobilnych bez używania operatorów podwójnego ampersandu
    var accCards = document.querySelectorAll('#rkPrmMobileAccordion .rk-prm-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-prm-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-prj-dark: #0f172a;
    --rk-prj-blue: #0284c7;
    --rk-prj-blue-light: #f0f9ff;
    --rk-prj-border: #e2e8f0;
    --rk-prj-text: #334155;
    --rk-prj-text-light: #64748b;
    --rk-prj-accent: #f59e0b;
    --rk-prj-success: #10b981;
}

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

/* Nagłówek i Wstęp */
.rk-prj-header {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-prj-border);
}

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

.rk-prj-h3 {
    font-size: 15.5px;
    color: var(--rk-prj-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Panel Aplikacji / Symulatora */
.rk-prj-workspace {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Krok 1: Wybór posadzki (Pełna szerokość) */
.rk-prj-control-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-prj-h4 {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-prj-dark);
    margin: 0 0 20px 0;
}

.rk-posadzka-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.rk-posadzka-btn {
    padding: 20px;
    background: #ffffff;
    border: 2px solid var(--rk-prj-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
}

.rk-posadzka-btn:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.rk-posadzka-btn.active {
    border-color: var(--rk-prj-blue);
    background: var(--rk-prj-blue-light);
}

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

.rk-btn-desc {
    font-size: 12.5px;
    color: var(--rk-prj-text-light);
    line-height: 1.4;
}

/* Krok 2: Wizualizacja SVG (Przepływ procesu inżynieryjnego) */
.rk-prj-flow-visual {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-flow-svg {
    width: 100%;
    max-width: 750px;
    height: auto;
}

/* Krok 3: Wyniki obliczeń i Analiza techniczna */
.rk-prj-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.rk-result-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-prj-border);
    border-radius: 14px;
    padding: 20px;
    text-align: center;
}

.rk-metric-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-prj-text-light);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-metric-number {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-prj-blue);
    margin-bottom: 8px;
}

.rk-metric-explanation {
    font-size: 13px;
    color: var(--rk-prj-text);
    line-height: 1.5;
    text-align: left;
}

@media (max-width: 768px) {
    .rk-prj-header, .rk-prj-workspace {
        padding: 30px 20px;
    }
    .rk-prj-h2 { font-size: 20px; }
    .rk-posadzka-options { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-results-grid { grid-template-columns: 1fr; gap: 12px; }
    .rk-prj-flow-visual { padding: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-projektowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Jak wczesne planowanie wpływa na projekt ogrzewania podłogowego",
    "description": "Analiza wpływu oporów cieplnych okładzin podłogowych (płytki vs panele) na rozstaw rur, długość pętli, równoważenie instalacji oraz współczynnik SCOP pompy ciepła.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-projektowanie",
    "name": "Zależności hydrauliczne i termiczne w projektowaniu instalacji płaszczyznowych",
    "description": "Zbiór danych technicznych i inżynieryjnych opisujący relacje pomiędzy oporami cieplnymi posadzek, rozstawami przewodów a sprawnością pomp ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wplyw posadzki na rozstaw rur",
      "maksymalna dlugosc petli podlogowki",
      "hydrauliczne rownowazenie rotametrow",
      "parametry zasilania pompy ciepla",
      "obliczenia ozc pn-en 12831"
    ],
    "measurementTechnique": "Matematyczna symulacja przepływów hydraulicznych i strat ciśnienia na podstawie wytycznych normy PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płytki ceramiczne: Opór cieplny 0,02 m2 K/W, projektowa temperatura zasilania 30-32 stopnie Celsjusza.",
        "Panele laminowane: Opór cieplny od 0,07 do 0,12 m2 K/W, rozstaw rur zagęszczony do 100 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-projektowanie",
    "name": "Symulator Zależności Hydrauliczno-Termicznych Podłogówki",
    "description": "Narzędzie inżynieryjne demonstrujące w czasie rzeczywistym zmianę rozstawu rur, parametrów zasilania pętli oraz sprawności źródła ciepła w zależności od wybranej okładziny posadzkowej.",
    "applicationCategory": "DesignApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rkProjectAppBlock">
    <div class="rk-prj-header">
        <h2 class="rk-prj-h2">Wpływ wczesnego planowania na projekt ogrzewania podłogowego</h2>
        <h3 class="rk-prj-h3">Planowanie instalacji na etapie koncepcyjnym bezpośrednio determinuje strukturę techniczną, jaką przyjmie profesjonalny projekt ogrzewania podłogowego. Prawidłowo sporządzony dokument inżynierski nie opiera się na uniwersalnych wskaźnikach typu „100 W/m²” czy „rozstaw co 15 cm w całym domu”. Projekt musi być ściśle zsynchronizowany z Obliczeniowym Zapotrzebowaniem na Ciepło (OZC) budynku, wyznaczonym wg normy PN-EN 12831.</h3>
    </div>

    <div class="rk-prj-workspace">
        <div class="rk-prj-control-card">
            <div class="rk-prj-h4">1. Wybierz planowaną okładzinę podłogową w sypialniach i salonie:</div>
            <div class="rk-posadzka-options">
                <button class="rk-posadzka-btn active" data-type="tiles">
                    <div class="rk-btn-title">Płytki ceramiczne / Gres</div>
                    <div class="rk-btn-desc">Niski opór cieplny (ok. 0,02 m2 K/W). Najwyższa transmisja energii, idealne pod pompę ciepła.</div>
                </button>
                <button class="rk-posadzka-btn" data-type="panels">
                    <div class="rk-btn-title">Panele laminowane / Deska barlinecka</div>
                    <div class="rk-btn-desc">Wysoki opór cieplny (od 0,07 do 0,12 m2 K/W). Wymaga zagęszczenia pętli i korekty hydrauliki.</div>
                </button>
            </div>
        </div>

        <div class="rk-prj-flow-visual">
            <svg class="rk-flow-svg" viewBox="0 0 700 80" fill="none" xmlns="http://www.w3.org/2000/svg">
                <rect x="5" y="15" width="100" height="50" rx="8" fill="#0f172a"/>
                <text x="55" y="45" fill="#ffffff" font-size="12" font-weight="800" text-anchor="middle">Wynik OZC</text>
                
                <path d="M115 40 H135" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="135,40 128,35 128,45" fill="#0284c7"/>
                
                <rect x="145" y="15" width="130" height="50" rx="8" fill="#0284c7" id="svgStepPosadzka"/>
                <text x="210" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle" id="svgTextPosadzka">Rozstaw: 150 mm</text>
                
                <path d="M285 40 H305" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="305,40 298,35 298,45" fill="#0284c7"/>
                
                <rect x="315" y="15" width="120" height="50" rx="8" fill="#0284c7"/>
                <text x="375" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Długość pętli max 100m</text>
                
                <path d="M445 40 H465" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="465,40 458,35 458,45" fill="#0284c7"/>
                
                <rect x="475" y="15" width="100" height="50" rx="8" fill="#0284c7"/>
                <text x="525" y="45" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">Obliczenie V i dP</text>
                
                <path d="M585 40 H605" stroke="#0284c7" stroke-width="3" stroke-linecap="round"/>
                <polygon points="605,40 598,35 598,45" fill="#0284c7"/>
                
                <rect x="615" y="15" width="80" height="50" rx="8" fill="#10b981" id="svgStepPump"/>
                <text x="655" y="45" fill="#ffffff" font-size="11" font-weight="800" text-anchor="middle" id="svgTextPump">COP max</text>
            </svg>
        </div>

        <div class="rk-prj-results-grid" id="rkPrjResultsGrid">
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Projektowany rozstaw rur</div>
                <div class="rk-metric-number" id="valRozstaw">150 mm</div>
                <div class="rk-metric-explanation" id="descRozstaw">Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w salonie jest w pełni wystarczający do pokrycia strat ciepła z OZC budynków.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Zrównoważenie hydrauliczne</div>
                <div class="rk-metric-number" id="valHydr">Stabilne</div>
                <div class="rk-metric-explanation" id="descHydr">Precyzyjne wyznaczenie długości pętli (maksymalnie 100 m dla średnicy fi 16) eliminuje strefy niedogrzane. Przepływy są równomierne na rotometrach.</div>
            </div>
            <div class="rk-result-metric-card">
                <div class="rk-metric-label">Wpływ na pompę ciepła</div>
                <div class="rk-metric-number" id="valPompa">Zasilanie 30-35°C</div>
                <div class="rk-metric-explanation" id="descPompa">Niska temperatura zasilania pozwala pompie ciepła pracować w najwyższym punkcie sprawności (SCOP), minimalizując roczne koszty energii.</div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var optionButtons = document.querySelectorAll('.rk-posadzka-btn');
    
    var valRozstaw = document.getElementById('valRozstaw');
    var descRozstaw = document.getElementById('descRozstaw');
    var valHydr = document.getElementById('valHydr');
    var descHydr = document.getElementById('descHydr');
    var valPompa = document.getElementById('valPompa');
    var descPompa = document.getElementById('descPompa');
    
    var svgTextPosadzka = document.getElementById('svgTextPosadzka');
    var svgStepPosadzka = document.getElementById('svgStepPosadzka');
    var svgStepPump = document.getElementById('svgStepPump');
    var svgTextPump = document.getElementById('svgTextPump');

    optionButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            optionButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var currentType = this.getAttribute('data-type');
            
            if (currentType === 'tiles') {
                // Konfiguracja dla Płytek Ceramicznych
                valRozstaw.innerText = "150 mm";
                valRozstaw.style.color = "#0284c7";
                descRozstaw.innerHTML = "Dla ceramiki o niskim oporze cieplnym rozstaw rur 150 mm w zupełności wystarczy do pokrycia strat ciepła. Pozwala to na zachowanie standardowych długości pętli bez dławienia przepływów.";
                
                valHydr.innerText = "Stabilne";
                valHydr.style.color = "#0284c7";
                descHydr.innerHTML = "Projekt określa precyzyjne nastawy na rotometrach rozdzielacza w litrach na minutę. Bez projektu ułożenie pętli grozi przegrzaniem salonu i niedogrzaniem łazienki.";
                
                valPompa.innerText = "Zasilanie 30-35°C";
                valPompa.style.color = "#10b981";
                descPompa.innerHTML = "Zoptymalizowana podłogówka projektowana pod niskie parametry pozwala pompie ciepła pracować w najwyższym punkcie sprawności SCOP. Brak strat energii.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Rozstaw: 150 mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#0284c7'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#10b981'); }
                if (svgTextPump) { svgTextPump.innerText = "COP max"; }
                
            } else {
                // Konfiguracja dla Paneli Laminowanych
                valRozstaw.innerText = "100 mm";
                valRozstaw.style.color = "#f59e0b";
                descRozstaw.innerHTML = "Opór cieplny paneli z podkładem wynosi od 0,07 do 0,12 m2 K/W. Aby skompensować ten opór, projektant zagęszcza rozstaw rur w sypialniach do 100 mm, zachowując niską temperaturę wody.";
                
                valHydr.innerText = "Korekta oporów";
                valHydr.style.color = "#f59e0b";
                descHydr.innerHTML = "Zagęszczenie rur zwiększa długość pętli. Jeśli obwód przekroczy 100 m, opór hydrauliczny zablokuje przepływ. Projektant dzieli pokój na dwie pętle, aby pompa dała radę tłoczyć czynnik.";
                
                valPompa.innerText = "Spadek COP o 3%";
                valPompa.style.color = "#ef4444";
                descPompa.innerHTML = "Każde podniesienie temperatury zasilania o 1 stopień z powodu błędów w rozstawie i braku obliczeń OZC skutkuje wzrostem zużycia prądu przez pompę o około 2-3 procent w skali roku.";
                
                if (svgTextPosadzka) { svgTextPosadzka.innerText = "Zagęszczenie: 100mm"; }
                if (svgStepPosadzka) { svgStepPosadzka.setAttribute('fill', '#f59e0b'); }
                if (svgStepPump) { svgStepPump.setAttribute('fill', '#ef4444'); }
                if (svgTextPump) { svgTextPump.innerText = "COP spada"; }
            }
        });
    });
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-blue-light: #f0f9ff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-text-muted: #64748b;
    --rk-err-red-bg: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-red-text: #991b1b;
}

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

/* Sekcja Wstępna */
.rk-err-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-err-border);
}

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

.rk-err-h3 {
    font-size: 15.5px;
    color: var(--rk-err-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Korpus Aplikacji */
.rk-err-body-wrapper {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Desktopowy Selektor - Układ poziomy na pełną szerokość */
.rk-err-desktop-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-err-tab-btn {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-err-dark);
    line-height: 1.4;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.rk-err-tab-btn:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}

.rk-err-tab-btn.active {
    background: var(--rk-err-dark);
    border-color: var(--rk-err-dark);
    color: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.2);
}

.rk-err-tab-btn .rk-tab-badge {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-err-blue);
    font-weight: 700;
}

.rk-err-tab-btn.active .rk-tab-badge {
    color: #38bdf8;
}

/* Liniowy Panel Informacyjny (Desktop) */
.rk-err-fullwidth-display {
    background: #ffffff;
    border: 1px solid var(--rk-err-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
}

.rk-err-display-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-graphic-frame {
    width: 70px;
    height: 70px;
    background: var(--rk-err-red-bg);
    border: 1px solid var(--rk-err-red-border);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-err-red-text);
    flex-shrink: 0;
}

.rk-err-graphic-frame svg {
    width: 36px;
    height: 36px;
}

.rk-err-display-titles {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

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

.rk-err-p-consequence {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: #ef4444;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

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

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

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-err-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-err-intro-bar, .rk-err-body-wrapper {
        padding: 30px 20px;
    }
    
    .rk-err-h2 { font-size: 20px; }
    
    .rk-err-desktop-tabs, .rk-err-fullwidth-display { 
        display: none; 
    }
    
    .rk-err-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-err-acc-card {
        border: 1px solid var(--rk-err-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-err-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-err-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-err-acc-trigger::after {
        content: '+';
        font-size: 20px;
        color: #ef4444;
        font-weight: 400;
    }
    
    .rk-err-acc-card.active {
        border-color: #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger {
        background: var(--rk-err-red-bg);
        color: var(--rk-err-red-text);
        border-bottom: 1px solid #fca5a5;
    }
    
    .rk-err-acc-card.active .rk-err-acc-trigger::after {
        content: '−';
        color: var(--rk-err-red-text);
    }
    
    .rk-err-acc-content {
        display: none;
        padding: 22px 20px;
        background: #ffffff;
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-err-text);
    }
    
    .rk-err-acc-card.active .rk-err-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego",
    "description": "Analiza krytycznych błędów montażowych podłogówki: brak dylatacji, za długie pętle rur, klawiszowanie styropianu oraz pozorne próby ciśnieniowe.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-bledy",
    "name": "Katalog Wad Wykonawczych i Awarii Hydraulicznych Płaszczyzn",
    "description": "Zbiór danych technicznych i normatywnych definiujących mechaniczne skutki nieprawidłowego montażu rur grzewczych i jastrychów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak dylatacji strefowych podłogówki",
      "maksymalna długość pętli rury fi 16",
      "klawiszowanie styropianu przyczyny",
      "norma PN-EN 1264-4 dylatacje",
      "próba ciśnieniowa podłogówki wodą"
    ],
    "measurementTechnique": "Analiza diagnostyczna i techniczno-budowlana procesów destrukcji monolitycznych płyt grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wada 1: Pominięcie szczelin dylatacyjnych przy polach powyżej 40 m2 - pękanie kafli.",
        "Wada 2: Przekroczenie długości obwodu rury powyżej 100 metrów - wysokie opory i zimna posadzka.",
        "Wada 3: Układanie płyt izolacyjnych na nierównym podłożu - pionowa praca wylewki.",
        "Wada 4: Test powietrzem 2 bary zamiast wody 6 bar - ukryte mikropęknięcia rur."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-bledy",
    "name": "Inspektor Wad i Patologii Wykonawczych HVAC",
    "description": "Aplikacja internetowa wizualizująca i opisująca fizyczne konsekwencje ignorowania procedur montażowych instalacji ogrzewania podłogowego.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-main-container" id="rkErrorsAppRoot">
    <div class="rk-err-intro-bar">
        <h2 class="rk-err-h2">Najczęstsze błędy wykonawcze wynikające z opóźnienia planowania ogrzewania podłogowego</h2>
        <h3 class="rk-err-h3">Opóźnienie procesu projektowego i decyzyjnego generuje lawinę błędów, które są niemożliwe do skorygowania po zalaniu betonem. Poniższa interaktywna lista przedstawia najczęstsze patologie wykonawcze spotykane na budowach, gdzie podłogówkę planowano „w locie”.</h3>
    </div>

    <div class="rk-err-body-wrapper">
        <div class="rk-err-desktop-tabs" id="rkErrTabsContainer">
            <button class="rk-err-tab-btn active" data-error="1">
                <span class="rk-tab-badge">Patologia 01</span>
                <span>Brak dylatacji</span>
            </button>
            <button class="rk-err-tab-btn" data-error="2">
                <span class="rk-tab-badge">Patologia 02</span>
                <span>Za długie pętle</span>
            </button>
            <button class="rk-err-tab-btn" data-error="3">
                <span class="rk-tab-badge">Patologia 03</span>
                <span>Złe podłoże</span>
            </button>
            <button class="rk-err-tab-btn" data-error="4">
                <span class="rk-tab-badge">Patologia 04</span>
                <span>Pozorny test</span>
            </button>
        </div>

        <div class="rk-err-fullwidth-display" id="rkErrMainDisplay">
            <div class="rk-err-display-header">
                <div class="rk-err-graphic-frame" id="rkErrDisplayIcon">
                    </div>
                <div class="rk-err-display-titles">
                    <h4 class="rk-err-h4" id="rkErrDisplayTitle">Brak dylatacji strefowych i brzegowych</h4>
                    <p class="rk-err-p-consequence">Skutek: Pękanie płyty i zrywanie płytek</p>
                </div>
            </div>
            <p class="rk-err-display-content-text" id="rkErrDisplayBody">
                </p>
        </div>

        <div class="rk-err-mobile-accordion" id="rkErrMobileAccordion">
            <div class="rk-err-acc-card active" data-error="1">
                <div class="rk-err-acc-trigger">1. Brak dylatacji strefowych i brzegowych</div>
                <div class="rk-err-acc-content" id="rkMError1"></div>
            </div>
            <div class="rk-err-acc-card" data-error="2">
                <div class="rk-err-acc-trigger">2. Przekraczanie maksymalnych długości pętli</div>
                <div class="rk-err-acc-content" id="rkMError2"></div>
            </div>
            <div class="rk-err-acc-card" data-error="3">
                <div class="rk-err-acc-trigger">3. Mocowanie rur do nieprzygotowanego podłoża</div>
                <div class="rk-err-acc-content" id="rkMError3"></div>
            </div>
            <div class="rk-err-acc-card" data-error="4">
                <div class="rk-err-acc-trigger">4. Niezrobienie lub pozorna próba ciśnieniowa</div>
                <div class="rk-err-acc-content" id="rkMError4"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych o błędach montażowych
    var errorsDatabase = {
        1: {
            title: "Brak dylatacji strefowych i brzegowych",
            consequence: "Skutek: Pękanie płyty i zrywanie płytek",
            body: "Zgodnie z restrykcyjną normą <strong>PN-EN 1264-4</strong>, każda płyta grzewcza jastrychu o powierzchni powyżej <strong>40 metrów kwadratowych</strong> lub o długości boku przekraczającej <strong>8 metrów</strong> musi zostać bezwzględnie oddzielona szczeliną dylatacyjną. Podobnie dylatacja konstrukcyjna musi pojawić się w każdym progu drzwiowym. Całkowity brak dylatacji lub jej nieprawidłowe wykonanie skutkuje niekontrolowanym pękaniem jastrychu oraz zrywaniem okładzin ceramicznych i gresów pod wpływem ciągłej rozszerzalności cieplnej materiału.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M12 11l-2 2 4 2-2 2v5M3 12h18"/></svg>'
        },
        2: {
            title: "Przekraczanie maksymalnych długości pętli",
            consequence: "Skutek: Ogromny opór hydrauliczny i zimna posadzka",
            body: "Układanie pętli grzewczych o długości rzędu <strong>130-150 metrów</strong> z rury o średnicy szesnastu milimetrów (fi 16) w celu pozornego zaoszczędzenia na sekcjach rozdzielacza to kardynalny błąd. Skutkuje to wygenerowaniem gigantycznego oporu hydraulicznego w instalacji. Pompa obiegowa wchodzi wówczas w zakres maksymalnej, nieekonomicznej pracy, drastycznie rośnie zużycie energii elektrycznej, a końcowe metry obwodu grzewczego w pomieszczeniu pozostają całkowicie zimne.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4v16h16V4H4zm4 4h8v8H8V8z"/></svg>'
        },
        3: {
            title: "Mocowanie rur do nieprzygotowanego podłoża",
            consequence: "Skutek: Klawiszowanie styropianu i pękanie wylewki",
            body: "Układanie płyt styropianowych na nierównym, nieuprzątniętym chudym betonie (np. z zaschniętymi grudami zaprawy po murowaniu ścian) powoduje tak zwane <strong>klawiszowanie styropianu</strong>. Izolacja termiczna ugina się i pracuje pionowo pod naciskiem. Po wylaniu betonu i uruchomieniu ogrzewania podłogowego, cała płyta grzewcza zaczyna drgać w pionie, co bezpośrednio prowadzi do jej pękania w miejscach, gdzie pod izolacją znajdowały się puste przestrzenie i bąble powietrza.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18M3 16h6M9 13h6M15 10h6"/></svg>'
        },
        4: {
            title: "Niezrobienie lub pozorna próba ciśnieniowa",
            consequence: "Skutek: Ukryte wycieki pod betonem i zalanie budynku",
            body: "Wykonanie testu szczelności zwykłym powietrzem z kompresora o niskim ciśnieniu (np. 2 bary) zamiast wymaganej normowo <strong>próby wodnej pod ciśnieniem 0,6 MPa (6 bar) przez minimum 24 godziny</strong> przed i w trakcie prac betoniarskich to ogromne ryzyko. Jastrych anhydrytowy lub cementowy musi być wylewany w momencie, gdy rury są pod pełnym ciśnieniem roboczym, dzięki czemu ich średnica jest naturalnie napięta i odporna na ściskanie podczas wiązania mieszanki.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="12" x2="16" y2="8"/><path d="M12 16v.01"/></svg>'
        }
    };

    var dTitle = document.getElementById('rkErrDisplayTitle');
    var dConsequence = document.querySelector('.rk-err-p-consequence');
    var dBody = document.getElementById('rkErrDisplayBody');
    var dIcon = document.getElementById('rkErrDisplayIcon');
    var tabButtons = document.querySelectorAll('#rkErrTabsContainer .rk-err-tab-btn');

    // Funkcja aktualizacji liniowego panelu na desktopie
    function aktualizujPanelDesktop(id) {
        if (dTitle) { dTitle.innerText = errorsDatabase[id].title; }
        if (dConsequence) { dConsequence.innerText = errorsDatabase[id].consequence; }
        if (dBody) { dBody.innerHTML = errorsDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = errorsDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji dla desktopu
    aktualizujPanelDesktop(1);

    // Dynamiczne wstrzyknięcie tekstów do wersji mobilnej (gwarancja indeksacji SEO)
    for (var i = 1; i <= 4; i++) {
        var mContentContainer = document.getElementById('rkMError' + i);
        if (mContentContainer) {
            var contentHtml = '<p style="margin: 0 0 8px 0; font-weight:700; color:#ef4444; font-size:12px; text-transform:uppercase;">' + errorsDatabase[i].consequence + '</p>';
            contentHtml += '<p style="margin:0; line-height:1.6;">' + errorsDatabase[i].body + '</p>';
            mContentContainer.innerHTML = contentHtml;
        }
    }

    // Obsługa kliknięć zakładek na Desktopie
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-error');
            aktualizujPanelDesktop(id);
        });
    });

    // Bezpieczna obsługa akordeonu na Mobilu (całkowity brak operatorów typu ampersand)
    var accCards = document.querySelectorAll('#rkErrMobileAccordion .rk-err-acc-card');
    accCards.forEach(function(card) {
        var trigger = card.querySelector('.rk-err-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            accCards.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Sekcja Wstępna */
.rk-cas-intro-bar {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-cas-border);
    display: block;
}

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

.rk-cas-h3 {
    font-size: 15.5px;
    color: var(--rk-cas-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Korpus Interaktywnego Studium */
.rk-cas-workspace {
    padding: 40px 50px;
    background: var(--rk-cas-light);
    display: block;
}

/* Metryka Projektu - Tabela Inżynierska */
.rk-cas-spec-card {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 16px;
    padding: 25px;
    margin-bottom: 35px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.01);
    display: block;
}

.rk-cas-h4 {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--rk-cas-dark);
    margin: 0 0 20px 0;
    display: block;
}

.rk-cas-spec-table {
    display: table;
    width: 100%;
}

.rk-cas-spec-row {
    display: table-row;
}

.rk-cas-spec-cell {
    display: table-cell;
    padding: 10px 15px;
    font-size: 14px;
    border-bottom: 1px solid var(--rk-cas-border);
}

.rk-cas-spec-row:last-child .rk-cas-spec-cell {
    border-bottom: none;
}

.rk-cas-cell-label {
    font-weight: 700;
    color: var(--rk-cas-muted);
    width: 35%;
}

.rk-cas-cell-value {
    color: var(--rk-cas-dark);
    font-weight: 800;
}

/* Selektor Etapów Harmonogramu (Desktop) */
.rk-cas-tabs-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-cas-tab-btn {
    padding: 16px;
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-cas-dark);
    line-height: 1.4;
    transition: none; /* Całkowity brak animacji */
}

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

/* Panel Wyświetlania Fazy Harmonogramu */
.rk-cas-display-panel {
    background: #ffffff;
    border: 1px solid var(--rk-cas-border);
    border-radius: 20px;
    padding: 35px;
    display: block;
}

.rk-cas-panel-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cas-dark);
    margin: 0 0 15px 0;
    display: block;
}

.rk-cas-panel-text {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rk-cas-text);
    margin: 0;
    display: block;
}

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

/* Mobilny Akordeon Pionowy (Ukryty na Desktopie) */
.rk-cas-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-cas-intro-bar, .rk-cas-workspace {
        padding: 30px 20px;
    }
    
    .rk-cas-h2 { font-size: 20px; }
    .rk-cas-spec-cell { display: block; width: 100% !important; padding: 6px 0; }
    .rk-cas-spec-cell:first-child { border-bottom: none; }
    .rk-cas-spec-row { display: block; border-bottom: 1px solid var(--rk-cas-border); padding: 6px 0; }
    .rk-cas-spec-row:last-child { border-bottom: none; }
    
    .rk-cas-tabs-row, .rk-cas-display-panel {
        display: none;
    }
    
    .rk-cas-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }
    
    .rk-cas-acc-item {
        border: 1px solid var(--rk-cas-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
    }
    
    .rk-cas-acc-trigger {
        padding: 18px 20px;
        font-weight: 800;
        font-size: 14px;
        color: var(--rk-cas-dark);
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        background: #ffffff;
    }
    
    .rk-cas-acc-trigger::after {
        content: '+';
        font-size: 18px;
        color: var(--rk-cas-blue);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger {
        background: var(--rk-cas-blue);
        color: #ffffff;
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-trigger::after {
        content: '−';
        color: #ffffff;
    }
    
    .rk-cas-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-cas-light);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-cas-text);
    }
    
    .rk-cas-acc-item.active .rk-cas-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-case-study",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m2 – Inżynier Robert Kucharski",
    "description": "Praktyczne studium przypadku inwestycji Anny i Tomasza. Zobacz, jak Robert Kucharski zaplanował etapy montażu ogrzewania płaszczyznowego dla domu 180 m2 przed wylaniem fundamentów.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-case-study",
    "name": "Model symulacji chronologii prac instalacyjnych dla budynków parterowych",
    "description": "Zbiór zmiennych inżynieryjnych i kroków wykonawczych przypisanych do budowy domu o kubaturze i powierzchni 180 m2, analizujący krytyczne punkty styku instalacji HVAC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "harmonogram ogrzewania podłogowego dom parterowy",
      "ogrzewanie podłogowe dom 180m2 koszt",
      "audyt ozc przed fundamentami",
      "konflikt poziomów wylewki case study",
      "inżynierskie planowanie hvac"
    ],
    "measurementTechnique": "Modelowanie sekwencyjne i chronologiczna weryfikacja procesów budowlanych w oparciu o normę PN-EN 1264-4.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza przedfundamentowa: Wykonanie obliczeń OZC i określenie grubości styropianu w celu rezerwacji wysokości.",
        "Faza stanu zamkniętego: Montaż rozdzielaczy i pętli po wykonaniu tynków, przed wylewkami anhydrytowymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-case-study",
    "name": "Nawigator Chronologii Wykonawczej Case Study",
    "description": "Interaktywny asystent etapów budowy domu Tomasza i Anny, służący do weryfikacji punktów kontrolnych przed zalaniem pętli podłogówki.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-main-container" id="rkCaseStudyApp">
    <div class="rk-cas-intro-bar">
        <h2 class="rk-cas-h2">Studium przypadku: Harmonogram podłogówki dla domu parterowego 180 m²</h2>
        <h3 class="rk-cas-h3">Zdaniem Roberta Kucharskiego, najlepszą metodą na zrozumienie fizyki budowli jest analiza żywego organizmu inwestycji. Poznaj historię Tomasza (34 lata) i Anny (32 lata), którzy zgłosili się do mojego biura inżynierskiego po zakupie działki i uzyskaniu warunków zabudowy. Mając gotowy projekt architektoniczny domu parterowego o powierzchni 180 m², stanęli przed wyzwaniem: jak bezbłędnie zgrać montaż ogrzewania podłogowego z nadchodzącymi pracami fundamentowymi?</h3>
    </div>

    <div class="rk-cas-workspace">
        <div class="rk-cas-spec-card">
            <div class="rk-cas-h4">Metryka techniczna analizowanego budynku:</div>
            <div class="rk-cas-spec-table">
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Inwestorzy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Tomasz (34 l.) i Anna (32 l.)</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Typ budynku / Powierzchnia:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Parterowy, bez podpiwniczenia / 180 metrów kwadratowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Etap początkowy:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Po adaptacji, przed rozpoczęciem prac ziemnych i fundamentowych</div>
                </div>
                <div class="rk-cas-spec-row">
                    <div class="rk-cas-spec-cell rk-cas-cell-label">Źródło ciepła:</div>
                    <div class="rk-cas-spec-cell rk-cas-cell-value">Inwerterowa pompa ciepła powietrze-woda</div>
                </div>
            </div>
        </div>

        <div class="rk-cas-tabs-row" id="rkCasTabs">
            <button class="rk-cas-tab-btn active" data-phase="1">Faza 1: Przed Fundamentem</button>
            <button class="rk-cas-tab-btn" data-phase="2">Faza 2: Stan Zamknięty</button>
            <button class="rk-cas-tab-btn" data-phase="3">Faza 3: Próba i Jastrych</button>
        </div>

        <div class="rk-cas-display-panel" id="rkCasDisplay">
            <h4 class="rk-cas-panel-title" id="rkCasTitle">Faza 1: Blokada wysokości i obliczenia OZC</h4>
            <p class="rk-cas-panel-text" id="rkCasBody">Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych.</p>
        </div>

        <div class="rk-cas-mobile-accordion" id="rkCaseMobileAccordion">
            <div class="rk-cas-acc-item active" data-phase="1">
                <div class="rk-cas-acc-trigger">Faza 1: Przed Fundamentem (Projektowanie)</div>
                <div class="rk-cas-acc-content" id="rkMCase1"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="2">
                <div class="rk-cas-acc-trigger">Faza 2: Stan Zamknięty i Tynki</div>
                <div class="rk-cas-acc-content" id="rkMCase2"></div>
            </div>
            <div class="rk-cas-acc-item" data-phase="3">
                <div class="rk-cas-acc-trigger">Faza 3: Próba wodna i zalewanie jastrychu</div>
                <div class="rk-cas-acc-content" id="rkMCase3"></div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych faz harmonogramu dla Case Study
    var caseDatabase = {
        1: {
            title: "Faza 1: Blokada wysokości i obliczenia OZC",
            text: "Zgłoszenie się Tomasza i Anny na tym etapie uratowało ich przed konfliktem poziomów. W domu parterowym o powierzchni 180 m2 straty ciepła do gruntu są kluczowym elementem bilansu energetycznego. Na bazie projektu zleciłem <strong>wykonanie rzetelnych obliczeń OZC (zgodnie z PN-EN 12831)</strong>. Wynik wykazał, że budynek wymaga rezerwy wysokościowej wynoszącej dokładnie 20 cm na warstwy podłogowe (120 mm styropianu EPS 100, folia rastrowa, rura fi 16 mm i 60 mm jastrychu cementowego). Kierownik budowy otrzymał wytyczne przed ustawieniem szalunków ław fundamentowych."
        },
        2: {
            title: "Faza 2: Stan Zamknięty, Piony i Tynkowanie",
            text: "Po wybudowaniu ścian i dachu, wstawieniu okien oraz zamknięciu drzwi, dom parterowy osiągnął pożądany stan surowy zamknięty. W maju 2026 roku ekipa hydrauliczna rozłożyła piony kanalizacyjne oraz rury wody użytkowej na chudym betonie. Następnie tynkarze otynkowali ściany wewnętrzne. Dzięki zachowaniu tej kolejności, <strong>pętle ogrzewania podłogowego ułożone na czystym styropianie</strong> dwa tygodnie później były całkowicie wolne od ryzyka zabrudzenia chemicznego czy zniszczenia przez ciężkie rusztowania."
        },
        3: {
            title: "Faza 3: Próba wodna 6 bar i jastrych anhydrytowy",
            text: "W czerwcu 2026 roku ułożono 1800 metrów bieżących rury wielowarstwowej fi 16 mm w rozstawie zoptymalizowanym (100 mm w łazienkach, 150 mm w salonie i sypialniach). Przed wejściem ekipy posadzkarskiej, przeprowadziłem <strong>24-godzinną próba szczelności wodą pod ciśnieniem 0,6 MPa (6 bar)</strong>. Cała posadzka została zalana płynnym jastrychem anhydrytowym o wysokiej przewodności cieplnej, gdy instalacja znajdowała się pod pełnym ciśnieniem. Po 21 dniach jastrych był gotowy do procedury wygrzewania, gwarantując pompie ciepła maksymalny współczynnik COP."
        }
    };

    var dTitle = document.getElementById('rkCasTitle');
    var dBody = document.getElementById('rkCasBody');
    var tabButtons = document.querySelectorAll('#rkCasTabs .rk-cas-tab-btn');

    // Funkcja aktualizacji panelu desktopowego
    function aktualizujPanelCase(id) {
        if (dTitle) { dTitle.innerText = caseDatabase[id].title; }
        if (dBody) { dBody.innerHTML = caseDatabase[id].text; }
    }

    // Inicjalizacja startowa dla kroku 1
    aktualizujPanelCase(1);

    // Napełnienie wersji mobilnej (SEO stabilność i indeksacja)
    for (var i = 1; i <= 3; i++) {
        var mBox = document.getElementById('rkMCase' + i);
        if (mBox) {
            var html = '<p style="margin:0; line-height:1.6; font-size:14px; color:#334155;">' + caseDatabase[i].text + '</p>';
            mBox.innerHTML = html;
        }
    }

    // Obsługa zakładek na Desktopie (Brak animacji, natychmiastowy przeskok)
    tabButtons.forEach(function(btn) {
        btn.addEventListener('click', function() {
            tabButtons.forEach(function(b) { b.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-phase');
            aktualizujPanelCase(id);
        });
    });

    // Obsługa akordeonu pionowego na Mobilu (całkowity brak zakazanych operatorów logicznych)
    var accItems = document.querySelectorAll('#rkCaseMobileAccordion .rk-cas-acc-item');
    accItems.forEach(function(card) {
        var trigger = card.querySelector('.rk-cas-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylActive = parent.classList.contains('active');
            
            accItems.forEach(function(c) { c.classList.remove('active'); });
            
            if (!czyBylActive) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Sekcja Profilowa i Cytat Manifestu */
.rk-aut-profile-section {
    padding: 45px 50px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-aut-border);
    display: block;
}

/* Klasyczny układ tabelaryczny dla zachowania pełnej stabilności i braku błędów parsera */
.rk-aut-table-layout {
    display: table;
    width: 100%;
}

.rk-aut-table-row {
    display: table-row;
}

.rk-aut-photo-cell {
    display: table-cell;
    width: 160px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-aut-expert-avatar {
    width: 160px;
    height: 160px;
    border-radius: 16px;
    object-fit: cover;
    border: 1px solid var(--rk-aut-border);
    display: block;
}

.rk-aut-content-cell {
    display: table-cell;
    vertical-align: top;
}

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

.rk-aut-h3 {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-aut-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 20px 0;
}

.rk-aut-manifesto-quote {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--rk-aut-dark);
    margin: 0 0 20px 0;
    border-left: 4px solid var(--rk-aut-blue);
    padding-left: 20px;
}

/* Linki Społecznościowe E-E-A-T */
.rk-aut-social-channels {
    display: block;
    margin-top: 15px;
}

.rk-aut-link {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-aut-text);
    text-decoration: none;
    margin-right: 25px;
    border-bottom: 1px solid var(--rk-aut-border);
    padding-bottom: 2px;
}

.rk-aut-link:hover {
    color: var(--rk-aut-blue);
    border-color: var(--rk-aut-blue);
}

.rk-aut-link svg {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    fill: currentColor;
}

/* Obszar Interaktywnych Kryteriów Inżynieryjnych (Liniowy) */
.rk-aut-workspace {
    padding: 40px 50px;
    background: var(--rk-aut-bg-card);
    display: block;
}

.rk-aut-selector-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 30px;
}

.rk-aut-tab-button {
    padding: 16px 12px;
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 12px;
    cursor: pointer;
    text-align: center;
    font-size: 13.5px;
    font-weight: 800;
    color: var(--rk-aut-dark);
    line-height: 1.4;
}

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

.rk-aut-tab-button.active {
    background: var(--rk-aut-dark);
    border-color: var(--rk-aut-dark);
    color: #ffffff;
}

/* Panel Wyświetlania Treści Kryterium */
.rk-aut-info-panel {
    background: #ffffff;
    border: 1px solid var(--rk-aut-border);
    border-radius: 16px;
    padding: 30px 35px;
}

.rk-aut-panel-h4 {
    margin: 0 0 10px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-aut-dark);
}

.rk-aut-panel-text {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--rk-aut-text);
    margin: 0;
}

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

/* Adaptacja Mobilna */
@media (max-width: 768px) {
    .rk-aut-profile-section, .rk-aut-workspace {
        padding: 30px 20px;
    }
    
    .rk-aut-table-layout, .rk-aut-table-row, .rk-aut-photo-cell, .rk-aut-content-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-aut-photo-cell {
        margin-bottom: 20px;
        text-align: center;
    }
    
    .rk-aut-expert-avatar {
        margin: 0 auto;
    }
    
    .rk-aut-h2 { font-size: 20px; text-align: center; }
    .rk-aut-h3 { text-align: center; }
    
    .rk-aut-social-channels {
        text-align: center;
    }
    .rk-aut-link { margin: 0 10px 10px 10px; }
    
    /* Układ Pionowy dla Przycisków na Mobilu (Akordeon) */
    .rk-aut-selector-bar {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    
    .rk-aut-info-panel {
        padding: 20px;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-autorytet",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Ekspert Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu",
    "description": "Autorski manifest i kryteria inżynieryjne projektanta HVAC Roberta Kucharskiego dotyczące planowania struktur grzewczych w fazie koncepcyjnej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-autorytet",
    "name": "Wytyczne projektowe i kryteria kwalifikacji hydraulicznej instalacji",
    "description": "Zbiór eksperckich reguł i założeń technicznych stosowanych przez Roberta Kucharskiego przy wdrożeniach ogrzewania płaszczyznowego niskich parametrów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "Robert Kucharski ekspert hvac",
      "kiedy najlepiej planowac montaz ogrzewania podlogowego",
      "projekt ogrzewania podlogowego rzetelny",
      "obliczenia zapotrzebowania cieplnego budynkow",
      "standardy inżynieryjne podłogówka"
    ],
    "measurementTechnique": "Autorska kwalifikacja procesowa oparta na analizie ponad tysiąca wykonanych projektów hydraulicznych i auditów OZC.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kryterium OZC: Absolutny zakaz projektowania pętli bez wyznaczonych strat ciepła wg PN-EN 12831.",
        "Kryterium Rezerwy: Wymóg zabezpieczenia od 160 do 220 mm wysokości podłogi na etapie adaptacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-autorytet",
    "name": "Asystent Manifestu Inżynieryjnego Roberta Kucharskiego",
    "description": "Interaktywny panel prezentujący autorskie kryteria doboru i weryfikacji instalacji płaszczyznowych pod kątem optymalizacji SGE i GEO.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-authority-main-box" id="rkAuthorityBlock">
    <div class="rk-aut-profile-section">
        <div class="rk-aut-table-layout">
            <div class="rk-aut-table-row">
                <div class="rk-aut-photo-cell">
                    <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Główny Projektant Projekt-Ogrzewania.pl" class="rk-aut-expert-avatar">
                </div>
                
                <div class="rk-aut-content-cell">
                    <h2 class="rk-aut-h2">Robert Kucharski o tym, kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu</h2>
                    <div class="rk-aut-h3">Założyciel Projekt-Ogrzewania.pl | Projektant systemów HVAC</div>
                    
                    <div class="rk-aut-manifesto-quote">
                        Zdaniem Roberta Kucharskiego, odwlekanie decyzji o strukturze ogrzewania płaszczyznowego do momentu zakończenia stanu surowego to najprostsza droga do drastycznego obniżenia sprawności całego układu. Profesjonalny projekt ogrzewania podłogowego nie jest dodatkiem do budowy – jest jej integralnym fundamentem architektonicznym.
                    </div>
                    
                    <div class="rk-aut-social-channels">
                        <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c4.56-.93 8-4.96 8-9.75z"></path></svg>
                            Oficjalny Facebook
                        </a>
                        <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-aut-link" target="_blank" rel="noopener">
                            <svg viewBox="0 0 24 24"><path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.32 1.3v-1.11h-2.8v8h2.8v-4.16c0-.22.04-.45.1-.6a1.14 1.14 0 0 1 1-.77c.66 0 1 .5 1 1.27v4.26h2.78M7 9.14a1.37 1.34 0 1 0-2.74 0 1.37 1.34 0 0 0 2.74 0M8.4 18.5v-8H5.6v8h2.8z"></path></svg>
                            Profil LinkedIn
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-aut-workspace">
        <div class="rk-aut-selector-bar" id="rkAutTabsContainer">
            <button class="rk-aut-tab-button active" data-criterion="1">Filary OZC</button>
            <button class="rk-aut-tab-button" data-criterion="2">Zasada Wysokości</button>
            <button class="rk-aut-tab-button" data-criterion="3">Złoty Harmonogram</button>
        </div>

        <div class="rk-aut-info-panel" id="rkAutDisplayPanel">
            <h4 class="rk-aut-panel-h4" id="rkAutPanelTitle">Bezwzględny wymóg obliczeń OZC budynku</h4>
            <p class="rk-aut-panel-text" id="rkAutPanelText">Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na obliczeniach zapotrzebowania energetycznego poszczególnych stref (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła.</p>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza danych kryteriów Roberta Kucharskiego (Czysty tekst bez znaków specjalnych)
    var criterionDatabase = {
        1: {
            title: "Bezwzględny wymóg obliczeń OZC budynku",
            text: "Wylewanie jastrychu i układanie rur bez rzetelnego wyznaczenia strat ciepła to loteria. Prawidłowo zaplanowany montaż ogrzewania podłogowego musi bazować na <strong>obliczeniach zapotrzebowania energetycznego poszczególnych stref</strong> (według normy PN-EN 12831), co eliminuje mityczny rozstaw rur co 15 cm w każdym pomieszczeniu i zapobiega przewymiarowaniu pompy ciepła."
        },
        2: {
            title: "Ochrona przed konfliktem poziomów posadzki",
            text: "Planowanie podłogówki na etapie adaptacji projektu architektonicznego to jedyna szansa na zachowanie <strong>właściwej rezerwy wysokościowej (od 16 do 22 cm)</strong>. Spóźnienie się z decyzją skutkuje dramatycznym odchudzeniem styropianu na gruncie, potężnymi stratami energii w dół i spadkiem współczynnika COP źródła ciepła."
        },
        3: {
            title: "Żelazna chronologia branż instalacyjnych",
            text: "Pętle grzewcze muszą zostać ułożone w stanie surowym zamkniętym, precyzyjnie <strong>po pionach kanalizacyjnych i tynkach wewnętrznych</strong>, ale przed wylaniem jastrychu. Zaburzenie tej sekwencji naraża rury z polimeru PEX/PE-RT na zniszczenie mechaniczne przez ekipy budowlane i uniemożliwia poprawną próbę szczelności wodą pod ciśnieniem 6 bar."
        }
    };

    var dTitle = document.getElementById('rkAutPanelTitle');
    var dText = document.getElementById('rkAutPanelText');
    var tabButtons = document.querySelectorAll('#rkAutTabsContainer .rk-aut-tab-button');

    // Obsługa przełączania na desktopie i mobilu (Brak zakazanych operatorów logicznych i brak animacji)
    tabButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            tabButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            
            var id = this.getAttribute('data-criterion');
            if (dTitle) { dTitle.innerText = criterionDatabase[id].title; }
            if (dText) { dText.innerHTML = criterionDatabase[id].text; }
        });
    });
});
</script>



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

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

/* Nagłówki sekcji */
.rk-faq-top-bar {
    padding: 40px 50px 25px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-faq-border);
}

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

.rk-faq-sub-h3 {
    font-size: 15px;
    color: var(--rk-faq-text-muted);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
}

/* Układ Desktopowy (Dwukolumnowy) */
.rk-faq-layout {
    padding: 40px 50px;
    background: var(--rk-faq-bg-decor);
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 35px;
}

/* Lista pytań po lewej */
.rk-faq-questions-sidebar {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-faq-selector-item {
    padding: 18px 20px;
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 14px;
    cursor: pointer;
    text-align: left;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    line-height: 1.4;
    transition: all 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.rk-faq-selector-item:hover {
    border-color: #cbd5e1;
    background: var(--rk-faq-bg-decor);
}

.rk-faq-selector-item.active {
    background: var(--rk-faq-blue);
    border-color: var(--rk-faq-blue);
    color: #ffffff;
    box-shadow: 0 8px 20px -6px rgba(2, 132, 199, 0.35);
}

.rk-faq-arrow-icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.2s;
    stroke: var(--rk-faq-blue);
}

.rk-faq-selector-item.active .rk-faq-arrow-icon {
    stroke: #ffffff;
    transform: translateX(3px);
}

/* Panel odpowiedzi po prawej */
.rk-faq-answer-display {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 20px;
    padding: 35px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-faq-ans-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--rk-faq-border);
}

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

.rk-faq-ans-h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    line-height: 1.4;
}

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

.rk-faq-ans-body strong {
    color: var(--rk-faq-dark);
    font-weight: 700;
}

/* Układ Mobilny (Pionowy Akordeon) - Domyślnie ukryty */
.rk-faq-mobile-accordion {
    display: none;
}

@media (max-width: 768px) {
    .rk-faq-top-bar, .rk-faq-layout {
        padding: 30px 20px;
    }
    
    .rk-faq-main-h2 { font-size: 20px; }
    .rk-faq-layout { display: none; } /* Ukrywamy widok dwukolumnowy */
    
    .rk-faq-mobile-accordion {
        display: flex;
        flex-direction: column;
        gap: 12px;
        background: var(--rk-faq-bg-decor);
        padding: 25px 20px 35px;
    }
    
    .rk-faq-acc-item {
        border: 1px solid var(--rk-faq-border);
        border-radius: 14px;
        background: #ffffff;
        overflow: hidden;
        transition: all 0.2s ease;
    }
    
    .rk-faq-acc-trigger {
        padding: 18px 20px;
        font-weight: 700;
        font-size: 14px;
        color: var(--rk-faq-dark);
        line-height: 1.4;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 15px;
        background: #ffffff;
    }
    
    .rk-faq-acc-trigger::after {
        content: '+';
        font-size: 18px;
        font-weight: 500;
        color: var(--rk-faq-blue);
        flex-shrink: 0;
    }
    
    .rk-faq-acc-item.active {
        border-color: var(--rk-faq-blue);
        box-shadow: 0 5px 15px rgba(2, 132, 199, 0.05);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger {
        color: var(--rk-faq-blue);
        border-bottom: 1px solid var(--rk-faq-border);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-trigger::after {
        content: '−';
        color: var(--rk-faq-blue);
    }
    
    .rk-faq-acc-content {
        display: none;
        padding: 20px;
        background: var(--rk-faq-bg-decor);
        font-size: 14px;
        line-height: 1.6;
        color: var(--rk-faq-text);
    }
    
    .rk-faq-acc-item.active .rk-faq-acc-content {
        display: block;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Sekcja FAQ – Najważniejsze pytania inwestorów",
    "description": "Profesjonalne odpowiedzi inżynierskie na kluczowe pytania dotyczące harmonogramu, czasu wysychania jastrychów oraz wymogów prawnych dla podłogówki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#faq-page-data",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, jest to technicznie wykonalne, ale skrajnie nieoptymalne, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego."
        }
      },
      {
        "@type": "Question",
        "name": "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Standardowy jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania w temperaturze powyżej +5°C, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie profesjonalnego wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM."
        }
      },
      {
        "@type": "Question",
        "name": "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu."
        }
      },
      {
        "@type": "Question",
        "name": "Jasi jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne."
        }
      },
      {
        "@type": "Question",
        "name": "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, uniwersalny rozstaw co 15 cm to błąd projektowy, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych, gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-faq",
    "name": "Baza Normatywnych Parametrów Wykonawczych Podłogówki",
    "description": "Zbiór danych technicznych dotyczących czasu wiązania jastrychów, przewodności cieplnej materiałów posadzkowych oraz dopuszczalnych rozstawów rur grzewczych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas schnięcia jastrychu cementowego",
      "wygrzewanie podłogówki parametry",
      "norma PN-EN 1264 obliczenia",
      "przewodność cieplna jastrych anhydrytowy",
      "zagęszczenie rur strefy brzegowe"
    ],
    "measurementTechnique": "Ewidencja wymogów wykonawczych i parametrów fizycznych określonych w normach PN-EN 1264 oraz instrukcjach ITB.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych cementowy: Grubość 60 mm, min. 28 dni schnięcia, wilgotność CM max 2 procent.",
        "Jastrych anhydrytowy: Lambda ok. 1,6 do 2,0 W/(m·K), wilgotność CM max 0,5 procent."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-faq",
    "name": "Interaktywna Encyklopedia Decyzyjna Inwestora",
    "description": "Narzędzie sieciowe umożliwiające natychmiastowe filtrowanie inżynieryjnych odpowiedzi na pytania z zakresu jastrychów i norm instalacji płaszczyznowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-section-container" id="rkFaqAppBlock">
    <div class="rk-faq-top-bar">
        <h2 class="rk-faq-main-h2">Sekcja FAQ – Najważniejsze pytania inwestorów</h2>
        <h3 class="rk-faq-sub-h3">Poznaj autorskie, inżynierskie odpowiedzi na kluczowe dylematy techniczne towarzyszące integracji ogrzewania podłogowego z harmonogramem budowy.</h3>
    </div>

    <div class="rk-faq-layout">
        <div class="rk-faq-questions-sidebar" id="rkFaqSidebar">
            <button class="rk-faq-selector-item active" data-faq="1">
                <span>1. Planowanie po ścianach działowych</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="2">
                <span>2. Czas schnięcia wylewki</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="3">
                <span>3. Wymogi prawne a projekt</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="4">
                <span>4. Wybór jastrychu pod pompę</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
            <button class="rk-faq-selector-item" data-faq="5">
                <span>5. Rozstaw rur co 15 cm</span>
                <svg class="rk-faq-arrow-icon" viewBox="0 0 24 24" fill="none" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
            </button>
        </div>

        <div class="rk-faq-answer-display" id="rkFaqDisplayBox">
            <div class="rk-faq-ans-wrapper">
                <div class="rk-faq-ans-header">
                    <div class="rk-faq-ans-icon-frame" id="rkFaqDisplayIcon">
                        </div>
                    <h4 class="rk-faq-ans-h4" id="rkFaqDisplayTitle">Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</h4>
                </div>
                <p class="rk-faq-ans-body" id="rkFaqDisplayBody">
                    </p>
            </div>
        </div>
    </div>

    <div class="rk-faq-mobile-accordion" id="rkFaqMobileContainer">
        <div class="rk-faq-acc-item active" data-faq="1">
            <div class="rk-faq-acc-trigger">1. Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent1"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="2">
            <div class="rk-faq-acc-trigger">2. Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent2"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="3">
            <div class="rk-faq-acc-trigger">3. Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent3"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="4">
            <div class="rk-faq-acc-trigger">4. Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent4"></div>
        </div>
        <div class="rk-faq-acc-item" data-faq="5">
            <div class="rk-faq-acc-trigger">5. Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?</div>
            <div class="rk-faq-acc-content" id="rkFaqMContent5"></div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Baza pytań i odpowiedzi (Wykonana bez znaków specjalnych typografia tradycyjna i bezpieczny tekst)
    var faqDatabase = {
        1: {
            title: "Czy można zaplanować ogrzewanie podłogowe po wybudowaniu ścian działowych?",
            body: "Tak, jest to <strong>technicznie wykonalne, ale skrajnie nieoptymalne</strong>, ponieważ wymaga kłopotliwego dopasowywania grubości izolacji termicznej do istniejących poziomów otworów drzwiowych oraz okien tarasowych. Może to wymusić zastosowanie droższych styropianów o niższym współczynniku przewodzenia ciepła (np. płyt poliuretanowych PIR) w celu zachowania wymaganych norm oporu cieplnego.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18M15 3v18M3 9h18M3 15h18"/></svg>'
        },
        2: {
            title: "Ile czasu musi schnąć wylewka przed ułożeniem paneli lub płytek?",
            body: "Standardowy <strong>jastrych cementowy o grubości 60 mm wymaga minimum 28 dni naturalnego wiązania</strong> w temperaturze powyżej +5 stopni Celsjusza, natomiast jastrych anhydrytowy około 14-21 dni. Przed montażem okładzin bezwzględnie wymagane jest przeprowadzenie procedury wygrzewania technologicznego płyty oraz badanie wilgotności metodą CM (maksymalnie 2% dla cementu i 0,5% dla anhydrytu pod płytki).",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>'
        },
        3: {
            title: "Czy projekt instalacji ogrzewania podłogowego jest wymagany prawnie?",
            body: "Choć prawo budowlane wprost nie wymaga załączania szczegółowego rysunku pętli do pozwolenia na budowę, to <strong>norma PN-EN 1264 nakłada obowiązek wykonania obliczeń cieplno-wilgotnościowych i hydraulicznych</strong> dla instalacji. Brak projektu uniemożliwia poprawną regulację systemu, pozbawia inwestora gwarancji producenta rur oraz uniemożliwia optymalne zaprogramowanie krzywej grzewczej pompy ciepła.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>'
        },
        4: {
            title: "Jaki jastrych wybrać: anhydrytowy czy cementowy przy pompach ciepła?",
            body: "Przy ogrzewaniu niskotemperaturowym z pompą ciepła znacznie <strong>lepszym wyborem jest jastrych anhydrytowy ze względu na wysoki współczynnik przenikania ciepła</strong> (lambda ok. 1,6-2,0 W/(m·K)) oraz płynną konsystencję, która idealnie otula rurę grzewczą eliminując pustki powietrzne. Jastrych cementowy ma niższą przewodność (lambda ok. 1,0-1,4 W/(m·K)) i wymaga większej grubości (min. 45 mm nad rurą), co zwiększa bezwładność cieplną systemu.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>'
        },
        5: {
            title: "Czy rozstaw rur co 15 cm wystarczy w każdym pomieszczeniu nowego domu?",
            body: "Nie, <strong>uniwersalny rozstaw co 15 cm to błąd projektowy</strong>, ponieważ nie uwzględnia zróżnicowanych strat ciepła oraz stref brzegowych (np. przy dużych przeszkleniach tarasowych), gdzie rury należy zagęścić do 10 cm, aby zniwelować zjawisko opadania chłodu. Z kolei pod stałą zabudową kuchenną czy szafami wnękowymi układanie rur jest całkowicie zbędne i może prowadzić do uszkodzenia mebli.",
            svg: '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="5" y1="5" x2="19" y2="5"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="5" y1="19" x2="19" y2="19"/><circle cx="5" cy="5" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="19" cy="5" r="1"/></svg>'
        }
    };

    // Referencje do elementów DOM (Desktop)
    var dTitle = document.getElementById('rkFaqDisplayTitle');
    var dBody = document.getElementById('rkFaqDisplayBody');
    var dIcon = document.getElementById('rkFaqDisplayIcon');
    var sidebarButtons = document.querySelectorAll('#rkFaqSidebar .rk-faq-selector-item');

    // Funkcja aktualizacji widoku głównego na Desktopie
    function aktualizujWidokDesktop(id) {
        if (dTitle) { dTitle.innerText = faqDatabase[id].title; }
        if (dBody) { dBody.innerHTML = faqDatabase[id].body; }
        if (dIcon) { dIcon.innerHTML = faqDatabase[id].svg; }
    }

    // Inicjalizacja pierwszej pozycji na starcie
    aktualizujWidokDesktop(1);

    // Wstrzyknięcie tekstu do wersji mobilnej (zapobiega pustym akordeonom i pomaga indeksacji SEO)
    for (var i = 1; i <= 5; i++) {
        var mContentBox = document.getElementById('rkFaqMContent' + i);
        if (mContentBox) {
            mContentBox.innerHTML = faqDatabase[i].body;
        }
    }

    // Obsługa kliknięć na Desktopie
    sidebarButtons.forEach(function(button) {
        button.addEventListener('click', function() {
            sidebarButtons.forEach(function(btn) { btn.classList.remove('active'); });
            this.classList.add('active');
            var id = this.getAttribute('data-faq');
            aktualizujWidokDesktop(id);
        });
    });

    // Obsługa kliknięć na Mobilu (Akordeon pionowy bez znaków &#038;&#038;)
    var accItems = document.querySelectorAll('#rkFaqMobileContainer .rk-faq-acc-item');
    accItems.forEach(function(item) {
        var trigger = item.querySelector('.rk-faq-acc-trigger');
        trigger.addEventListener('click', function() {
            var parent = this.parentNode;
            var czyBylAktywny = parent.classList.contains('active');
            
            // Resetujemy wszystkie akordeony mobilne
            accItems.forEach(function(acc) { acc.classList.remove('active'); });
            
            // Jeśli nie był aktywny, to go aktywujemy (bezpieczny warunek logiczny)
            if (!czyBylAktywny) {
                parent.classList.add('active');
            }
        });
    });
});
</script>



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

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

/* Nagłówek Sekcji */
.rk-dl-header-zone {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-dl-border);
    display: block;
}

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

.rk-dl-h3 {
    font-size: 15.5px;
    color: var(--rk-dl-text);
    margin: 0;
    line-height: 1.6;
    font-weight: 400;
    display: block;
}

/* Obszar Roboczy Centrum Pobierania */
.rk-dl-workspace {
    padding: 40px 50px;
    background: var(--rk-dl-bg);
    display: block;
}

/* Układ dwukolumnowy dla prezentacji materiału (Desktop) */
.rk-dl-material-card {
    background: #ffffff;
    border: 1px solid var(--rk-dl-border);
    border-radius: 20px;
    padding: 30px;
    display: table;
    width: 100%;
    box-sizing: border-box;
}

.rk-dl-row {
    display: table-row;
}

/* Kolumna Lewa: Miniatura */
.rk-dl-thumb-cell {
    display: table-cell;
    width: 260px;
    vertical-align: top;
    padding-right: 35px;
}

.rk-dl-thumbnail-box {
    width: 100%;
    border: 2px solid var(--rk-dl-border);
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    padding: 10px;
    box-sizing: border-box;
}

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

/* Kolumna Prawa: Opis i Akcje */
.rk-dl-info-cell {
    display: table-cell;
    vertical-align: top;
}

.rk-dl-h4 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-dl-desc {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--rk-dl-text);
    margin: 0 0 25px 0;
}

.rk-dl-format-tags {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
}

.rk-dl-tag {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 6px 12px;
    border-radius: 6px;
    background: var(--rk-dl-blue-light);
    color: var(--rk-dl-blue);
    border: 1px solid rgba(2, 132, 199, 0.2);
}

/* Przyciski Akcji (BEZ ANIMACJI) */
.rk-dl-actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.rk-dl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 12px;
    cursor: pointer;
    text-decoration: none;
    transition: none; /* Rygorystyczny brak animacji */
}

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

.rk-dl-btn-primary:hover {
    background: #0369a1;
    border-color: #0369a1;
}

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

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

/* Pasek Praw Autorskich */
.rk-dl-copyright-bar {
    padding: 20px 50px;
    background: var(--rk-dl-dark);
    color: #cbd5e1;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}

.rk-dl-copyright-bar strong {
    color: #ffffff;
    font-weight: 700;
}

/* Liniowy Modal Podglądu Grafiki (Ukryty domyślnie) */
.rk-dl-modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.95);
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
}

.rk-dl-modal-content {
    background: #ffffff;
    padding: 10px;
    border-radius: 12px;
    max-width: 1000px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}

.rk-dl-modal-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.rk-dl-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border: none;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 800;
    border-radius: 8px;
    cursor: pointer;
    transition: none;
}

.rk-dl-modal-close:hover {
    background: #ef4444;
}

/* Responsywność Mobilna (Pionowe układanie klocków) */
@media (max-width: 768px) {
    .rk-dl-header-zone, .rk-dl-workspace, .rk-dl-copyright-bar {
        padding: 30px 20px;
    }
    
    .rk-dl-h2 { font-size: 22px; }
    
    .rk-dl-material-card, .rk-dl-row, .rk-dl-thumb-cell, .rk-dl-info-cell {
        display: block;
        width: 100%;
        padding: 0;
    }
    
    .rk-dl-thumb-cell {
        margin-bottom: 25px;
    }
    
    .rk-dl-thumbnail-box {
        max-width: 260px;
        margin: 0 auto;
    }
    
    .rk-dl-actions {
        flex-direction: column;
    }
    
    .rk-dl-btn {
        width: 100%;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-materialy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji ogrzewania podłogowego",
    "description": "Pobierz darmową infografikę inżynierską w formacie PDF. Interaktywne zestawienie optymalnego momentu montażu instalacji grzewczych w nowym domu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-materialy",
    "name": "Wizualny Harmonogram Instalacji Ogrzewania Podłogowego (Infografika PDF)",
    "description": "Gotowy do druku arkusz weryfikacyjny i chronologiczny dla inwestorów oraz instalatorów, zawierający ramy czasowe dla wdrożenia systemów płaszczyznowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe pdf",
      "kiedy planować podłogówkę schemat",
      "etapy budowy a ogrzewanie podłogowe",
      "harmonogram prac instalacyjnych wydruk",
      "lista kontrolna instalatora hvac"
    ],
    "measurementTechnique": "Synteza i wizualizacja danych inżynieryjnych pozwalająca na graficzną weryfikację gotowości placu budowy do układania pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Format PDF: Materiał wektorowy przygotowany do wydruku i przekazania wykonawcom na placu budowy.",
        "Format WEBP: Zoptymalizowany zasób cyfrowy do szybkiego podglądu na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-materialy",
    "name": "Centrum Dystrybucji Wiedzy Inżynierskiej Projekt-Ogrzewania.pl",
    "description": "Zintegrowany panel dostępu do plików technicznych, schematów oraz infografik budowlanych wspierających prawidłowe zarządzanie procesem inwestycyjnym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-download-main-container" id="rkDownloadBlock">
    <div class="rk-dl-header-zone">
        <h2 class="rk-dl-h2">Kompendium wiedzy do pobrania: Infografika harmonogramu instalacji</h2>
        <h3 class="rk-dl-h3">Pobierz darmowy materiał w formacie PDF lub zobacz pełną wersję graficzną, aby zabrać autorskie wytyczne inżynierskie bezpośrednio na plac budowy i uniknąć kolizji wykonawczych.</h3>
    </div>

    <div class="rk-dl-workspace">
        <div class="rk-dl-material-card">
            <div class="rk-dl-row">
                
                <div class="rk-dl-thumb-cell">
                    <div class="rk-dl-thumbnail-box">
                        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Miniatura infografiki - Kiedy najlepiej planować montaż ogrzewania podłogowego" class="rk-dl-thumbnail-img" loading="lazy">
                    </div>
                </div>
                
                <div class="rk-dl-info-cell">
                    <div class="rk-dl-format-tags">
                        <span class="rk-dl-tag">Plik PDF</span>
                        <span class="rk-dl-tag">Grafika WEBP</span>
                    </div>
                    <h4 class="rk-dl-h4">Etapy planowania ogrzewania podłogowego w nowym domu</h4>
                    <p class="rk-dl-desc">Kompletne, wizualne podsumowanie procesu inżynieryjnego. Arkusz zawiera ramy czasowe dla wyliczeń OZC, ustalania rezerwy wysokościowej posadzki oraz dokładną chronologię wejścia instalatorów na plac budowy. Dokument przygotowany w wysokiej rozdzielczości, idealny do wydrukowania i przekazania kierownikowi budowy.</p>
                    
                    <div class="rk-dl-actions">
                        <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.pdf" class="rk-dl-btn rk-dl-btn-primary" target="_blank" rel="noopener">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                            Pobierz plik PDF
                        </a>
                        <button class="rk-dl-btn rk-dl-btn-secondary" id="rkBtnPreviewImg">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                            Podgląd grafiki
                        </button>
                    </div>
                </div>
                
            </div>
        </div>
    </div>

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

<div class="rk-dl-modal-overlay" id="rkPreviewModal">
    <div class="rk-dl-modal-content">
        <button class="rk-dl-modal-close" id="rkModalCloseBtn">ZAMKNIJ PODGLĄD</button>
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Infografika-Kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu.webp" alt="Pełnowymiarowa infografika harmonogramu" class="rk-dl-modal-img" loading="lazy">
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var btnPreview = document.getElementById('rkBtnPreviewImg');
    var modalOverlay = document.getElementById('rkPreviewModal');
    var btnClose = document.getElementById('rkModalCloseBtn');

    // Bezpieczna logika otwierania modalu (bez znaków ampersand)
    if (btnPreview) {
        btnPreview.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'flex';
                document.body.style.overflow = 'hidden'; // Blokada scrollowania strony
            }
        });
    }

    // Zamknięcie modalu przyciskiem
    if (btnClose) {
        btnClose.addEventListener('click', function() {
            if (modalOverlay) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = ''; // Odblokowanie scrollowania
            }
        });
    }

    // Zamknięcie modalu kliknięciem w tło
    if (modalOverlay) {
        modalOverlay.addEventListener('click', function(e) {
            if (e.target === this) {
                modalOverlay.style.display = 'none';
                document.body.style.overflow = '';
            }
        });
    }
});
</script>



<style>
:root {
    --rk-fin-dark: #0f172a;
    --rk-fin-blue: #0284c7;
    --rk-fin-light: #f8fafc;
    --rk-fin-border: #e2e8f0;
    --rk-fin-green: #10b981;
    --rk-fin-red: #ef4444;
    --rk-fin-warn: #f59e0b;
    --rk-fin-text: #475569;
}

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

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

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

.rk-fin-h3 {
    font-size: 16px;
    color: var(--rk-fin-text);
    margin: 0 auto;
    line-height: 1.6;
    font-weight: 400;
    max-width: 750px;
}

/* Interfejs Symulatora */
.rk-fin-interactive {
    padding: 40px 50px;
    background: var(--rk-fin-light);
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: center;
}

/* Kontroler - Switch */
.rk-switch-panel {
    background: #ffffff;
    padding: 40px 30px;
    border-radius: 20px;
    border: 1px solid var(--rk-fin-border);
    text-align: center;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

.rk-switch-title {
    font-size: 15px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--rk-fin-dark);
    margin-bottom: 25px;
}

.rk-toggle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.rk-toggle-btn {
    width: 90px;
    height: 46px;
    background: var(--rk-fin-red);
    border-radius: 23px;
    position: relative;
    cursor: pointer;
    transition: background 0.4s ease;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.rk-toggle-btn.pro {
    background: var(--rk-fin-green);
}

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

.rk-toggle-btn.pro .rk-toggle-circle {
    transform: translateX(44px);
}

.rk-state-label {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-red);
    transition: color 0.3s;
}

.rk-toggle-btn.pro + .rk-state-label {
    color: var(--rk-fin-green);
}

/* Wyniki symulacji */
.rk-fin-results {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

.rk-data-card.danger { border-left: 6px solid var(--rk-fin-red); }
.rk-data-card.safe { border-left: 6px solid var(--rk-fin-green); }

.rk-data-icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
}

.rk-data-content h4 {
    margin: 0 0 8px 0;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-fin-dark);
}

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

/* CTA Footer i SEO */
.rk-fin-cta {
    padding: 40px 50px;
    background: var(--rk-fin-dark);
    color: #ffffff;
    text-align: center;
}

.rk-fin-cta-main-text {
    font-size: 16px;
    line-height: 1.7;
    margin: 0 auto 30px auto;
    max-width: 800px;
    color: #cbd5e1;
}

.rk-fin-cta-h4 {
    margin: 0 0 25px 0;
    font-size: 20px; 
    font-weight: 800;
    color: #ffffff;
}

.rk-btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-fin-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 35px;
    border-radius: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    margin-bottom: 35px;
}

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

/* Blok Long Tail SEO pod przyciskiem */
.rk-seo-block {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 25px;
    text-align: left;
    margin-bottom: 25px;
}

.rk-seo-block p {
    font-size: 13px;
    line-height: 1.7;
    color: #94a3b8;
    margin: 0;
}

.rk-seo-block strong {
    color: #cbd5e1;
    font-weight: 600;
}

/* Tagi na samym dole */
.rk-fin-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 25px;
}

.rk-mat-tag {
    font-size: 11px;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.05);
    color: #94a3b8;
    padding: 6px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: rgba(2, 132, 199, 0.2);
    color: #ffffff;
    border-color: rgba(2, 132, 199, 0.4);
}

@media (max-width: 768px) {
    .rk-fin-header, .rk-fin-interactive, .rk-fin-cta { padding: 30px 20px; }
    .rk-fin-interactive { grid-template-columns: 1fr; gap: 25px; }
    .rk-data-card { flex-direction: column; text-align: center; padding: 20px; }
    .rk-btn-solid { width: 100%; padding: 16px; box-sizing: border-box; font-size: 14px; }
    .rk-fin-h2 { font-size: 22px; }
    .rk-seo-block { text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/"
    },
    "headline": "Kluczowe rekomendacje inżynierskie – Skutki opóźnień",
    "description": "Zobacz interaktywne porównanie skutków montażu ogrzewania podłogowego na oko w stosunku do wdrożenia profesjonalnego standardu inżynierskiego (projekt OZC).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-07-06",
    "dateModified": "2026-07-06"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#dataset-podsumowanie",
    "name": "Analiza ryzyka inwestycyjnego instalacji płaszczyznowych 2026",
    "description": "Zestawienie inżynierskie porównujące koszty wdrożenia projektu hydraulicznego przed budową z kosztami kucia posadzki i demontażu awaryjnej podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "koszty naprawy ogrzewania podłogowego",
      "brak projektu podłogówki konsekwencje",
      "czy warto robić projekt ozc",
      "awaria podłogówki kucie posadzki",
      "nierównomierne grzanie podłogi"
    ],
    "measurementTechnique": "Wizualizacja skutków błędów montażowych pod monolityczną płytą betonową w kontrze do planowania przedprocesowego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Metoda 'Na oko': Skutkuje ryzykiem demontażu całego systemu przy awarii rur.",
        "Standard Inżynierski: Gwarantuje bezpieczeństwo dzięki wcześniejszym obliczeniom OZC i grubej izolacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/#webapp-podsumowanie",
    "name": "Symulator Decyzji Inwestorskich HVAC",
    "description": "Interaktywny przełącznik wizualizujący technologiczne i finansowe konsekwencje wyboru pomiędzy montażem amatorskim a inżynieryjnym planowaniem instalacji cieplnej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-final-container" id="rkFinalSimulator">
    <div class="rk-fin-header">
        <h2 class="rk-fin-h2">Podsumowanie i kluczowe rekomendacje inżynierskie</h2>
        <h3 class="rk-fin-h3">Zanim zalejesz rury setkami litrów betonu, sprawdź, z czym wiąże się próba ominięcia etapu projektowego. Przesuń suwak i zobacz różnicę.</h3>
    </div>

    <div class="rk-fin-interactive">
        <div class="rk-switch-panel">
            <div class="rk-switch-title">Wybierz standard instalacji</div>
            <div class="rk-toggle-wrapper">
                <div class="rk-toggle-btn" id="rkSimToggle">
                    <div class="rk-toggle-circle"></div>
                </div>
                <div class="rk-state-label" id="rkSimLabel">Amatorskie "Na Oko"</div>
            </div>
        </div>

        <div class="rk-fin-results" id="rkSimDataBox">
            <div class="rk-data-card danger" id="cardOZC">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleOZC">Brak obliczeń OZC</h4>
                    <p id="descOZC">Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.</p>
                </div>
            </div>
            <div class="rk-data-card danger" id="cardFix">
                <div class="rk-data-icon">
                    <svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-data-content">
                    <h4 id="titleFix">Kucie posadzki (Awaria)</h4>
                    <p id="descFix">Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.</p>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-fin-cta">
        <p class="rk-fin-cta-main-text">Decyzja o terminie wdrożenia systemu grzewczego do harmonogramu budowy niesie za sobą konsekwencje na całe życie budynku. Wszelkie próby oszczędności na etapie przygotowawczym – rezygnacja z obliczeń OZC, układanie rur „na oko” bez wykonanego projektu, czy sztuczne odchudzanie warstw izolacji podłogowej – poskutkują nieodwracalnym obniżeniem sprawności grzewczej. Instalacja płaszczyznowa zostaje zamknięta pod monolityczną płytą betonową. O ile kocioł czy pompę ciepła można wymienić w jeden dzień, o tyle źle wykonanej, pękającej lub zapowietrzającej się podłogówki nie da się naprawić bez demolki całego domu.</p>
        
        <h4 class="rk-fin-cta-h4">Bezkompromisowe podejście inżynierskie wymaga, aby planowanie montażu ogrzewania zamknąć na etapie zakupu projektu.</h4>
        
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-solid">
            BĄDŹ INWESTOREM, KTÓRY WIE WIĘCEJ – CZYTAJ BLOG
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>

        <div class="rk-seo-block">
            <p>Decyzja o tym, <strong>czy warto robić projekt OZC</strong>, nie powinna być podyktowana pozorną oszczędnością. Trzeba powiedzieć wprost: <strong>rury do podłogówki układane na oko</strong> to najszybszy przepis na <strong>nierównomierne grzanie podłogi</strong> i przedwczesne zużycie sprężarki. Z praktyki inżynierskiej wiemy, że <strong>koszty naprawy ogrzewania podłogowego</strong> zawsze przewyższają cenę dokumentacji, a <strong>awaria podłogówki i kucie posadzki</strong> dezorganizuje życie na wiele miesięcy. Ignorując <strong>brak projektu podłogówki i jego konsekwencje</strong> oraz godząc się na nieuzasadnione <strong>odchudzanie izolacji podłogi</strong>, budujesz system pełen wad. W efekcie już po paru sezonach zaczniesz szukać w sieci informacji, <strong>kiedy wymienić pompę ciepła</strong>, podczas gdy prawdziwym problemem będzie błąd na poziomie fundamentów.</p>
        </div>

        <div class="rk-fin-tags">
            <span class="rk-mat-tag"># koszty naprawy ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># brak projektu podłogówki konsekwencje</span>
            <span class="rk-mat-tag"># czy warto robić projekt ozc</span>
            <span class="rk-mat-tag"># awaria podłogówki kucie posadzki</span>
            <span class="rk-mat-tag"># odchudzanie izolacji podłogi</span>
            <span class="rk-mat-tag"># kiedy wymienic pompe ciepla</span>
            <span class="rk-mat-tag"># nierównomierne grzanie podłogi</span>
            <span class="rk-mat-tag"># rury do podłogówki układane na oko</span>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    var toggleBtn = document.getElementById('rkSimToggle');
    var label = document.getElementById('rkSimLabel');
    
    var cardOZC = document.getElementById('cardOZC');
    var titleOZC = document.getElementById('titleOZC');
    var descOZC = document.getElementById('descOZC');
    
    var cardFix = document.getElementById('cardFix');
    var titleFix = document.getElementById('titleFix');
    var descFix = document.getElementById('descFix');
    
    // Ikony (Zwykły HTML SVG dla podmiany)
    var iconSafe = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>';
    var iconDanger = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>';
    var iconError = '<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>';
    var iconCalc = '<svg viewBox="0 0 24 24" fill="none" stroke="#10b981" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="8" y="8" width="8" height="4"></rect><line x1="8" y1="16" x2="8" y2="16"></line><line x1="12" y1="16" x2="12" y2="16"></line><line x1="16" y1="16" x2="16" y2="16"></line></svg>';

    toggleBtn.addEventListener('click', function() {
        var isPro = toggleBtn.classList.contains('pro');
        
        if (isPro) {
            // Przejście na AMATOR
            toggleBtn.classList.remove('pro');
            label.innerText = 'Amatorskie "Na Oko"';
            
            // Karta 1
            cardOZC.className = 'rk-data-card danger';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconError;
            titleOZC.innerText = 'Brak obliczeń OZC';
            descOZC.innerText = 'Skutkuje nierównomiernym grzaniem, przewymiarowaniem pompy ciepła i drastycznym wzrostem rachunków za prąd.';
            
            // Karta 2
            cardFix.className = 'rk-data-card danger';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconDanger;
            titleFix.innerText = 'Kucie posadzki (Awaria)';
            descFix.innerText = 'Źle ułożonej rury pod betonem nie naprawisz bez demolki domu. Koszty poprawek liczone są w dziesiątkach tysięcy złotych.';
            
        } else {
            // Przejście na PRO
            toggleBtn.classList.add('pro');
            label.innerText = 'Standard Inżynierski';
            
            // Karta 1
            cardOZC.className = 'rk-data-card safe';
            cardOZC.querySelector('.rk-data-icon').innerHTML = iconCalc;
            titleOZC.innerText = 'Wykonany projekt OZC';
            descOZC.innerText = 'Precyzyjnie dobrany rozstaw rur i parametry przepływu. Gwarancja najwyższego parametru COP dla pompy ciepła.';
            
            // Karta 2
            cardFix.className = 'rk-data-card safe';
            cardFix.querySelector('.rk-data-icon').innerHTML = iconSafe;
            titleFix.innerText = 'Bezpieczeństwo na lata';
            descFix.innerText = 'Wykonana próba ciśnieniowa i weryfikacja projektowa eliminuje ryzyko awarii. Monolityczna posadzka staje się bezpiecznym buforem ciepła.';
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">Kiedy najlepiej planować montaż ogrzewania podłogowego w nowym domu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Wylewka na ogrzewanie podłogowe – kompletny przewodnik.</title>
		<link>https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/</link>
					<comments>https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 18 Feb 2025 19:48:37 +0000</pubDate>
				<category><![CDATA[Budowa i remont]]></category>
		<category><![CDATA[Jastrych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Remonty i budowa]]></category>
		<category><![CDATA[Wylewka]]></category>
		<category><![CDATA[Wylewka anhydrytowa]]></category>
		<category><![CDATA[Wylewka cementowa]]></category>
		<category><![CDATA[grubość wylewki]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podkład podłogowy]]></category>
		<category><![CDATA[porady budowlane]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<category><![CDATA[wylewka]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka cementowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2254</guid>

					<description><![CDATA[<p>Planujesz montaż ogrzewania podłogowego? Wylewka na ogrzewanie podłogowe to kluczowy element, który wpływa na efektywność i trwałość całego systemu. W naszym artykule dowiesz się, jak wybrać odpowiedni rodzaj wylewki (cementową lub anhydrytową), jaką grubość zastosować oraz na co zwrócić uwagę podczas jej wykonywania. Poznasz również najczęstsze błędy i praktyczne wskazówki, które pomogą Ci uniknąć kosztownych pomyłek. Sprawdź, jak prawidłowo przygotować podłoże i ciesz się równomiernym ciepłem w swoim domu!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka na ogrzewanie podłogowe – kompletny przewodnik.</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: #2563eb;
    --rk-intro-cyan: #06b6d4;
    --rk-intro-red: #dc2626;
    --rk-intro-green: #16a34a;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
}

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

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

.rk-intro-title {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rk-intro-title svg {
    color: var(--rk-intro-blue);
}

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

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

.rk-intro-text-block a {
    color: var(--rk-intro-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 2px solid rgba(37, 99, 235, 0.2);
    transition: all 0.3s ease;
}

.rk-intro-text-block a:hover {
    border-bottom-color: var(--rk-intro-blue);
    background: rgba(37, 99, 235, 0.05);
}

.rk-intro-alert {
    background: #fff1f2;
    border-left: 4px solid var(--rk-intro-red);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin: 25px 0 0 0;
    font-size: 16px;
    line-height: 1.6;
    color: #881337;
}

/* Sekcja Interaktywna - Skaner */
.rk-intro-scanner {
    padding: 40px 50px;
    background: var(--rk-intro-dark);
    color: #ffffff;
}

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

.rk-scanner-header h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: #f8fafc;
}

.rk-scanner-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
}

/* Suwak w stylu aplikacji */
.rk-slider-container {
    padding: 20px 0;
    margin-bottom: 30px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: linear-gradient(90deg, var(--rk-intro-red) 0%, var(--rk-intro-cyan) 50%, var(--rk-intro-green) 100%);
    border-radius: 10px;
    outline: none;
    cursor: grab;
}

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

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

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

.rk-label-bad { color: #f87171; }
.rk-label-good { color: #4ade80; }

/* Ekran diagnostyczny */
.rk-diag-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

.rk-diag-svg {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
    background: #1e293b;
    border-radius: 16px;
    padding: 20px;
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.3);
}

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

.rk-stat-item {
    margin-bottom: 20px;
}
.rk-stat-item:last-child { margin-bottom: 0; }

.rk-stat-title {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.rk-stat-value {
    font-size: 24px;
    font-weight: 900;
    display: flex;
    align-items: baseline;
    gap: 5px;
    transition: color 0.3s;
}

.rk-stat-value small {
    font-size: 14px;
    font-weight: 600;
    opacity: 0.7;
}

/* Dynamika klas JS */
.status-critical .rk-stat-value { color: var(--rk-intro-red); }
.status-warning .rk-stat-value { color: var(--rk-intro-cyan); }
.status-optimal .rk-stat-value { color: var(--rk-intro-green); }

/* SVG Animacje wewnątrz Skanera */
.anim-heat-ray {
    stroke-dasharray: 10;
    animation: flowHeat 2s linear infinite;
}

@keyframes flowHeat {
    to { stroke-dashoffset: -20; }
}

@media (max-width: 768px) {
    .rk-intro-content, .rk-intro-scanner { padding: 30px 20px; }
    .rk-diag-grid { grid-template-columns: 1fr; }
    .rk-intro-title { font-size: 22px; }
    .rk-diag-svg { padding: 10px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Rola jastrychu grzejnego w systemie ogrzewania podłogowego",
    "description": "Czym jest wylewka na ogrzewanie podłogowe? Wyjaśniamy funkcje jastrychu grzejnego, normę PN-EN 1264-4 oraz zagrożenia płynące ze złego wykonawstwa (cisi zabójcy budżetu).",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-wstep",
    "name": "Parametry Prawidłowego Jastrychu wg PN-EN 1264-4",
    "description": "Baza wiedzy definiująca techniczne uwarunkowania wylewki grzejnej, z naciskiem na bezwładność, dylatacje i straty energii.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jastrych grzejny grubość 50-80mm",
      "norma PN-EN 1264-4 otulina rury",
      "bezwładność cieplna wylewki",
      "dylatacje ogrzewania podłogowego",
      "cisi zabójcy sprawności energetycznej"
    ],
    "measurementTechnique": "Analiza zgodności warstwy jastrychu z normami budowlanymi i termodynamiką.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Płyta akumulacyjna: Optymalna grubość to 50-80 mm dla zachowania balansu bezwładności.",
        "Otulina rury: Brak szczelnego przylegania betonu powoduje powstawanie izolatora powietrznego.",
        "Ryzyka awarii: Pęknięcia z powodu braku dylatacji zmniejszają przewodność i uszkadzają posadzkę."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-skaner",
    "name": "Inżynierski Skaner Jakości Jastrychu",
    "description": "Interaktywna aplikacja typu suwak (slider) pozwalająca użytkownikowi zobaczyć różnicę między wylewką wadliwą (pęcherze powietrza, pęknięcia) a zgodną z normą PN-EN 1264-4.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range Input and JavaScript",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-intro-app" id="wylewka-intro-app">
    
    <!-- Treść Wstępu -->
    <div class="rk-intro-content">
        <h2 class="rk-intro-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2" ry="2"></rect><line x1="8" y1="21" x2="16" y2="21"></line><line x1="12" y1="17" x2="12" y2="21"></line></svg>
            Fundament sprawności systemu
        </h2>
        
        <p class="rk-intro-text-block">
            <strong>Wylewka na ogrzewanie podłogowe</strong>, fachowo nazywana <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">jastrychem grzejnym</a>, to warstwa podkładu podłogowego o grubości zazwyczaj od <strong>50 mm do 80 mm</strong>, pełniąca funkcję emitora ciepła, ochrony mechanicznej przewodów oraz płyty akumulacyjnej. 
        </p>
        
        <p class="rk-intro-text-block">
            Według normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264-4</a>, jastrych musi szczelnie otaczać rury grzejne, aby zapewnić maksymalną przewodność cieplną i równomierny rozkład temperatury na powierzchni posadzki (T<sub>surf</sub>).
        </p>

        <div class="rk-intro-alert">
            <strong>Problem z wylewką to nie tylko kwestia estetyki, ale przede wszystkim sprawności energetycznej.</strong> Zbyt duża <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplna</a>, pęknięcia wynikające z braku <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">dylatacji</a> czy niska przewodność materiału to „cisi zabójcy” Twojego portfela. Poniżej rozbijam ten temat na czynniki pierwsze.
        </div>
    </div>

    <!-- Interaktywny Skaner -->
    <div class="rk-intro-scanner">
        <div class="rk-scanner-header">
            <h3>Skaner Jakości Wylewki (Symulator)</h3>
            <p>Przesuń suwak, aby zobaczyć, co dzieje się wewnątrz posadzki.</p>
        </div>

        <div class="rk-slider-container">
            <input type="range" min="0" max="100" value="100" class="rk-range-input" id="rkQualitySlider">
            <div class="rk-slider-labels">
                <span class="rk-label-bad">Błędy Wykonawcze</span>
                <span class="rk-label-good">Norma PN-EN 1264</span>
            </div>
        </div>

        <div class="rk-diag-grid" id="rkDiagGrid">
            
            <!-- Grafika SVG -->
            <div class="rk-diag-svg">
                <svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
                    <!-- Izolacja EPS -->
                    <rect x="0" y="160" width="300" height="40" fill="#334155"/>
                    <text x="10" y="185" fill="#64748b" font-size="12" font-family="sans-serif">EPS (Izolacja)</text>
                    
                    <!-- Rury -->
                    <circle cx="80" cy="130" r="14" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    <circle cx="220" cy="130" r="14" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    
                    <!-- Dylatacja brzegowa -->
                    <rect x="290" y="50" width="10" height="110" fill="#0ea5e9" id="svgDylatacja" opacity="1"/>

                    <!-- Zły Jastrych (Widoczny przy niskiej jakości) -->
                    <g id="svgBadScreed" opacity="0">
                        <path d="M0 50 H290 V160 H0 Z" fill="#475569"/>
                        <!-- Pęknięcie z powodu braku dylatacji -->
                        <path d="M150 50 L140 80 L160 110 L150 160" fill="none" stroke="#0f172a" stroke-width="3"/>
                        <!-- Pęcherze powietrza (Izolator) wokół rur -->
                        <circle cx="80" cy="130" r="22" fill="none" stroke="#94a3b8" stroke-width="2" stroke-dasharray="4"/>
                        <circle cx="220" cy="130" r="22" fill="none" stroke="#94a3b8" stroke-width="2" stroke-dasharray="4"/>
                        <text x="100" y="100" fill="#f87171" font-size="10" font-weight="bold">Powietrze = Izolator</text>
                        <!-- Zaburzony strumień ciepła -->
                        <path d="M80 100 Q60 70 90 40" fill="none" stroke="#ef4444" stroke-width="2" opacity="0.3"/>
                    </g>

                    <!-- Dobry Jastrych (Widoczny przy wysokiej jakości) -->
                    <g id="svgGoodScreed" opacity="1">
                        <path d="M0 50 H290 V160 H0 Z" fill="#94a3b8"/>
                        <!-- Prawidłowy otulina -->
                        <circle cx="80" cy="130" r="18" fill="none" stroke="#10b981" stroke-width="2"/>
                        <circle cx="220" cy="130" r="18" fill="none" stroke="#10b981" stroke-width="2"/>
                        <!-- Idealny strumień ciepła -->
                        <path class="anim-heat-ray" d="M80 110 V30" fill="none" stroke="#ef4444" stroke-width="3"/>
                        <path class="anim-heat-ray" d="M220 110 V30" fill="none" stroke="#ef4444" stroke-width="3"/>
                    </g>
                </svg>
            </div>

            <!-- Dane diagnostyczne -->
            <div class="rk-diag-stats">
                <div class="rk-stat-item">
                    <div class="rk-stat-title">Straty energetyczne</div>
                    <div class="rk-stat-value" id="valLoss">0<small>%</small></div>
                </div>
                <div class="rk-stat-item">
                    <div class="rk-stat-title">Zgodność z normą PN-EN</div>
                    <div class="rk-stat-value" id="valNorm">Pełna <small>(Akceptacja)</small></div>
                </div>
                <div class="rk-stat-item">
                    <div class="rk-stat-title">Ocena ryzyka awarii</div>
                    <div class="rk-stat-value" id="valRisk">Brak <small>(Dylatacje aktywne)</small></div>
                </div>
            </div>

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

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H-tag)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('wylewka-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 30px; text-align: center; background: #fff1f2; color: #be123c; border: 2px solid #f43f5e; border-radius: 16px; font-family: sans-serif; margin: 20px;">
                    <div style="font-size: 32px; margin-bottom: 10px;">⚠️</div>
                    <div style="font-size: 16px; font-weight: 800; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; margin-top: 10px;">
                        Moduł "Skaner Jakości" i dane JSON-LD są przypisane do domeny Projekt-Ogrzewania.pl. Uruchomienie zablokowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Skanera Jakości
    const slider = document.getElementById('rkQualitySlider');
    const svgGood = document.getElementById('svgGoodScreed');
    const svgBad = document.getElementById('svgBadScreed');
    const svgDylatacja = document.getElementById('svgDylatacja');
    
    const valLoss = document.getElementById('valLoss');
    const valNorm = document.getElementById('valNorm');
    const valRisk = document.getElementById('valRisk');
    const diagGrid = document.getElementById('rkDiagGrid');

    function updateScanner(val) {
        // Przeliczenie na skale 0-1
        const goodOpacity = val / 100;
        const badOpacity = 1 - goodOpacity;

        // Aktualizacja SVG
        svgGood.style.opacity = goodOpacity;
        svgBad.style.opacity = badOpacity;
        
        // Dylatacja zanika poniżej 40% jakości
        if(val < 40) {
            svgDylatacja.style.opacity = '0.2';
            svgDylatacja.setAttribute('fill', '#ef4444');
        } else {
            svgDylatacja.style.opacity = '1';
            svgDylatacja.setAttribute('fill', '#0ea5e9');
        }

        // Aktualizacja tekstów i klas kolorów
        diagGrid.classList.remove('status-optimal', 'status-warning', 'status-critical');

        if (val >= 80) {
            diagGrid.classList.add('status-optimal');
            valLoss.innerHTML = `${Math.round((100 - val) * 0.2)}<small>%</small>`;
            valNorm.innerHTML = `Pełna <small>(Akceptacja)</small>`;
            valRisk.innerHTML = `Niskie <small>(Otulina OK)</small>`;
        } else if (val >= 40) {
            diagGrid.classList.add('status-warning');
            valLoss.innerHTML = `${Math.round((100 - val) * 0.4)}<small>%</small>`;
            valNorm.innerHTML = `Częściowa <small>(Ostrzeżenie)</small>`;
            valRisk.innerHTML = `Średnie <small>(Pęcherze powietrza)</small>`;
        } else {
            diagGrid.classList.add('status-critical');
            valLoss.innerHTML = `${Math.round((100 - val) * 0.6)}<small>%</small>`;
            valNorm.innerHTML = `Brak <small>(Odrzucenie)</small>`;
            valRisk.innerHTML = `Krytyczne <small>(Pęknięcia/Izolator)</small>`;
        }
    }

    // Inicjalizacja nasłuchu na suwak
    slider.addEventListener('input', (e) => {
        updateScanner(e.target.value);
    });

    // Uruchomienie początkowe
    updateScanner(slider.value);
});
</script>



<style>
:root {
    --rk-vs-dark: #0f172a;
    --rk-vs-panel: #1e293b;
    --rk-vs-anhydrite: #fbbf24; /* Ciepły, płynny kolor */
    --rk-vs-cement: #94a3b8; /* Chłodny, betonowy szary */
    --rk-vs-heat: #ef4444;
    --rk-vs-bg: #ffffff;
    --rk-vs-border: #e2e8f0;
    --rk-vs-text: #334155;
}

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

/* Nagłówek Sekcji */
.rk-vs-header {
    padding: 40px 50px 25px;
    background: linear-gradient(to right, #ffffff, #f8fafc);
    border-bottom: 1px solid var(--rk-vs-border);
}

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

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

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

.rk-vs-desc a {
    color: #2563eb;
    font-weight: 600;
    text-decoration: none;
    box-shadow: inset 0 -2px 0 rgba(37, 99, 235, 0.2);
    transition: all 0.2s;
}

.rk-vs-desc a:hover {
    box-shadow: inset 0 -10px 0 rgba(37, 99, 235, 0.1);
}

/* Interfejs Symulatora */
.rk-vs-app {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-vs-panel);
    color: #ffffff;
}

/* Panel Boczny z Wyborem */
.rk-vs-sidebar {
    padding: 30px;
    border-right: 1px solid rgba(255,255,255,0.1);
    background: #0f172a;
}

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

.rk-type-btn {
    display: block;
    width: 100%;
    padding: 20px;
    margin-bottom: 15px;
    background: rgba(255,255,255,0.03);
    border: 2px solid rgba(255,255,255,0.1);
    border-radius: 16px;
    color: #ffffff;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.rk-type-btn:hover {
    background: rgba(255,255,255,0.08);
}

.rk-type-btn.active[data-target="anhydrite"] {
    background: rgba(251, 191, 36, 0.1);
    border-color: var(--rk-vs-anhydrite);
}

.rk-type-btn.active[data-target="cement"] {
    background: rgba(148, 163, 184, 0.1);
    border-color: var(--rk-vs-cement);
}

.rk-type-name {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 5px;
    display: block;
}

.rk-type-hint {
    font-size: 13px;
    color: #94a3b8;
}

/* Główny Ekran Symulacji */
.rk-vs-main {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Wizualizacja SVG */
.rk-vs-visual {
    width: 100%;
    max-width: 400px;
    margin: 0 auto 30px auto;
    position: relative;
}

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

/* Animacje fal ciepła */
.heat-wave {
    opacity: 0;
    transform-origin: bottom center;
}

.state-anhydrite .heat-wave {
    animation: flowUpFast 1.5s infinite linear;
    stroke: var(--rk-vs-anhydrite);
}

.state-cement .heat-wave {
    animation: flowUpSlow 3s infinite linear;
    stroke: #fca5a5;
}

/* Opóźnienia dla płynności */
.hw-1 { animation-delay: 0.0s !important; }
.hw-2 { animation-delay: 0.5s !important; }
.hw-3 { animation-delay: 1.0s !important; }

@keyframes flowUpFast {
    0% { transform: translateY(10px) scale(0.8); opacity: 0; }
    50% { opacity: 0.8; }
    100% { transform: translateY(-40px) scale(1.2); opacity: 0; }
}

@keyframes flowUpSlow {
    0% { transform: translateY(10px) scale(0.8); opacity: 0; }
    50% { opacity: 0.5; }
    100% { transform: translateY(-20px) scale(1.1); opacity: 0; }
}

/* Zmienne elementy SVG za pomocą klas */
.mesh-layer { transition: opacity 0.3s; }
.state-anhydrite .mesh-layer { opacity: 0; }
.state-cement .mesh-layer { opacity: 1; }

.screed-mass { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
.state-anhydrite .screed-mass { height: 50px; y: 70; fill: #fef3c7; }
.state-cement .screed-mass { height: 65px; y: 55; fill: #cbd5e1; }

/* Tabela Parametrów (Dynamiczna) */
.rk-params-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.rk-param-box {
    background: rgba(0,0,0,0.2);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.05);
}

.rk-param-label {
    font-size: 12px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 8px;
    display: block;
}

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

.rk-param-value small {
    font-size: 12px;
    font-weight: 400;
    color: #94a3b8;
}

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

.badge-pro { background: rgba(16, 185, 129, 0.2); color: #34d399; }
.badge-con { background: rgba(239, 68, 68, 0.2); color: #f87171; }

@media (max-width: 768px) {
    .rk-vs-app { grid-template-columns: 1fr; }
    .rk-vs-sidebar { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); padding: 25px; }
    .rk-params-grid { grid-template-columns: 1fr; }
    .rk-vs-header { padding: 30px 25px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wybor",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Jaka wylewka na ogrzewanie podłogowe jest najlepsza? Anhydryt vs Cement",
    "description": "Porównanie jastrychu anhydrytowego i cementowego pod ogrzewanie podłogowe. Poznaj współczynniki lambda (przewodność cieplna), grubości oraz klasy wytrzymałości.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-materialy",
    "name": "Baza Danych: Właściwości termiczne jastrychów grzejnych 2026",
    "description": "Zestawienie parametrów inżynierskich określających wydajność ogrzewania płaszczyznowego w zależności od użytej wylewki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "współczynnik przewodzenia ciepła lambda",
      "jastrych anhydrytowy parametry",
      "wylewka cementowa plastyfikator",
      "wytrzymałość na ściskanie C20/F4",
      "bezwładność cieplna podłogówki"
    ],
    "measurementTechnique": "Określanie parametrów fizycznych (Lambda, MPa) na podstawie testów laboratoryjnych materiałów budowlanych oraz normy PN-EN.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych Anhydrytowy: Przewodność cieplna λ ≈ 1,6 - 2,0 W/(m·K), brak konieczności zbrojenia, grubość nad rurką min. 35mm.",
        "Jastrych Cementowy: Przewodność cieplna λ ≈ 1,1 - 1,4 W/(m·K), wysoka bezwładność, wymaga zbrojenia i plastyfikatorów."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-lambda",
    "name": "Symulator Przewodności Cieplnej (Lambda) i Doboru Wylewki",
    "description": "Interaktywny widget inżynierski analizujący przepływ ciepła i wymagania konstrukcyjne dla wylewek anhydrytowych i betonowych (cementowych).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG Support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-vs-container" id="wylewka-vs-app">
    
    <!-- Nagłówek merytoryczny -->
    <div class="rk-vs-header">
        <h2 class="rk-vs-title">Jaka wylewka na ogrzewanie podłogowe jest najlepsza?</h2>
        <p class="rk-vs-desc">
            Najlepsza wylewka to taka, która posiada wysoki <strong>współczynnik przewodzenia ciepła (lambda)</strong> oraz wysoką wytrzymałość na ściskanie (klasa minimum <strong>C20/F4</strong>). W nowoczesnym budownictwie wybieramy między jastrychem anhydrytowym (płynnym) a <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">cementowym (półsuchym z miksokreta)</a>. Zrozumienie, <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>, zaczyna się od wyboru tego materiału, ponieważ anhydryt dominuje w salonach i sypialniach ze względu na bezkonkurencyjne parametry termiczne.
        </p>
    </div>

    <!-- Moduł Interaktywny -->
    <div class="rk-vs-app state-anhydrite" id="rkVsEngine">
        
        <!-- Sidebar wyboru -->
        <div class="rk-vs-sidebar">
            <h3>Wybierz technologię</h3>
            
            <button class="rk-type-btn active" data-target="anhydrite">
                <span class="rk-type-name">Jastrych Anhydrytowy</span>
                <span class="rk-type-hint">System płynny, samopoziomujący</span>
            </button>
            
            <button class="rk-type-btn" data-target="cement">
                <span class="rk-type-name">Jastrych Cementowy</span>
                <span class="rk-type-hint">System półsuchy (miksokret)</span>
            </button>
        </div>

        <!-- Obszar symulacji i wyników -->
        <div class="rk-vs-main">
            
            <!-- Wizualizacja przekroju SVG -->
            <div class="rk-vs-visual">
                <svg viewBox="0 0 400 160" class="rk-svg-cross" xmlns="http://www.w3.org/2000/svg">
                    <!-- Fale Ciepła (Animowane klasy CSS) -->
                    <g class="heat-waves-group">
                        <path class="heat-wave hw-1" d="M100 110 Q110 70 100 20" fill="none" stroke-width="4" stroke-linecap="round"/>
                        <path class="heat-wave hw-2" d="M200 110 Q190 70 200 20" fill="none" stroke-width="4" stroke-linecap="round"/>
                        <path class="heat-wave hw-3" d="M300 110 Q310 70 300 20" fill="none" stroke-width="4" stroke-linecap="round"/>
                    </g>

                    <!-- Płytki / Wykończenie -->
                    <rect x="20" y="45" width="360" height="8" fill="#334155" rx="2"/>

                    <!-- Zmienna masa wylewki -->
                    <rect x="20" class="screed-mass" width="360" rx="3"/>

                    <!-- Siatka Zbrojeniowa (Widoczna tylko w cemencie) -->
                    <g class="mesh-layer" stroke="#64748b" stroke-width="1.5" opacity="0">
                        <line x1="20" y1="80" x2="380" y2="80" stroke-dasharray="8 4"/>
                        <line x1="20" y1="90" x2="380" y2="90" stroke-dasharray="8 4"/>
                    </g>

                    <!-- Rury PEX -->
                    <circle cx="100" cy="110" r="12" fill="#ef4444" stroke="#ffffff" stroke-width="3"/>
                    <circle cx="200" cy="110" r="12" fill="#ef4444" stroke="#ffffff" stroke-width="3"/>
                    <circle cx="300" cy="110" r="12" fill="#ef4444" stroke="#ffffff" stroke-width="3"/>

                    <!-- Izolacja EPS z folią -->
                    <rect x="20" y="125" width="360" height="4" fill="#3b82f6"/> <!-- Folia -->
                    <rect x="20" y="129" width="360" height="25" fill="#475569" rx="2"/> <!-- EPS -->
                </svg>
            </div>

            <!-- Dynamiczne parametry inżynierskie -->
            <div class="rk-params-grid">
                <div class="rk-param-box">
                    <span class="rk-param-label">Przewodność (Lambda)</span>
                    <span class="rk-param-value" id="valLambda">1,6 &#8211; 2,0 <small>W/(m·K)</small></span>
                    <div class="status-badge badge-pro" id="badgeLambda">Wysoka (Szybki nagrzew)</div>
                </div>
                <div class="rk-param-box">
                    <span class="rk-param-label">Wymagane zbrojenie</span>
                    <span class="rk-param-value" id="valZbroj">Brak</span>
                    <div class="status-badge badge-pro" id="badgeZbroj">Oszczędność czasu</div>
                </div>
                <div class="rk-param-box">
                    <span class="rk-param-label">Min. otulina nad rurą</span>
                    <span class="rk-param-value" id="valGrubosc">35 mm</span>
                    <div class="status-badge badge-pro" id="badgeGrubosc">Mniejsze obciążenie</div>
                </div>
            </div>

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

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Dyskretne zabezpieczenie domenowe (bez H-tagów)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('wylewka-vs-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Moduł interaktywny "Symulator Przewodności Cieplnej" stanowi własność Projekt-Ogrzewania.pl. Wykryto użycie na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Silnika Symulacji
    const engine = document.getElementById('rkVsEngine');
    const buttons = document.querySelectorAll('.rk-type-btn');
    
    // Elementy DOM do aktualizacji danych
    const vLambda = document.getElementById('valLambda');
    const vZbroj = document.getElementById('valZbroj');
    const vGrubosc = document.getElementById('valGrubosc');
    
    const bLambda = document.getElementById('badgeLambda');
    const bZbroj = document.getElementById('badgeZbroj');
    const bGrubosc = document.getElementById('badgeGrubosc');

    // Baza danych materiałów (Zgodna z wytycznymi)
    const materialsData = {
        anhydrite: {
            lambda: "1,6 - 2,0",
            zbroj: "Brak",
            grubosc: "35 mm",
            bLText: "Wysoka (Szybki nagrzew)",
            bLClass: "badge-pro",
            bZText: "Oszczędność czasu",
            bZClass: "badge-pro",
            bGText: "Mniejsze obciążenie",
            bGClass: "badge-pro"
        },
        cement: {
            lambda: "1,1 - 1,4",
            zbroj: "Siatka / Włókna",
            grubosc: "Min. 45 mm",
            bLText: "Wysoka bezwładność",
            bLClass: "badge-con",
            bZText: "Wymaga plastyfikatorów",
            bZClass: "badge-con",
            bGText: "Większa masa stropu",
            bGClass: "badge-con"
        }
    };

    function updateSimulator(type) {
        const data = materialsData[type];
        
        // Aktualizacja Wartości
        vLambda.innerHTML = `${data.lambda} <small>W/(m·K)</small>`;
        vZbroj.innerHTML = data.zbroj;
        vGrubosc.innerHTML = data.grubosc;

        // Aktualizacja Etykiet (Badges)
        bLambda.textContent = data.bLText;
        bLambda.className = `status-badge ${data.bLClass}`;
        
        bZbroj.textContent = data.bZText;
        bZbroj.className = `status-badge ${data.bZClass}`;
        
        bGrubosc.textContent = data.bGText;
        bGrubosc.className = `status-badge ${data.bGClass}`;

        // Zmiana klas silnika dla animacji SVG
        engine.className = `rk-vs-app state-${type}`;
    }

    // Nasłuchiwanie na kliknięcia
    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zarządzanie stanem 'active'
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie celu i aktualizacja
            const target = this.getAttribute('data-target');
            updateSimulator(target);
        });
    });
});
</script>



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



<style>
:root {
    --rk-thick-dark: #0f172a;
    --rk-thick-panel: #f8fafc;
    --rk-thick-primary: #3b82f6; /* Techniczny niebieski */
    --rk-thick-success: #10b981; /* Optymalnie */
    --rk-thick-warning: #f59e0b; /* Zbyt grubo */
    --rk-thick-danger: #ef4444; /* Zbyt cienko - ryzyko */
    --rk-thick-border: #cbd5e1;
    --rk-thick-text: #334155;
    --rk-thick-bg: #ffffff;
}

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

/* Nagłówek i Treść */
.rk-thick-header {
    padding: 45px 50px 30px;
    background: var(--rk-thick-bg);
    border-bottom: 2px dashed var(--rk-thick-border);
}

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

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

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

.rk-thick-text a {
    color: var(--rk-thick-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: all 0.3s;
}

.rk-thick-text a:hover {
    border-bottom-color: var(--rk-thick-primary);
    background: rgba(59, 130, 246, 0.05);
}

/* Aplikacja: Kalibrator Bezwładności */
.rk-thick-app {
    background: var(--rk-thick-dark);
    color: #ffffff;
    padding: 40px 50px;
}

.rk-app-header {
    text-align: center;
    margin-bottom: 35px;
}

.rk-app-header h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: #f1f5f9;
}

/* Przełącznik Materiału */
.rk-material-switch {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-mat-btn {
    background: rgba(255,255,255,0.05);
    border: 2px solid rgba(255,255,255,0.1);
    color: #94a3b8;
    padding: 12px 24px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 15px;
    cursor: pointer;
    transition: all 0.3s;
}

.rk-mat-btn.active {
    background: rgba(59, 130, 246, 0.2);
    border-color: var(--rk-thick-primary);
    color: #ffffff;
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
}

/* Sekcja Suwaka */
.rk-slider-wrapper {
    position: relative;
    padding: 20px 0 40px;
}

.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 12px;
    background: #334155;
    border-radius: 10px;
    outline: none;
    cursor: ew-resize;
    position: relative;
    z-index: 2;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    border: 5px solid var(--rk-thick-primary);
    box-shadow: 0 0 15px rgba(0,0,0,0.5);
    cursor: grab;
    transition: transform 0.1s;
}

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

/* Strefy optymalne wizualizacja pod suwakiem */
.rk-slider-zones {
    position: absolute;
    top: 20px;
    left: 0;
    width: 100%;
    height: 12px;
    border-radius: 10px;
    z-index: 1;
    overflow: hidden;
    display: flex;
    opacity: 0.5;
}

/* Ekran Wyników */
.rk-results-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wizualizacja */
.rk-svg-box {
    background: #1e293b;
    border-radius: 16px;
    padding: 30px 15px;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
    position: relative;
}

.rk-svg-scene {
    width: 100%;
    height: auto;
    max-width: 320px;
    margin: 0 auto;
    display: block;
}

.anim-screed-level {
    transition: all 0.3s ease-out;
}

.rk-alert-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 6px;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.3s;
    z-index: 10;
}

.rk-alert-badge.show {
    opacity: 1;
    transform: translateY(0);
}

/* Dynamiczne stany dla kalibratora */
.state-danger-low .rk-range-input::-webkit-slider-thumb { border-color: var(--rk-thick-danger); }
.state-danger-low .anim-screed-level { fill: #7f1d1d; }
.state-danger-low .rk-alert-badge { background: rgba(239, 68, 68, 0.2); color: #fca5a5; }

.state-optimal .rk-range-input::-webkit-slider-thumb { border-color: var(--rk-thick-success); }
.state-optimal .anim-screed-level { fill: #064e3b; }
.state-optimal .rk-alert-badge { background: rgba(16, 185, 129, 0.2); color: #6ee7b7; }

.state-danger-high .rk-range-input::-webkit-slider-thumb { border-color: var(--rk-thick-warning); }
.state-danger-high .anim-screed-level { fill: #78350f; }
.state-danger-high .rk-alert-badge { background: rgba(245, 158, 11, 0.2); color: #fcd34d; }

/* Panel Danych */
.rk-data-panel {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-data-row {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

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

.rk-data-val {
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
    font-variant-numeric: tabular-nums;
}

.rk-data-val small {
    font-size: 14px;
    font-weight: 500;
    color: #64748b;
    margin-left: 4px;
}

@media (max-width: 768px) {
    .rk-thick-header, .rk-thick-app { padding: 30px 20px; }
    .rk-results-grid { grid-template-columns: 1fr; }
    .rk-data-row { flex-direction: column; align-items: flex-start; gap: 5px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-grubosc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Optymalna grubość wylewki na ogrzewanie podłogowe - Złoty środek inżynierii",
    "description": "Zgodnie z normą PN-EN 1264 optymalna grubość jastrychu to 65 mm (cement) i 50-60 mm (anhydryt). Sprawdź, jak każdy dodatkowy centymetr wpływa na bezwładność termiczną i obciążenie stropu.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-bezwladnosc",
    "name": "Tabela Bezwładności i Obciążeń Wylewek 2026",
    "description": "Zestawienie wzrostu masy jastrychu (kg/m2) oraz opóźnienia w reakcji systemu na zmianę temperatury w funkcji grubości warstwy przykrywającej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "optymalna grubość wylewki na podłogówkę",
      "norma obliczeń ogrzewania podłogowego EN 1264",
      "minimalna warstwa przykrycia rury sd",
      "obciążenie stropu ogrzewanie podłogowe",
      "czas reakcji ogrzewania bezwładność"
    ],
    "measurementTechnique": "Algorytmiczne obliczenia inżynierskie przyrostu masy (ok. 18 kg na każde 10mm) i czasu nagrzewania (ok. 38 minut na każde 10mm) w stosunku do wylewki odniesienia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Jastrych Cementowy: Całkowita optymalna grubość 65 mm (min. przykrycie 45 mm).",
        "Jastrych Anhydrytowy: Całkowita optymalna grubość 50-60 mm (min. przykrycie 35 mm).",
        "Konsekwencje: Zwiększenie grubości o 10 mm to +15-20 kg obciążenia/m² i +30-45 min. opóźnienia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-kalibrator",
    "name": "Inżynierski Kalibrator Bezwładności Wylewki",
    "description": "Interaktywny suwak obliczający w czasie rzeczywistym wpływ grubości jastrychu (w mm) na obciążenie stropu, czas odpowiedzi termostatu oraz zgodność grubości sd z normą PN-EN 1264.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range Input, JavaScript and SVG animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-thick-container" id="grubosc-app-core">
    
    <div class="rk-thick-header">
        <h2 class="rk-thick-title">Jaka jest optymalna grubość wylewki na ogrzewanie podłogowe?</h2>
        
        <p class="rk-thick-text">
            Optymalna całkowita <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubość wylewki</a> wynosi <strong>65 mm dla jastrychu cementowego</strong> oraz <strong>50-60 mm dla anhydrytowego</strong>, licząc od warstwy izolacji termicznej. Zgodnie z <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normą PN-EN 1264</a>, minimalna warstwa przykrycia ponad zewnętrzną średnicą rury (s<sub>d</sub>) powinna wynosić <strong>45 mm</strong> dla cementu i <strong>35 mm</strong> dla anhydrytu (przy klasie wytrzymałości min. C20).
        </p>

        <p class="rk-thick-text">
            Zwiększenie grubości o każde 10 mm to dodatkowe <strong>15-20 kg obciążenia na m²</strong> stropu i drastyczne wydłużenie <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">czasu nagrzewania</a> (reakcji na zmianę nastawy na <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostacie pokojowym</a>) o około <strong>30-45 minut</strong>. W moich projektach dążymy do inżynierskiego złotego środka: balansu między stabilnością temperatury a sterowalnością.
        </p>
    </div>

    <div class="rk-thick-app">
        <div class="rk-app-header">
            <h3>Kalibrator Bezwładności Wylewki (Symulator)</h3>
            <p style="color: #94a3b8; margin:0; font-size: 14px;">Sprawdź, jak grubość wpływa na fizykę budynku. Zmień parametry poniżej.</p>
        </div>

        <div class="rk-material-switch">
            <button class="rk-mat-btn active" data-mat="cement">Jastrych Cementowy</button>
            <button class="rk-mat-btn" data-mat="anhydryt">Jastrych Anhydrytowy</button>
        </div>

        <div class="rk-slider-wrapper" id="rkZoneContainer">
            <div class="rk-slider-zones" id="rkZones"></div>
            
            <input type="range" min="30" max="100" value="65" class="rk-range-input" id="rkThickSlider">
            <div style="display: flex; justify-content: space-between; margin-top: 10px; font-size: 12px; color: #64748b; font-weight: 700;">
                <span>30 mm (Zbyt cienko)</span>
                <span>100 mm (Bunkier)</span>
            </div>
        </div>

        <div class="rk-results-grid" id="rkResultEngine">
            
            <div class="rk-svg-box">
                <div class="rk-alert-badge" id="rkAlertBadge">
                    <svg width="14" height="14" 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>
                    <span id="rkAlertText">Ryzyko Pęknięć</span>
                </div>

                <svg viewBox="0 0 230 200" class="rk-svg-scene" xmlns="http://www.w3.org/2000/svg">
                    <rect x="0" y="0" width="230" height="200" fill="none" />
                    
                    <rect x="20" y="150" width="160" height="40" fill="#334155" rx="2" />
                    <text x="30" y="175" fill="#64748b" font-size="12">Izolacja EPS</text>
                    
                    <circle cx="100" cy="142" r="8" fill="#ef4444" stroke="#ffffff" stroke-width="2" />
                    <line x1="100" y1="142" x2="100" y2="150" stroke="#fff" stroke-dasharray="2 2" /> <rect id="svgScreed" class="anim-screed-level" x="20" y="85" width="160" height="65" rx="2" opacity="0.9"/>
                    
                    <path id="svgMeasureLine" class="anim-screed-level" d="M 185 150 L 185 85" stroke="#cbd5e1" stroke-width="2" marker-start="url(#arrow)" marker-end="url(#arrow)"/>
                    <text id="svgMeasureText" x="205" y="120" fill="#f8fafc" font-size="16" font-weight="bold" text-anchor="middle">65</text>
                    
                    <defs>
                        <marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="4" markerHeight="4" orient="auto-start-reverse">
                            <path d="M 0 0 L 10 5 L 0 10 z" fill="#cbd5e1" />
                        </marker>
                    </defs>
                </svg>
            </div>

            <div class="rk-data-panel">
                <div class="rk-data-row">
                    <span class="rk-data-label">Całkowita Grubość</span>
                    <span class="rk-data-val" id="valTotal">65<small>mm</small></span>
                </div>
                <div class="rk-data-row">
                    <span class="rk-data-label">Otulina nad rurą (s<sub>d</sub>)</span>
                    <span class="rk-data-val" id="valSd">49<small>mm</small></span>
                </div>
                <div class="rk-data-row">
                    <span class="rk-data-label">Szacunkowa masa jastrychu</span>
                    <span class="rk-data-val" id="valWeight">143<small>kg/m²</small></span>
                </div>
                <div class="rk-data-row">
                    <span class="rk-data-label">Dodatkowe opóźnienie reakcji</span>
                    <span class="rk-data-val" style="color: #fca5a5;" id="valLag">+0<small>min</small></span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domeny (Bez znaczników nagłówków)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('grubosc-app-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; max-width: 950px; margin: 40px auto; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Skryptów Narzędziowych</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Kalibrator Bezwładności Wylewki oraz dane strukturalne JSON-LD podlegają ochronie prawnoautorskiej serwisu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Kalibratora
    const slider = document.getElementById('rkThickSlider');
    const matBtns = document.querySelectorAll('.rk-mat-btn');
    const engineBox = document.getElementById('rkResultEngine');
    const zonesBox = document.getElementById('rkZones');
    
    // SVG Elements
    const svgScreed = document.getElementById('svgScreed');
    const svgMeasureLine = document.getElementById('svgMeasureLine');
    const svgMeasureText = document.getElementById('svgMeasureText');
    const alertBadge = document.getElementById('rkAlertBadge');
    const alertText = document.getElementById('rkAlertText');

    // Wartości liczbowe
    const vTotal = document.getElementById('valTotal');
    const vSd = document.getElementById('valSd');
    const vWeight = document.getElementById('valWeight');
    const vLag = document.getElementById('valLag');

    // Konfiguracja norm i fizyki
    let currentMat = 'cement'; // 'cement' lub 'anhydryt'
    const RURA_DIA = 16;
    
    const matConfig = {
        cement: {
            minSdNorm: 45,
            densityKgMm: 2.2, // ~2200 kg/m3
            optimalMin: 60,
            optimalMax: 70
        },
        anhydryt: {
            minSdNorm: 35,
            densityKgMm: 2.0, // ~2000 kg/m3
            optimalMin: 50,
            optimalMax: 60
        }
    };

    function drawZones() {
        const conf = matConfig[currentMat];
        const totalRange = 100 - 30; // 70 jednostek
        
        // Poniżej normy (Czerwony)
        const pDangerLow = ((conf.optimalMin - 30) / totalRange) * 100;
        // Optymalna (Zielony)
        const pOptimal = ((conf.optimalMax - conf.optimalMin) / totalRange) * 100;
        // Za gruba (Żółty)
        const pDangerHigh = 100 - pDangerLow - pOptimal;

        zonesBox.innerHTML = `
            <div style="width: ${pDangerLow}%; background: var(--rk-thick-danger);"></div>
            <div style="width: ${pOptimal}%; background: var(--rk-thick-success);"></div>
            <div style="width: ${pDangerHigh}%; background: var(--rk-thick-warning);"></div>
        `;
    }

    function updateCalculator() {
        const t = parseInt(slider.value); // grubość całkowita (30 do 100)
        const conf = matConfig[currentMat];
        
        // Obliczenia
        const sd = t - RURA_DIA; // grubość nad rurą
        const weight = Math.round(t * conf.densityKgMm);
        
        // Obliczenie opóźnienia (delta względem minimum optymalnego)
        // Zakładamy, że każde 10mm PONAD optimum = +38 min (średnia z 30-45)
        let lag = 0;
        if (t > conf.optimalMax) {
            lag = Math.round(((t - conf.optimalMax) / 10) * 38);
        }

        // Aktualizacja UI Tekstowego
        vTotal.innerHTML = `${t}<small>mm</small>`;
        vSd.innerHTML = `${sd}<small>mm</small>`;
        vWeight.innerHTML = `${weight}<small>kg/m²</small>`;
        
        if (lag > 0) {
            vLag.innerHTML = `+${lag}<small>min</small>`;
            vLag.style.color = '#fca5a5';
        } else {
            vLag.innerHTML = `Norma`;
            vLag.style.color = '#6ee7b7';
        }

        // Aktualizacja SVG i Oceny (Klas CSS)
        engineBox.classList.remove('state-danger-low', 'state-optimal', 'state-danger-high');
        
        // Skalowanie w SVG: Y base = 150. 1mm = 1px na rysunku (skala 1:1 dla uproszczenia wizualnego 30-100)
        const rectHeight = t; 
        const rectY = 150 - t;
        
        svgScreed.setAttribute('height', rectHeight);
        svgScreed.setAttribute('y', rectY);
        svgMeasureLine.setAttribute('d', `M 185 150 L 185 ${rectY}`);
        // Wyrównanie Y do środka linii
        svgMeasureText.setAttribute('y', rectY + (rectHeight/2) + 5);
        svgMeasureText.textContent = t;

        // Logika statusu inżynierskiego
        if (sd < conf.minSdNorm) {
            engineBox.classList.add('state-danger-low');
            alertText.textContent = "Brak normy - Spękania!";
            alertBadge.classList.add('show');
        } else if (t >= conf.optimalMin && t <= conf.optimalMax) {
            engineBox.classList.add('state-optimal');
            alertText.textContent = "Złoty Środek";
            alertBadge.classList.add('show');
        } else {
            engineBox.classList.add('state-danger-high');
            alertText.textContent = "Wysoka Bezwładność!";
            alertBadge.classList.add('show');
        }
    }

    // Nasłuch na Slider
    slider.addEventListener('input', updateCalculator);

    // Nasłuch na zmianę materiału
    matBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            matBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            currentMat = this.getAttribute('data-mat');
            
            // Dopasuj domyślny slider do optimum materiału przy przełączeniu
            if(currentMat === 'anhydryt') slider.value = 55;
            if(currentMat === 'cement') slider.value = 65;

            drawZones();
            updateCalculator();
        });
    });

    // Inicjalizacja Startowa
    drawZones();
    updateCalculator();
});
</script>



<p class="wp-block-paragraph"></p>



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



<style>
:root {
    --rk-heat-dark: #0f172a;
    --rk-heat-panel: #1e293b;
    --rk-heat-blue: #0ea5e9; /* Woda/Wilgoć */
    --rk-heat-orange: #f97316; /* Ciepło */
    --rk-heat-red: #ef4444; /* Maksymalna temperatura */
    --rk-heat-green: #10b981; /* Gotowość */
    --rk-heat-bg: #ffffff;
    --rk-heat-text: #334155;
    --rk-heat-border: #e2e8f0;
}

.rk-heat-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-heat-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(249, 115, 22, 0.1);
    border: 1px solid var(--rk-heat-border);
    overflow: hidden;
}

/* Sekcja Treści */
.rk-heat-content {
    padding: 40px 50px 30px;
    background: #ffffff;
    border-bottom: 2px dashed var(--rk-heat-border);
}

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

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

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

.rk-heat-text a {
    color: var(--rk-heat-orange);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(249, 115, 22, 0.2);
    transition: all 0.3s;
}

.rk-heat-text a:hover {
    border-bottom-color: var(--rk-heat-orange);
    background: rgba(249, 115, 22, 0.05);
}

.rk-heat-alert {
    display: flex;
    gap: 15px;
    background: #fff7ed;
    border-left: 4px solid var(--rk-heat-orange);
    padding: 20px;
    border-radius: 0 12px 12px 0;
    margin-top: 25px;
}

.rk-heat-alert-icon {
    color: var(--rk-heat-orange);
    flex-shrink: 0;
}

.rk-heat-alert p {
    margin: 0;
    font-size: 15px;
    color: #9a3412;
}

/* Aplikacja Interaktywna */
.rk-heat-app {
    background: var(--rk-heat-dark);
    color: #ffffff;
    padding: 40px 50px;
}

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

.rk-app-header h3 {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: #f8fafc;
}

.rk-app-header p {
    color: #94a3b8;
    font-size: 14px;
    margin: 0;
}

/* Material Toggle */
.rk-heat-mat-toggle {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 35px;
}

.rk-btn-mat {
    background: rgba(255,255,255,0.05);
    border: 2px solid rgba(255,255,255,0.1);
    color: #94a3b8;
    padding: 12px 25px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 15px;
    cursor: pointer;
    transition: all 0.3s;
}

.rk-btn-mat.active {
    background: rgba(249, 115, 22, 0.15);
    border-color: var(--rk-heat-orange);
    color: #ffffff;
    box-shadow: 0 0 20px rgba(249, 115, 22, 0.2);
}

/* Czas Oczekiwania (Dynamiczny) */
.rk-wait-phase {
    text-align: center;
    background: rgba(14, 165, 233, 0.1);
    border: 1px dashed var(--rk-heat-blue);
    padding: 15px;
    border-radius: 12px;
    margin-bottom: 30px;
}

.rk-wait-phase span {
    display: block;
    font-size: 13px;
    color: var(--rk-heat-blue);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.rk-wait-phase strong {
    font-size: 24px;
    color: #ffffff;
}

/* Suwak Dni Wygrzewania */
.rk-timeline-slider {
    margin-bottom: 40px;
}

.rk-range-days {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 10px;
    outline: none;
}

.rk-range-days::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--rk-heat-orange);
    border: 4px solid #ffffff;
    box-shadow: 0 0 15px rgba(249, 115, 22, 0.6);
    cursor: pointer;
    transition: transform 0.1s;
}

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

.rk-slider-ticks {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

/* Ekran Wyników */
.rk-heat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wizualizacja */
.rk-heat-svg-box {
    background: #1e293b;
    border-radius: 16px;
    padding: 30px 20px;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
    position: relative;
    text-align: center;
}

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

/* Animacje i dynamiczne kolory SVG */
.anim-pipe { transition: fill 0.5s ease, filter 0.5s ease; }
.anim-therm-fill { transition: height 0.5s ease, y 0.5s ease, fill 0.5s ease; }
.anim-moisture { transition: opacity 0.5s ease; animation: floatUp 2s infinite linear; }

@keyframes floatUp {
    0% { transform: translateY(0) scale(0.8); opacity: 0; }
    50% { opacity: 0.6; }
    100% { transform: translateY(-30px) scale(1.2); opacity: 0; }
}

.delay-1 { animation-delay: 0s; }
.delay-2 { animation-delay: 0.6s; }
.delay-3 { animation-delay: 1.2s; }

/* Panel Danych */
.rk-stats-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-item {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 15px 20px;
    border-radius: 12px;
    display: flex;
    flex-direction: column;
}

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

.rk-stat-val {
    font-size: 22px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: 8px;
}

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

.badge-wait { background: rgba(14, 165, 233, 0.2); color: #7dd3fc; }
.badge-heat { background: rgba(249, 115, 22, 0.2); color: #fdba74; }
.badge-done { background: rgba(16, 185, 129, 0.2); color: #6ee7b7; }

@media (max-width: 768px) {
    .rk-heat-header, .rk-heat-app { padding: 30px 20px; }
    .rk-heat-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-wygrzewanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Ile trwa schnięcie i kiedy można uruchomić wygrzewanie podłogówki?",
    "description": "Harmonogram wygrzewania technologicznego wylewki. Sprawdź, dlaczego anhydryt schnie 7 dni, a beton 28 dni. Instrukcja podnoszenia temperatury zasilania krok po kroku.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-harmonogram",
    "name": "Harmonogram Wygrzewania Technologicznego Jastrychu",
    "description": "Zestawienie ram czasowych oraz przyrostów temperatury krzywej grzewczej wymaganych do bezpiecznego usunięcia wilgoci z jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czas schnięcia wylewki anhydrytowej",
      "wygrzewanie technologiczne jastrychu",
      "maksymalna temperatura zasilania podłogówki",
      "harmonogram podnoszenia temperatury",
      "skurcz i spękania betonu"
    ],
    "measurementTechnique": "Algorytm temperaturowy: start 20-25°C przez 3 dni, następnie przyrost +5°C/dobę aż do osiągnięcia projektowej temperatury zasilania Tz (np. 45°C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Faza 1 (Oczekiwanie): Cement = 28 dni, Anhydryt = 7 dni naturalnego wiązania.",
        "Faza 2 (Start): Utrzymanie 25°C przez 3 doby robocze.",
        "Faza 3 (Progresja): Podnoszenie temperatury zasilania równe 5°C każdego dnia.",
        "Cel końcowy: Pozbycie się resztkowej wilgoci CM przed montażem okładzin (płytek/paneli)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-wygrzewanie",
    "name": "Symulator Wygrzewania Technologicznego",
    "description": "Interaktywny kalendarz budowlany z suwakiem pozwalający sprawdzić wymaganą temperaturę zasilania w danym dniu procesu wygrzewania posadzki.",
    "applicationCategory": "ConstructionCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range Input, JavaScript and SVG animations",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-heat-container" id="wygrzewanie-app-core">
    
    <div class="rk-heat-content">
        <h2 class="rk-heat-title">Ile trwa schnięcie i kiedy można uruchomić wygrzewanie?</h2>
        
        <div class="rk-heat-text">
            <p>
                Czas schnięcia jastrychu cementowego wynosi standardowo <strong>28 dni</strong>, natomiast jastrych anhydrytowy osiąga gotowość do wygrzewania już po <strong>7 dniach</strong>. Należy pamiętać, gdy planujesz <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">montaż ogrzewania w nowym domu</a>, że proces ten absolutnie nie może być przyspieszany przeciągami. Wilgoć musi uchodzić naturalnie i powoli, aby uniknąć destrukcyjnego skurczu materiału i spękań.
            </p>
            <p>
                Wygrzewanie wylewki (tzw. wygrzewanie technologiczne) zaczynamy od temperatury <strong>20-25°C</strong>, którą utrzymujemy stabilnie przez 3 dni. Następnie podnosimy nastawę o <strong>5°C na dobę</strong>, aż do osiągnięcia <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">projektowej temperatury zasilania</a> (np. 45°C). 
            </p>
        </div>

        <div class="rk-heat-alert">
            <svg class="rk-heat-alert-icon" width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            <p><strong>Uwaga inżynierska:</strong> Pominięcie tego kroku przed kładzeniem docelowych <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">płytek lub paneli</a> to gwarancja ich całkowitego odspojenia (tzw. wysadzenia posadzki) już w pierwszym sezonie grzewczym.</p>
        </div>
    </div>

    <div class="rk-heat-app">
        <div class="rk-app-header">
            <h3>Termo-Symulator Wygrzewania Technologicznego</h3>
            <p>Przeprowadź wirtualny proces pozbywania się wilgoci z posadzki.</p>
        </div>

        <div class="rk-heat-mat-toggle">
            <button class="rk-btn-mat active" data-mat="anhydryt">Anhydryt</button>
            <button class="rk-btn-mat" data-mat="cement">Cement</button>
        </div>

        <div class="rk-wait-phase">
            <span>Czas wiązania przed startem pompy ciepła</span>
            <strong id="valWaitTime">7 Dni</strong>
        </div>

        <div class="rk-timeline-slider">
            <input type="range" min="1" max="8" value="1" class="rk-range-days" id="rkDaySlider">
            <div class="rk-slider-ticks">
                <span>Dzień 1 (Start)</span>
                <span>Dzień 4 (Progresja)</span>
                <span>Dzień 8 (Koniec)</span>
            </div>
        </div>

        <div class="rk-heat-grid">
            
            <div class="rk-heat-svg-box">
                <svg viewBox="0 0 200 160" class="rk-svg-cross" xmlns="http://www.w3.org/2000/svg">
                    <rect x="170" y="20" width="12" height="100" fill="#334155" rx="6"/>
                    <rect id="svgThermometer" class="anim-therm-fill" x="170" y="90" width="12" height="30" fill="#3b82f6" rx="6"/>
                    <circle id="svgThermBulb" class="anim-therm-fill" cx="176" cy="120" r="12" fill="#3b82f6"/>
                    
                    <g id="svgMoistureGroup">
                        <path class="anim-moisture delay-1" d="M 60 70 Q 65 60 60 50 Q 55 60 60 70" fill="#0ea5e9"/>
                        <path class="anim-moisture delay-2" d="M 100 80 Q 105 70 100 60 Q 95 70 100 80" fill="#0ea5e9"/>
                        <path class="anim-moisture delay-3" d="M 140 70 Q 145 60 140 50 Q 135 60 140 70" fill="#0ea5e9"/>
                    </g>

                    <rect x="20" y="90" width="140" height="60" fill="#64748b" rx="2" opacity="0.8"/>
                    
                    <circle id="svgPipe1" class="anim-pipe" cx="50" cy="125" r="10" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                    <circle id="svgPipe2" class="anim-pipe" cx="90" cy="125" r="10" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                    <circle id="svgPipe3" class="anim-pipe" cx="130" cy="125" r="10" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                </svg>
            </div>

            <div class="rk-stats-list">
                <div class="rk-stat-item">
                    <span class="rk-stat-label">Dzień Protokołu</span>
                    <span class="rk-stat-val" id="valDay">1</span>
                </div>
                <div class="rk-stat-item">
                    <span class="rk-stat-label">Nastawa Temperatury Zasilania</span>
                    <div class="rk-stat-val">
                        <span id="valTemp">25°C</span>
                        <span class="rk-badge badge-wait" id="valBadge">Utrzymanie</span>
                    </div>
                </div>
                <div class="rk-stat-item">
                    <span class="rk-stat-label">Status Wilgoci (Metoda CM)</span>
                    <span class="rk-stat-val" id="valStatus" style="font-size: 16px;">Intensywne odparowywanie</span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Dyskretne zabezpieczenie domenowe (bez znaczników nagłówków)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('wygrzewanie-app-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; max-width: 950px; margin: 40px auto; font-family: sans-serif;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Termo-Symulator Wygrzewania Technologicznego jest wyłączną własnością serwisu Projekt-Ogrzewania.pl. Wykryto nieautoryzowaną domenę.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora
    const matBtns = document.querySelectorAll('.rk-btn-mat');
    const waitTimeText = document.getElementById('valWaitTime');
    const slider = document.getElementById('rkDaySlider');
    
    // UI Elements
    const vDay = document.getElementById('valDay');
    const vTemp = document.getElementById('valTemp');
    const vBadge = document.getElementById('valBadge');
    const vStatus = document.getElementById('valStatus');
    
    // SVG Elements
    const pipes = [document.getElementById('svgPipe1'), document.getElementById('svgPipe2'), document.getElementById('svgPipe3')];
    const thermFill = document.getElementById('svgThermometer');
    const thermBulb = document.getElementById('svgThermBulb');
    const moistureGrp = document.getElementById('svgMoistureGroup');

    // Obsługa przełącznika materiałów
    matBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            matBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            
            const mat = this.getAttribute('data-mat');
            if(mat === 'anhydryt') {
                waitTimeText.textContent = "7 Dni";
            } else {
                waitTimeText.textContent = "28 Dni";
            }
        });
    });

    // Mechanizm obliczania protokołu wygrzewania
    function updateProtocol() {
        const day = parseInt(slider.value);
        let temp = 25; // Baza
        let color = '#3b82f6'; // Niebieski (chłodny/startowy)
        let stateText = "";
        let badgeClass = "";
        let badgeText = "";
        let moistureOpacity = "1";

        // Obliczenia logiki z tekstu: 
        // Dni 1-3: 25°C
        // Dzień 4+: +5°C na dobę aż do 45°C
        if (day >= 1 && day <= 3) {
            temp = 25;
            color = '#f59e0b'; // Ciepły żółty
            stateText = "Intensywne odparowywanie";
            badgeClass = "badge-wait";
            badgeText = "Utrzymanie";
            moistureOpacity = "1";
        } else if (day > 3 && day < 8) {
            temp = 25 + ((day - 3) * 5); // Dzień 4 = 30C, Dzień 5 = 35C, itd.
            color = '#f97316'; // Pomarańczowy
            stateText = "Zmniejszona emisja pary wodnej";
            badgeClass = "badge-heat";
            badgeText = "+5°C / Dobę";
            moistureOpacity = (1 - ((day - 3) * 0.2)).toString(); // Zanikanie wilgoci
        } else if (day >= 8) {
            temp = 45; // Max 45°C w 7/8 dniu podnoszenia
            color = '#ef4444'; // Czerwony (Gorący)
            stateText = "Wylewka sucha - Gotowa na płytki!";
            badgeClass = "badge-done";
            badgeText = "Sukces";
            moistureOpacity = "0"; // Brak wilgoci
        }

        // Aktualizacja Tekstów
        vDay.textContent = day;
        vTemp.textContent = temp + "°C";
        vStatus.textContent = stateText;
        
        vBadge.textContent = badgeText;
        vBadge.className = "rk-badge " + badgeClass;

        // Aktualizacja SVG - Rury
        pipes.forEach(p => {
            p.setAttribute('fill', color);
            p.style.filter = `drop-shadow(0 0 5px ${color})`;
        });

        // Aktualizacja SVG - Termometr (Max wys = 100, Min Y = 20, Max Y = 120)
        // Zakres temperatur do symulacji: 20C do 50C (30 jednostek). 
        // 25C to 5 z 30 jednostek = 16%. 45C to 25 z 30 jednostek = 83%.
        const percentFill = ((temp - 15) / 35); // Przepustowość wizualna
        const thermHeight = 100 * percentFill;
        const thermY = 120 - thermHeight;

        thermFill.setAttribute('height', thermHeight);
        thermFill.setAttribute('y', thermY);
        thermFill.setAttribute('fill', color);
        thermBulb.setAttribute('fill', color);

        // Aktualizacja SVG - Zanikanie wilgoci
        moistureGrp.style.opacity = moistureOpacity;
    }

    // Nasłuch na suwak
    slider.addEventListener('input', updateProtocol);

    // Inicjalizacja początkowa
    updateProtocol();
});
</script>



<p class="wp-block-paragraph"></p>



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



<style>
:root {
    --rk-comp-dark: #0f172a;
    --rk-comp-accent: #3b82f6;
    --rk-comp-cement: #94a3b8;
    --rk-comp-anhydryt: #fbbf24;
    --rk-comp-bg: #ffffff;
    --rk-comp-border: #e2e8f0;
    --rk-comp-text: #334155;
}

.rk-comparator-app {
    max-width: 950px;
    margin: 45px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: var(--rk-comp-bg);
    border-radius: 24px;
    border: 1px solid var(--rk-comp-border);
    box-shadow: 0 20px 50px -15px rgba(15, 23, 42, 0.1);
    overflow: hidden;
}

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

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

.rk-comp-intro {
    font-size: 16px;
    line-height: 1.7;
    color: var(--rk-comp-text);
    max-width: 800px;
}

.rk-comp-intro a {
    color: var(--rk-comp-accent);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 2px solid rgba(59, 130, 246, 0.1);
}

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

/* Panel sterowania (Mobile Tabs Style) */
.rk-comp-controls {
    display: flex;
    padding: 20px 50px;
    gap: 10px;
    overflow-x: auto;
    background: #ffffff;
    scrollbar-width: none;
}

.rk-comp-tab {
    white-space: nowrap;
    padding: 10px 20px;
    background: #f1f5f9;
    border: 1px solid var(--rk-comp-border);
    border-radius: 99px;
    font-size: 14px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    transition: all 0.3s;
}

.rk-comp-tab.active {
    background: var(--rk-comp-dark);
    color: #ffffff;
    border-color: var(--rk-comp-dark);
}

/* Obszar wizualizacji danych */
.rk-comp-display {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    padding: 40px 50px;
    background: #ffffff;
    align-items: center;
}

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

.rk-comp-info p {
    font-size: 15px;
    line-height: 1.6;
    color: #64748b;
    margin-bottom: 20px;
}

/* Wykresy SVG */
.rk-svg-viz {
    width: 100%;
    max-width: 350px;
    margin: 0 auto;
}

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

.rk-bar-label {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
    color: var(--rk-comp-dark);
}

.rk-bar-bg {
    height: 12px;
    background: #f1f5f9;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
}

.rk-bar-fill {
    height: 100%;
    border-radius: 6px;
    transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.fill-cement { background: var(--rk-comp-cement); }
.fill-anhydryt { background: var(--rk-comp-anhydryt); }

/* Legenda */
.rk-comp-legend {
    display: flex;
    gap: 20px;
    margin-top: 20px;
    font-size: 13px;
    font-weight: 600;
}

.leg-item { display: flex; align-items: center; gap: 8px; }
.dot { width: 10px; height: 10px; border-radius: 50%; }

/* Tabela mobilna (Fallback) */
.rk-comp-table-box {
    padding: 0 50px 40px;
}

.rk-tech-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.rk-tech-table th {
    text-align: left;
    padding: 15px;
    background: #f8fafc;
    border-bottom: 2px solid var(--rk-comp-border);
    color: var(--rk-comp-dark);
}

.rk-tech-table td {
    padding: 15px;
    border-bottom: 1px solid var(--rk-comp-border);
    color: var(--rk-comp-text);
}

.rk-tech-table tr:hover { background: #fcfcfc; }

@media (max-width: 768px) {
    .rk-comp-display { grid-template-columns: 1fr; padding: 30px 25px; }
    .rk-comp-header, .rk-comp-controls, .rk-comp-table-box { padding: 25px; }
    .rk-comp-header h2 { font-size: 22px; }
    .rk-comp-info h3 { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Parametry techniczne wylewek – Porównanie inżynierskie",
    "description": "Zestawienie kluczowych parametrów jastrychów grzejnych: przewodność cieplna lambda, grubość s_d, wytrzymałość i dylatacje wg normy PN-EN 1264.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-tabela",
    "name": "Tabela Porównawcza Jastrychów Grzejnych 2026",
    "description": "Dane techniczne jastrychu cementowego i anhydrytowego używane w obliczeniach projektowych OZC i doboru instalacji podłogowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "przewodność cieplna wylewki lambda",
      "norma PN-EN 1264 jastrych",
      "wytrzymałość jastrychu C20/F4",
      "dylatacje wylewki cementowej",
      "ciężar właściwy jastrychu"
    ],
    "measurementTechnique": "Porównanie parametrów znormalizowanych wg normy PN-EN 1264 oraz danych producentów chemii budowlanej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        { "@type": "ListItem", "name": "Lambda Cement", "value": "1.2 W/(m·K)" },
        { "@type": "ListItem", "name": "Lambda Anhydryt", "value": "1.8 W/(m·K)" },
        { "@type": "ListItem", "name": "Min s_d Cement", "value": "45 mm" },
        { "@type": "ListItem", "name": "Min s_d Anhydryt", "value": "35 mm" }
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-komparator",
    "name": "Interaktywny Komparator Technologii Jastrychowych",
    "description": "Narzędzie symulujące różnice w wydajności i konstrukcji wylewek na ogrzewanie podłogowe.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG Support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-comparator-app" id="rk-comp-app">
    
    <div class="rk-comp-header">
        <h2>Parametry techniczne wylewek – porównanie</h2>
        <p class="rk-comp-intro">
            Wybór między jastrychem cementowym a anhydrytowym to nie kwestia gustu, a czysta inżynieria. Według <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">normy PN-EN 1264</a>, to parametry takie jak przewodność cieplna (lambda) i grubość s<sub>d</sub> determinują wydajność całego układu.
        </p>
    </div>

    <div class="rk-comp-controls">
        <div class="rk-comp-tab active" data-param="lambda">Przewodność (lambda)</div>
        <div class="rk-comp-tab" data-param="thickness">Grubość (s<sub>d</sub>)</div>
        <div class="rk-comp-tab" data-param="dilatation">Dylatacje</div>
        <div class="rk-comp-tab" data-param="weight">Ciężar właściwy</div>
    </div>

    <div class="rk-comp-display">
        <div class="rk-comp-info" id="rk-comp-text">
            <h3 id="comp-title">Przewodność cieplna (lambda)</h3>
            <p id="comp-desc">Anhydryt wygrywa w kategorii szybkości oddawania ciepła. Wyższa wartość lambda pozwala na obniżenie temperatury zasilania pompy ciepła.</p>
            <div class="rk-comp-legend">
                <div class="leg-item"><span class="dot" style="background:var(--rk-comp-cement)"></span> Cement</div>
                <div class="leg-item"><span class="dot" style="background:var(--rk-comp-anhydryt)"></span> Anhydryt</div>
            </div>
        </div>

        <div class="rk-svg-viz">
            <div class="rk-bar-group">
                <div class="rk-bar-label">
                    <span>Cement</span>
                    <span id="val-cement">1.2 W/mK</span>
                </div>
                <div class="rk-bar-bg">
                    <div class="rk-bar-fill fill-cement" id="bar-cement" style="width: 60%"></div>
                </div>
            </div>
            <div class="rk-bar-group">
                <div class="rk-bar-label">
                    <span>Anhydryt</span>
                    <span id="val-anhydryt">1.8 W/mK</span>
                </div>
                <div class="rk-bar-bg">
                    <div class="rk-bar-fill fill-anhydryt" id="bar-anhydryt" style="width: 90%"></div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-comp-table-box">
        <h4 style="margin: 0 0 20px 0; color: var(--rk-comp-dark); font-size: 16px;">Tabela zbiorcza parametrów (Standard Inżynierski)</h4>
        <div style="overflow-x: auto;">
            <table class="rk-tech-table">
                <thead>
                    <tr>
                        <th>Parametr</th>
                        <th>Jastrych Cementowy</th>
                        <th>Jastrych Anhydrytowy</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>Wytrzymałość (Klasa)</strong></td>
                        <td>C20/F4 do C30/F5</td>
                        <td>C20/F5 do C35/F7</td>
                    </tr>
                    <tr>
                        <td><strong>Odporność na wilgoć</strong></td>
                        <td>Wysoka (Łazienki)</td>
                        <td>Niska (Pomieszczenia suche)</td>
                    </tr>
                    <tr>
                        <td><strong>Czas do wejścia</strong></td>
                        <td>2-3 dni</td>
                        <td>24-48 godzin</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z Twoim wzorem)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-comp-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; margin: 20px;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny Komparator Jastrychów oraz struktura Dataset są własnością intelektualną Projekt-Ogrzewania.pl. Użycie nieautoryzowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Komparatora
    const tabs = document.querySelectorAll('.rk-comp-tab');
    const title = document.getElementById('comp-title');
    const desc = document.getElementById('comp-desc');
    const barCement = document.getElementById('bar-cement');
    const barAnhydryt = document.getElementById('bar-anhydryt');
    const valCement = document.getElementById('val-cement');
    const valAnhydryt = document.getElementById('val-anhydryt');

    const data = {
        lambda: {
            title: "Przewodność cieplna (lambda)",
            desc: "Anhydryt wygrywa w kategorii szybkości oddawania ciepła. Pozwala to na szybszą reakcję systemu i wyższą sprawność energetyczną.",
            cCement: "1.2 W/mK",
            cAnhy: "1.8 W/mK",
            pCement: "60%",
            pAnhy: "90%"
        },
        thickness: {
            title: "Min. grubość nad rurką (s<sub>d</sub>)",
            desc: "Anhydryt pozwala na cieńszą warstwę (35mm), co redukuje bezwładność. Cement wymaga min. 45mm dla zachowania stabilności płyty.",
            cCement: "45 mm",
            cAnhy: "35 mm",
            pCement: "85%",
            pAnhy: "60%"
        },
        dilatation: {
            title: "Pole dylatacyjne (Max m²)",
            desc: "Cement wymaga gęstej siatki nacięć co 30-40m². Anhydryt jest niemal bezskurczowy, co pozwala na pola do 600m² bez przerw.",
            cCement: "40 m²",
            cAnhy: "600 m²",
            pCement: "15%",
            pAnhy: "100%"
        },
        weight: {
            title: "Ciężar właściwy (kg/m³)",
            desc: "Oba materiały są ciężkie, ale cement z racji wymaganej większej grubości generuje o ok. 20% większe obciążenie stropu.",
            cCement: "2200 kg/m³",
            cAnhy: "2100 kg/m³",
            pCement: "100%",
            pAnhy: "95%"
        }
    };

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

            const p = this.getAttribute('data-param');
            const d = data[p];

            // Animacja tekstu i słupków
            title.innerHTML = d.title;
            desc.innerHTML = d.desc;
            
            barCement.style.width = d.pCement;
            barAnhydryt.style.width = d.pAnhy;
            
            valCement.innerText = d.cCement;
            valAnhydryt.innerText = d.cAnhy;
        });
    });
});
</script>



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



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-primary: #06b6d4; /* Cyjan - techniczny/kalkulacyjny */
    --rk-calc-primary-dark: #0891b2;
    --rk-calc-accent: #8b5cf6; /* Fiolet - inżynieria */
    --rk-calc-warning: #f59e0b;
    --rk-calc-bg: #ffffff;
    --rk-calc-text: #334155;
    --rk-calc-border: #e2e8f0;
}

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

/* Sekcja Nagłówkowa */
.rk-calc-header {
    padding: 45px 50px 30px;
    background: #ffffff;
}

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

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

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

/* Interfejs Kalkulatora */
.rk-calc-app {
    background: var(--rk-calc-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-app-title {
    font-size: 20px;
    font-weight: 800;
    color: #f8fafc;
    margin: 0 0 30px 0;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Panel sterowania */
.rk-controls-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

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

.rk-control-label {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 15px;
    text-transform: uppercase;
}

.rk-control-val {
    color: var(--rk-calc-primary);
    font-size: 18px;
    font-weight: 900;
}

/* Suwak Metrażu */
.rk-area-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    background: #334155;
    border-radius: 8px;
    outline: none;
    margin-top: 10px;
}

.rk-area-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-calc-primary);
    border: 4px solid #ffffff;
    cursor: ew-resize;
    transition: transform 0.1s;
    box-shadow: 0 0 15px rgba(6, 182, 212, 0.5);
}

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

/* Przełącznik Materiału */
.rk-mat-toggle {
    display: flex;
    gap: 10px;
}

.rk-mat-btn {
    flex: 1;
    background: rgba(0,0,0,0.2);
    border: 2px solid rgba(255,255,255,0.1);
    color: #94a3b8;
    padding: 12px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s;
}

.rk-mat-btn.active {
    background: rgba(139, 92, 246, 0.2);
    border-color: var(--rk-calc-accent);
    color: #ffffff;
}

/* Wyniki (Algorytm) */
.rk-results-board {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-res-card {
    background: var(--rk-calc-panel);
    border: 1px solid rgba(255,255,255,0.05);
    border-top: 4px solid var(--rk-calc-primary);
    padding: 25px;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
}

.rk-res-card.accent {
    border-top-color: var(--rk-calc-accent);
    background: linear-gradient(180deg, rgba(139, 92, 246, 0.1) 0%, var(--rk-calc-panel) 100%);
}

.rk-res-step {
    font-size: 12px;
    color: #64748b;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-res-title {
    font-size: 15px;
    color: #cbd5e1;
    font-weight: 600;
    margin-bottom: 15px;
}

.rk-res-formula {
    font-family: 'Courier New', monospace;
    font-size: 12px;
    color: #94a3b8;
    background: rgba(0,0,0,0.3);
    padding: 5px 8px;
    border-radius: 4px;
    margin-bottom: 15px;
    display: inline-block;
}

.rk-res-output {
    font-size: 32px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-res-output small {
    font-size: 16px;
    font-weight: 600;
    color: #94a3b8;
}

/* SVG Animacja Obciążenia */
.rk-svg-viz {
    width: 100%;
    height: 120px;
    background: rgba(0,0,0,0.2);
    border-radius: 12px;
    margin-top: 20px;
}

.anim-weight-block {
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.anim-heat-arrow {
    transition: stroke-dashoffset 0.5s;
    animation: flowResistance 2s infinite linear;
}

@keyframes flowResistance {
    to { stroke-dashoffset: -20; }
}

/* Mocne CTA - Sprzedażowe */
.rk-cta-box {
    background: linear-gradient(135deg, #f8fafc 0%, #e0e7ff 100%);
    padding: 45px 50px;
    border-top: 1px solid var(--rk-calc-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rk-cta-warning {
    color: #4338ca;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.rk-cta-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
}

.rk-cta-desc {
    font-size: 16px;
    color: #475569;
    max-width: 700px;
    line-height: 1.6;
    margin: 0 0 30px 0;
}

.rk-cta-btn {
    background: #4f46e5;
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 18px 40px;
    border-radius: 12px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 10px 20px -5px rgba(79, 70, 229, 0.4);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-cta-btn:hover {
    background: #4338ca;
    transform: translateY(-3px);
    box-shadow: 0 15px 25px -5px rgba(79, 70, 229, 0.5);
}

@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-app, .rk-cta-box { padding: 30px 20px; }
    .rk-controls-grid, .rk-results-board { grid-template-columns: 1fr; gap: 20px; }
    .rk-res-output { font-size: 26px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Kalkulator ilości materiału i parametrów termicznych (Algorytm)",
    "description": "Zrozum fizykę swojej posadzki. Kalkulator inżynierski obliczający objętość (V), masę (M) oraz opór cieplny (Rλ) dla jastrychu cementowego i anhydrytowego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-algorytm",
    "name": "Algorytm Obliczeniowy Jastrychu Grzejnego OZC",
    "description": "Zestaw wzorów matematycznych i stałych fizycznych używanych do doboru parametrów ogrzewania podłogowego: Objętość, Masa, Opór Cieplny.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczanie objętości betonu na wylewkę",
      "opór cieplny jastrychu R lambda",
      "masa jastrychu obciążenie stropu",
      "algorytm OZC projektowanie ogrzewania",
      "wzór na parametry termiczne podłogówki"
    ],
    "measurementTechnique": "Kalkulacja oparta na wzorach fizycznych: V = A × h, M = V × ρ, Rλ = d / λ. Gęstość cementu ~2200 kg/m³, anhydrytu ~2100 kg/m³.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Objętość (V) = Metraż (A) × Grubość (h).",
        "Krok 2: Masa (M) = Objętość (V) × Gęstość materiału (ρ).",
        "Krok 3: Opór cieplny (Rλ) = Grubość (d) / Przewodność cieplna (λ)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-kalkulator-wylewki",
    "name": "Inżynierski Kalkulator Jastrychu",
    "description": "Interaktywny kalkulator przeliczający w czasie rzeczywistym metraż domu na metry sześcienne betonu, tony obciążenia stropu oraz opór termiczny Rλ.",
    "applicationCategory": "EngineeringCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 Range Input, JavaScript and SVG rendering",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-algorytm-app">
    
    <div class="rk-calc-header">
        <h2 class="rk-calc-title">
            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="color: var(--rk-calc-primary);"><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>
            Kalkulator materiału i parametrów termicznych
        </h2>
        <p class="rk-calc-intro">
            Jako inżynier, nie operuję na „workach”, ale na objętości i oporze przewodzenia. W moich projektach liczy się każdy niuans, bo ma on wpływ na końcowe <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczenia OZC</a>. Anhydryt stawia o <strong>50% mniejszy opór cieplny</strong> niż tradycyjny beton. Sprawdź, jak matematyka fizyki budowli wygląda dla Twojego domu.
        </p>
    </div>

    <div class="rk-calc-app">
        <h3 class="rk-app-title">Kalkulator Inżynierski Jastrychu</h3>

        <div class="rk-controls-grid">
            <div class="rk-control-group">
                <div class="rk-control-label">
                    <span>Powierzchnia (A)</span>
                    <span class="rk-control-val" id="valAreaOut">150 m²</span>
                </div>
                <input type="range" min="50" max="350" value="150" step="5" class="rk-area-slider" id="rkSliderArea">
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label"><span>Rodzaj Mieszanki</span></div>
                <div class="rk-mat-toggle">
                    <button class="rk-mat-btn active" data-mat="cement">Jastrych Cementowy</button>
                    <button class="rk-mat-btn" data-mat="anhydryt">Anhydryt (Płynny)</button>
                </div>
            </div>
        </div>

        <div class="rk-results-board">
            <div class="rk-res-card">
                <div class="rk-res-step">Krok 1: Objętość</div>
                <div class="rk-res-title">Ilość betonu (V)</div>
                <div class="rk-res-formula">V = A × h</div>
                <div class="rk-res-output" id="outVol">9.75 <small>m³</small></div>
            </div>

            <div class="rk-res-card">
                <div class="rk-res-step">Krok 2: Masa</div>
                <div class="rk-res-title">Obciążenie stropu (M)</div>
                <div class="rk-res-formula">M = V × ρ</div>
                <div class="rk-res-output" id="outMass">21.4 <small>ton</small></div>
            </div>

            <div class="rk-res-card accent">
                <div class="rk-res-step">Krok 3: Termika</div>
                <div class="rk-res-title">Opór cieplny (R<sub>λ</sub>)</div>
                <div class="rk-res-formula">R<sub>λ</sub> = d / λ</div>
                <div class="rk-res-output" id="outRes" style="color: #c4b5fd;">0.054 <small>m²·K/W</small></div>
            </div>
        </div>

        <svg class="rk-svg-viz" viewBox="0 0 800 120" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice">
            <rect x="0" y="80" width="800" height="40" fill="#334155" />
            <circle cx="400" cy="80" r="16" fill="#ef4444" stroke="#fff" stroke-width="3"/>
            
            <rect id="svgScreedBlock" class="anim-weight-block" x="250" y="20" width="300" height="60" fill="#64748b" rx="4" opacity="0.8"/>
            <text id="svgScreedText" x="400" y="55" fill="#ffffff" font-size="14" font-weight="bold" text-anchor="middle">Obciążenie: 21.4 ton</text>

            <path class="anim-heat-arrow" id="svgHeat1" d="M 360 80 L 360 10" stroke="#f59e0b" stroke-width="4" stroke-dasharray="8" fill="none" stroke-linecap="round"/>
            <path class="anim-heat-arrow" id="svgHeat2" d="M 440 80 L 440 10" stroke="#f59e0b" stroke-width="4" stroke-dasharray="8" fill="none" stroke-linecap="round"/>
        </svg>

    </div>

    <div class="rk-cta-box">
        <div class="rk-cta-warning">Decyzja, której nie cofniesz</div>
        <h3 class="rk-cta-title">Zaraz, zaraz&#8230; Różnica to 50%!</h3>
        <p class="rk-cta-desc">
            Zauważyłeś? Opór cieplny wylewki cementowej jest o połowę wyższy. Jeśli dobierzesz rozstaw rur i parametry pompy ciepła pod anhydryt, a wylejesz grubszy beton – <strong>będziesz miał niedogrzany dom</strong>. System podłogowy musi być zaprojektowany z uwzględnieniem docelowego jastrychu!
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-cta-btn">
            Zamów Profesjonalny Projekt Podłogówki
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez H-tags w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-algorytm-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Antypirackie</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Kalkulator Inżynierski Jastrychu jest prawnie chronionym kodem domeny Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Algorytmu Kalkulatora
    const sliderArea = document.getElementById('rkSliderArea');
    const valAreaOut = document.getElementById('valAreaOut');
    const matBtns = document.querySelectorAll('.rk-mat-btn');
    
    const outVol = document.getElementById('outVol');
    const outMass = document.getElementById('outMass');
    const outRes = document.getElementById('outRes');
    
    const svgBlock = document.getElementById('svgScreedBlock');
    const svgText = document.getElementById('svgScreedText');
    const heatArr1 = document.getElementById('svgHeat1');
    const heatArr2 = document.getElementById('svgHeat2');

    let currentMat = 'cement';

    const physics = {
        cement: { h: 0.065, rho: 2200, lambda: 1.2, color: '#64748b', heatSpeed: '3s' },
        anhydryt: { h: 0.050, rho: 2100, lambda: 1.8, color: '#8b5cf6', heatSpeed: '1.5s' }
    };

    function runAlgorithm() {
        const A = parseInt(sliderArea.value);
        valAreaOut.innerText = `${A} m²`;

        const mat = physics[currentMat];
        
        // Obliczenia
        const V = A * mat.h;
        const M_kg = V * mat.rho;
        const M_ton = M_kg / 1000;
        const R = mat.h / mat.lambda;

        // Aktualizacja DOM
        outVol.innerHTML = `${V.toFixed(2)} <small>m³</small>`;
        outMass.innerHTML = `${M_ton.toFixed(1)} <small>ton</small>`;
        outRes.innerHTML = `${R.toFixed(3)} <small>m²·K/W</small>`;

        // Aktualizacja SVG wizualizacji (Szerokość rośnie z metrażem bazowo)
        const blockWidth = 150 + (A * 1.5); // Skalowanie wizualne
        const blockX = 400 - (blockWidth / 2);
        const blockHeight = mat.h * 1000; // Skalowanie grubości
        const blockY = 80 - blockHeight;

        svgBlock.setAttribute('width', blockWidth > 700 ? 700 : blockWidth);
        svgBlock.setAttribute('x', blockWidth > 700 ? 50 : blockX);
        svgBlock.setAttribute('height', blockHeight);
        svgBlock.setAttribute('y', blockY);
        svgBlock.setAttribute('fill', mat.color);
        
        svgText.setAttribute('y', blockY + (blockHeight/2) + 5);
        svgText.textContent = `Obciążenie: ${M_ton.toFixed(1)} ton`;

        // Prędkość animacji ciepła
        heatArr1.style.animationDuration = mat.heatSpeed;
        heatArr2.style.animationDuration = mat.heatSpeed;
    }

    // Eventy
    sliderArea.addEventListener('input', runAlgorithm);

    matBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            matBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentMat = this.getAttribute('data-mat');
            runAlgorithm();
        });
    });

    // Inicjalizacja
    runAlgorithm();
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-panel: #1e293b;
    --rk-err-red: #ef4444; /* Błąd krytyczny */
    --rk-err-orange: #f97316; /* Ostrzeżenie */
    --rk-err-blue: #3b82f6; /* Woda / Mróz */
    --rk-err-gray: #64748b;
    --rk-err-bg: #ffffff;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
}

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

/* Nagłówek i Wstęp */
.rk-err-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #fff1f2 0%, #ffffff 100%);
    border-bottom: 2px dashed #fecdd3;
}

.rk-err-title {
    font-size: 26px;
    font-weight: 900;
    color: #9f1239;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-err-intro a {
    color: #be123c;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(190, 18, 60, 0.2);
    transition: all 0.3s;
}

.rk-err-intro a:hover {
    border-bottom-color: #be123c;
    background: rgba(190, 18, 60, 0.05);
}

/* Panel Symulatora */
.rk-err-app {
    display: grid;
    grid-template-columns: 350px 1fr;
    background: var(--rk-err-dark);
    color: #ffffff;
}

/* Przyciski (Lista Błędów) */
.rk-err-sidebar {
    padding: 30px;
    border-right: 1px solid rgba(255,255,255,0.05);
    background: #0b1120;
}

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

.rk-fault-btn {
    display: flex;
    flex-direction: column;
    width: 100%;
    text-align: left;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 15px;
    border-radius: 12px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.3s;
    color: #cbd5e1;
}

.rk-fault-btn:hover {
    background: rgba(255,255,255,0.08);
}

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

.rk-fault-name {
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 4px;
}

.rk-fault-hint {
    font-size: 12px;
    color: #64748b;
}

/* Wizualizacja i Opis (Prawa strona) */
.rk-err-main {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Moduł SVG */
.rk-err-svg-box {
    background: var(--rk-err-panel);
    border-radius: 16px;
    padding: 20px;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
    margin-bottom: 30px;
    position: relative;
}

.rk-svg-scene {
    width: 100%;
    max-width: 320px;
    height: auto;
    margin: 0 auto;
    display: block;
}

/* Opis wybranego błędu */
.rk-err-details {
    background: rgba(0,0,0,0.2);
    border-left: 4px solid var(--rk-err-red);
    padding: 25px;
    border-radius: 0 12px 12px 0;
}

.rk-err-details h4 {
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 10px 0;
    color: #f8fafc;
}

.rk-err-details p {
    font-size: 15px;
    line-height: 1.7;
    color: #94a3b8;
    margin: 0 0 15px 0;
}

.rk-err-tech {
    display: inline-block;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    font-family: 'Courier New', monospace;
}

/* ANIMACJE SVG (Sterowane klasami z JS) */
.anim-layer { opacity: 0; transition: opacity 0.4s; }

/* 1. Dylatacje (Pęknięcia) */
.state-dylatacja .svg-crack { opacity: 1; stroke-dasharray: 100; animation: drawCrack 1s forwards; }
@keyframes drawCrack { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
.state-dylatacja .svg-foam { fill: #ef4444; }

/* 2. Powietrze (Izolator) */
.state-powietrze .svg-bubbles { opacity: 1; animation: pulseBubbles 1.5s infinite alternate; }
@keyframes pulseBubbles { from { transform: scale(0.95); stroke-width: 1; } to { transform: scale(1.05); stroke-width: 2.5; } }
.state-powietrze .svg-heat { stroke: #64748b; opacity: 0.3; } /* Słabe ciepło */

/* 3. Temperatura (Mróz/Smażenie) */
.state-temperatura .svg-screed { animation: flashTemp 2s infinite; }
@keyframes flashTemp { 0% { fill: #64748b; } 50% { fill: #3b82f6; } 100% { fill: #64748b; } }

/* 4. Plastyfikator (Pustki) */
.state-chemia .svg-voids { opacity: 1; }
.state-chemia .svg-screed { fill: #475569; }

/* Domyślne ciepło */
.svg-heat { stroke: #ef4444; animation: flowHeat 1.5s infinite linear; }
@keyframes flowHeat { to { stroke-dashoffset: -20; } }

@media (max-width: 768px) {
    .rk-err-app { grid-template-columns: 1fr; }
    .rk-err-header, .rk-err-sidebar, .rk-err-main { padding: 25px; }
    .rk-fault-btn { padding: 12px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Najczęstsze błędy niszczące instalację ogrzewania podłogowego",
    "description": "Zestawienie krytycznych błędów wykonawczych: brak dylatacji, złe odpowietrzenie anhydrytu, szok termiczny oraz złe proporcje plastyfikatora w miksokrecie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-bledy",
    "name": "Rejestr Błędów Wykonawczych Jastrychu Grzejnego",
    "description": "Baza danych dokumentująca fizyczne i termodynamiczne skutki błędów instalatorskich na wylewkach betonowych i anhydrytowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "brak dylatacji brzegowej pękanie posadzki",
      "odpowietrzenie anhydrytu powietrze izolator",
      "plastyfikator do ogrzewania podłogowego",
      "najczęstsze błędy montażu ogrzewania podłogowego",
      "wygrzewanie wylewki w ujemnych temperaturach"
    ],
    "measurementTechnique": "Wizualizacja defektów strukturalnych za pomocą animacji SVG oraz estymacja spadku sprawności z uwzględnieniem oporu cieplnego powietrza (λ ≈ 0,025).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak dylatacji (min. 8-10 mm): skutkuje prężeniem i pękaniem na obwodzie.",
        "Pęcherze powietrza: działają jak izolator (Lambda pow. = 0.025), blokując transfer ciepła z rur PEX.",
        "Szok termiczny: zamarzanie lub przesuszenie (smażenie) degraduje strukturę krystaliczną.",
        "Zła chemia: brak plastyfikatora (0.2kg/worek) powoduje pustki powietrzne w miksokrecie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-symulator-awarii",
    "name": "X-Ray: Symulator Awarii Wylewki",
    "description": "Narzędzie inżynierskie pozwalające na interaktywny podgląd struktury wewnętrznej posadzki poddanej błędom wykonawczym.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG Support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-bledy-core">
    
    <div class="rk-err-header">
        <h2 class="rk-err-title">
            <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Najczęstsze błędy niszczące instalację
        </h2>
        <p class="rk-err-intro">
            Fizyka budowli nie wybacza amatorszczyzny. <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">Błędy przy montażu ogrzewania podłogowego</a> na etapie wylewania jastrychu to wyrok na całą instalację hydrauliczną. Kucie gotowej posadzki to koszmar każdego inwestora. Zobacz, co dzieje się wewnątrz betonu, gdy wykonawca oszczędza na dylatacjach lub chemii.
        </p>
    </div>

    <div class="rk-err-app" id="rkErrEngine">
        
        <div class="rk-err-sidebar">
            <h3>Wybierz błąd wykonawczy</h3>
            
            <button class="rk-fault-btn active" data-err="dylatacja">
                <span class="rk-fault-name">1. Brak dylatacji</span>
                <span class="rk-fault-hint">Pękanie progów i narożników</span>
            </button>
            
            <button class="rk-fault-btn" data-err="powietrze">
                <span class="rk-fault-name">2. Złe odpowietrzenie</span>
                <span class="rk-fault-hint">Pęcherze w anhydrycie (Izolator)</span>
            </button>
            
            <button class="rk-fault-btn" data-err="temperatura">
                <span class="rk-fault-name">3. Szok termiczny</span>
                <span class="rk-fault-hint">Zamarznięcie lub &#8222;smażenie&#8221; betonu</span>
            </button>
            
            <button class="rk-fault-btn" data-err="chemia">
                <span class="rk-fault-name">4. Brak plastyfikatora</span>
                <span class="rk-fault-hint">Pustki powietrzne w miksokrecie</span>
            </button>
        </div>

        <div class="rk-err-main">
            
            <div class="rk-err-svg-box">
                <svg viewBox="0 0 300 160" class="rk-svg-scene" xmlns="http://www.w3.org/2000/svg">
                    <rect x="270" y="20" width="30" height="140" fill="#334155" />
                    <rect class="svg-foam" x="260" y="20" width="10" height="140" fill="#0ea5e9" transition="fill 0.3s"/>
                    
                    <rect x="0" y="130" width="260" height="30" fill="#475569" />
                    
                    <circle cx="80" cy="110" r="10" fill="#ef4444" stroke="#fff" stroke-width="2"/>
                    <circle cx="180" cy="110" r="10" fill="#ef4444" stroke="#fff" stroke-width="2"/>
                    
                    <path class="svg-heat" d="M 80 90 V 40" stroke-width="3" stroke-dasharray="6" fill="none" stroke-linecap="round"/>
                    <path class="svg-heat" d="M 180 90 V 40" stroke-width="3" stroke-dasharray="6" fill="none" stroke-linecap="round"/>

                    <rect class="svg-screed" x="0" y="50" width="260" height="80" fill="#94a3b8" opacity="0.8" rx="2"/>

                    <path class="anim-layer svg-crack" d="M 260 55 L 230 80 L 250 110 L 220 130" fill="none" stroke="#020617" stroke-width="3" stroke-linejoin="round"/>
                    <path class="anim-layer svg-crack" d="M 150 50 L 140 70 L 160 90" fill="none" stroke="#020617" stroke-width="2" />

                    <g class="anim-layer svg-bubbles">
                        <circle cx="80" cy="110" r="16" fill="none" stroke="#f8fafc" stroke-width="2" stroke-dasharray="4"/>
                        <circle cx="180" cy="110" r="16" fill="none" stroke="#f8fafc" stroke-width="2" stroke-dasharray="4"/>
                    </g>

                    <g class="anim-layer svg-voids" fill="#1e293b" opacity="0.6">
                        <circle cx="40" cy="70" r="5"/>
                        <circle cx="120" cy="90" r="8"/>
                        <circle cx="210" cy="65" r="6"/>
                        <circle cx="150" cy="110" r="4"/>
                        <circle cx="50" cy="100" r="7"/>
                    </g>
                </svg>
            </div>

            <div class="rk-err-details">
                <h4 id="errTitle">Brak dylatacji brzegowych</h4>
                <p id="errDesc">Wylewka stale „pracuje” termicznie (rozszerza się i kurczy). Brak <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/" style="color:#f8fafc; text-decoration:underline;">pianki dylatacyjnej</a> o grubości min. 8-10 mm uderzy rykoszetem – spowoduje potężne naprężenia i pękanie jastrychu w progach, narożnikach oraz uszkodzenie płytek.</p>
                <div class="rk-err-tech" id="errParam">Wymóg: Pianka min. 8-10 mm gr.</div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H-tags w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-bledy-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Moduł "Symulator Awarii Instalacji" to zintegrowany kod należący do Projekt-Ogrzewania.pl. Użycie nieautoryzowane.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Błędów
    const btns = document.querySelectorAll('.rk-fault-btn');
    const engine = document.getElementById('rkErrEngine');
    
    // Pola tekstowe
    const titleObj = document.getElementById('errTitle');
    const descObj = document.getElementById('errDesc');
    const paramObj = document.getElementById('errParam');

    // Baza danych błędów
    const errorsData = {
        dylatacja: {
            title: "Brak dylatacji brzegowych i pośrednich",
            desc: "Wylewka stale „pracuje” termicznie. Brak <a href='https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/' style='color:#f8fafc; text-decoration:underline;'>pianki dylatacyjnej</a> uderzy rykoszetem – spowoduje prężenie betonu o mury, co doprowadzi do pękania jastrychu w progach, narożnikach oraz uszkodzenia okładzin wierzchnich.",
            param: "Wymóg: Pianka min. 8-10 mm gr."
        },
        powietrze: {
            title: "Niedokładne odpowietrzenie anhydrytu",
            desc: "Złe odpowietrzenie płynnej masy (np. brak wibrowania sztangą) zostawia pęcherzyki powietrza wokół <a href='https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/' style='color:#f8fafc; text-decoration:underline;'>rur PEX</a>. Powietrze działa jak idealny izolator termiczny, drastycznie obniżając moc oddawania ciepła z pętli do posadzki.",
            param: "Fizyka: Powietrze ma λ ≈ 0,025 W/(m·K)"
        },
        temperatura: {
            title: "Szok termiczny wylewki",
            desc: "Zbyt wczesne wyłączenie ogrzewania po wylaniu to proszenie się o kłopoty. W ujemnych temperaturach jastrych musi być chroniony przed zamarznięciem wody zarobowej. Z drugiej strony, wpuszczenie od razu 40°C spowoduje \"smażenie\" betonu i jego dezintegrację.",
            param: "Konsekwencja: Utrata nośności / Zamarzanie"
        },
        chemia: {
            title: "Złe proporcje plastyfikatora",
            desc: "Wykonywanie wylewki z miksokreta bez odpowiedniej chemii (plastyfikatora) to błąd inżynierski. Masa staje się zbyt gęsta, nie otula rur i tworzą się w niej mikroskopijne pustki powietrzne, które degradują ogólną wydajność cieplną o kilkanaście procent.",
            param: "Błąd: Brak dawki 0,2 kg chemii / worek cementu"
        }
    };

    // Nasłuch kliknięć
    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Reset UI
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobierz dane
            const errKey = this.getAttribute('data-err');
            const data = errorsData[errKey];

            // Animacja SVG poprzez klasy
            engine.className = "rk-err-app state-" + errKey;

            // Wypełnij tekst
            titleObj.innerHTML = data.title;
            descObj.innerHTML = data.desc;
            paramObj.innerHTML = data.param;
        });
    });

    // Inicjalizacja domyślnego błędu
    engine.classList.add('state-dylatacja');
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-panel: #1e293b;
    --rk-proj-primary: #10b981; /* Ekologiczna zieleń dla efektywności COP */
    --rk-proj-accent: #3b82f6; /* Techniczny niebieski */
    --rk-proj-warning: #f59e0b; /* Uwaga */
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-text: #334155;
    --rk-proj-light: #f8fafc;
}

.rk-proj-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 20px;
    box-shadow: 0 25px 50px -15px rgba(16, 185, 129, 0.15);
    border: 1px solid var(--rk-proj-border);
    overflow: hidden;
}

/* Nagłówek i Wstęp */
.rk-proj-header {
    padding: 40px 50px 30px;
    background: linear-gradient(180deg, #ffffff 0%, var(--rk-proj-light) 100%);
    border-bottom: 1px solid var(--rk-proj-border);
}

.rk-proj-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

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

.rk-proj-intro a {
    color: var(--rk-proj-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(59, 130, 246, 0.2);
    transition: all 0.3s ease;
}

.rk-proj-intro a:hover {
    border-bottom-color: var(--rk-proj-accent);
    background: rgba(59, 130, 246, 0.05);
}

/* Symulator Projektowy */
.rk-proj-app {
    background: var(--rk-proj-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-proj-app-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #94a3b8;
    margin: 0 0 25px 0;
    font-weight: 800;
    text-align: center;
}

/* Przełącznik Jastrychu */
.rk-proj-switch {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 40px;
}

.rk-btn-proj {
    background: rgba(255,255,255,0.05);
    border: 2px solid rgba(255,255,255,0.1);
    color: #cbd5e1;
    padding: 14px 30px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-btn-proj.active[data-mat="anhydryt"] {
    background: rgba(16, 185, 129, 0.15);
    border-color: var(--rk-proj-primary);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.3);
}

.rk-btn-proj.active[data-mat="cement"] {
    background: rgba(148, 163, 184, 0.15);
    border-color: #94a3b8;
    color: #ffffff;
}

/* Dashboard Wyników */
.rk-dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}

.rk-dash-card {
    background: var(--rk-proj-panel);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 25px 20px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

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

.rk-val-main {
    font-size: 28px;
    font-weight: 900;
    color: #ffffff;
    margin-bottom: 5px;
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.rk-val-main small {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

.rk-val-sub {
    font-size: 13px;
    color: var(--rk-proj-primary);
    font-weight: 700;
}

.status-warn { color: var(--rk-proj-warning); }

/* SVG Animacje w kartach */
.rk-card-svg {
    width: 100%;
    height: 60px;
    margin-top: 15px;
    background: rgba(0,0,0,0.2);
    border-radius: 8px;
}

/* Animacja rozstawu rur */
.anim-pipe { transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.state-cement .pipe-left { transform: translateX(20px); }
.state-cement .pipe-right { transform: translateX(-20px); }
.state-anhydryt .pipe-left { transform: translateX(0px); }
.state-anhydryt .pipe-right { transform: translateX(0px); }

/* Animacja ciepła (Zebra vs Równomierne) */
.anim-heat-wave { transition: opacity 0.5s; }
.state-cement .heat-zebra { opacity: 1; }
.state-cement .heat-even { opacity: 0; }
.state-anhydryt .heat-zebra { opacity: 0; }
.state-anhydryt .heat-even { opacity: 1; }

/* Animacja Krzywej Grzewczej */
.anim-curve { transition: stroke-dashoffset 2s ease-in-out; }
.state-cement .curve-stable { opacity: 0; }
.state-cement .curve-overshoot { opacity: 1; stroke-dasharray: 200; animation: drawCurve 2s infinite linear; }
.state-anhydryt .curve-stable { opacity: 1; stroke-dasharray: 200; animation: drawCurve 2s infinite linear; }
.state-anhydryt .curve-overshoot { opacity: 0; }

@keyframes drawCurve {
    from { stroke-dashoffset: 200; }
    to { stroke-dashoffset: 0; }
}

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-app { padding: 30px 20px; }
    .rk-dashboard-grid { grid-template-columns: 1fr; }
    .rk-proj-switch { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Jak wylewka wpływa na projekt ogrzewania podłogowego (OZC)?",
    "description": "Rodzaj wylewki determinuje parametry OZC, krzywą grzewczą, rozstaw rur i współczynnik COP pompy ciepła. Zobacz symulację wpływu jastrychu na projekt.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-parametry-ozc",
    "name": "Wpływ Parametrów Wylewki na Projekt OZC i Hydraulikę",
    "description": "Dane projektowe dla oprogramowania InstalSystem wykazujące relacje między typem jastrychu a efektywnością systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowe obciążenie cieplne ozc",
      "rozstaw rur w ogrzewaniu podłogowym",
      "krzywa grzewcza pompy ciepła",
      "pompa obiegowa bezwładność wylewki",
      "współczynnik COP pompy ciepła podłogówka"
    ],
    "measurementTechnique": "Symulacja termodynamiczna: obniżenie Tz o 2-3°C dla anhydrytu względem cementu powoduje przyrost sezonowego współczynnika SCOP o 5-7%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "OZC i COP: Wyższa przewodność (lambda) anhydrytu pozwala na pracę pompy ciepła na niższej temperaturze zasilania Tz.",
        "Rozstaw rur: Lepsze otulenie rury pozwala na rzadszy rozstaw (np. 12,5 cm zamiast 10 cm) bez zjawiska zebry cieplnej.",
        "Krzywa Grzewcza: Większa masa betonu generuje bezwładność, co grozi tzw. overshootingiem i wymaga innych nastaw pompy obiegowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-symulator-ozc",
    "name": "Inżynierski Symulator Wpływu Jastrychu na Projekt",
    "description": "Narzędzie typu dashboard wizualizujące różnice w nastawach pompy ciepła, rozstawie rur i zjawisku overshootingu w zależności od wybranego jastrychu.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG Support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-projekt-core">
    
    <div class="rk-proj-header">
        <h2 class="rk-proj-title">
            <svg width="28" height="28" 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>
            Jak wylewka wpływa na projekt ogrzewania podłogowego?
        </h2>
        <p class="rk-proj-intro">
            W moim biurze projektowym typ wylewki to jedna z pierwszych zmiennych wprowadzanych do oprogramowania (np. InstalSystem). Niezależnie czy robisz <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt z pompą ciepła</a> czy kotłem gazowym, wybór jastrychu wprost determinuje całą hydraulikę, od <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">doboru pompy obiegowej</a> po ustawienia <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>. Zobacz, dlaczego tak jest.
        </p>
    </div>

    <div class="rk-proj-app state-anhydryt" id="rkProjEngine">
        
        <h3 class="rk-proj-app-title">Symulator Parametrów Projektowych</h3>

        <div class="rk-proj-switch">
            <button class="rk-btn-proj" data-mat="cement">
                <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></svg>
                Tradycyjny Cement
            </button>
            <button class="rk-btn-proj active" data-mat="anhydryt">
                <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 14s1.5 2 4 2 4-2 4-2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line></svg>
                Płynny Anhydryt
            </button>
        </div>

        <div class="rk-dashboard-grid">
            
            <div class="rk-dash-card">
                <div class="rk-dash-card-title">Zasilanie (T<sub>z</sub>) i Efektywność</div>
                <div class="rk-val-main" id="valTz">32°C</div>
                <div class="rk-val-sub" id="valCop">+7% wyższy COP pompy</div>
                
                <svg class="rk-card-svg" viewBox="0 0 100 60" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none">
                    <rect x="20" y="30" width="20" height="20" fill="#475569" rx="2"/>
                    <rect id="svgCopBar" x="60" y="10" width="20" height="40" fill="#10b981" rx="2" style="transition: all 0.5s"/>
                    <path d="M 30 20 L 70 5" stroke="#fff" stroke-width="2" stroke-dasharray="4" fill="none"/>
                </svg>
            </div>

            <div class="rk-dash-card">
                <div class="rk-dash-card-title">
                    <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:#94a3b8; text-decoration:none;">Rozstaw Rur</a>
                </div>
                <div class="rk-val-main" id="valSpacing">12.5 <small>cm</small></div>
                <div class="rk-val-sub" id="valZebra" style="color:#f8fafc;">Brak „zebry cieplnej”</div>
                
                <svg class="rk-card-svg" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
                    <path class="anim-heat-wave heat-zebra" d="M 40 40 Q 60 10 80 40 Q 100 10 120 40 Q 140 10 160 40" fill="none" stroke="#ef4444" stroke-width="15" opacity="0.4" stroke-linecap="round"/>
                    <rect class="anim-heat-wave heat-even" x="20" y="20" width="160" height="20" fill="#ef4444" opacity="0.5" rx="10"/>
                    
                    <circle class="anim-pipe pipe-left" cx="60" cy="45" r="8" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                    <circle cx="100" cy="45" r="8" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                    <circle class="anim-pipe pipe-right" cx="140" cy="45" r="8" fill="#3b82f6" stroke="#fff" stroke-width="2"/>
                </svg>
            </div>

            <div class="rk-dash-card">
                <div class="rk-dash-card-title">Krzywa i Bezwładność</div>
                <div class="rk-val-main" id="valInertia" style="font-size: 20px;">Wysoka sterowalność</div>
                <div class="rk-val-sub status-warn" id="valOver" style="color:#6ee7b7;">Brak przegrzewów</div>
                
                <svg class="rk-card-svg" viewBox="0 0 200 60" xmlns="http://www.w3.org/2000/svg">
                    <line x1="10" y1="30" x2="190" y2="30" stroke="#64748b" stroke-width="2" stroke-dasharray="4"/>
                    
                    <path class="anim-curve curve-overshoot" d="M 10 30 Q 50 -10 100 30 T 190 30" fill="none" stroke="#ef4444" stroke-width="3"/>
                    
                    <path class="anim-curve curve-stable" d="M 10 30 Q 50 20 100 30 T 190 30" fill="none" stroke="#10b981" stroke-width="3"/>
                </svg>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Zgodnie z wytycznymi)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-projekt-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Moduł "Symulator Parametrów Projektowych" jest własnością intelektualną Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Projektowego
    const btns = document.querySelectorAll('.rk-btn-proj');
    const engine = document.getElementById('rkProjEngine');
    
    // Elementy Tekstowe
    const vTz = document.getElementById('valTz');
    const vCop = document.getElementById('valCop');
    const vSpacing = document.getElementById('valSpacing');
    const vZebra = document.getElementById('valZebra');
    const vInertia = document.getElementById('valInertia');
    const vOver = document.getElementById('valOver');
    
    // Elementy SVG
    const svgCopBar = document.getElementById('svgCopBar');

    const dataModel = {
        anhydryt: {
            tz: "32°C",
            copText: "+7% wyższy COP pompy",
            copColor: "var(--rk-proj-primary)",
            barHeight: "40", barY: "10", barColor: "#10b981",
            spacing: "12.5 <small>cm</small>",
            zebraText: "Brak „zebry cieplnej”",
            inertia: "Wysoka sterowalność",
            overText: "Brak przegrzewów",
            overColor: "#6ee7b7"
        },
        cement: {
            tz: "35°C",
            copText: "Standardowy COP pompy",
            copColor: "#94a3b8",
            barHeight: "20", barY: "30", barColor: "#64748b",
            spacing: "10.0 <small>cm</small>",
            zebraText: "Ryzyko wahań temperatury",
            inertia: "Wysoka bezwładność",
            overText: "Ryzyko overshootingu!",
            overColor: "#f59e0b"
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zarządzanie przyciskami
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const mat = this.getAttribute('data-mat');
            const d = dataModel[mat];

            // Klasa główna dla animacji SVG
            engine.className = "rk-proj-app state-" + mat;

            // Aktualizacja tekstów
            vTz.innerHTML = d.tz;
            vCop.innerHTML = d.copText;
            vCop.style.color = d.copColor;
            
            vSpacing.innerHTML = d.spacing;
            vZebra.innerHTML = d.zebraText;
            
            vInertia.innerHTML = d.inertia;
            vOver.innerHTML = d.overText;
            vOver.style.color = d.overColor;

            // Aktualizacja słupka COP
            svgCopBar.setAttribute('height', d.barHeight);
            svgCopBar.setAttribute('y', d.barY);
            svgCopBar.setAttribute('fill', d.barColor);
        });
    });
});
</script>



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



<style>
:root {
    --rk-quote-primary: #0f172a;
    --rk-quote-accent: #ea580c; /* Termiczny pomarańczowy */
    --rk-quote-accent-light: #ffedd5;
    --rk-quote-danger: #ef4444;
    --rk-quote-bg: #f8fafc;
    --rk-quote-border: #e2e8f0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-cytat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Robert Kucharski: Wylewka to serce Twojego systemu grzewczego",
    "description": "Ekspercka opinia na temat fizyki budowli. Jastrych to wymiennik ciepła, którego parametry decydują o sprawności pompy ciepła i wysokości rachunków.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Quotation",
    "license": "https://projekt-ogrzewania.pl/",
    "text": "Wylewka to nie jest zwykła podłoga. To największy wymiennik ciepła w Twoim domu. Błędy w proporcjach wody, brak dylatacji czy nadlane z lenistwa centymetry betonu to gwarancja, że zniszczysz sprawność nawet najlepszej pompy ciepła. Tu nie ma miejsca na wykonawcze 'zawsze tak robiliśmy', tu rządzi fizyka i norma PN-EN 1264.",
    "spokenByCharacter": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "jobTitle": "Inżynier HVAC & Właściciel Portalu",
      "url": "https://projekt-ogrzewania.pl",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ],
      "worksFor": {
        "@type": "Organization",
        "name": "Projekt-Ogrzewania.pl"
      }
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-cytat-parametry",
    "name": "Inżynierskie wskaźniki wylewek grzejnych",
    "description": "Kluczowe wartości fizyczne warunkujące poprawną pracę jastrychu jako wymiennika ciepła w instalacji płaszczyznowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wylewka jako wymiennik ciepła",
      "badanie wilgotności metodą CM",
      "opór cieplny anhydrytu",
      "zła grubość wylewki",
      "norma PN-EN 1264 jastrych"
    ],
    "measurementTechnique": "Parametry laboratoryjne i budowlane określające graniczną wilgotność resztkową, optymalną grubość oraz przewodność termiczną wylewki.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Dopuszczalna wilgotność (CM) pod panele: < 1.8%",
        "Zalecana grubość nad rurką (s_d): 35 - 45 mm",
        "Optymalny opór cieplny Rλ: < 0.05 m²·K/W"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-cytat-panel",
    "name": "Panel Analityczny: Twarde Dane Wylewki",
    "description": "Interaktywny widget rozwijany z cytatu eksperckiego, prezentujący graniczne wskaźniki inżynierskie dla jastrychu.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-expert-wrapper" id="rk-expert-wylewka-app">
    <div class="rk-expert-header">
        <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="var(--rk-quote-accent)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
        <h2>Głos Inżyniera</h2>
    </div>
    
    <div class="rk-expert-container">
        <div class="rk-expert-photo-wrap">
            <div class="rk-expert-photo-ring"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-photo" loading="lazy">
            <div class="rk-expert-badge-icon">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
            </div>
        </div>
        
        <div class="rk-expert-content">
            <span class="rk-expert-label">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
                Fizyka budowli bez ściemy
            </span>
            <p class="rk-expert-text">
                "Wylewka to nie jest zwykła podłoga. To <strong>największy wymiennik ciepła</strong> w Twoim domu. Błędy w proporcjach wody, brak dylatacji czy nadlane z lenistwa centymetry betonu to gwarancja, że zniszczysz sprawność nawet najlepszej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>. Tu nie ma miejsca na wykonawcze 'zawsze tak robiliśmy'. Jeśli chcesz oszczędzać, tu rządzi fizyka i <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">norma PN-EN 1264</a>."
            </p>
            <span class="rk-expert-signature">— Robert Kucharski, Inżynier HVAC Projekt-Ogrzewania.pl</span>
            
            <div class="rk-expert-interactive">
                <button class="rk-expert-btn" id="toggleDataBtnWylewka">
                    Rozwiń twarde dane techniczne
                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
                </button>
                
                <div class="rk-expert-data-panel" id="expertDataPanelWylewka">
                    <div class="rk-data-stat">
                        <span class="rk-data-val">35-45 mm</span>
                        <span class="rk-data-lab">Zalecana otulina (s<sub>d</sub>)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val">< 1.8%</span>
                        <span class="rk-data-lab">Wilgotność CM (Panele)</span>
                    </div>
                    <div class="rk-data-stat">
                        <span class="rk-data-val" style="color: var(--rk-quote-primary);">< 0.05</span>
                        <span class="rk-data-lab">Opór cieplny (R<sub>λ</sub>)</span>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <noscript>
        <div style="padding: 20px; background: #f8fafc; border-radius: 16px; margin-top: 20px; font-family: sans-serif;">
            <p style="font-size: 14px; font-weight: bold; color: #0f172a; margin-top:0;">Wskaźniki inżynierskie (Robert Kucharski):</p>
            <ul style="font-size: 14px; color: #475569; margin-bottom:0;">
                <li>Zalecana grubość nad rurką (s_d): 35-45 mm</li>
                <li>Maksymalna wilgotność resztkowa (CM) pod panele: poniżej 1.8%</li>
                <li>Optymalny opór cieplny (R_lambda): poniżej 0.05 m²·K/W</li>
            </ul>
        </div>
    </noscript>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków strukturalnych w alercie)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-expert-wylewka-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px 20px; text-align: center; background: #fff7ed; color: #c2410c; border-radius: 20px; border: 2px dashed #f97316;">
                    <div style="font-size: 32px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 800; text-transform: uppercase; margin-bottom: 10px;">Blokada bezpieczeństwa</div>
                    <div style="font-size: 14px; color: #9a3412;">Własność intelektualna i cytat ekspercki przypisane do domeny Projekt-Ogrzewania.pl.</div>
                </div>
            `;
            // Reset styli dla bezpieczeństwa wizualnego komunikatu
            container.style.borderLeft = 'none';
            container.style.background = 'transparent';
            container.style.boxShadow = 'none';
            return;
        }
    }

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

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



<style>
:root {
    --rk-cs-dark: #0f172a;
    --rk-cs-panel: #1e293b;
    --rk-cs-primary: #f43f5e; /* Malinowa czerwień - strata/błąd */
    --rk-cs-success: #10b981; /* Projektowa zieleń */
    --rk-cs-warning: #f59e0b;
    --rk-cs-bg: #ffffff;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #334155;
    --rk-cs-light: #fff1f2;
}

.rk-cs-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--rk-cs-bg);
    border-radius: 20px;
    box-shadow: 0 25px 50px -15px rgba(244, 63, 94, 0.15);
    border: 1px solid var(--rk-cs-border);
    overflow: hidden;
}

/* Nagłówek i Treść (Rozwinięta pod SEO) */
.rk-cs-header {
    padding: 40px 50px 30px;
    background: linear-gradient(180deg, var(--rk-cs-light) 0%, #ffffff 100%);
    border-bottom: 1px solid #fecdd3;
}

.rk-cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #ffe4e6;
    color: #e11d48;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid #fda4af;
}

.rk-cs-title {
    font-size: 26px;
    font-weight: 900;
    color: #881337;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

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

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

.rk-cs-text a {
    color: #e11d48;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 2px solid rgba(225, 29, 72, 0.2);
    transition: all 0.3s ease;
}

.rk-cs-text a:hover {
    border-bottom-color: #e11d48;
    background: rgba(225, 29, 72, 0.05);
}

/* Symulator Kosztów Błędu */
.rk-cs-app {
    background: var(--rk-cs-dark);
    padding: 40px 50px;
    color: #ffffff;
}

.rk-cs-app-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #94a3b8;
    margin: 0 0 25px 0;
    font-weight: 800;
    text-align: center;
}

/* Interaktywny Switch */
.rk-cs-switch {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-bottom: 40px;
}

.rk-btn-cs {
    background: rgba(255,255,255,0.05);
    border: 2px solid rgba(255,255,255,0.1);
    color: #cbd5e1;
    padding: 14px 30px;
    border-radius: 12px;
    font-weight: 800;
    font-size: 15px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-btn-cs.active[data-state="projekt"] {
    background: rgba(16, 185, 129, 0.15);
    border-color: var(--rk-cs-success);
    color: #ffffff;
}

.rk-btn-cs.active[data-state="blad"] {
    background: rgba(244, 63, 94, 0.15);
    border-color: var(--rk-cs-primary);
    color: #ffffff;
    box-shadow: 0 10px 25px -5px rgba(244, 63, 94, 0.4);
}

/* Grid Wyników */
.rk-cs-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 30px;
    align-items: center;
}

/* SVG Wizualizacja */
.rk-cs-svg-box {
    background: var(--rk-cs-panel);
    border-radius: 16px;
    padding: 30px 20px;
    box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
    position: relative;
    border: 1px solid rgba(255,255,255,0.05);
}

.rk-svg-scene {
    width: 100%;
    height: auto;
    max-width: 320px;
    margin: 0 auto;
    display: block;
}

/* Animacje SVG */
.anim-screed { transition: height 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), y 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.6s; }
.anim-measure { transition: all 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-heat { transition: opacity 0.5s, stroke 0.5s; animation: riseHeat 1.5s infinite linear; }

@keyframes riseHeat {
    0% { stroke-dashoffset: 20; opacity: 0; }
    50% { opacity: 1; }
    100% { stroke-dashoffset: 0; opacity: 0; }
}

/* Klasy stanów do SVG */
.state-projekt .svg-screed { height: 65px; y: 85px; fill: #475569; }
.state-projekt .svg-line { d: path("M 210 150 L 210 85"); stroke: #10b981; }
.state-projekt .svg-text { y: 120px; fill: #10b981; }
.state-projekt .svg-heat-good { opacity: 1; }
.state-projekt .svg-heat-bad { opacity: 0; }

.state-blad .svg-screed { height: 85px; y: 65px; fill: #334155; }
.state-blad .svg-line { d: path("M 210 150 L 210 65"); stroke: #f43f5e; }
.state-blad .svg-text { y: 110px; fill: #f43f5e; }
.state-blad .svg-heat-good { opacity: 0; }
.state-blad .svg-heat-bad { opacity: 1; stroke: #f43f5e; animation-duration: 3s; } /* Ciepło ledwo przechodzi */

/* Panel Danych */
.rk-cs-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
    padding: 20px;
    border-radius: 12px;
}

.rk-stat-label {
    font-size: 13px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 8px;
    display: block;
}

.rk-stat-val {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-variant-numeric: tabular-nums;
}

.rk-stat-val small {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
}

/* Licznik Kosztów */
.rk-loss-counter {
    background: linear-gradient(135deg, rgba(244, 63, 94, 0.1) 0%, rgba(225, 29, 72, 0.2) 100%);
    border-color: rgba(244, 63, 94, 0.3);
}

.rk-loss-val {
    color: var(--rk-cs-primary);
    font-size: 32px;
}

@media (max-width: 768px) {
    .rk-cs-header, .rk-cs-app { padding: 30px 20px; }
    .rk-cs-grid { grid-template-columns: 1fr; }
    .rk-cs-switch { flex-direction: column; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Case Study: Błąd o grubości 2 cm – nadlewka, która kosztuje",
    "description": "Analiza rzeczywistego błędu wykonawczego. Zobacz, jak nadlanie wylewki o 2 cm zwiększyło bezwładność systemu, zmusiło do podniesienia Tz i wygenerowało 850 PLN strat.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-straty",
    "name": "Koszty Błędów Grubości Jastrychu (ROI)",
    "description": "Zestawienie spadku sprawności pompy ciepła (SCOP) i dodatkowych kosztów w PLN wynikających z nieuzasadnionego pogrubienia wylewki grzejnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błąd o grubości 2 cm wylewka",
      "koszt ogrzewania domu 2025 pompa ciepła",
      "bezwładność cieplna spadek COP",
      "nadlewka betonu na podłogówce",
      "temperatura zasilania Tz ogrzewania"
    ],
    "measurementTechnique": "Porównanie parametrów z projektu OZC (jastrych 6,5 cm) z weryfikacją powykonawczą (jastrych 8,5 cm) dla budynku 185m2.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bezwładność: Przyrost o 40% utrudniający stabilizację temperatury w strefach dziennych.",
        "Korekta Pompy: Wymuszone podniesienie temperatury zasilania (Tz) o 4°C w sterowniku.",
        "Koszt roczny: Spadek współczynnika SCOP wygenerował nadmiarowe zużycie prądu o wartości ok. 850 PLN/sezon."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-symulator-strat",
    "name": "Symulator Strat Błędu Wykonawczego",
    "description": "Interaktywna wizualizacja pokazująca fizyczne i finansowe skutki nieliczenia się z wytycznymi projektu OZC (zmiana grubości wylewki na obiekcie).",
    "applicationCategory": "FinancialCalculator",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, CSS transitions and SVG rendering",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cs-container" id="rk-cs-core">
    
    <div class="rk-cs-header">
        <div class="rk-cs-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            Case Study: Wrzesień 2025, Opole
        </div>
        <h2 class="rk-cs-title">Błąd o grubości 2 cm – dlaczego milimetry kosztują setki złotych?</h2>
        
        <div class="rk-cs-text">
            <p>
                We wrześniu 2025 roku nadzorowałem instalację, a w lutym 2026 korygowałem układ dla Pana Tomasza w Opolu (nowy dom 185 m²). Zignorowawszy precyzyjne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenia strat ciepła</a>, wykonawca zalał rury wylewką cementową o grubości <strong>8,5 cm</strong> zamiast projektowanych <strong>6,5 cm</strong> (potoczna „nadlewka” dla wyrównania poziomów). 
            </p>
            <p>
                <strong>Zaraz... czy 2 centymetry robią różnicę?</strong><br>
                Zrobiły kolosalną. <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Bezwładność układu</a> wzrosła o 40%, co doprowadziło do wychłodzeń nad ranem. Aby przebić się przez zaporę z betonu, temperatura zasilania (T<sub>z</sub>) na <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompie ciepła</a> musiała zostać podniesiona o 4°C. Ten pozornie drobny błąd drastycznie obniżył współczynnik efektywności SCOP urządzenia, co wywindowało <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">koszty ogrzewania</a>.
            </p>
        </div>
    </div>

    <div class="rk-cs-app state-projekt" id="rkCsEngine">
        <h3 class="rk-cs-app-title">Kalkulator Strat (Symulacja Obiektu)</h3>

        <div class="rk-cs-switch">
            <button class="rk-btn-cs active" data-state="projekt">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Zgodnie z projektem
            </button>
            <button class="rk-btn-cs" data-state="blad">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
                Samowolka wykonawcy
            </button>
        </div>

        <div class="rk-cs-grid">
            
            <div class="rk-cs-svg-box">
                <svg viewBox="0 0 250 180" class="rk-svg-scene" xmlns="http://www.w3.org/2000/svg">
                    <rect x="10" y="150" width="160" height="30" fill="#334155" rx="2" />
                    
                    <circle cx="90" cy="142" r="8" fill="#ef4444" stroke="#fff" stroke-width="2" />

                    <g class="anim-heat svg-heat-good" stroke="#10b981" stroke-width="4" stroke-dasharray="8" fill="none" stroke-linecap="round">
                        <path d="M 70 120 L 50 20" />
                        <path d="M 90 120 L 90 20" />
                        <path d="M 110 120 L 130 20" />
                    </g>
                    
                    <g class="anim-heat svg-heat-bad" stroke-width="4" stroke-dasharray="4" fill="none" stroke-linecap="round">
                        <path d="M 70 120 L 50 40" />
                        <path d="M 90 120 L 90 40" />
                        <path d="M 110 120 L 130 40" />
                    </g>

                    <rect id="svoScreed" class="anim-screed svg-screed" x="10" y="85" width="160" height="65" rx="2" opacity="0.9"/>

                    <path class="anim-measure svg-line" d="M 210 150 L 210 85" stroke-width="2" marker-start="url(#arrowCs)" marker-end="url(#arrowCs)"/>
                    <text class="anim-measure svg-text" x="220" y="120" font-size="16" font-weight="bold">6.5 cm</text>
                    
                    <defs>
                        <marker id="arrowCs" viewBox="0 0 10 10" refX="5" refY="5" markerWidth="4" markerHeight="4" orient="auto-start-reverse">
                            <path d="M 0 0 L 10 5 L 0 10 z" fill="currentColor" />
                        </marker>
                    </defs>
                </svg>
            </div>

            <div class="rk-cs-stats">
                <div class="rk-stat-card">
                    <span class="rk-stat-label">Bezwładność układu</span>
                    <span class="rk-stat-val" id="valInertia" style="color: #6ee7b7;">Optymalna</span>
                </div>
                <div class="rk-stat-card">
                    <span class="rk-stat-label">Nastawa Zasilania (T<sub>z</sub>)</span>
                    <span class="rk-stat-val" id="valTz">32.0<small>°C</small></span>
                </div>
                <div class="rk-stat-card rk-loss-counter">
                    <span class="rk-stat-label" style="color:#fda4af;">Nadmiarowe koszty / sezon</span>
                    <span class="rk-stat-val rk-loss-val">+<span id="valCost">0</span><small>PLN</small></span>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez H-tags w powiadomieniu)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-cs-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zabezpieczenie Treści</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Interaktywne Case Study oraz zintegrowane algorytmy są prawowitą własnością Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Symulatora Błędu
    const btns = document.querySelectorAll('.rk-btn-cs');
    const engine = document.getElementById('rkCsEngine');
    
    // Obiekty DOM do nadpisania
    const vInertia = document.getElementById('valInertia');
    const vTz = document.getElementById('valTz');
    const vCost = document.getElementById('valCost');
    const svgText = document.querySelector('.svg-text');

    // Licznik numeryczny (Animacja od-do)
    function animateValue(obj, start, end, duration) {
        let startTimestamp = null;
        const step = (timestamp) => {
            if (!startTimestamp) startTimestamp = timestamp;
            const progress = Math.min((timestamp - startTimestamp) / duration, 1);
            obj.innerHTML = Math.floor(progress * (end - start) + start);
            if (progress < 1) {
                window.requestAnimationFrame(step);
            }
        };
        window.requestAnimationFrame(step);
    }

    const dataModel = {
        projekt: {
            inertia: "Optymalna",
            inertiaCol: "#6ee7b7",
            tz: "32.0<small>°C</small>",
            cost: 0,
            svgLabel: "6.5 cm"
        },
        blad: {
            inertia: "+40% (Przegrzewy)",
            inertiaCol: "#fca5a5",
            tz: "36.0<small>°C</small>",
            cost: 850,
            svgLabel: "8.5 cm"
        }
    };

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zarządzanie UI Buttonów
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const state = this.getAttribute('data-state');
            const d = dataModel[state];

            // Aktywacja animacji CSS (SVG klasa główna)
            engine.className = "rk-cs-app state-" + state;

            // Wypełnianie danych
            vInertia.innerHTML = d.inertia;
            vInertia.style.color = d.inertiaCol;
            vTz.innerHTML = d.tz;
            svgText.textContent = d.svgLabel;

            // Uruchomienie animacji licznika strat finansowych
            const currentCost = parseInt(vCost.innerText) || 0;
            animateValue(vCost, currentCost, d.cost, 800);
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-primary: #2563eb; /* Mocny niebieski ekspercki */
    --rk-faq-primary-light: #eff6ff;
    --rk-faq-accent: #f59e0b; /* Akcent ostrzegawczy */
    --rk-faq-bg: #ffffff;
    --rk-faq-surface: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #475569;
}

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

/* Nagłówek */
.rk-faq-header {
    padding: 45px 50px 30px;
    background: linear-gradient(180deg, #ffffff 0%, var(--rk-faq-surface) 100%);
    border-bottom: 2px solid var(--rk-faq-primary);
    text-align: center;
}

.rk-faq-title {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.rk-faq-title svg {
    color: var(--rk-faq-primary);
}

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

/* Interaktywny Akordeon */
.rk-faq-app {
    background: #ffffff;
    padding: 30px 50px;
}

.rk-faq-item {
    border-bottom: 1px solid var(--rk-faq-border);
    margin-bottom: 10px;
}

.rk-faq-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.rk-faq-btn {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    border: none;
    padding: 25px 10px;
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-faq-dark);
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rk-faq-btn:hover {
    color: var(--rk-faq-primary);
}

.rk-faq-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-surface);
    color: var(--rk-faq-primary);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    margin-left: 20px;
}

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

/* Animowana treść odpowiedzi */
.rk-faq-answer-wrapper {
    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-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq-answer-inner {
    overflow: hidden;
}

.rk-faq-answer-content {
    padding: 0 10px 30px;
    display: flex;
    gap: 25px;
    align-items: flex-start;
}

.rk-faq-text {
    flex: 1;
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-faq-text);
    margin: 0;
}

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

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

.rk-faq-text a:hover {
    color: #1e40af;
}

/* Badge do szybkich odpowiedzi */
.rk-ans-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.badge-no { background: #fee2e2; color: #dc2626; }
.badge-info { background: #e0f2fe; color: #0284c7; }
.badge-money { background: #dcfce7; color: #16a34a; }

/* SVG Ilustracje w odpowiedziach */
.rk-faq-svg {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
    background: var(--rk-faq-surface);
    border-radius: 12px;
    padding: 15px;
    display: none; /* Mobile hide */
}

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

@media (max-width: 768px) {
    .rk-faq-header, .rk-faq-app { padding: 30px 20px; }
    .rk-faq-btn { font-size: 16px; padding: 20px 5px; }
    .rk-faq-answer-content { padding: 0 5px 25px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "FAQ – Najczęstsze pytania inwestorów o wylewki",
    "description": "Odpowiedzi inżyniera na najważniejsze pytania dotyczące wylewek na ogrzewanie podłogowe: wygrzewanie, maksymalne temperatury, koszty i zbrojenie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można kłaść panele na wylewkę bez wygrzewania?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, jest to kategorycznie zabronione, ponieważ resztkowa wilgoć zamknięta pod podkładem doprowadzi do spuchnięcia paneli lub rozwoju pleśni po uruchomieniu ogrzewania."
        }
      },
      {
        "@type": "Question",
        "name": "Jaka jest maksymalna dopuszczalna temperatura wylewki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Według normy PN-EN 1264, temperatura powierzchni jastrychu w strefie stałego przebywania ludzi nie może przekraczać 29°C (w łazienkach 33°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Czy zbrojenie siatką stalową jest konieczne w anhydrycie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, jastrychy anhydrytowe charakteryzują się wysoką wytrzymałością na zginanie i niskim skurczem, co eliminuje potrzebę stosowania siatek stalowych."
        }
      },
      {
        "@type": "Question",
        "name": "Czy wylewka cementowa jest tańsza od anhydrytowej?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sam materiał i robocizna są tańsze o ok. 15-25%, jednak biorąc pod uwagę konieczność zbrojenia i niższą wydajność termiczną, różnica w koszcie całkowitym inwestycji często się zaciera."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-faq",
    "name": "Baza Wiedzy Inwestora - Zestawienie Błędów i Wytycznych",
    "description": "Zbiór ustandaryzowanych odpowiedzi rozwiązujących najczęstsze problemy wykonawcze z wylewkami grzejnymi.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "wygrzewanie wylewki pod panele laminowane",
      "maksymalna temperatura jastrychu 29 stopni",
      "zbrojenie wylewki anhydrytowej siatka",
      "koszt wylewki cementowej vs anhydryt",
      "pleśń pod panelami wilgotność CM"
    ],
    "measurementTechnique": "Weryfikacja parametrów z wytycznymi norm budowlanych (m m.in. PN-EN 1264) oraz badaniami wilgotności resztkowej (CM).",
    "mainEntity": "FAQPage"
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-faq",
    "name": "Interaktywny Panel Ekspercki FAQ",
    "description": "Rozwijane, interaktywne menu akordeonowe ułatwiające skanowanie i przeglądanie kluczowych pytań i odpowiedzi inżynierskich.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-core">
    
    <div class="rk-faq-header">
        <h2 class="rk-faq-title">
            <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><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>
            FAQ – Najczęstsze pytania inwestorów
        </h2>
        <p class="rk-faq-desc">
            Podłogówka to system naczyń połączonych, a błędy na etapie wylewki kosztują tysiące złotych. Sprawdź inżynierskie odpowiedzi na pytania, które najczęściej słyszę od inwestorów na budowach.
        </p>
    </div>

    <div class="rk-faq-app">
        
        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                1. Czy można kłaść panele na wylewkę bez wygrzewania?
                <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-answer-wrapper">
                <div class="rk-faq-answer-inner">
                    <div class="rk-faq-answer-content">
                        <div class="rk-faq-text">
                            <span class="rk-ans-badge badge-no">Kategorycznie Nie</span><br>
                            Jest to fundamentalny błąd. Resztkowa wilgoć zamknięta pod podkładem doprowadzi do spuchnięcia <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">paneli laminowanych</a> lub drewnianych, a także do agresywnego rozwoju pleśni po uruchomieniu pompy obiegowej. Zawsze wymagaj od wykonawcy protokołu wygrzewania i badania wilgotności metodą karbidową (CM).
                        </div>
                        <svg class="rk-faq-svg" viewBox="0 0 24 24" fill="none" stroke="#dc2626" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="17 8 12 3 7 8"></polyline><line x1="12" y1="3" x2="12" y2="15"></line></svg>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                2. Jaka jest maksymalna dopuszczalna temperatura wylewki?
                <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-answer-wrapper">
                <div class="rk-faq-answer-inner">
                    <div class="rk-faq-answer-content">
                        <div class="rk-faq-text">
                            <span class="rk-ans-badge badge-info">Zgodnie z PN-EN 1264</span><br>
                            Zarówno ze względów zdrowotnych, jak i fizyki posadzki, <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalna i maksymalna temperatura</a> powierzchni jastrychu (T<sub>surf</sub>) w strefie stałego przebywania ludzi nie może przekraczać <strong>29°C</strong>. W łazienkach dopuszcza się <strong>33°C</strong>, a w <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a> (np. przy dużych przeszkleniach) do <strong>35°C</strong>.
                        </div>
                        <svg class="rk-faq-svg" viewBox="0 0 24 24" fill="none" stroke="#0284c7" 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></svg>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                3. Czy zbrojenie siatką stalową jest konieczne w anhydrycie?
                <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-answer-wrapper">
                <div class="rk-faq-answer-inner">
                    <div class="rk-faq-answer-content">
                        <div class="rk-faq-text">
                            <span class="rk-ans-badge badge-info">Brak zbrojenia</span><br>
                            Nie, siatka jest zbędna. Jastrychy anhydrytowe charakteryzują się bardzo wysoką wytrzymałością na zginanie i minimalnym skurczem przestrzennym w trakcie wiązania. W przeciwieństwie do tradycyjnej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej z miksokreta</a>, eliminuje to potrzebę stosowania jakichkolwiek siatek stalowych czy zbrojenia rozproszonego (włókien).
                        </div>
                        <svg class="rk-faq-svg" viewBox="0 0 24 24" fill="none" stroke="#0284c7" 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>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-btn">
                4. Czy wylewka cementowa jest tańsza od anhydrytowej?
                <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-answer-wrapper">
                <div class="rk-faq-answer-inner">
                    <div class="rk-faq-answer-content">
                        <div class="rk-faq-text">
                            <span class="rk-ans-badge badge-money">Analiza ROI</span><br>
                            Pozornie tak. Sam materiał i <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%c2%b2-robocizny/">robocizna ekipy</a> są tańsze o ok. 15-25%. Jednak biorąc pod uwagę konieczność zakupu zbrojenia, plastyfikatora, dłuższy czas schnięcia (przestoje budowy) oraz – co najważniejsze – wyższe rachunki za ogrzewanie z powodu mniejszej wydajności termicznej, różnica w <a href="https://projekt-ogrzewania.pl/kompleksowa-wycena-ogrzewania-podlogowego-wodnego-na-co-przygotowac-budzet/">koszcie całkowitym inwestycji</a> zaciera się w ciągu pierwszych 2-3 sezonów grzewczych.
                        </div>
                        <svg class="rk-faq-svg" viewBox="0 0 24 24" fill="none" stroke="#16a34a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez H-tags w bloku ostrzeżenia)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-faq-core');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Ochrona Własności Intelektualnej</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Interaktywny Panel FAQ oraz zintegrowane dane JSON-LD są chronione prawem autorskim serwisu Projekt-Ogrzewania.pl.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Akordeonu
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-btn');
        
        btn.addEventListener('click', () => {
            // Zamknij wszystkie inne (Opcjonalne - dla zachowania czystości interfejsu)
            faqItems.forEach(otherItem => {
                if (otherItem !== item && otherItem.classList.contains('active')) {
                    otherItem.classList.remove('active');
                }
            });
            
            // Przełącz kliknięty
            item.classList.toggle('active');
        });
    });
    
    // Otwórz pierwsze pytanie domyślnie
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-end-dark: #1e293b;
    --rk-end-primary: #f97316; /* Pomarańcz - ciepło */
    --rk-end-primary-light: #ffedd5;
    --rk-end-accent: #0ea5e9; /* Niebieski - inżynieria */
    --rk-end-bg: #ffffff;
    --rk-end-gray-light: #f1f5f9;
    --rk-end-text: #334155;
    --rk-end-warning: #ef4444;
}

.rk-final-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-end-bg);
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(249, 115, 22, 0.15);
    border: 1px solid #fed7aa;
    overflow: hidden;
}

/* Header z gradientem ciepła */
.rk-final-header {
    background: linear-gradient(135deg, var(--rk-end-dark) 0%, #0f172a 100%);
    padding: 40px 40px 30px;
    text-align: center;
    position: relative;
    border-bottom: 4px solid var(--rk-end-primary);
}

.rk-final-header h2 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-final-lead {
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.6;
    max-width: 700px;
    margin: 0 auto;
    font-weight: 300;
}

.rk-final-lead strong {
    color: var(--rk-end-primary);
    font-weight: 700;
}

/* Interaktywny symulator */
.rk-final-sim {
    padding: 40px;
    background: var(--rk-end-gray-light);
}

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

/* Toggle Switch w stylu mobilnym */
.rk-toggle-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
}

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

.rk-toggle-btn {
    padding: 12px 30px;
    border-radius: 99px;
    font-size: 16px;
    font-weight: 700;
    color: #64748b;
    cursor: pointer;
    border: none;
    background: transparent;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    z-index: 2;
}

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

.rk-toggle-pill {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-end-primary);
    border-radius: 99px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 10px -2px rgba(249, 115, 22, 0.5);
    z-index: 1;
}

.state-cement .rk-toggle-pill {
    transform: translateX(100%);
    background: var(--rk-end-dark);
    box-shadow: 0 4px 10px -2px rgba(30, 41, 59, 0.5);
}

/* Obszar danych technicznych i SVG */
.rk-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 10px 25px -5px rgba(0,0,0,0.05);
}

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

.anim-heat-wave {
    opacity: 0;
}

/* Animacje Anhydryt - Szybkie oddawanie ciepła */
.state-anhydryt .wave-1 { animation: riseHeat 1.5s infinite 0s; stroke: #f97316; }
.state-anhydryt .wave-2 { animation: riseHeat 1.5s infinite 0.5s; stroke: #fb923c; }
.state-anhydryt .wave-3 { animation: riseHeat 1.5s infinite 1.0s; stroke: #fdba74; }
.state-anhydryt .screed-layer { height: 55px; fill: #ffedd5; transition: all 0.5s; }

/* Animacje Cement - Wolne oddawanie ciepła */
.state-cement .wave-1 { animation: riseHeat 3s infinite 0s; stroke: #94a3b8; }
.state-cement .wave-2 { animation: riseHeat 3s infinite 1s; stroke: #cbd5e1; }
.state-cement .wave-3 { animation: riseHeat 3s infinite 2s; stroke: #e2e8f0; }
.state-cement .screed-layer { height: 65px; fill: #f1f5f9; transition: all 0.5s; }

@keyframes riseHeat {
    0% { transform: translateY(0) scale(0.9); opacity: 0; }
    50% { opacity: 1; }
    100% { transform: translateY(-40px) scale(1.1); opacity: 0; }
}

.rk-tech-stats {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 10px;
    border-bottom: 1px dashed #cbd5e1;
}

.rk-stat-label {
    font-size: 15px;
    color: var(--rk-end-text);
    font-weight: 500;
}

.rk-stat-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-end-dark);
    transition: color 0.3s;
}

.state-anhydryt .val-highlight { color: var(--rk-end-primary); }
.state-cement .val-highlight { color: var(--rk-end-accent); }

/* Sekcja ostrzeżeń i podsumowania tekstu */
.rk-final-content {
    padding: 40px;
}

.rk-warning-box {
    background: #fef2f2;
    border-left: 5px solid var(--rk-end-warning);
    padding: 20px 25px;
    border-radius: 0 12px 12px 0;
    margin-bottom: 30px;
}

.rk-warning-box h4 {
    margin: 0 0 10px 0;
    color: var(--rk-end-warning);
    font-size: 18px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-warning-box p {
    margin: 0;
    font-size: 15px;
    color: #7f1d1d;
    line-height: 1.6;
}

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

.rk-final-text a {
    color: var(--rk-end-accent);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Footer / CTA */
.rk-final-footer {
    background: #0f172a;
    padding: 30px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
}

.rk-signature {
    color: #94a3b8;
    font-size: 16px;
    font-weight: 400;
    font-style: italic;
}

.rk-signature span {
    color: var(--rk-end-primary);
    font-weight: 800;
    font-style: normal;
    display: block;
    font-size: 20px;
    margin-top: 5px;
}

.rk-cta-btn {
    background: var(--rk-end-primary);
    color: #fff;
    padding: 16px 32px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-cta-btn:hover {
    background: #ea580c;
    transform: scale(1.05);
    box-shadow: 0 10px 20px -5px rgba(234, 88, 12, 0.4);
}

@media (max-width: 768px) {
    .rk-data-grid { grid-template-columns: 1fr; gap: 20px; }
    .rk-final-header, .rk-final-sim, .rk-final-content { padding: 25px; }
    .rk-final-header h2 { font-size: 24px; }
    .rk-toggle-btn { padding: 10px 20px; font-size: 14px; }
    .rk-final-footer { flex-direction: column; text-align: center; justify-content: center; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Mocne podsumowanie – Wylewka to Twój wymiennik ciepła",
    "description": "Podsumowanie parametrów technicznych wylewek grzejnych. Zobacz, dlaczego grubość jastrychu decyduje o sprawności pompy ciepła i dlaczego błędy są nieodwracalne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-10",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-wylewki",
    "name": "Parametry Termiczne i Geometryczne Wylewek 2026",
    "description": "Zestawienie optymalnych grubości i parametrów dla wylewki anhydrytowej oraz cementowej w kontekście współpracy z pompami ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jastrych anhydrytowy 55 mm",
      "wylewka cementowa 65 mm",
      "opór cieplny Rλ",
      "badanie wilgotności metodą CM",
      "wymiennik ciepła ogrzewania podłogowego"
    ],
    "measurementTechnique": "Obliczenia na podstawie normy PN-EN 1264 oraz fizyki budowli dla instalacji płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Anhydryt: Grubość całkowita 55mm, wysoka przewodność, niska bezwładność.",
        "Cement: Grubość całkowita 65mm, wyższa bezwładność, wymaga plastyfikatorów i dylatacji."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-wymiennik",
    "name": "Symulator Wymiennika Ciepła Jastrychu",
    "description": "Interaktywny panel przełączający parametry fizyczne i wizualizację emisji ciepła pomiędzy wylewką anhydrytową a tradycyjnym betonem.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-final-container" id="wylewka-sum-app">
    
    <div class="rk-final-header">
        <h2>Mocne podsumowanie</h2>
        <div class="rk-final-lead">
            Wylewka to nie jest tylko „podłoga”. To Twój główny <strong>wymiennik ciepła</strong>, który decyduje o tym, czy Twoja <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color:#fff; text-decoration:underline;">pompa ciepła</a> będzie pracować z maksymalnym COP, czy generować straty rzędu tysięcy złotych rocznie.
        </div>
    </div>

    <!-- Symulator Wymiennika -->
    <div class="rk-final-sim" id="rkSimCore">
        <h3>Symulacja parametrów na 2026 rok</h3>
        
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle-bg">
                <div class="rk-toggle-pill"></div>
                <button class="rk-toggle-btn active" data-type="anhydryt">Anhydryt (Płynny)</button>
                <button class="rk-toggle-btn" data-type="cement">Cement (Miksokret)</button>
            </div>
        </div>

        <div class="rk-data-grid">
            <!-- Interaktywny przekrój podłogi -->
            <div class="rk-svg-container">
                <svg viewBox="0 0 200 150" xmlns="http://www.w3.org/2000/svg">
                    <!-- Fale ciepła -->
                    <path class="anim-heat-wave wave-1" d="M40,70 Q50,40 40,10" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <path class="anim-heat-wave wave-2" d="M100,70 Q110,40 100,10" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <path class="anim-heat-wave wave-3" d="M160,70 Q170,40 160,10" fill="none" stroke-width="3" stroke-linecap="round"/>
                    
                    <!-- Okładzina wierzchnia -->
                    <rect x="10" y="75" width="180" height="8" fill="#e5e7eb" rx="2" />
                    
                    <!-- Warstwa Jastrychu (Wysokość dynamiczna z CSS) -->
                    <rect class="screed-layer" x="10" y="83" width="180" rx="2" />
                    
                    <!-- Rury PEX -->
                    <circle cx="40" cy="115" r="8" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    <circle cx="100" cy="115" r="8" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    <circle cx="160" cy="115" r="8" fill="#ef4444" stroke="#ffffff" stroke-width="2"/>
                    
                    <!-- Izolacja EPS -->
                    <rect x="10" y="138" width="180" height="12" fill="#cbd5e1" rx="2"/>
                </svg>
            </div>

            <!-- Zmienne Dane -->
            <div class="rk-tech-stats">
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Rekomendowana grubość</span>
                    <span class="rk-stat-value val-highlight" id="val-thickness">55 mm</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Nadlewka nad rurą (sd)</span>
                    <span class="rk-stat-value" id="val-sd">min. 35 mm</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Opór cieplny Rλ</span>
                    <span class="rk-stat-value" id="val-r">Bardzo niski</span>
                </div>
                <div class="rk-stat-row">
                    <span class="rk-stat-label">Gotowość do wygrzewania</span>
                    <span class="rk-stat-value" id="val-time">Po 7 dniach</span>
                </div>
            </div>
        </div>
    </div>

    <!-- Treść merytoryczna -->
    <div class="rk-final-content">
        <div class="rk-warning-box">
            <h4>
                <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="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 błędu jest nieodwracalne
            </h4>
            <p>Błąd na etapie wylewki jest praktycznie nieusuwalny bez kucia całego parteru. Dlatego <strong>zawsze wymagaj od wykonawcy protokołu z wygrzewania technologicznego</strong> oraz twardego sprawdzenia wilgotności metodą CM (karbidową) przed montażem docelowych okładzin posadzkowych.</p>
        </div>

        <div class="rk-final-text">
            <p>Jeśli masz wątpliwości, zajrzyj do swojego projektu instalacji ogrzewania. To tam powinny być czarno na białym określone parametry oporu cieplnego (Rλ) niezbędne dla optymalnego przepływu energii w Twoim budynku.</p>
            <p>Zastanawiasz się, która opcja będzie idealna dla Twojej inwestycji? Porównaj parametry fizyczne, używając narzędzi inżynierskich dostępnych w naszej bazie wiedzy.</p>
        </div>
    </div>

    <!-- Stopka CTA -->
    <div class="rk-final-footer">
        <div class="rk-signature">
            Masz pytania o konkretną mieszankę? Jako inżynier powtarzam:
            <span>BUDUJ BEZ ŚCIEMY, LICZ Z FIZYKĄ.</span>
        </div>
        <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" class="rk-cta-btn">
            Uruchom Kalkulatory
            <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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg>
        </a>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Zabezpieczenie Domenowe (Bez nagłówków H2/H3)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('wylewka-sum-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🛑</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 14px; color: #cbd5e1; max-width: 500px; margin: 0 auto; line-height: 1.6;">
                        Kontener interaktywny "Symulator Wymiennika" oraz struktura JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Wykryto próbę uruchomienia skryptu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Toggle / Symulatora
    const simCore = document.getElementById('rkSimCore');
    const buttons = document.querySelectorAll('.rk-toggle-btn');
    
    // Pola tekstowe do podmiany
    const vThick = document.getElementById('val-thickness');
    const vSd = document.getElementById('val-sd');
    const vR = document.getElementById('val-r');
    const vTime = document.getElementById('val-time');

    // Domyślny stan
    simCore.classList.add('state-anhydryt');

    buttons.forEach(btn => {
        btn.addEventListener('click', function() {
            const type = this.getAttribute('data-type');
            
            // UI Toggle
            buttons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Zmiana klas kontenera animacji
            simCore.classList.remove('state-anhydryt', 'state-cement');
            simCore.classList.add('state-' + type);

            // Zmiana danych
            if(type === 'anhydryt') {
                vThick.textContent = '55 mm';
                vSd.textContent = 'min. 35 mm';
                vR.textContent = 'Bardzo niski';
                vTime.textContent = 'Po 7 dniach';
            } else {
                vThick.textContent = '65 mm';
                vSd.textContent = 'min. 45 mm';
                vR.textContent = 'Większy (bufor)';
                vTime.textContent = 'Po 28 dniach';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-primary: #0284c7; /* Inżynierski niebieski */
    --rk-dl-accent: #f59e0b; /* Akcent złoty */
    --rk-dl-bg: #ffffff;
    --rk-dl-surface: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
}

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

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

.rk-dl-title {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-intro {
    font-size: 17px;
    line-height: 1.6;
    color: #94a3b8;
    max-width: 750px;
    margin: 0 auto;
}

.rk-dl-intro strong {
    color: var(--rk-dl-accent);
}

/* Interaktywna Przeglądarka z Lupą */
.rk-dl-viewer {
    padding: 40px;
    background: var(--rk-dl-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-viewer-box {
    position: relative;
    width: 100%;
    max-width: 600px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    overflow: hidden;
    cursor: zoom-in;
    border: 1px solid var(--rk-dl-border);
}

.rk-infographic-img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease;
}

/* Lupa */
.rk-magnifier {
    position: absolute;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    border: 4px solid #fff;
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    background-repeat: no-repeat;
    display: none;
    pointer-events: none;
    z-index: 10;
}

/* Przyciski Pobierania */
.rk-dl-dashboard {
    padding: 40px 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
}

.rk-dl-card {
    background: var(--rk-dl-surface);
    border: 1px solid var(--rk-dl-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: transform 0.3s, border-color 0.3s;
}

.rk-dl-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-dl-primary);
}

.rk-card-icon {
    width: 48px;
    height: 48px;
    background: #fff;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-dl-primary);
    margin-bottom: 20px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

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

.rk-card-desc {
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
    margin-bottom: 20px;
}

.rk-btn-action {
    width: 100%;
    padding: 14px;
    background: var(--rk-dl-primary);
    color: #fff;
    text-align: center;
    border-radius: 10px;
    font-weight: 800;
    text-decoration: none;
    font-size: 15px;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.rk-btn-pdf {
    background: #ef4444;
}

.rk-btn-pdf:hover {
    background: #dc2626;
}

@media (max-width: 768px) {
    .rk-dl-dashboard { grid-template-columns: 1fr; padding: 30px 20px; }
    .rk-dl-header { padding: 30px 20px; }
    .rk-dl-title { font-size: 22px; }
    .rk-viewer-box { cursor: default; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/"
    },
    "headline": "Kompletna infografika: Wylewka na ogrzewanie podłogowe",
    "description": "Pobierz inżynierski przewodnik po jastrychach. Zobacz warstwy systemu, czasy schnięcia i harmonogram wygrzewania technologicznego na jednej, czytelnej grafice.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Wylewka-na-ogrzewanie-podlogowe-–-kompletny-przewodnik.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-02-18",
    "dateModified": "2026-05-10"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#dataset-przewodnik",
    "name": "Wytyczne Inżynierskie dla Wylewek Podłogowych 2026",
    "description": "Dane znormalizowane dotyczące grubości (5-7 cm), czasów schnięcia (7-28 dni) oraz krzywej wygrzewania posadzki grzejnej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "grubość wylewki 5-7 cm",
      "czas schnięcia betonu 28 dni",
      "schnięcie anhydrytu 7-14 dni",
      "warstwy ogrzewania podłogowego",
      "pobierz pdf wygrzewanie posadzki"
    ],
    "measurementTechnique": "Zbiór danych technicznych z infografiki opartej na normie PN-EN 1264 i fizyce budowli.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Optymalna grubość nad instalacją: 5-7 cm[cite: 5].",
        "Czas schnięcia Anhydryt: 7-14 dni[cite: 58].",
        "Czas schnięcia Beton: 21-28 dni[cite: 60].",
        "Faza wygrzewania: 20°C do 50°C ."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/#webapp-infoviewer",
    "name": "Interaktywny Podgląd Dokumentacji Technicznej",
    "description": "Narzędzie pozwalające na powiększenie i analizę warstw instalacji podłogowej przed pobraniem schematu w wersji PDF.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and high-res image support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-download-app">
    
    <div class="rk-dl-header">
        <h2 class="rk-dl-title">Pobierz Przewodnik Inżynierski</h2>
        <p class="rk-dl-intro">
            Zasady są proste: <strong>licz z fizyką, buduj bez ściemy.</strong> Przygotowałem dla Ciebie kompletny schemat, który możesz zabrać na budowę i pokazać swojemu wykonawcy. To Twoje ubezpieczenie przed błędami, których nie da się naprawić po wylaniu betonu.
        </p>
    </div>

    <div class="rk-dl-viewer">
        <div class="rk-viewer-box" id="rkViewer">
            <div id="rkMagnifier" class="rk-magnifier"></div>
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Wylewka-na-ogrzewanie-podlogowe-–-kompletny-przewodnik.webp" alt="Infografika Wylewka na ogrzewanie podłogowe – kompletny przewodnik" class="rk-infographic-img" id="rkMainImg">
        </div>
        <p style="margin-top: 15px; font-size: 13px; color: #64748b; font-weight: 600;">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" style="vertical-align: middle; margin-right: 5px;"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
            Najechać na grafikę, aby powiększyć detale 
        </p>
    </div>

    <div class="rk-dl-dashboard">
        <div class="rk-dl-card">
            <div class="rk-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><circle cx="8.5" cy="8.5" r="1.5"></circle><polyline points="21 15 16 10 5 21"></polyline></svg>
            </div>
            <h3 class="rk-card-title">Wersja Graficzna (WEBP)</h3>
            <p class="rk-card-desc">Idealna do szybkiego podglądu na smartfonie. Wysoka rozdzielczość, lekki format.</p>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Wylewka-na-ogrzewanie-podlogowe-–-kompletny-przewodnik.webp" download class="rk-btn-action">
                Pobierz Obraz (HD)
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            </a>
        </div>

        <div class="rk-dl-card">
            <div class="rk-card-icon">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ef4444" 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 class="rk-card-title">Format Drukarski (PDF)</h3>
            <p class="rk-card-desc">Wersja wektorowa do wydruku w formacie A3/A4. Niezbędna dokumentacja na placu budowy.</p>
            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Wylewka-na-ogrzewanie-podlogowe-–-kompletny-przewodnik.pdf" download class="rk-btn-action rk-btn-pdf">
                Pobierz Dokument PDF
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
            </a>
        </div>
    </div>
    
    <div style="background: #f1f5f9; padding: 20px 50px; border-top: 1px solid var(--rk-dl-border); text-align: center;">
        <p style="font-size: 14px; color: #475569; margin: 0;">
            Potrzebujesz obliczeń pod konkretny metraż? Użyj naszego <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/" style="color: var(--rk-dl-primary); font-weight: 700; text-decoration: underline;">Kalkulatora Inżynierskiego</a>.
        </p>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 1. Dyskretne zabezpieczenie domenowe (bez znaczników H)
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-download-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 40px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 20px; font-family: sans-serif; max-width: 950px; margin: 40px auto;">
                    <div style="font-size: 36px; margin-bottom: 15px;">🔒</div>
                    <div style="font-size: 18px; font-weight: 900; margin-bottom: 10px; text-transform: uppercase;">Zasoby Zastrzeżone</div>
                    <div style="font-size: 14px; color: #cbd5e1; line-height: 1.6;">
                        Interaktywne Centrum Pobierania oraz schematy techniczne stanowią własność Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu na nieautoryzowanej domenie.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Lupy (Magnifier)
    const viewer = document.getElementById('rkViewer');
    const mainImg = document.getElementById('rkMainImg');
    const magnifier = document.getElementById('rkMagnifier');

    if (viewer && magnifier && window.innerWidth > 768) {
        viewer.addEventListener('mousemove', function(e) {
            magnifier.style.display = 'block';
            
            const rect = viewer.getBoundingClientRect();
            const x = e.pageX - rect.left - window.scrollX;
            const y = e.pageY - rect.top - window.scrollY;

            // Pozycjonowanie lupy
            magnifier.style.left = (x - magnifier.offsetWidth / 2) + 'px';
            magnifier.style.top = (y - magnifier.offsetHeight / 2) + 'px';

            // Pozycjonowanie tła lupy (powiększenie 2x)
            const zoom = 2;
            magnifier.style.backgroundImage = `url('${mainImg.src}')`;
            magnifier.style.backgroundSize = (mainImg.width * zoom) + "px " + (mainImg.height * zoom) + "px";
            magnifier.style.backgroundPosition = "-" + ((x * zoom) - magnifier.offsetWidth / 2) + "px -" + ((y * zoom) - magnifier.offsetHeight / 2) + "px";
        });

        viewer.addEventListener('mouseleave', () => magnifier.style.display = 'none');
    }
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">Wylewka na ogrzewanie podłogowe – kompletny przewodnik.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
