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

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Remonty i budowa - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/remonty-i-budowa/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>
		<item>
		<title>Podłogi drewniane vs. panele laminowane – co wybrać przy ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 29 Jan 2025 11:14:30 +0000</pubDate>
				<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Ekologia w budownictwie]]></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[Panele laminowane]]></category>
		<category><![CDATA[Podłogi drewniane]]></category>
		<category><![CDATA[Remonty i budowa]]></category>
		<category><![CDATA[Wykończenie wnętrz]]></category>
		<category><![CDATA[energooszczędność]]></category>
		<category><![CDATA[materiały wykończeniowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[panele laminowane]]></category>
		<category><![CDATA[podłogi a ogrzewanie]]></category>
		<category><![CDATA[podłogi drewniane]]></category>
		<category><![CDATA[przewodnictwo cieplne]]></category>
		<category><![CDATA[remont mieszkania]]></category>
		<category><![CDATA[trwałość podłóg]]></category>
		<category><![CDATA[wybór podłogi]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2028</guid>

					<description><![CDATA[<p>Decydując się na ogrzewanie podłogowe, kluczowym wyborem staje się materiał wykończeniowy. Podłogi drewniane vs. panele laminowane – co wybrać przy ogrzewaniu podłogowym? Oba rozwiązania mają swoje zalety i wady, dlatego warto przyjrzeć się ich właściwościom, przewodnictwu cieplnemu oraz trwałości. W tym artykule porównujemy oba materiały, pomagając Ci podjąć świadomą decyzję. Dowiesz się, które podłoże lepiej współpracuje z systemem grzewczym, jakie są koszty eksploatacji i który wariant sprawdzi się w Twoim domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Podłogi drewniane vs. panele laminowane – co wybrać przy ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wybór odpowiedniego materiału na podłogę ma ogromne znaczenie, zwłaszcza gdy planujesz instalację ogrzewania podłogowego. Właściwa podłoga nie tylko wpływa na komfort użytkowania, ale także na efektywność systemu grzewczego. <strong>Podłogi drewniane vs. panele laminowane – co wybrać przy ogrzewaniu podłogowym?</strong> To pytanie pojawia się u wielu osób, które stoją przed decyzją dotyczącą rodzaju pokrycia podłogowego. Oba rozwiązania mają swoje zalety i wady, dlatego w tym artykule przeanalizujemy ich właściwości, trwałość oraz przewodnictwo cieplne, aby pomóc Ci podjąć najlepszą decyzję.</p>



<h2 class="wp-block-heading"><strong><em>Podłogi drewniane a ogrzewanie podłogowe – czy to dobry wybór?</em></strong></h2>



<p class="wp-block-paragraph">Podłogi drewniane od lat cieszą się ogromną popularnością ze względu na swoją naturalność, elegancję i trwałość. Jednak czy są one odpowiednie do zastosowania z ogrzewaniem podłogowym?</p>



<h3 class="wp-block-heading"><strong><em>Zalety podłóg drewnianych:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Naturalny wygląd</strong>&nbsp;– drewno dodaje wnętrzom ciepła i charakteru.</li>



<li><strong>Trwałość</strong>&nbsp;– odpowiednio konserwowane podłogi drewniane mogą służyć dziesiątki lat.</li>



<li><strong>Dobre właściwości izolacyjne</strong>&nbsp;– drewno jest ciepłe w dotyku, co zwiększa komfort użytkowania.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Wady podłóg drewnianych:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Wrażliwość na zmiany temperatury</strong>&nbsp;– drewno może się kurczyć lub rozszerzać pod wpływem ciepła.</li>



<li><strong>Wymagająca konserwacja</strong>&nbsp;– konieczne jest regularne olejowanie lub lakierowanie.</li>



<li><strong>Wyższy koszt</strong>&nbsp;– podłogi drewniane są droższe niż panele laminowane.</li>
</ul>



<p class="wp-block-paragraph">Jeśli decydujesz się na podłogę drewnianą, wybierz gatunki o niskiej kurczliwości, takie jak dąb czy klon. Warto również skonsultować się z ekspertami, którzy doradzą, jak najlepiej połączyć ten materiał z ogrzewaniem podłogowym.</p>



<h2 class="wp-block-heading"><strong><em>Panele laminowane – czy to dobre rozwiązanie przy ogrzewaniu podłogowym?</em></strong></h2>



<p class="wp-block-paragraph">Panele laminowane to popularna alternatywa dla podłóg drewnianych. Są tańsze, łatwiejsze w montażu i dostępne w wielu wzorach. Ale czy sprawdzą się w połączeniu z <a href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/">ogrzewaniem podłogowym</a>?</p>



<h3 class="wp-block-heading"><strong><em>Zalety paneli laminowanych:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Niska cena</strong>&nbsp;– panele laminowane są znacznie tańsze niż podłogi drewniane.</li>



<li><strong>Łatwość montażu</strong>&nbsp;– system „click” pozwala na szybkie ułożenie podłogi.</li>



<li><strong>Odporność na zarysowania</strong>&nbsp;– warstwa laminatu chroni przed uszkodzeniami mechanicznymi.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Wady paneli laminowanych:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Mniejsza trwałość</strong>&nbsp;– panele laminowane mają krótszą żywotność niż podłogi drewniane.</li>



<li><strong>Gorsze właściwości izolacyjne</strong>&nbsp;– laminat jest chłodniejszy w dotyku niż drewno.</li>



<li><strong>Wrażliwość na wilgoć</strong>&nbsp;– nie nadają się do pomieszczeń o wysokiej wilgotności.</li>
</ul>



<p class="wp-block-paragraph">Jeśli wybierasz panele laminowane, upewnij się, że są one przystosowane do ogrzewania podłogowego. Na opakowaniu powinna znajdować się odpowiednia informacja.</p>



<h2 class="wp-block-heading"><strong><em>Który materiał lepiej przewodzi ciepło?</em></strong></h2>



<p class="wp-block-paragraph">Jednym z kluczowych czynników przy wyborze podłogi do ogrzewania podłogowego jest jej zdolność do przewodzenia ciepła. Im lepsza przewodność, tym efektywniej działa system grzewczy.</p>



<h3 class="wp-block-heading"><strong><em>Porównanie przewodności cieplnej:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Podłogi drewniane</strong>&nbsp;– mają niższą przewodność cieplną, co oznacza, że nagrzewają się wolniej, ale dłużej utrzymują ciepło.</li>



<li><strong>Panele laminowane</strong>&nbsp;– lepiej przewodzą ciepło, dzięki czemu podłoga szybciej się nagrzewa.</li>
</ul>



<p class="wp-block-paragraph">Jeśli zależy Ci na szybkim efekcie grzewczym, panele laminowane mogą być lepszym wyborem. Jednak podłogi drewniane zapewniają bardziej równomierne rozprowadzenie ciepła.</p>



<p class="wp-block-paragraph">Przeczytaj również:</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="fBCKgJbScf"><a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">Jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego.</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Jak rodzaj okładziny podłogowej wpływa na wydajność ogrzewania podłogowego.&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/embed/#?secret=a3z8XTs6SN#?secret=fBCKgJbScf" data-secret="fBCKgJbScf" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<h2 class="wp-block-heading"><strong><em>Który materiał jest bardziej odporny na zmiany temperatury?</em></strong></h2>



<p class="wp-block-paragraph">Ogrzewanie podłogowe powoduje cykliczne zmiany temperatury, które mogą wpływać na stan podłogi. Dlatego ważne jest, aby wybrać materiał odporny na takie warunki.</p>



<h3 class="wp-block-heading"><strong><em>Podłogi drewniane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Wrażliwe na zmiany temperatury</strong>&nbsp;– mogą się kurczyć lub rozszerzać, co prowadzi do powstawania szczelin.</li>



<li><strong>Wymagają odpowiedniego przygotowania</strong>&nbsp;– konieczne jest zastosowanie drewna o niskiej kurczliwości.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Panele laminowane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Bardziej odporne na zmiany temperatury</strong>&nbsp;– laminat lepiej znosi wahania ciepła.</li>



<li><strong>Mniejsze ryzyko odkształceń</strong>&nbsp;– pod warunkiem, że panele są wysokiej jakości.</li>
</ul>



<h2 class="wp-block-heading"><strong><em>Który materiał jest łatwiejszy w montażu?</em></strong></h2>



<p class="wp-block-paragraph">Montaż podłogi to kolejny ważny aspekt, który warto wziąć pod uwagę. Zarówno podłogi drewniane, jak i panele laminowane mają swoje wymagania.</p>



<h3 class="wp-block-heading"><strong><em>Podłogi drewniane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Wymagają profesjonalnego montażu</strong>&nbsp;– konieczne jest klejenie lub przybijanie desek.</li>



<li><strong>Dłuższy czas instalacji</strong>&nbsp;– proces może trwać nawet kilka dni.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Panele laminowane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Łatwe w montażu</strong>&nbsp;– system „click” pozwala na samodzielne ułożenie podłogi.</li>



<li><strong>Szybka instalacja</strong>&nbsp;– panele można położyć w ciągu jednego dnia.</li>
</ul>



<h2 class="wp-block-heading"><strong><em>Który materiał jest bardziej ekologiczny?</em></strong></h2>



<p class="wp-block-paragraph">Jeśli zależy Ci na ekologii, warto zwrócić uwagę na pochodzenie materiałów oraz ich wpływ na środowisko.</p>



<h3 class="wp-block-heading"><strong><em>Podłogi drewniane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Naturalne i biodegradowalne</strong>&nbsp;– drewno jest surowcem odnawialnym.</li>



<li><strong>Możliwość recyklingu</strong>&nbsp;– zużyte deski można przetworzyć.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Panele laminowane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Mniej ekologiczne</strong>&nbsp;– zawierają tworzywa sztuczne, które trudno poddać recyklingowi.</li>



<li><strong>Wymagają więcej energii do produkcji</strong>&nbsp;– proces laminowania jest bardziej energochłonny.</li>
</ul>



<h2 class="wp-block-heading"><strong><em>Który materiał jest bardziej uniwersalny?</em></strong></h2>



<p class="wp-block-paragraph">Uniwersalność podłogi to kolejny czynnik, który warto wziąć pod uwagę. Zarówno podłogi drewniane, jak i panele laminowane mają swoje zastosowania.</p>



<h3 class="wp-block-heading"><strong><em>Podłogi drewniane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Nadają się do każdego wnętrza</strong>&nbsp;– od klasycznych po nowoczesne.</li>



<li><strong>Wymagają dopasowania do stylu</strong>&nbsp;– nie każdy gatunek drewna pasuje do każdego pomieszczenia.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Panele laminowane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Dostępne w wielu wzorach</strong>&nbsp;– imitują drewno, kamień, a nawet beton.</li>



<li><strong>Łatwe do dopasowania</strong>&nbsp;– można je stosować w każdym pomieszczeniu.</li>
</ul>



<h2 class="wp-block-heading"><strong><em>Który materiał jest bardziej opłacalny?</em></strong></h2>



<p class="wp-block-paragraph">Koszty to jeden z najważniejszych czynników przy wyborze podłogi. Porównajmy, ile kosztują oba rozwiązania.</p>



<h3 class="wp-block-heading"><strong><em>Podłogi drewniane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Wyższy koszt zakupu</strong>&nbsp;– cena zależy od gatunku drewna.</li>



<li><strong>Dodatkowe koszty konserwacji</strong>&nbsp;– olejowanie, lakierowanie, cyklinowanie.</li>
</ul>



<h3 class="wp-block-heading"><strong><em>Panele laminowane:</em></strong></h3>



<ul class="wp-block-list">
<li><strong>Niski koszt zakupu</strong>&nbsp;– panele są znacznie tańsze niż drewno.</li>



<li><strong>Niskie koszty utrzymania</strong>&nbsp;– wystarczy regularne czyszczenie.</li>
</ul>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1738148031860"><strong class="schema-faq-question"><strong>Czy podłogi drewniane są odpowiednie do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Tak, ale nie każdy rodzaj drewna nadaje się do tego celu. Najlepsze są gatunki o niskiej kurczliwości, takie jak dąb czy jesion.</p> </div> <div class="schema-faq-section" id="faq-question-1738148046183"><strong class="schema-faq-question"><strong>Czy panele laminowane dobrze przewodzą ciepło?</strong></strong> <p class="schema-faq-answer">Tak, panele laminowane mają lepszą przewodność cieplną niż drewno, co pozwala na efektywniejsze działanie ogrzewania podłogowego.</p> </div> <div class="schema-faq-section" id="faq-question-1738148061059"><strong class="schema-faq-question"><strong>Który materiał jest bardziej odporny na zmiany temperatury?</strong></strong> <p class="schema-faq-answer">Panele laminowane są bardziej odporne na wahania temperatury i wilgotności niż drewno, które może się kurczyć i rozszerzać.</p> </div> <div class="schema-faq-section" id="faq-question-1738148079881"><strong class="schema-faq-question"><strong>Czy podłogi drewniane wymagają specjalnej konserwacji przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak, drewno wymaga regularnego olejowania lub lakierowania, aby zachować trwałość i stabilność przy zmianach temperatury.</p> </div> <div class="schema-faq-section" id="faq-question-1738148109531"><strong class="schema-faq-question"><strong>Które rozwiązanie jest bardziej ekologiczne?</strong></strong> <p class="schema-faq-answer">Podłogi drewniane są bardziej ekologiczne, ponieważ wykonane są z naturalnego surowca, który można poddać recyklingowi, w przeciwieństwie do paneli laminowanych.</p> </div> </div>



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



<p class="wp-block-paragraph">Wybór między&nbsp;<strong>podłogami drewnianymi a panelami laminowanymi</strong>&nbsp;zależy od Twoich priorytetów. Jeśli zależy Ci na naturalności, trwałości i elegancji, podłoga drewniana będzie lepszym wyborem. Jednak jeśli szukasz tańszego, łatwiejszego w montażu i bardziej odpornego na zmiany temperatury rozwiązania, panele laminowane mogą być idealne.</p>



<p class="wp-block-paragraph">Pamiętaj, że niezależnie od wyboru, kluczowe jest prawidłowe przygotowanie podłoża, <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projekt ogrzewania podłogowego</a> i sam montaż ogrzewania podłogowego. </p>



<p class="wp-block-paragraph">Czy wybierzesz naturalne piękno drewna, czy praktyczność paneli laminowanych, oba rozwiązania mają swoje zalety. Ważne, aby decyzja była przemyślana i dopasowana do Twoich potrzeb oraz stylu życia.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="qgS8tTlMSR"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">Projekt ogrzewania podłogowego &#8211; do 100 m2</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 100 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/embed/#?secret=QCUnBMD5Im#?secret=qgS8tTlMSR" data-secret="qgS8tTlMSR" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">Podłogi drewniane vs. panele laminowane – co wybrać przy ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalacja ogrzewania podłogowego – czy warto robić to samemu?</title>
		<link>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/</link>
					<comments>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 28 Dec 2024 12:07:38 +0000</pubDate>
				<category><![CDATA[DIY instalacje]]></category>
		<category><![CDATA[Energooszczędność]]></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[Planowanie instalacji grzewczych]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Remonty i budowa]]></category>
		<category><![CDATA[instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[izolacja brzegowa]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędności ogrzewanie]]></category>
		<category><![CDATA[planowanie instalacji]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[profesjonalne instalacje grzewcze]]></category>
		<category><![CDATA[rozdzielacze podłogówki]]></category>
		<category><![CDATA[samodzielny montaż podłogówki]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1849</guid>

					<description><![CDATA[<p>Instalacja ogrzewania podłogowego to coraz częściej wybierane rozwiązanie, które łączy estetykę z funkcjonalnością. Czy jednak warto podjąć się tego zadania samodzielnie? W naszym artykule omówimy zalety i wyzwania samodzielnego montażu oraz sytuacje, w których lepiej zaufać specjalistom. Poznaj wskazówki i praktyczne porady, które pomogą Ci dokonać najlepszego wyboru dla Twojego domu</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">Instalacja ogrzewania podłogowego – czy warto robić to samemu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe zyskuje na popularności jako efektywne i estetyczne rozwiązanie do ogrzewania domów. Jednak pytanie, które zadaje sobie wiele osób, brzmi: <em>czy instalacja ogrzewania podłogowego to zadanie, które można wykonać samodzielnie?</em> Już w tytule zastanawiamy się, czy warto robić to samemu, a poniżej znajdziesz szczegółową analizę czy <strong>instalacja ogrzewania podłogowego – czy warto robić to samemu?</strong> W tym artykule przyjrzymy się zaletom i wyzwaniom samodzielnego montażu oraz sytuacjom, w których warto zaufać specjalistom.</p>



<h2 class="wp-block-heading"><strong>Zalety samodzielnej instalacji ogrzewania podłogowego</strong>.</h2>



<h3 class="wp-block-heading"><strong>Oszczędności finansowe</strong>.</h3>



<p class="wp-block-paragraph">Jednym z głównych powodów, dla których ludzie decydują się na samodzielny montaż ogrzewania podłogowego, są oszczędności. Rezygnacja z usług profesjonalnej ekipy instalacyjnej pozwala zaoszczędzić znaczne kwoty, szczególnie w przypadku większych inwestycji.</p>



<h3 class="wp-block-heading"><strong>Satysfakcja z wykonanego projektu</strong>.</h3>



<p class="wp-block-paragraph">Samodzielna praca nad systemem grzewczym może być źródłem ogromnej satysfakcji. Ukończony projekt to dowód Twoich umiejętności i zaangażowania.</p>



<h3 class="wp-block-heading"><strong>Pełna kontrola nad projektem</strong>.</h3>



<p class="wp-block-paragraph">Samodzielna instalacja daje możliwość ścisłej kontroli nad rozmieszczeniem rur oraz dostosowaniem systemu do indywidualnych potrzeb i wymagań wnętrza.</p>



<h2 class="wp-block-heading"><strong>Wyzwania i ryzyka samodzielnego montażu</strong>.</h2>



<h3 class="wp-block-heading"><strong>Brak wiedzy technicznej</strong>.</h3>



<p class="wp-block-paragraph">Ogrzewanie podłogowe wymaga znajomości zasad hydrauliki, izolacji termicznej oraz specyfiki montażu. Brak doświadczenia może skutkować błędami, które trudno i kosztownie naprawić.</p>



<h3 class="wp-block-heading"><strong>Ryzyko błędów</strong>.</h3>



<p class="wp-block-paragraph">Niewłaściwe rozmieszczenie rur może prowadzić do strat ciepła, nierównomiernego grzania lub problemów z wydajnością systemu. O tym, jak poprawnie zaplanować pętle grzewcze, przeczytasz tutaj: <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Jak zaplanować rozmieszczenie pętli grzewczych?</a>.</p>



<h3 class="wp-block-heading"><strong>Czasochłonność</strong>.</h3>



<p class="wp-block-paragraph">Samodzielny montaż może być znacznie bardziej czasochłonny niż wynajęcie profesjonalistów. To ważne, szczególnie gdy czas jest kluczowym czynnikiem w realizacji projektu budowlanego.</p>



<h2 class="wp-block-heading"><strong>Kiedy warto rozważyć samodzielny montaż?</strong></h2>



<p class="wp-block-paragraph">Samodzielna instalacja ogrzewania podłogowego może być opłacalna, gdy:</p>



<ul class="wp-block-list">
<li>Masz niewielkie pomieszczenia do ogrzania, np. łazienkę czy kuchnię.</li>



<li>Posiadasz odpowiednie narzędzia i podstawową wiedzę techniczną.</li>



<li>Chcesz zaoszczędzić na kosztach robocizny.</li>
</ul>



<h2 class="wp-block-heading"><strong>Kiedy lepiej zaufać specjalistom?</strong></h2>



<h3 class="wp-block-heading"><strong>Skomplikowane instalacje</strong>.</h3>



<p class="wp-block-paragraph">Gdy masz do czynienia z dużymi powierzchniami lub nietypowymi układami pomieszczeń, skorzystanie z usług profesjonalistów to najlepsza decyzja. Specjaliści zadbają o kluczowe aspekty, takie jak precyzyjne rozmieszczenie rur, odpowiednie wykonanie <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej</a> oraz instalację <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">rozdzielaczy</a>. Takie podejście gwarantuje efektywne i długotrwałe działanie systemu. </p>



<h3 class="wp-block-heading"><strong>Zaawansowane technologie</strong>.</h3>



<p class="wp-block-paragraph">Instalacje wymagające połączenia z pompą ciepła lub systemami inteligentnego sterowania to zadania dla doświadczonych fachowców. Profesjonalny montaż minimalizuje ryzyko błędów, które mogłyby wpływać na efektywność ogrzewania. Dowiedz się więcej o prawidłowym rozstawie rur w artykule: <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">Rozstaw rur przy pompie ciepła</a>.</p>



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



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1735385343971"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe można zainstalować samodzielnie?</strong></strong> <p class="schema-faq-answer">Tak, ale wymaga to podstawowej wiedzy technicznej, odpowiednich narzędzi oraz szczegółowego <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">planu instalacji ogrzewania podłogowego</a>.</p> </div> <div class="schema-faq-section" id="faq-question-1735385390804"><strong class="schema-faq-question"><strong>Jakie są zalety samodzielnego montażu ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Samodzielny montaż pozwala zaoszczędzić na kosztach robocizny, daje kontrolę nad projektem oraz satysfakcję z wykonanej pracy.</p> </div> <div class="schema-faq-section" id="faq-question-1735385410717"><strong class="schema-faq-question"><strong>Kiedy lepiej zaufać specjalistom?</strong></strong> <p class="schema-faq-answer">W przypadku skomplikowanych instalacji, dużych powierzchni lub systemów z <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompą ciepła</a> warto skorzystać z usług profesjonalistów.</p> </div> <div class="schema-faq-section" id="faq-question-1735385522825"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe sprawdza się w remontowanych budynkach?</strong></strong> <p class="schema-faq-answer"><a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-remontowanym-budynku-czy-warto/">Tak</a>, pod warunkiem odpowiedniego przygotowania podłogi i dostosowania instalacji do istniejących warunków.</p> </div> <div class="schema-faq-section" id="faq-question-1735385650865"><strong class="schema-faq-question"><strong>Jakie błędy są najczęściej popełniane przy samodzielnej instalacji?</strong></strong> <p class="schema-faq-answer">Do najczęstszych błędów należą niewłaściwe rozmieszczenie <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rury-do-ogrzewania-podlogowego/">rur grzewczych</a>, brak izolacji brzegowej oraz nieprawidłowy rozstaw pętli grzewczych.</p> </div> </div>



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



<p class="wp-block-paragraph">Instalacja ogrzewania podłogowego to zadanie wymagające precyzji i wiedzy. Dla mniejszych projektów samodzielny montaż może być dobrym rozwiązaniem, ale w przypadku bardziej złożonych systemów warto zaufać specjalistom. Pamiętaj, że odpowiednio zaplanowana instalacja to inwestycja na lata. Po więcej informacji zajrzyj na nasz <a href="https://projekt-ogrzewania.pl/blog/">blog</a>.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="y68MF15ldJ"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=neHY2Ol4Jc#?secret=y68MF15ldJ" data-secret="y68MF15ldJ" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/">Instalacja ogrzewania podłogowego – czy warto robić to samemu?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/instalacja-ogrzewania-podlogowego-czy-warto-robic-to-samemu/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
